[EVALUATION] - E03c - The Ruby Object Model (Revised Documentation)
http://groups-beta.google.com/group/comp.lang.ruby/msg/b72b4a3bfd81a48e?hl=en
···
-
the above thread went a little out of control.
The mostly discussed point (inherits from nil) has evolved and
please focus on the essence:
which is the term "metaclass"
-
cmd:> ri Class
"Classes, modules, and objects are interrelated. In the diagram that
follows, the arrows represent inheritance, and the parentheses
meta-classes. All metaclasses are instances of the class `Class'."
+------------------+
> >
Object---->(Object) |
^ ^ ^ ^ |
> > > > >
> > +-----+ +---------+ |
> > > > >
> +-----------+ | |
> > > > >
+------+ | Module--->(Module) |
> > ^ ^ |
OtherClass-->(OtherClass) | | |
> > >
Class---->(Class) |
^ |
> >
+----------------+
-
The above documentation is false.
-
The mentioned metaclasses like "(Class)" are not existent and not accessible whilst using standard Class/Object mechanisms.
The term "metaclasses" could be exchanged with e.g. "internal representations of class definitions" or anything adequate.
This is _not_ the same with a metaclass (which must be a _class_).
-
See the UML diagramm "TheRubyObjectModel" (V1.3) for a corrected clarifying version:
http://lazaridis.com/case/lang/ruby/
-
If I am wrong, please show me how to access the metaclass:
ClassMetaClass = Class.???
ClassMetaClass.<class operations / access>
-
please avoid usage of libraries, excessive code etc. We are talking about an oject-model, which should simply... exist!
so, which is the cleanes and simplest way to get access to the "metaclass"?
-
I like to remind you, that evaluators coming from C++, Smalltalk, Java etc. are not intrested in the specialities of a language (especially if they are not necessary).
The developers and the community should be capable to use standard-terminology to explain the ruby model.
Otherwise: who should take you serious?
..