class HTTP::WebMockPerform
Public Class Methods
new(request, &perform)
click to toggle source
# File lib/webmock/http_lib_adapters/http_gem_adapter.rb, line 69 def initialize request, &perform @request = request @perform = perform end
Public Instance Methods
exec()
click to toggle source
# File lib/webmock/http_lib_adapters/http_gem_adapter.rb, line 75 def exec replay || perform || halt end
request_signature()
click to toggle source
# File lib/webmock/http_lib_adapters/http_gem_adapter.rb, line 80 def request_signature unless @request_signature @request_signature = @request.webmock_signature register_request(@request_signature) end @request_signature end
Protected Instance Methods
halt()
click to toggle source
# File lib/webmock/http_lib_adapters/http_gem_adapter.rb, line 124 def halt raise ::WebMock::NetConnectNotAllowedError.new request_signature end
invoke_callbacks(webmock_response, options = {})
click to toggle source
# File lib/webmock/http_lib_adapters/http_gem_adapter.rb, line 129 def invoke_callbacks webmock_response, options = {} ::WebMock::CallbackRegistry.invoke_callbacks( options.merge({ :lib => :http_gem }), request_signature, webmock_response ) end
perform()
click to toggle source
# File lib/webmock/http_lib_adapters/http_gem_adapter.rb, line 116 def perform return unless ::WebMock.net_connect_allowed?(request_signature.uri) response = @perform.call invoke_callbacks(response.to_webmock, :real_request => true) response end
register_request(signature)
click to toggle source
# File lib/webmock/http_lib_adapters/http_gem_adapter.rb, line 98 def register_request(signature) ::WebMock::RequestRegistry.instance.requested_signatures.put(signature) end
replay()
click to toggle source
# File lib/webmock/http_lib_adapters/http_gem_adapter.rb, line 103 def replay webmock_response = response_for_request(request_signature) return unless webmock_response raise Errno::ETIMEDOUT if webmock_response.should_timeout webmock_response.raise_error_if_any invoke_callbacks(webmock_response, :real_request => false) ::HTTP::Response.from_webmock webmock_response end
response_for_request(signature)
click to toggle source
# File lib/webmock/http_lib_adapters/http_gem_adapter.rb, line 93 def response_for_request(signature) ::WebMock::StubRegistry.instance.response_for_request(signature) end