Para mi la mejor forma de aprender metaprogramación en ruby es
resolver los 10 metakoans que están en http://rubyquiz.com/quiz67.html

Hacelos y después lee el artículo de nuevo. Te va a quedar todo mucho más claro.

On 9/12/07, Porta <[EMAIL PROTECTED]> wrote:
> gracias....
>
> por si a alguien le interesa, de rebote encontré esto:
> http://whytheluckystiff.net/articles/seeingMetaclassesClearly.html
> parece interesante. bastante cerca también de lo que necesito.
> hasta que llegué a esta linea:
>  def metaclass; class << self; self; end; end
>
> y ahi me perdí. me marean un poco esos punto y coma. y no hablemos de class
> << self;
>
> eso tiene que ver con con herencia?
> alguna lectura recomendada sobre el tema?
>
>
>
>
> On 9/12/07, Romina Natalia Tulisi < [EMAIL PROTECTED]> wrote:
> >
> >
> > Linda y simple explicación para el autoload de Perl... me hubiese gustado
> que alguien me explique el autoload así en su momento...
> > De cualquier manera no te hubiese podido ayudar porque soy más que newbie
> con ruby.
> > Pero es bueno saber que existe algo similar que es tan útil en perl.
> > Estoy aprendiendo de rebote :-)
> >
> >
> >
> >
> > On 9/12/07, Porta < [EMAIL PROTECTED]> wrote:
> > > Aureliano.
> > > gracias por tu pronta respuesta.
> > > lamentablemente, el autoload de perl del que hablo nada tiene que ver
> con el de ruby
> > > veamos si puedo ampliar un poco la question.
> > >
> > > (mi léxico sobre el tema es *cero*. no soy un teórico. sepan disculpar.)
> > >
> > > supongamos que creo una "clase" con perl. (yo lo llamo paquete o
> módulo).
> > > supongamos mi clase "Usuario".
> > > adentro de mi clase Usuario, yo defino diferentes funciones para
> *escribir* y *leer* los atributos de esa clase (creo que se llaman
> comunmente setters y getters)
> > > de modo que con mi objeto Usuario, yo puedo hacer:
> > > $usuario->Nombre('Jorge');
> > > (acabo de darle el nombre Jorge a mi $usuario)
> > > o decir que
> > > $nombre = $usuario->Nombre;
> > > (digo que mi variable $nombre es igual al Nombre de mi $usuario)
> > >
> > > hasta acá, todo bien. la lógica sería tener 2 funciones adentro de mi
> clase usuario. una para asignar el nombre y otra para leerlo. o una sola,
> que si recibe un parametro lo setea como nombre, y si no recibe parámetro
> devuelve el nombre que haya.
> > > ahora, si yo en mi clase usuario no definí ninguna función que se llame
> Apellido
> > > (si intento hacer)
> > > $usuario->Apellido('Gomez');
> > > ahi se rompe todo. porque Apellido no existe en ningun lado.
> > >
> > > Bueno. En perl, la función AUTOLOAD se ejecuta cada vez que uno accede a
> alguna propiedad de esa clase. O sea, que adentro del AUTOLOAD yo puedo
> *atajar* llamados a funciones que no existen y, por ejemplo, devolver un
> error un poco más amable. O sino (lo que a mi me interesa hacer
> puntualmente). poder crear "en el aire" ese atributo en mi clase y setearlo
> o leerlo según  reciba o no parámetros.
> > >
> > > Más claro ahora? espero que sí. sino, me busco alguna definición más
> prolija del autoload en perl.
> > >
> > > graaaaaacias.
> >
> > _______________________________________________
> > Ruby mailing list
> > [email protected]
> >
> http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
> >
> >
>
>
> _______________________________________________
> Ruby mailing list
> [email protected]
> http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
>
>
_______________________________________________
Ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar

Responder a