class WebMockHTTPClient

Public Instance Methods

do_get_block(req, proxy, conn, &block) click to toggle source
# File lib/binnacle/http_logging/adapters/httpclient.rb, line 66
def do_get_block(req, proxy, conn, &block)
  url = req.header.request_uri
  log_enabled = Binnacle::HttpLogger.allow?(url)
  return orig_do_get_block(req, proxy, conn, &block) unless log_enabled

  uri = URI(url)
  url_without_query = "#{uri.scheme}://#{uri.host}:#{uri.port}#{uri.path}"

  retryable_response = nil
  bm = Benchmark.realtime do
    begin
      orig_do_get_block(req, proxy, conn, &block)
    rescue RetryableResponse => e
      retryable_response = e
    end
  end

  res = conn.pop
  headers = res.headers

  Binnacle::HttpLogger.signal(url_without_query, req.header.request_method, uri.host, uri.port, uri.path, uri.query, res.status_code, bm, headers, res.body, headers['Content-Encoding'], headers['Content-Type'])
  conn.push(res)

  raise retryable_response if retryable_response != nil
end
Also aliased as: orig_do_get_block
orig_do_get_block(req, proxy, conn, &block)
Alias for: do_get_block