Forum: Ruby Class Method & Singletons - newbie question.

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
1b24200f38846a548d6b22ab6ae0c7e7?d=identicon&s=25 Salai Koko (koko)
on 2009-06-03 17:07
(Received via mailing list)
Dear Freinds,

Class Method and Singletons are the same?

Can you explain me with some simple code.

Many thanks in advance,


regards,
salai.
Fbb4d027695dfdf76bf448b15d7e306a?d=identicon&s=25 matt neuburg (Guest)
on 2009-06-03 19:56
(Received via mailing list)
salai <sayakyi@gmail.com> wrote:

> 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.
1b24200f38846a548d6b22ab6ae0c7e7?d=identicon&s=25 Salai Koko (koko)
on 2009-06-05 01:03
(Received via mailing list)
Hi matt,

thanks you very much for your explanation and your "Ruby introduction"
book link.
http://www.apeth.com/ruby/02justenoughruby.html


regards,
salai
This topic is locked and can not be replied to.