Class: WebMockHTTPClient

Inherits:
Object
  • Object
show all
Defined in:
lib/binnacle/http_logging/adapters/httpclient.rb

Instance Method Summary collapse

Instance Method Details

#do_get_block(req, proxy, conn, &block) ⇒ Object



66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
# 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

#orig_do_get_blockObject



64
# File 'lib/binnacle/http_logging/adapters/httpclient.rb', line 64

alias_method :orig_do_get_block, :do_get_block