Vincent Isambart wrote: > About the class name, the name of the class is not necessarily the name > of the constant that references the name. Example: > class Foo > end > Bar = Foo > Foo = 0 > > Then you cannot do Foo.new, but Bar.name returns "Foo". > I think in fact, when the class does not exist, Ruby creates the class, > and gives it the name that is after "class". It then gives to a > constant of the same name the value of the class. > > If you try to add a method to Foo, it does not work : > class Foo > def a() end > end > -> TypeError: Foo is not a class > > You can still add a method to the class created before : > class Bar > def a() end > end > > and Bar.field still returns "Foo". > So the name field of class is just a name that does not necessarily > means anything. > so if I get you right, when creating a new class three things happens: 1. creation of a new class-object 2. setting the attribute "name" of the class to the given class name 3. creation of a constance with the given class name as reference to the new class-object tant mieux! then we could do the same thing everytime an object is created ( = set with "=")! 1. creation of the object, registering its relation to its class...etc 2. setting the attribute "name" of the object to the given object name, if not given: nil 4.name #=> nil "test".name #=> nil test = Test.new test.name #=> "test" Test.new.name #=> nil test2 = test test2.name #=> "test" test2.name = "test3" test2.name #=> "test3" name would be just another attribut of Object just as is for Class (and as I initially thought of) > I hope what I said was understandable ^o^ surely it was. > > Regards, > Vincent Isambart regards, benny