From: Trans Date: 2007-03-07T21:32:20+09:00 Subject: Re: object_* and instance_* methods another issue: 5) Doesn't encapsulate the original object. I can offer a solution to that, though it still suffers some of the other problems. I haven't tested this but it should work (and if not, it can be fixed to do so): require 'facets/more/namespace' class Object namespace :meta do def send(obj, meth, *args) Object.instance_method(:send).bind(obj).call(meth, *args) end def class(obj) Object.instance_method(:class).bind(obj).call end # etc end end class Foo def send(*args) "whoo!" end def class "stupid!" end end f = Foo.new puts f.class # stupid! puts f.meta.class # Foo puts f.send(:object_id) # whoo! puts f.send(:meta).send(:object_id) # -605608944 T.