Sha256: a11eddd1f01fa2887b06664266d9b4715c73c623269ad999caf9b96fdaddccdb
Contents?: true
Size: 1.17 KB
Versions: 3
Compression:
Stored size: 1.17 KB
Contents
module HttpEventLogger module Event class Response attr_reader :request, :time_taken_in_seconds, :status, :headers delegate :base_uri, :uri, to: :request def initialize(args) @request = args[:request] @time_taken_in_seconds = args[:time_taken_in_seconds] @status = args[:status].to_s @headers = HttpEventLogger::Event::Headers.new(args[:headers]) @raw_body = args[:body] HttpEventLogger::Event::Observer.observe(:received, self) end def body_with_formatting body.include?("\n") ? "\n#{body}" : body end private def body if body_read_deferred? "[not available]" elsif body_gzip_encoded? Zlib::GzipReader.new(StringIO.new(@raw_body.to_s)).read else @raw_body.to_s end end # open-uri wraps the response in a Net::ReadAdapter, so the response body is not available yet def body_read_deferred? @raw_body.is_a?(Net::ReadAdapter) end def body_gzip_encoded? @headers["Content-Encoding"] =~ /gzip/ end end end end
Version data entries
3 entries across 3 versions & 1 rubygems