Class: HTTP::Client
- Inherits:
-
Object
- Object
- HTTP::Client
- Defined in:
- lib/binnacle/http_logging/adapters/http.rb,
lib/binnacle/http_logging/adapters/http.rb
Instance Method Summary collapse
- #make_request(req, options) ⇒ Object
- #orig_make_request ⇒ Object
- #orig_perform ⇒ Object
- #perform(request, options) ⇒ Object
Instance Method Details
#make_request(req, options) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/binnacle/http_logging/adapters/http.rb', line 9 def make_request(req, ) log_enabled = Binnacle::HttpLogger.allow?(req.uri) bm = Benchmark.realtime do @response = orig_make_request(req, ) end if log_enabled headers = @response.headers.to_h content_type = headers['Content-Type'] uri = URI(req.uri) url_without_query = "#{uri.scheme}://#{uri.host}:#{uri.port}#{uri.path}" Binnacle::HttpLogger.signal(url_without_query, req.verb, uri.host, uri.port, uri.path, uri.query, @response.code, bm, headers, @response.body, nil, content_type, req.body) end @response end |
#orig_make_request ⇒ Object
7 |
# File 'lib/binnacle/http_logging/adapters/http.rb', line 7 alias_method(:orig_make_request, :make_request) |
#orig_perform ⇒ Object
39 |
# File 'lib/binnacle/http_logging/adapters/http.rb', line 39 alias_method :orig_perform, :perform |
#perform(request, options) ⇒ Object
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/binnacle/http_logging/adapters/http.rb', line 41 def perform(request, ) return orig_perform(request, ) unless webmock_enabled? log_enabled = Binnacle::HttpLogger.allow?(request.uri) bm = Benchmark.realtime do @response = WebMockPerform.new(request) { orig_perform(request, ) }.exec end if log_enabled headers = @response.headers.to_h uri = URI(request.uri) url_without_query = "#{uri.scheme}://#{uri.host}:#{uri.port}#{uri.path}" Binnacle::HttpLogger.signal(url_without_query, request.verb, uri.host, uri.port, uri.path, uri.query, @response.code, bm, headers, @response.body, headers['Content-Encoding'], headers['Content-Type'], request.body) end @response end |