Deepak Gole
7/7/2008 4:47:00 AM
[Note: parts of this message were removed to make it a legal post.]
Hello stefano,
Thanks for your explanation.
On Fri, Jul 4, 2008 at 12:37 PM, Stefano Crocco <stefano.crocco@alice.it>
wrote:
> On Friday 04 July 2008, Deepak Gole wrote:
> > Hello,
> >
> > I didn't understand the following concept.
> >
> > *class Universe
> >
> > private
> > def self.private_method
> > p "=========Hello world======="
> > end
> >
> > end
> >
> > Universe.**private_method** => "=========Hello world======="
> > *
> >
> > How come I get the o/p ( *"=========Hello world=======" * ) as I have
> > declared that method as private.
> >
> > Thanks in advance
> > Deepak Gole (DG)
>
> The private method only makes instance methods private, not class methods.
> This means the reason you can call Universe.private_method is that, despite
> its name, the method is still public. To make a class method private, you
> can
> use the Module#private_class_method method:
>
> class Universe
>
> def self.private_method
> p "Hello world"
> end
>
> private_class_method :private_method
>
> end
>
> Universe.private_method
>
> => private method `private_method' called for Universe:Class
> (NoMethodError)
>
> I hope this helps
>
> Stefano
>
>
>
>