salai said:
Class Method and Singletons are the same?
No, not quite.
Can you explain me with some simple code.
It's very simple. There are really no class methods; there are only
instance methods. It is convenient to talk about class methods, but in
Ruby things are very elegant: a class is itself an instance (of the
Class class), and so a "class method" is merely an instance method of
that instance (i.e. an instance method of an instance of the Class
class).
Okay, so when you define a class method by saying
class C
end
def C.my_method
end
....you are doing EXACTLY the same thing that you are doing when you
define an instance method on any individual instance:
thing = Object.new
def thing.my_method
end
Exactly WHAT same thing? You are opening the instance and defining an
instance method applicable to that instance only. That is the
"singleton". So when you define a class method you are actually creating
a singleton instance method on that Class instance.
m.
PS By the way, in a completely different context (a proposed book about
rb-appscript) I have written an "introduction to Ruby" chapter that
might help you with these concepts. It's here:
http://www.apeth.com/ruby/02justenoughruby.html
Hope this helps.