module Async::HTTP::WebMockApplication

Constants

WEBMOCK_REQUEST_ID_HEADER

Public Class Methods

add_webmock_response(request, webmock_response) click to toggle source
# File lib/webmock/http_lib_adapters/async_http_client_adapter.rb, line 193
def add_webmock_response(request, webmock_response)
  webmock_request_id = request.object_id.to_s
  request.headers.add(WEBMOCK_REQUEST_ID_HEADER, webmock_request_id)
  webmock_responses[webmock_request_id] = webmock_response
end
call(request) click to toggle source
# File lib/webmock/http_lib_adapters/async_http_client_adapter.rb, line 187
def call(request)
  request.read
  webmock_response = get_webmock_response(request)
  build_response(webmock_response)
end
get_webmock_response(request) click to toggle source
# File lib/webmock/http_lib_adapters/async_http_client_adapter.rb, line 199
def get_webmock_response(request)
  webmock_request_id = request.headers[WEBMOCK_REQUEST_ID_HEADER][0]
  webmock_responses.fetch(webmock_request_id)
end

Private Class Methods

build_response(webmock_response) click to toggle source
# File lib/webmock/http_lib_adapters/async_http_client_adapter.rb, line 210
def build_response(webmock_response)
  headers = (webmock_response.headers || {}).each_with_object([]) do |(k, value), o|
    Array(value).each do |v|
      o.push [k, v]
    end
  end

  ::Protocol::HTTP::Response[
    webmock_response.status[0],
    headers,
    webmock_response.body
  ]
end
webmock_responses() click to toggle source
# File lib/webmock/http_lib_adapters/async_http_client_adapter.rb, line 206
def webmock_responses
  @webmock_responses ||= {}
end