Sha256: fedad70a331b6d7644c3a78b91e2bfdc05a0ec58f9c5e4f7913e2861b5e692db

Contents?: true

Size: 579 Bytes

Versions: 8

Compression:

Stored size: 579 Bytes

Contents

module ResourceController
  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
      ResponseCollector.new.tap do |duplicate|
        duplicate.instance_variable_set(:@responses, responses.dup)
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 2 rubygems

Version Path
makandra_resource_controller-0.8.0 lib/resource_controller/response_collector.rb
resources_controller-1.0.4 lib/resource_controller/response_collector.rb
resources_controller-1.0.3 lib/resource_controller/response_collector.rb
resources_controller-1.0.2 lib/resource_controller/response_collector.rb
makandra_resource_controller-0.7.3 lib/resource_controller/response_collector.rb
makandra_resource_controller-0.7.2 lib/resource_controller/response_collector.rb
makandra_resource_controller-0.7.1 lib/resource_controller/response_collector.rb
makandra_resource_controller-0.7.0 lib/resource_controller/response_collector.rb