Sha256: 4d591b4fe330d1da1513379d5be206d6f0d11acbf945c20f3ec8623bf0780ec8

Contents?: true

Size: 422 Bytes

Versions: 84

Compression:

Stored size: 422 Bytes

Contents

module Rubber
  class ThreadSafeProxy
    instance_methods.each { |m| undef_method m unless m =~ /(^__|^send$|^object_id$)/ }

    def initialize(&block)
      @target_block = block
    end
    
    protected

    def method_missing(name, *args, &block)
      target.send(name, *args, &block)
    end

    def target
      Thread.current["thread_safe_proxy_target_#{object_id}"] ||= @target_block.call
    end

  end
end

Version data entries

84 entries across 84 versions & 1 rubygems

Version Path
rubber-3.2.2 lib/rubber/thread_safe_proxy.rb
rubber-3.2.1 lib/rubber/thread_safe_proxy.rb
rubber-3.2.0 lib/rubber/thread_safe_proxy.rb
rubber-3.1.0 lib/rubber/thread_safe_proxy.rb
rubber-3.0.1 lib/rubber/thread_safe_proxy.rb
rubber-3.0.0 lib/rubber/thread_safe_proxy.rb
rubber-2.16.0 lib/rubber/thread_safe_proxy.rb
rubber-2.15.2 lib/rubber/thread_safe_proxy.rb
rubber-2.15.1 lib/rubber/thread_safe_proxy.rb
rubber-2.15.0 lib/rubber/thread_safe_proxy.rb
rubber-2.14.0 lib/rubber/thread_safe_proxy.rb
rubber-2.13.1 lib/rubber/thread_safe_proxy.rb
rubber-2.13.0 lib/rubber/thread_safe_proxy.rb
rubber-2.12.2 lib/rubber/thread_safe_proxy.rb
rubber-2.12.1 lib/rubber/thread_safe_proxy.rb
rubber-2.12.0 lib/rubber/thread_safe_proxy.rb
rubber-2.11.0 lib/rubber/thread_safe_proxy.rb
rubber-2.10.2 lib/rubber/thread_safe_proxy.rb
rubber-2.10.1 lib/rubber/thread_safe_proxy.rb
rubber-2.10.0 lib/rubber/thread_safe_proxy.rb