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
101 def initialize(*)
102   super
103   @mocked = true
104 end

Public Instance methods

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