Sha256: 3ab8d1321cae60a68d669646343b6e26ccfbf6d3ff4a6be7839c91a281988617

Contents?: true

Size: 902 Bytes

Versions: 8

Compression:

Stored size: 902 Bytes

Contents

module WebMock

  class StubRegistry
    include Singleton

    attr_accessor :request_stubs

    def initialize
      reset!
    end

    def reset!
      self.request_stubs = []
    end

    def register_request_stub(stub)
      request_stubs.insert(0, stub)
      stub
    end

    def registered_request?(request_signature)
      request_stub_for(request_signature)
    end

    def response_for_request(request_signature)
      stub = request_stub_for(request_signature)
      stub ? evaluate_response_for_request(stub.response, request_signature) : nil
    end

    private

    def request_stub_for(request_signature)
      request_stubs.detect { |registered_request_stub|
        registered_request_stub.request_pattern.matches?(request_signature)
      }
    end

    def evaluate_response_for_request(response, request_signature)
      response.evaluate(request_signature)
    end

  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
webmock-1.7.7 lib/webmock/stub_registry.rb
webmock-1.7.6 lib/webmock/stub_registry.rb
webmock-1.7.5 lib/webmock/stub_registry.rb
webmock-1.7.4 lib/webmock/stub_registry.rb
webmock-1.7.3 lib/webmock/stub_registry.rb
webmock-1.7.2 lib/webmock/stub_registry.rb
webmock-1.7.1 lib/webmock/stub_registry.rb
webmock-1.7.0 lib/webmock/stub_registry.rb