Class: WebMock::StubRegistry
- Inherits:
-
Object
- Object
- WebMock::StubRegistry
- Includes:
- Singleton
- Defined in:
- lib/webmock/stub_registry.rb
Instance Attribute Summary collapse
-
#request_stubs ⇒ Object
Returns the value of attribute request_stubs.
Instance Method Summary collapse
- #global_stubs ⇒ Object
-
#initialize ⇒ StubRegistry
constructor
A new instance of StubRegistry.
- #register_global_stub(&block) ⇒ Object
- #register_request_stub(stub) ⇒ Object
- #registered_request?(request_signature) ⇒ Boolean
- #remove_request_stub(stub) ⇒ Object
- #reset! ⇒ Object
- #response_for_request(request_signature) ⇒ Object
Constructor Details
#initialize ⇒ StubRegistry
Returns a new instance of StubRegistry.
8 9 10 |
# File 'lib/webmock/stub_registry.rb', line 8 def initialize reset! end |
Instance Attribute Details
#request_stubs ⇒ Object
Returns the value of attribute request_stubs.
6 7 8 |
# File 'lib/webmock/stub_registry.rb', line 6 def request_stubs @request_stubs end |
Instance Method Details
#global_stubs ⇒ Object
12 13 14 |
# File 'lib/webmock/stub_registry.rb', line 12 def global_stubs @global_stubs ||= [] end |
#register_global_stub(&block) ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/webmock/stub_registry.rb', line 20 def register_global_stub(&block) # This hash contains the responses returned by the block, # keyed by the exact request (using the object_id). # That way, there's no race condition in case #to_return # doesn't run immediately after stub.with. responses = {} stub = ::WebMock::RequestStub.new(:any, /.*/).with { |request| responses[request.object_id] = yield(request) }.to_return(lambda { |request| responses.delete(request.object_id) }) global_stubs.push stub end |
#register_request_stub(stub) ⇒ Object
34 35 36 37 |
# File 'lib/webmock/stub_registry.rb', line 34 def register_request_stub(stub) request_stubs.insert(0, stub) stub end |
#registered_request?(request_signature) ⇒ Boolean
45 46 47 |
# File 'lib/webmock/stub_registry.rb', line 45 def registered_request?(request_signature) request_stub_for(request_signature) end |
#remove_request_stub(stub) ⇒ Object
39 40 41 42 43 |
# File 'lib/webmock/stub_registry.rb', line 39 def remove_request_stub(stub) if not request_stubs.delete(stub) raise "Request stub \n\n #{stub.to_s} \n\n is not registered." end end |
#reset! ⇒ Object
16 17 18 |
# File 'lib/webmock/stub_registry.rb', line 16 def reset! self.request_stubs = [] end |
#response_for_request(request_signature) ⇒ Object
49 50 51 52 |
# File 'lib/webmock/stub_registry.rb', line 49 def response_for_request(request_signature) stub = request_stub_for(request_signature) stub ? evaluate_response_for_request(stub.response, request_signature) : nil end |