]> git.donarmstrong.com Git - dsa-puppet.git/blob - 3rdparty/modules/aviator/feature/faraday/response/logger.rb
add aimonb/aviator to 3rdparty
[dsa-puppet.git] / 3rdparty / modules / aviator / feature / faraday / response / logger.rb
1 require 'forwardable'
2
3 module Faraday
4   class Response::Logger < Response::Middleware
5     extend Forwardable
6
7     def initialize(app, logger = nil)
8       super(app)
9       @logger = logger || begin
10         require 'logger'
11         ::Logger.new(STDOUT)
12       end
13     end
14
15     def_delegators :@logger, :debug, :info, :warn, :error, :fatal
16
17     def call(env)
18       info "#{env.method} #{env.url.to_s}"
19       debug('request') { dump_headers env.request_headers }
20       super
21     end
22
23     def on_complete(env)
24       info('Status') { env.status.to_s }
25       debug('response') { dump_headers env.response_headers }
26     end
27
28     private
29
30     def dump_headers(headers)
31       headers.map { |k, v| "#{k}: #{v.inspect}" }.join("\n")
32     end
33   end
34 end