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
92 def initialize(*)
93   super
94   @mocked = true
95 end

Public Instance methods

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