class Kraftwerk::Logger::DevLogger

Public Class Methods

new(*args) click to toggle source
Calls superclass method
# File lib/kraftwerk/logger/dev_logger.rb, line 8
def initialize(*args)
  super
  self.formatter = proc do |severity, datetime, progname, message|
    message + "\n"
  end
end

Public Instance Methods

handle_request_finish(data, meta) click to toggle source
# File lib/kraftwerk/logger/dev_logger.rb, line 25
def handle_request_finish(data, meta)
  msg = String.new
  clr = data[:code] < 400 ? :green : :red

  msg << color("[#{data[:code]}] ", clr)
  msg << "[#{data[:duration].round(3)} ms] "
  if !data[:body].nil? && data[:body].length > 0
    msg << json_response(data[:body])
  else
    msg << "[empty response]"
  end

  info(msg + "\n")
end
handle_request_start(data, meta) click to toggle source
# File lib/kraftwerk/logger/dev_logger.rb, line 15
def handle_request_start(data, meta)
  msg = String.new
  msg << "[#{meta[:time]}]\n"
  msg << color("[#{data[:method]}] ", :magenta)
  msg << color(data[:path], :green)
  msg << " "
  msg << (data[:params]&.empty? ? '' : JSON.dump(data[:params]))
  info(msg)
end

Private Instance Methods

color(text, color) click to toggle source
# File lib/kraftwerk/logger/dev_logger.rb, line 42
def color(text, color)
  Hanami::Utils::ShellColor.call(text, color: color)
end
json_response(response) click to toggle source
# File lib/kraftwerk/logger/dev_logger.rb, line 46
def json_response(response)
  JSON.dump(JSON.parse(response))
rescue
  "[non-JSON response: #{response}]"
end