From: Erik Veenstra Date: 2006-07-10T19:33:34+09:00 Subject: Re: instance_exec Okay, criticizing somebody's work without providing a "solution", isn't nice at all... So, here's my version... gegroet, Erik V. - http://www.erikveen.dds.nl/ PS: I'm still curious about the reason for using a module. ---------------------------------------------------------------- class Object def instance_exec(*args, &block) object = self res = nil class << self self end.instance_eval do begin Thread.critical = true @_instance_exec_count_ ||= 0 @_instance_exec_count_ += 1 method_name = "_instance_exec_#{@_instance_exec_count_}_" ensure Thread.critical = false end begin define_method(method_name, &block) res = object.send(method_name, *args) ensure remove_method(method_name) rescue nil end end res end end ----------------------------------------------------------------