class Rspeckled::Faraday::Middleware::CurlLogger
Public Class Methods
default_logger()
click to toggle source
# File lib/rspeckled/plugins/extensions/faraday/middleware/curl_logger.rb, line 7 def self.default_logger require 'logger' ::Logger.new(STDOUT) end
new(app, logger = nil, program_name = nil)
click to toggle source
Calls superclass method
# File lib/rspeckled/plugins/extensions/faraday/middleware/curl_logger.rb, line 13 def initialize(app, logger = nil, program_name = nil) super(app) @logger = logger || self.class.default_logger @program_name = program_name end
Public Instance Methods
call(env)
click to toggle source
Calls superclass method
# File lib/rspeckled/plugins/extensions/faraday/middleware/curl_logger.rb, line 20 def call(env) @logger.info(@program_name) { curl_output('request', "#{env[:method].upcase} #{env[:url]}", env[:request_headers], env[:body]) } super end
on_complete(env)
click to toggle source
# File lib/rspeckled/plugins/extensions/faraday/middleware/curl_logger.rb, line 26 def on_complete(env) @logger.info(@program_name) { curl_output('response', "HTTP #{env[:status]}", env[:response_headers], env[:body]) } end
Private Instance Methods
colorize(string, color_code)
click to toggle source
# File lib/rspeckled/plugins/extensions/faraday/middleware/curl_logger.rb, line 49 def colorize(string, color_code) "\e[#{color_code}m#{string}\e[0m" end
curl_output(direction, summary, headers, body)
click to toggle source
# File lib/rspeckled/plugins/extensions/faraday/middleware/curl_logger.rb, line 32 def curl_output(direction, summary, headers, body) directional_arrow = (direction == 'request') ? '>' : '<' color_code = (direction == 'request') ? 32 : 33 curl_formatted_headers = headers.map { |name, value| colorize("#{directional_arrow} #{name}: #{value}", color_code) }.join("\n") [ '', colorize("#{directional_arrow} #{summary}", color_code), curl_formatted_headers, '', colorize(body, 37), ].join("\n") end