"MikkelFJ" wrote in .... > > p anon # #<Class:0x277b6f8> > > > > A = anon > > there it was - you did at again - you made it constant (i.e. static) :-) > > I get your point - class definitions are dynamic in nature and what I call > static behaves like any other class definition. But that was not my focus at > all. My concern was how classes get created automatically - the mysterious > origin of self. > > Anyway I do not have any strong feelings for the word static - I just argued > why I originally use the term. I still see constant class instance > associated with a class as being somewhat static - but I have now learned If you want to be picky there is no such thing as a ``constant class instance'' - its more like that there are constants whose value happens to be a class and Ruby's constants aren't that constant after all. --- class A;end # this defines a constant on the class Object level -i.e. p Object.const_get(:A) # A # lets get rid of this constant but make sure that the # associated class is not GC'ed into obviation anon_A = A class Object remove_const :A end begin p A rescue NameError => mes puts mes # some complain about missing constant A end # the A constant slot is free again .. class A;end # and we get p A # A p anon_A # A # however p A != anon_A # true --- In the end I agree with you that in practice Ruby seems to work pretty much like a ``static Class system'' as far as inner classes are concernt - but it's all an intended illusion - apparently good enough for Dave to pretend in RDoc that Ruby inner class scopes work like C++ or Java ones. /Christoph