Class: Overcommit::Logger

Inherits:
Object
  • Object
show all
Defined in:
lib/overcommit/logger.rb

Overview

Encapsulates all communication to an output source.

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(out) ⇒ Logger

Creates a logger that will write to the given output stream.

Parameters:

  • out (IO)


12
13
14
15
16
17
18
19
20
# File 'lib/overcommit/logger.rb', line 12

def initialize(out)
  @out = out
  @colorize =
    if ENV.key?('OVERCOMMIT_COLOR')
      !%w[0 false no].include?(ENV['OVERCOMMIT_COLOR'])
    else
      @out.tty?
    end
end

Class Method Details

.silentObject

Helper for creating a logger which outputs nothing.



5
6
7
# File 'lib/overcommit/logger.rb', line 5

def self.silent
  new(File.open(File::NULL, 'w'))
end

Instance Method Details

#bold(*args) ⇒ Object

Write a line of output that is intended to be emphasized.



45
46
47
# File 'lib/overcommit/logger.rb', line 45

def bold(*args)
  color('1', *args)
end

#bold_error(*args) ⇒ Object

Write a line of output indicating a problem or error which is emphasized over a regular problem or error.



56
57
58
# File 'lib/overcommit/logger.rb', line 56

def bold_error(*args)
  color('1;31', *args)
end

#bold_warning(*args) ⇒ Object

Write a line of output indicating a potential cause for concern, but with greater emphasize compared to other warnings.



73
74
75
# File 'lib/overcommit/logger.rb', line 73

def bold_warning(*args)
  color('1;33', *args)
end

#debug(*args) ⇒ Object

Write a line of output if debug mode is enabled.



40
41
42
# File 'lib/overcommit/logger.rb', line 40

def debug(*args)
  color('35', *args) unless ENV.fetch('OVERCOMMIT_DEBUG', '').empty?
end

#error(*args) ⇒ Object

Write a line of output indicating a problem or error.



50
51
52
# File 'lib/overcommit/logger.rb', line 50

def error(*args)
  color(31, *args)
end

#log(*args) ⇒ Object

Write a line of output.

A newline character will always be appended.



35
36
37
# File 'lib/overcommit/logger.rb', line 35

def log(*args)
  @out.puts(*args)
end

#newlineObject

Prints a newline character (alias for readability).



28
29
30
# File 'lib/overcommit/logger.rb', line 28

def newline
  log
end

#partial(*args) ⇒ Object

Write output without a trailing newline.



23
24
25
# File 'lib/overcommit/logger.rb', line 23

def partial(*args)
  @out.print(*args)
end

#success(*args) ⇒ Object

Write a line of output indicating a successful or noteworthy event.



61
62
63
# File 'lib/overcommit/logger.rb', line 61

def success(*args)
  color(32, *args)
end

#warning(*args) ⇒ Object

Write a line of output indicating a potential cause for concern, but not an actual error.



67
68
69
# File 'lib/overcommit/logger.rb', line 67

def warning(*args)
  color(33, *args)
end