Class: Object

Inherits:
BasicObject
Includes:
InstanceExecHelper
Defined in:
lib/watirloo/extension/object.rb

Defined Under Namespace

Modules: InstanceExecHelper

Instance Method Summary collapse

Instance Method Details

#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