From: Ryan Leavengood Date: 2005-04-21T00:36:58+09:00 Subject: Re: [EVALUATION] - E03d - The Ruby Object Model (End Game) Ilias Lazaridis wrote: > > And I know now: > > "ri class" documentation is missleading. > > and: it is false. I'm probably going to be shot by the rest of the mailing list members for continuing this, but I learned from this so hopefully others will as well: irb(main):001:0> ObjectMetaClass = class< # irb(main):002:0> ObjectMetaClass.superclass => Class irb(main):003:0> ClassMetaClass = class< # irb(main):004:0> ClassMetaClass.superclass => # irb(main):005:0> ClassMetaClass.superclass.superclass => # irb(main):006:0> ClassMetaClass.superclass.superclass.superclass => Class irb(main):007:0> ObjectMetaClass.class => Class irb(main):008:0> ClassMetaClass.class => Class irb(main):009:0> ModuleMetaClass = class< # irb(main):010:0> ModuleMetaClass.superclass => # irb(main):011:0> ModuleMetaClass.superclass.superclass => Class irb(main):012:0> ModuleMetaClass.class => Class irb(main):013:0> StringMetaClass = class< # irb(main):014:0> StringMetaClass.superclass => # irb(main):015:0> StringMetaClass.superclass.superclass => Class irb(main):016:0> StringMetaClass.class => Class irb(main):017:0> class Object;def metaclass;class< nil irb(main):018:0> Object.metaclass => # irb(main):019:0> Class.metaclass => # I feel this proves the diagram shown in "ri Class" is correct. Not that *I* ever had any doubt. Ryan