class Lcoveralls::ColorFormatter

Adds some color to loggers.

Constants

COLOR_CODES

Maps log severities to color codes.

Public Class Methods

new(color) click to toggle source

Initializes a new ColorFormatter.

@param color [Boolean] Whether to enable color output.

# File lib/lcoveralls/color_formatter.rb, line 35
def initialize(color)
  @color = color
end

Public Instance Methods

call(severity, datetime, progname, msg) click to toggle source

Invoked by Logger objects to format a log message.

@param severity [String] Severity of the message to format. @param datetime [Time] Timestamp for the message to format. @param progname [String] Name of the program that generated the message. @param msg [String] The message to format.

# File lib/lcoveralls/color_formatter.rb, line 45
def call(severity, datetime, progname, msg)
  severity = severity.capitalize
  if severity == 'Warn' then severity = 'Warning' end

  if %w[Warning Error Fatal Unknown].include?(severity) then
    msg = "#{severity}: #{msg}"
  end

  color_code = COLOR_CODES[severity] if @color
  if color_code then
    "\x1b[#{color_code}m#{msg}\x1b[0m\n"
  else
    "#{msg}\n"
  end
end