Module: Sniffer::Adapters::ExconAdapter
- Defined in:
- lib/sniffer/adapters/excon_adapter.rb
Overview
Excon adapter
Class Method Summary collapse
Instance Method Summary collapse
-
#request_with_sniffer(params = {}, &block) ⇒ Object
rubocop:disable Metrics/AbcSize,Metrics/MethodLength.
Class Method Details
.included(base) ⇒ Object
7 8 9 10 11 12 |
# File 'lib/sniffer/adapters/excon_adapter.rb', line 7 def self.included(base) base.class_eval do alias_method :request_without_sniffer, :request alias_method :request, :request_with_sniffer end end |
Instance Method Details
#request_with_sniffer(params = {}, &block) ⇒ Object
rubocop:disable Metrics/AbcSize,Metrics/MethodLength
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/sniffer/adapters/excon_adapter.rb', line 15 def request_with_sniffer(params = {}, &block) if Sniffer.enabled? datum = data.merge(params) data_item = Sniffer::DataItem.new data_item.request = Sniffer::DataItem::Request.new(host: datum[:host], method: datum[:method], query: datum[:path] + ::Excon::Utils.query_string(datum), headers: datum[:headers] || {}, body: datum[:body].to_s, port: datum[:port]) Sniffer.store(data_item) end bm = Benchmark.realtime do @response = request_without_sniffer(params, &block) end if Sniffer.enabled? data_item.response = Sniffer::DataItem::Response.new(status: @response.status, headers: @response.headers, body: @response.body, timing: bm) data_item.log end @response end |