Sha256: d961d333ed715bd3cb2d6930966828d07319f5ccc07086512116d1f0007d657d

Contents?: true

Size: 672 Bytes

Versions: 76

Compression:

Stored size: 672 Bytes

Contents

class Object
  
  unless defined? instance_exec # 1.9
    # http://eigenclass.org/hiki/bounded+space+instance_exec
    module InstanceExecHelper; end
    include InstanceExecHelper
    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
  end
end

Version data entries

76 entries across 76 versions & 2 rubygems

Version Path
redcar-0.13 lib/redcar/instance_exec.rb
redcar-dev-0.13.5dev lib/redcar/instance_exec.rb
redcar-dev-0.13.4dev lib/redcar/instance_exec.rb
redcar-dev-0.13.3dev lib/redcar/instance_exec.rb
redcar-dev-0.13.2dev lib/redcar/instance_exec.rb
redcar-dev-0.13.1dev lib/redcar/instance_exec.rb
redcar-0.12.1 lib/redcar/instance_exec.rb
redcar-dev-0.13.0dev lib/redcar/instance_exec.rb
redcar-0.12 lib/redcar/instance_exec.rb
redcar-dev-0.12.27dev lib/redcar/instance_exec.rb
redcar-dev-0.12.26dev lib/redcar/instance_exec.rb
redcar-dev-0.12.25dev lib/redcar/instance_exec.rb
redcar-dev-0.12.24dev lib/redcar/instance_exec.rb
redcar-dev-0.12.23dev lib/redcar/instance_exec.rb
redcar-dev-0.12.22dev lib/redcar/instance_exec.rb
redcar-dev-0.12.21dev lib/redcar/instance_exec.rb
redcar-dev-0.12.20dev lib/redcar/instance_exec.rb
redcar-dev-0.12.19dev lib/redcar/instance_exec.rb
redcar-dev-0.12.18dev lib/redcar/instance_exec.rb
redcar-dev-0.12.17dev lib/redcar/instance_exec.rb