"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