class Rooftop::DebugMiddleware
Public Class Methods
default_logger()
click to toggle source
# File lib/rooftop/middleware/debug_middleware.rb, line 6 def self.default_logger require "logger" ::Logger.new(STDOUT) end
new(app, logger = nil, progname = nil)
click to toggle source
Public: Initialize a new Logger middleware.
app - A Faraday-compatible middleware stack or application. logger - A Logger-compatible object to which the log information will
be recorded.
progname - A String containing a program name to use when logging.
Returns a Logger instance.
Calls superclass method
# File lib/rooftop/middleware/debug_middleware.rb, line 20 def initialize(app, logger = nil, progname = nil) super(app) @logger = logger || self.class.default_logger @progname = progname end
Public Instance Methods
call(env)
click to toggle source
Calls superclass method
# File lib/rooftop/middleware/debug_middleware.rb, line 27 def call(env) if Rooftop.debug_requests @logger.info(@progname) { "#{env[:method].upcase} #{env[:url]}" } @logger.debug(@progname) { curl_output(env[:request_headers], env[:body]).inspect } end super end
on_complete(env)
click to toggle source
# File lib/rooftop/middleware/debug_middleware.rb, line 35 def on_complete(env) if Rooftop.debug_responses status = env[:status] log_response_status(@progname, status) { "HTTP #{status}" } @logger.debug(@progname) { curl_output(env[:response_headers], env[:body]).inspect } end end
Private Instance Methods
curl_output(headers, body)
click to toggle source
# File lib/rooftop/middleware/debug_middleware.rb, line 44 def curl_output(headers, body) string = headers.collect { |k,v| "#{k}: #{v}" }.join("\n") string + "\n\n#{body}" end
log_response_status(progname, status, &block)
click to toggle source
# File lib/rooftop/middleware/debug_middleware.rb, line 49 def log_response_status(progname, status, &block) case status when 200..399 @logger.info(progname, &block) else @logger.warn(progname, &block) end end