class WebMockHTTPClient
Public Instance Methods
build_httpclient_response(webmock_response, stream = false, &block)
click to toggle source
# File lib/webmock/http_lib_adapters/httpclient_adapter.rb, line 92 def build_httpclient_response(webmock_response, stream = false, &block) body = stream ? StringIO.new(webmock_response.body) : webmock_response.body response = HTTP::Message.new_response(body) response.header.init_response(webmock_response.status[0]) response.reason=webmock_response.status[1] webmock_response.headers.to_a.each { |name, value| response.header.set(name, value) } raise HTTPClient::TimeoutError if webmock_response.should_timeout webmock_response.raise_error_if_any block.call(response, body) if block response end
do_get(req, proxy, conn, stream = false, &block)
click to toggle source
# File lib/webmock/http_lib_adapters/httpclient_adapter.rb, line 42 def do_get(req, proxy, conn, stream = false, &block) request_signature = build_request_signature(req, :reuse_existing) WebMock::RequestRegistry.instance.requested_signatures.put(request_signature) if webmock_responses[request_signature] webmock_response = webmock_responses.delete(request_signature) response = build_httpclient_response(webmock_response, stream, &block) @request_filter.each do |filter| filter.filter_response(req, response) end res = conn.push(response) WebMock::CallbackRegistry.invoke_callbacks( {:lib => :httpclient}, request_signature, webmock_response) res elsif WebMock.net_connect_allowed?(request_signature.uri) # in case there is a nil entry in the hash... webmock_responses.delete(request_signature) res = if stream do_get_stream_without_webmock(req, proxy, conn, &block) else do_get_block_without_webmock(req, proxy, conn, &block) end res = conn.pop conn.push(res) if WebMock::CallbackRegistry.any_callbacks? webmock_response = build_webmock_response(res) WebMock::CallbackRegistry.invoke_callbacks( {:lib => :httpclient, :real_request => true}, request_signature, webmock_response) end res else raise WebMock::NetConnectNotAllowedError.new(request_signature) end end
do_get_block(req, proxy, conn, &block)
click to toggle source
# File lib/webmock/http_lib_adapters/httpclient_adapter.rb, line 34 def do_get_block(req, proxy, conn, &block) do_get(req, proxy, conn, false, &block) end
Also aliased as: do_get_block_without_webmock
do_get_stream(req, proxy, conn, &block)
click to toggle source
# File lib/webmock/http_lib_adapters/httpclient_adapter.rb, line 38 def do_get_stream(req, proxy, conn, &block) do_get(req, proxy, conn, true, &block) end
Also aliased as: do_get_stream_without_webmock
do_request_async(method, uri, query, body, extheader)
click to toggle source
Calls superclass method
# File lib/webmock/http_lib_adapters/httpclient_adapter.rb, line 80 def do_request_async(method, uri, query, body, extheader) req = create_request(method, uri, query, body, extheader) request_signature = build_request_signature(req) webmock_request_signatures << request_signature if webmock_responses[request_signature] || WebMock.net_connect_allowed?(request_signature.uri) super else raise WebMock::NetConnectNotAllowedError.new(request_signature) end end