[Ror-es] Métodos Self
Damian Janowski
damian.janowski at gmail.com
Fri Dec 1 14:38:52 GMT 2006
Gracias Xavier, había hecho una prueba rápida con def, no con class <<self.
Espero que no estemos mareando demasiado a Fernando :p
On 12/1/06, Xavier Noria <fxn at hashref.com> wrote:
> On Dec 1, 2006, at 3:07 PM, Damian Janowski wrote:
>
> > Esto se superpone con los conceptos de control de acceso (public,
> > protected y private). Podrías tener método de clase protegidos o
> > privados (al momento que digo esto estoy probando con irb si se puede
> > especificar un método de clase privado, y me parece que no... alguien
> > puede confirmarlo?) Pero eso ya es un poco más raro. Solamente quería
> > decirte que son cosas conceptualmente diferentes, no comparables.
>
> Sipe, para ver eso ya hay que bajar a la clase singleton (Fernando,
> esto es un tecnicismo acerca de que son en realidad los metodos de
> clase en Ruby). Como sabeis los metodos de clase son metodos de
> instancia de la clase singleton de la clase como objeto mismo de
> Class, y es ahi donde aplican las funciones de control de visibilidad:
>
> fxn at feynman:~/tmp$ cat foo.rb
> class A
> class << self
> def a
> b
> end
> private
> def b
> "b"
> end
> end
> end
> fxn at feynman:~/tmp$ irb
> irb(main):001:0> require 'foo'
> => true
> irb(main):002:0> A.a
> => "b"
> irb(main):003:0> A.b
> NoMethodError: private method `b' called for A:Class
> from (irb):3
>
> El metodo A.a puede llamar a A.b, pero este ultimo es privado.
>
> -- fxn
>
> _______________________________________________
> Ror-es mailing list
> Ror-es at lists.simplelogica.net
> http://lists.simplelogica.net/mailman/listinfo/ror-es
>
More information about the Ror-es
mailing list