Method: Object#instance_exec
- Defined in:
- lib/watirloo/extension/object.rb
#instance_exec(*args, &block) ⇒ Object
instance_exec method evaluates a block of code relative to the specified object, with parameters whom come from outside the object.
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/watirloo/extension/object.rb', line 15 def instance_exec(*args, &block) begin old_critical, Thread.critical = Thread.critical, true n = 0 n += 1 while respond_to?(mname="__instance_exec#{n}") InstanceExecHelper.module_eval{ define_method(mname, &block) } ensure Thread.critical = old_critical end begin ret = send(mname, *args) ensure InstanceExecHelper.module_eval{ remove_method(mname) } rescue nil end ret end |