module WebMock::HttpLibAdapters::Plugin

  1. lib/httpx/adapters/webmock.rb

HTTPX plugin for webmock.

Requests are “hijacked” at the session, before they’re distributed to a connection.

Public Class methods

build_error_response(request, exception)
[show source]
   # File lib/httpx/adapters/webmock.rb
49 def build_error_response(request, exception)
50   HTTPX::ErrorResponse.new(request, exception)
51 end
build_from_webmock_response(request, webmock_response)
[show source]
   # File lib/httpx/adapters/webmock.rb
36 def build_from_webmock_response(request, webmock_response)
37   return build_error_response(request, HTTPX::TimeoutError.new(1, "Timed out")) if webmock_response.should_timeout
38 
39   return build_error_response(request, webmock_response.exception) if webmock_response.exception
40 
41   request.options.response_class.new(request,
42                                      webmock_response.status[0],
43                                      "2.0",
44                                      webmock_response.headers).tap do |res|
45     res.mocked = true
46   end
47 end
build_webmock_request_signature(request)
[show source]
   # File lib/httpx/adapters/webmock.rb
15 def build_webmock_request_signature(request)
16   uri = WebMock::Util::URI.heuristic_parse(request.uri)
17   uri.query = request.query
18   uri.path = uri.normalized_path.gsub("[^:]//", "/")
19 
20   WebMock::RequestSignature.new(
21     request.verb.downcase.to_sym,
22     uri.to_s,
23     body: request.body.to_s,
24     headers: request.headers.to_h
25   )
26 end
build_webmock_response(_request, response)
[show source]
   # File lib/httpx/adapters/webmock.rb
28 def build_webmock_response(_request, response)
29   webmock_response = WebMock::Response.new
30   webmock_response.status = [response.status, HTTP_REASONS[response.status]]
31   webmock_response.body = response.body.to_s
32   webmock_response.headers = response.headers.to_h
33   webmock_response
34 end