Ah. That's what confused me. I couldn't find it in pickaxe2. Thanks David(s!) Glenn On Tue, 29 Mar 2005 20:11:01 +0900, David A. Black <dblack / wobblini.net> wrote: > Hello -- > > On Tue, 29 Mar 2005, Glenn Smith wrote: > > > Not entirely sure I understand this (it's a newbie-ruby question). > > > > class Test > > def foo > > end > > > > def Test.foo > > end > > > > def self.foo > > end > > end > > > > > > The first definitition of foo is an instance method. The second a > > class method. Perhaps my terminology is wrong but I understand what I > > mean. > > > > It's the third one I'm not sure of. The "self.foo". > > > > What does this do, how and where would I use it? > > Every time you do this: > > def some_object.some_method > ... > end > > you create a singleton method some_method for the object some_object > -- that is, a method that only some_object can call. > > If you do the above using 'self' as the receiver, then the singleton > method you create will belong to whatever 'self' was at the time. > > In your example, self is actually Test, the class whose scope you are > in. So, in effect, Test.foo and self.foo are the same, in that > context. > > David > > -- > David A. Black > dblack / wobblini.net > > -- All the best Glenn Aylesbury, UK