Bueno, en ruby cuando se ejecuta un método no definido se llama al método "method_missing". Y como hacer
a.b = c es llamar al método "b=", si no definiste ejecuta method_missing. La documentación de esto está en http://www.ruby-doc.org/core/classes/Kernel.html#M005929 Bueno, me voy a dormir, Aureliano. 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. > > ____________________________________________ > From: "Aureliano Calvo" < [EMAIL PROTECTED]> > To: "Grupo Ruby Argentina" <[email protected]> > Date: Wed, 12 Sep 2007 00:14:39 -0300 > Subject: Re: [RubyArg] Buenas, y primera consulta. > > No sé cómo funciona el autoload de Perl, pero en ruby hay algo con ese > nombre. > > autoload(:MyModule, "/usr/local/lib/modules/my_module.rb") > > hacé que cuando uses MyModule por primera vez ejecute > "/usr/local/lib/modules/my_module.rb" > > > ________________________________________________ > From: Porta < [EMAIL PROTECTED]> > To: [email protected] > Date: Wed, 12 Sep 2007 00:02:23 -0300 > Subject: [RubyArg] Buenas, y primera consulta. > > Buenas a todos. > Me interesa aprender un poco de ruby, y ya al primer paso encuentro un > problema que no sé como resolver. > A ver si alguien puede iluminarme. > > Sabrá alguien decirme si en ruby existe un equivalente del AUTOLOAD de > perl? no soy un teórico, así que me cuesta encontrar las palabras para > explicar *correctamente* lo que necesito... si alguien sabe como funciona el > autoload en perl me vá a entender. sino, me dicen y busco alguna forma clara > de explicarlo... > Lamento que mi primer mail sea tan difuso y poco claro. Espero mejorarlos > con el tiempo. > > Gracias a todos. > > Porta. > > > > _______________________________________________ > 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
