On Thu, Apr 24, 2003 at 07:16:57AM +0900, Hal E. Fulton wrote:
> > I'd like the following to appear somewhere:
> >
> >     /*
> >      * Ruby's Class Hierarchy Chart
> >      *
> >      *                           +------------------+
> >      *                           |                  |
> >      *             Object---->(Object)              |
> >      *              ^  ^        ^  ^                |
> >      *              |  |        |  |                |
> >      *              |  |  +-----+  +---------+      |
> >      *              |  |  |                  |      |
> >      *              |  +-----------+         |      |
> >      *              |     |        |         |      |
> >      *       +------+     |     Module--->(Module)  |
> >      *       |            |        ^         ^      |
> >      *  OtherClass-->(OtherClass)  |         |      |
> >      *                             |         |      |
> >      *                           Class---->(Class)  |
> >      *                             ^                |
> >      *                             |                |
> >      *                             +----------------+
> >      *
> >      *   + All metaclasses are instances of the class `Class'.
> >      */
> >
> >
> > Note that if I read this right Object doesn't inherit Class but
> > extends it, as if we had
> > Object.extend Class
> > which of course doesn't work since Class.class != Module.
> >
> > I thus believe the loop at the top of the poster is just wrong.
> 
> Hmm, OK. It may be wrong according to the interpretation I
> gave earlier. But the arrows in this ASCII chart are the
> same as the ones in my drawing. True?

In the drawing: 
     Object <-- Module <-- Class <---  
        |____________________________|     [my ASCII drawing skills suck :)]
 
In object.c
	Object <-- Module <-- Class <-- Object'
                                        =======
                                    Singleton class of Object
Object' === (class << Object; self end)

So Object is a Class but it isn't derived from Class.

> Maybe I should just reverse the arrowheads? On the other
> hand, the only other red arrow is IO --> File. Maybe I
> could reverse that one instead. :)
> 
> Anyway, my drawing is buggy. All insights appreciated.

Wouldn't it be cool if we automated the generation?
I found the following in the RAA:

GraphR - Graph-related Ruby classes

-- 
 _           _                             
| |__   __ _| |_ ___ _ __ ___   __ _ _ __  
| '_ \ / _` | __/ __| '_ ` _ \ / _` | '_ \ 
| |_) | (_| | |_\__ \ | | | | | (_| | | | |
|_.__/ \__,_|\__|___/_| |_| |_|\__,_|_| |_|
	Running Debian GNU/Linux Sid (unstable)
batsman dot geo at yahoo dot com

Less is more or less more
	-- Y_Plentyn on #LinuxGER