--0016361e7b0cde7545049668580e Content-Type: text/plain; charset=ISO-8859-1 On Wed, Dec 1, 2010 at 11:25 PM, Tony Arcieri <tony.arcieri / medioh.com>wrote: > Every time I think I have my head around what these terms mean I seem to > run > across someone with a completely different definition. > > My understanding was that the singleton class is what you obtain when you > call self.class in instance scope, and that metaclass and eigenclass > are interchangeable terms for what you obtain if you call class << self; > self; end in instance scope. > > Is this correct? Do you have a different definition? > > I take all three to mean the same thing: the object's own personal class. It has only one instance, which is the object. Or, in code: class << obj # now we are in obj's metaclass / eigenclass / singleton class end I think the different names exist for historical reasons, I personally use "metaclass" because that is what _why used in Dwemthy's Array http://mislav.uniqpath.com/poignant-guide/dwemthy/ but I think the name "eigenclass" sounds badass (reminiscent of steampunk), so maybe I'll start using it, instead :P --0016361e7b0cde7545049668580e--