Sha256: d7f7b4b53f33903276612b5974ee30dd4eaaf21780543adfc636c27002029839

Contents?: true

Size: 628 Bytes

Versions: 41

Compression:

Stored size: 628 Bytes

Contents

module Workhorse
  class ScopedEnv
    def initialize(delegation_object, methods, backup_binding = nil)
      @delegation_object = delegation_object
      @methods = methods
      @backup_binding = backup_binding
    end

    def method_missing(symbol, *args, &block)
      if @methods.include?(symbol)
        @delegation_object.send(symbol, *args, &block)
      elsif @backup_binding.try(:respond_to?, symbol)
        @backup_binding.send(symbol, *args, &block)
      else
        super
      end
    end

    def respond_to_missing?(symbol, include_private = false)
      @methods.include?(symbol) || super
    end
  end
end

Version data entries

41 entries across 41 versions & 1 rubygems

Version Path
workhorse-1.2.24 lib/workhorse/scoped_env.rb
workhorse-1.2.23 lib/workhorse/scoped_env.rb
workhorse-1.2.22 lib/workhorse/scoped_env.rb
workhorse-1.2.21 lib/workhorse/scoped_env.rb
workhorse-1.2.20 lib/workhorse/scoped_env.rb
workhorse-1.2.17 lib/workhorse/scoped_env.rb
workhorse-1.2.17.rc2 lib/workhorse/scoped_env.rb
workhorse-1.2.17.rc1 lib/workhorse/scoped_env.rb
workhorse-1.2.17.rc0 lib/workhorse/scoped_env.rb
workhorse-1.2.16 lib/workhorse/scoped_env.rb
workhorse-1.2.15 lib/workhorse/scoped_env.rb
workhorse-1.2.14 lib/workhorse/scoped_env.rb
workhorse-1.2.13 lib/workhorse/scoped_env.rb
workhorse-1.2.12 lib/workhorse/scoped_env.rb
workhorse-1.2.11 lib/workhorse/scoped_env.rb
workhorse-1.2.10 lib/workhorse/scoped_env.rb
workhorse-1.2.9 lib/workhorse/scoped_env.rb
workhorse-1.2.8 lib/workhorse/scoped_env.rb
workhorse-1.2.7 lib/workhorse/scoped_env.rb
workhorse-1.2.6 lib/workhorse/scoped_env.rb