Sha256: 851b3c3e7e45d1b977607f14e5ebcb68d436e83c5859a3f5cd100a21a9257edc

Contents?: true

Size: 580 Bytes

Versions: 3

Compression:

Stored size: 580 Bytes

Contents

module Resourcelogic
  class ResponseCollector
    
    attr_reader :responses
    
    delegate :clear, :to => :responses
    
    def initialize
      @responses = []
    end
    
    def method_missing(method_name, &block)
      @responses.delete self[method_name]
      @responses << [method_name, block || nil]
    end
    
    def [](symbol)
      @responses.find { |method, block| method == symbol }
    end
    
    def dup
      returning ResponseCollector.new do |duplicate|
        duplicate.instance_variable_set(:@responses, responses.dup)
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
resourcelogic-0.10.0 lib/resourcelogic/response_collector.rb
resourcelogic-0.11.0 lib/resourcelogic/response_collector.rb
resourcelogic-0.9.0 lib/resourcelogic/response_collector.rb