2009/11/2 Nicolás Sanguinetti <[email protected]> > Además de que no es ruby valido. No podés usar {} para definir clases > o métodos (no directamente, o sea, podés usar eso en Class.new o > define_method porque reciben un bloque, pero las keywords class y def > no reciben un bloque. > > Además, abrir una clase y definir cosas, no devuelve la clase: > > (class Integer; end) #=> nil > > Como todo en ruby, eso de vuelve la última linea del bloque de código. > > En todo caso, tendrías que hacer (class Integer; blah blah; self; end) > para que devuelva la clase. > > Y ta, tampoco podés hacer Integer.new(400). Podés hacer Integer(400), > porque hay un método definido en Kernel que se llama igual que la > clase. Para llegar a ese método desde la clase, lo único que se me > ocurre es method(Integer.name).call(400). > > Que tá, es chancho, pero meh, a esta altura ya no estamos pensando en eso. > > O sea que quedaría en algo como: > > > a,b=method(Integer.class_eval{define_method(:masigual){|*args|args.map{|n|n+=self}}&&self}.name).call(400).masigual(a,b) > > …pero sigue teniendo variables locales :P >
GANASTE FOCA, GANASTE =D
_______________________________________________ Ruby mailing list [email protected] http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
