class Overcommit::Logger
Encapsulates all communication to an output source.
Public Class Methods
Creates a logger that will write to the given output stream.
@param out [IO]
# File lib/overcommit/logger.rb, line 14 def initialize(out) @out = out @colorize = if ENV.key?('OVERCOMMIT_COLOR') !%w[0 false no].include?(ENV['OVERCOMMIT_COLOR']) else @out.tty? end end
Helper for creating a logger which outputs nothing.
# File lib/overcommit/logger.rb, line 7 def self.silent new(File.open(File::NULL, 'w')) end
Public Instance Methods
Write a line of output that is intended to be emphasized.
# File lib/overcommit/logger.rb, line 52 def bold(*args) color('1', *args) end
Write a line of output indicating a problem or error which is emphasized over a regular problem or error.
# File lib/overcommit/logger.rb, line 63 def bold_error(*args) color('1;31', *args) end
Write a line of output indicating a potential cause for concern, but with greater emphasize compared to other warnings.
# File lib/overcommit/logger.rb, line 80 def bold_warning(*args) color('1;33', *args) end
Write a line of output if debug mode is enabled.
# File lib/overcommit/logger.rb, line 47 def debug(*args) color('35', *args) unless ENV.fetch('OVERCOMMIT_DEBUG') { '' }.empty? end
Write a line of output indicating a problem or error.
# File lib/overcommit/logger.rb, line 57 def error(*args) color(31, *args) end
Flushes the [IO] object for partial lines
# File lib/overcommit/logger.rb, line 35 def flush @out.flush if @out.respond_to? :flush end
Write a line of output.
A newline character will always be appended.
# File lib/overcommit/logger.rb, line 42 def log(*args) @out.puts(*args) end
Prints a newline character (alias for readability).
# File lib/overcommit/logger.rb, line 30 def newline log end
Write output without a trailing newline.
# File lib/overcommit/logger.rb, line 25 def partial(*args) @out.print(*args) end
Write a line of output indicating a successful or noteworthy event.
# File lib/overcommit/logger.rb, line 68 def success(*args) color(32, *args) end
Write a line of output indicating a potential cause for concern, but not an actual error.
# File lib/overcommit/logger.rb, line 74 def warning(*args) color(33, *args) end
Private Instance Methods
Outputs text wrapped in ANSI escape code necessary to produce a given color/text display.
@param code [String] ANSI escape code, e.g. ‘1;33’ for “bold yellow” @param str [String] string to wrap @param partial [true,false] whether to omit a newline
# File lib/overcommit/logger.rb, line 92 def color(code, str, partial = false) send(partial ? :partial : :log, @colorize ? "\033[#{code}m#{str}\033[0m" : str) end