Sha256: a5e378e0635cfa912f4fb39e99824f4eed4eab4cd2ca3dc9e990ac3f3296f67c

Contents?: true

Size: 786 Bytes

Versions: 4

Compression:

Stored size: 786 Bytes

Contents

major, minor, patch = RUBY_VERSION.split('.').map{ |v| v.to_i }
if major <= 1 && minor <= 8

    class Object
        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

4 entries across 4 versions & 1 rubygems

Version Path
spiderfw-0.5.13 lib/spiderfw/utils/monkey/object.rb
spiderfw-0.5.12 lib/spiderfw/utils/monkey/object.rb
spiderfw-0.5.11 lib/spiderfw/utils/monkey/object.rb
spiderfw-0.5.10 lib/spiderfw/utils/monkey/object.rb