Class: Rooftop::DebugMiddleware

Inherits:
Faraday::Response::Middleware
  • Object
show all
Defined in:
lib/rooftop/middleware/debug_middleware.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(app, logger = nil, progname = nil) ⇒ DebugMiddleware

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.



20
21
22
23
24
# 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

Class Method Details

.default_loggerObject



6
7
8
9
# File 'lib/rooftop/middleware/debug_middleware.rb', line 6

def self.default_logger
  require "logger"
  ::Logger.new(STDOUT)
end

Instance Method Details

#call(env) ⇒ Object



27
28
29
30
31
32
33
# 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) ⇒ Object



35
36
37
38
39
40
41
# 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