From: "David A. Black" Date: 2005-03-29T20:11:01+09:00 Subject: Re: Please tell me what this means? self. in a class 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