[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