Method: Object#instance_exec

Defined in:
lib/core/object.rb

#instance_exec(*args, &block) ⇒ Object

Taken from www.ruby-forum.com/topic/54096 Instance eval a block with arguments



57
58
59
60
61
62
63
64
65
66
# File 'lib/core/object.rb', line 57

def instance_exec(*args, &block)
  mname = "__instance_exec_#{Thread.current.object_id.abs}"
  class << self; self end.class_eval{ define_method(mname, &block) }
  begin
    ret = send(mname, *args)
  ensure
    class << self; self end.class_eval{ undef_method(mname) } rescue nil
  end
  ret
end