From: Dan Doel Date: 2003-12-17T04:54:05+09:00 Subject: Re: UnboundMethods Useless? You can do stuff like this: class Object def foo puts "Bar" end end u = Object.instance_method :foo class Object undef foo end class ArbitraryClass end o = ArbitraryClass.new b = u.bind o b.call Which isn't as generally useful, I know, but if you're constructing methods from strings which you seem to be doing elsewhere, you can do something like this: class Object def Object.universal_method(args, code) eval %Q/ def method_44518982938293(#{args}) #{code} end / m = instance_method :method_44518982938293 undef method_44518982938293 m end end u = Object.universal_method %Q{foo, bar}, %Q{ puts foo, bar } class ArbitrarySubclass end o = ArbitrarySubclass.new b = u.bind o b.call 2, 3 Not exactly elegant code, but it works. - Dan