]> git.donarmstrong.com Git - dsa-puppet.git/blobdiff - 3rdparty/modules/aviator/feature/faraday/response/logger.rb
try again, with puppetforge modules, correctly included now
[dsa-puppet.git] / 3rdparty / modules / aviator / feature / faraday / response / logger.rb
diff --git a/3rdparty/modules/aviator/feature/faraday/response/logger.rb b/3rdparty/modules/aviator/feature/faraday/response/logger.rb
new file mode 100644 (file)
index 0000000..cab7f1b
--- /dev/null
@@ -0,0 +1,34 @@
+require 'forwardable'
+
+module Faraday
+  class Response::Logger < Response::Middleware
+    extend Forwardable
+
+    def initialize(app, logger = nil)
+      super(app)
+      @logger = logger || begin
+        require 'logger'
+        ::Logger.new(STDOUT)
+      end
+    end
+
+    def_delegators :@logger, :debug, :info, :warn, :error, :fatal
+
+    def call(env)
+      info "#{env.method} #{env.url.to_s}"
+      debug('request') { dump_headers env.request_headers }
+      super
+    end
+
+    def on_complete(env)
+      info('Status') { env.status.to_s }
+      debug('response') { dump_headers env.response_headers }
+    end
+
+    private
+
+    def dump_headers(headers)
+      headers.map { |k, v| "#{k}: #{v.inspect}" }.join("\n")
+    end
+  end
+end