From: Andreas Launila Date: 2007-06-12T06:01:26+09:00 Subject: Re: Constants and metaclasses Joel VanderWerf wrote: > It doesn't seem possible to use const_missing to do this, because > const_missing is called on Foo (not on the instance or the singleton > class) and there is no way to identify the instance of Foo in the > const_missing method. > I didn't know that const_missing existed, that might be just enough to not have to redefine constants if one accepts some dirtiness. Here is an adaptation of your code with that thrown in. class Object def singleton_class class << self; self; end end end class Foo def foo p BAR end private def self.const_missing(name) if !@caller.nil? and @caller.singleton_class.const_defined? name @caller.singleton_class.const_get(name) else super end end def self.next_caller(caller) @caller = caller end end f = Foo.new class <