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