class HasOffersV3::Logger
Constants
- LABEL
Attributes
log[R]
Public Class Methods
new(log = nil)
click to toggle source
# File lib/hasoffersv3/logger.rb, line 7 def initialize(log = nil) @log = log end
Public Instance Methods
log_request(request, uri)
click to toggle source
# File lib/hasoffersv3/logger.rb, line 11 def log_request(request, uri) log_http(request, "Request: #{request.method} #{uri}") end
log_response(response)
click to toggle source
# File lib/hasoffersv3/logger.rb, line 15 def log_response(response) log_http(response, "Response: HTTP/#{response.http_version} #{response.code} #{response.message}") end
Private Instance Methods
append_headers(message, headers)
click to toggle source
# File lib/hasoffersv3/logger.rb, line 37 def append_headers(message, headers) headers.each do |name, value| message.puts("#{name}: #{value}") end message.puts end
format_message(http, first_line)
click to toggle source
# File lib/hasoffersv3/logger.rb, line 28 def format_message(http, first_line) StringIO.open do |s| s.puts("#{LABEL} #{first_line}") append_headers(s, http.each_capitalized) s.puts(http.body) unless http.body.to_s.empty? s.string end end
log_http(http, first_line)
click to toggle source
# File lib/hasoffersv3/logger.rb, line 21 def log_http(http, first_line) return unless log message = format_message(http, first_line) log.info(message) end