Sha256: b1ec9aa6a6d8ab7028be3dd6dd315fb87f49ab1c0f52871764d09bb4841bbe03

Contents?: true

Size: 470 Bytes

Versions: 32

Compression:

Stored size: 470 Bytes

Contents

module Savon
  class BlockInterface

    def initialize(target)
      @target = target
    end

    def evaluate(block)
      if block.arity > 0
        block.call(@target)
      else
        @original = eval("self", block.binding)
        instance_eval(&block)
      end
    end

    private

    def method_missing(method, *args, &block)
      @target.send(method, *args, &block)
    rescue NoMethodError
      @original.send(method, *args, &block)
    end

  end
end

Version data entries

32 entries across 32 versions & 4 rubygems

Version Path
savon-2.12.1 lib/savon/block_interface.rb
savon-2.12.0 lib/savon/block_interface.rb
savon-2.11.2 lib/savon/block_interface.rb
savon-SU-2.11.1b lib/savon/block_interface.rb
savon-SU-2.11.1 lib/savon/block_interface.rb
savon-2.11.1 lib/savon/block_interface.rb
savon-2.11.0 lib/savon/block_interface.rb
savon-2.10.1 lib/savon/block_interface.rb
savon-2.10.0 lib/savon/block_interface.rb
savon-2.9.0 lib/savon/block_interface.rb
savon-2.8.1 lib/savon/block_interface.rb
savon-2.8.0 lib/savon/block_interface.rb
savon-2.7.2 lib/savon/block_interface.rb
savon-2.7.1 lib/savon/block_interface.rb
savon-2.7.0 lib/savon/block_interface.rb
savon-2.6.0 lib/savon/block_interface.rb
savon-2.5.1 lib/savon/block_interface.rb
savon-2.5.0 lib/savon/block_interface.rb
savon_with_adapter-2.4.1 lib/savon/block_interface.rb
savon-2.4.0 lib/savon/block_interface.rb