module WebMock::HttpLibAdapters::Plugin::ConnectionMethods

  1. lib/httpx/adapters/webmock.rb

Methods

Public Class

  1. new

Public Instance

  1. interests
  2. open?
  3. send
  4. terminate

Public Class methods

new(*)
[show source]
    # File lib/httpx/adapters/webmock.rb
100 def initialize(*)
101   super
102   @mocked = true
103 end

Public Instance methods

interests()
[show source]
    # File lib/httpx/adapters/webmock.rb
111 def interests
112   return if @mocked
113 
114   super
115 end
open?()
[show source]
    # File lib/httpx/adapters/webmock.rb
105 def open?
106   return true if @mocked
107 
108   super
109 end
send(request)
[show source]
    # File lib/httpx/adapters/webmock.rb
121 def send(request)
122   request_signature = Plugin.build_webmock_request_signature(request)
123   WebMock::RequestRegistry.instance.requested_signatures.put(request_signature)
124 
125   if (mock_response = WebMock::StubRegistry.instance.response_for_request(request_signature))
126     response = Plugin.build_from_webmock_response(request, mock_response)
127     WebMock::CallbackRegistry.invoke_callbacks({ lib: :httpx }, request_signature, mock_response)
128     log { "mocking #{request.uri} with #{mock_response.inspect}" }
129     request.transition(:headers)
130     request.transition(:body)
131     request.transition(:trailers)
132     request.transition(:done)
133     response.finish!
134     request.response = response
135     request.emit(:response, response)
136     request_signature.headers = request.headers.to_h
137 
138     response << mock_response.body.dup unless response.is_a?(HTTPX::ErrorResponse)
139   elsif WebMock.net_connect_allowed?(request_signature.uri)
140     if WebMock::CallbackRegistry.any_callbacks?
141       request.on(:response) do |resp|
142         unless resp.is_a?(HTTPX::ErrorResponse)
143           webmock_response = Plugin.build_webmock_response(request, resp)
144           WebMock::CallbackRegistry.invoke_callbacks(
145             { lib: :httpx, real_request: true }, request_signature,
146             webmock_response
147           )
148         end
149       end
150     end
151     @mocked = false
152     emit(:unmock_connection, self)
153     super
154   else
155     raise WebMock::NetConnectNotAllowedError, request_signature
156   end
157 end
terminate()
[show source]
    # File lib/httpx/adapters/webmock.rb
117 def terminate
118   force_reset
119 end