From: Mathieu Bouchard Date: 2001-05-21T09:11:43+09:00 Subject: [ruby-talk:15448] RCR: #const_name_is ----------------8<----------------cut-here----------------8<---------------- RCR: #const_name_is Currently, doing Foo=bar is mostly equivalent to: current_module.const_set(:Foo,bar) This is a proposal to append this notification to the behaviour: if bar.respond_to? :const_name_is bar.const_name_is(:Foo,current_module) end Possibly that this notification should be done from inside #const_get. In general, a method const_name_is would register the values passed by the first such call, and consider that as its path in the tree of constants. Here is how things can get kludged up without this feature: module SomeModule Foo = Bar.new(:Foo,self,*other_args) end or else: module SomeModule Foo = Bar.new(*other_args) end [and at the end of the file:] SomeModule.constants.each {|name| obj = SomeModule.const_get(name) next unless Bar===obj obj.const_name_is name, SomeModule } ----------------8<----------------cut-here----------------8<---------------- matju