From: Pete Date: 2006-06-24T05:20:55+09:00 Subject: Re: class << self? alias static method: class Test def self.foo puts "foo" end end class Test class << self alias :bar :foo end end Test.bar Roger Johansson schrieb: > Can someone please explain exactly what "class << self" does , I just > dont get it. > > I was trying to alias some static methods with no luck but later found > some webpage saying that I need "class << self" to make the code run in > a static context. > > I know that even if I make a static method inside Class, there is still > a "self" object , so I guess even though Im in a static method it > somehow belongs to the class object that represents the type Im calling > my static method on? > > eg: > > MyType.my_static_method(); #<- will execute in the context of the Class > instance "MyType" ?, or??? > > and when I do class << self , I'll enter the static context of "MyType" > , meaning "self" would no longer be "MyType" ? > > and even if that is the case, why are all my local variables out of > scope inside that block? > I mean its still the same method that executes, or are the variables > somehow bound to the objects in which the method executes, even if they > are method local? > > Im really confused here :-) > > //Roger > >