class OmiseGO::HTTPLogger
Constants
- LABEL
Attributes
logger[R]
Public Class Methods
new(logger = nil)
click to toggle source
# File lib/omisego/http_logger.rb, line 5 def initialize(logger = nil) @logger = logger end
Public Instance Methods
log_request(request)
click to toggle source
# File lib/omisego/http_logger.rb, line 11 def log_request(request) info(format_request(request)) end
log_response(response)
click to toggle source
# File lib/omisego/http_logger.rb, line 15 def log_response(response) info(format_response(response)) end
Private Instance Methods
format_headers(headers)
click to toggle source
# File lib/omisego/http_logger.rb, line 48 def format_headers(headers) headers.map do |name, value| name = name.split('-').map(&:capitalize).join('-') if name == 'Authorization' "#{name}: [FILTERED]" else "#{name}: #{value}" end end.join("\n") end
format_payload(payload)
click to toggle source
# File lib/omisego/http_logger.rb, line 60 def format_payload(payload) payload.map { |key, value| "#{key}=#{value}" }.join('&') end
format_request(request)
click to toggle source
# File lib/omisego/http_logger.rb, line 27 def format_request(request) StringIO.open do |s| s.puts("#{LABEL} Request: #{request.method.to_s.upcase} #{request.path}") s.puts(format_headers(request.headers)) s.puts s.puts(request.body) if request.body s.string end end
format_response(response)
click to toggle source
# File lib/omisego/http_logger.rb, line 37 def format_response(response) StringIO.open do |s| s.puts("#{LABEL} Response: HTTP/#{response.status}") s.puts(format_headers(response.headers)) s.puts s.puts(response.body) s.string end end
info(message)
click to toggle source
# File lib/omisego/http_logger.rb, line 21 def info(message) return unless @logger @logger.info(message) end