class Fakturan::Logger

Constants

DEFAULT_OPTIONS

Public Class Methods

new(app, logger = nil, options = {}) click to toggle source
Calls superclass method
# File lib/fakturan_nu/middleware/logger.rb, line 9
def initialize(app, logger = nil, options = {})
  super(app)
  @logger = logger || begin
    require 'logger'
    ::Logger.new(STDOUT)
  end
  @options = DEFAULT_OPTIONS.merge(options)
end

Public Instance Methods

call(env) click to toggle source

ErrorStatuses = 400…600

Calls superclass method
# File lib/fakturan_nu/middleware/logger.rb, line 22
def call(env)
  if Fakturan.debug_log
    info "#{env.method} #{env.url.to_s}"
    debug('request') { dump_headers env.request_headers }
    debug('request') { dump_body(env[:body]) } if env[:body] && log_body?(:request)
  end
  super
end
on_complete(env) click to toggle source
# File lib/fakturan_nu/middleware/logger.rb, line 31
def on_complete(env)
  if Fakturan.debug_log
    info('Status') { env.status.to_s }
    #debug('response') { dump_headers env.response_headers }
    debug('response') { dump_body env[:body] } if env[:body] && log_body?(:response)
  end
end

Private Instance Methods

dump_body(body) click to toggle source
# File lib/fakturan_nu/middleware/logger.rb, line 45
def dump_body(body)
  if body.respond_to?(:to_str)
    body.to_str
  else
    pretty_inspect(body)
  end
end
dump_headers(headers) click to toggle source
# File lib/fakturan_nu/middleware/logger.rb, line 41
def dump_headers(headers)
  headers.map { |k, v| "#{k}: #{v.inspect}" }.join("\n")
end
log_body?(type) click to toggle source
# File lib/fakturan_nu/middleware/logger.rb, line 58
def log_body?(type)
  case @options[:bodies]
  when Hash then @options[:bodies][type]
  else @options[:bodies]
  end
end
pretty_inspect(body) click to toggle source
# File lib/fakturan_nu/middleware/logger.rb, line 53
def pretty_inspect(body)
  require 'pp' unless body.respond_to?(:pretty_inspect)
  body.pretty_inspect
end