def send_request_with_webmock(head, body)
WebMock::RequestRegistry.instance.requested_signatures.put(request_signature)
if WebMock::StubRegistry.instance.registered_request?(request_signature)
webmock_response = WebMock::StubRegistry.instance.response_for_request(request_signature)
on_error("WebMock timeout error") if webmock_response.should_timeout
WebMock::CallbackRegistry.invoke_callbacks({:lib => :em_http_request}, request_signature, webmock_response)
EM.next_tick {
setup(make_raw_response(webmock_response), @uri,
webmock_response.should_timeout ? "WebMock timeout error" : nil)
}
self
elsif WebMock.net_connect_allowed?(request_signature.uri)
send_request_without_webmock(head, body)
callback {
if WebMock::CallbackRegistry.any_callbacks?
webmock_response = build_webmock_response
WebMock::CallbackRegistry.invoke_callbacks(
{:lib => :em_http_request, :real_request => true},
request_signature,
webmock_response)
end
}
self
else
raise WebMock::NetConnectNotAllowedError.new(request_signature)
end
end