"T. Onoma" <transami / runbox.com> schrieb im Newsbeitrag
news:200408290039.52308.transami / runbox.com...
> On Sunday 29 August 2004 12:15 am, Robo wrote:
> > When defining class methods, are these two ways the same? Is there a
> > preference on which one should be use?
> >
> > class Monkey
> >    def self.method1
> >      puts "method1"
> >    end
> >
> >    def Monkey.method2
> >      puts "method2"
> >    end
> > end
>
> Identical.
>
> > I would think self.method1 is more preferable 'cos it doesn't have to
> > get rename when the class name gets change.
>
> True.
>
> > Also, I see them get call in two different ways, Monkey.method1 and
> > Monkey::method1. Both seems to work, are they identical? Is there an
> > idiom on which way should be use?
>
> They are the same too. The only time they may differ is when a method
begins
> with a capital letter (which is very rare) then Monkey::Method1 would not
> find it b/c it was looking for a constant called Method1 instead, to fix
just
> add (), i.e. Monkey::Method1().

I think the general convention is to use "::" for constants and "." for
methods.

Kind regards

    robert