Class: Slk::Formatters::Output

Inherits:
Object
  • Object
show all
Defined in:
lib/slk/formatters/output.rb

Overview

Terminal output with ANSI color support

Constant Summary collapse

COLORS =
{
  red: "\e[0;31m",
  green: "\e[0;32m",
  yellow: "\e[0;33m",
  blue: "\e[0;34m",
  magenta: "\e[0;35m",
  cyan: "\e[0;36m",
  gray: "\e[0;90m",
  bold: "\e[1m",
  reset: "\e[0m"
}.freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(io: $stdout, err: $stderr, color: nil, verbose: false, quiet: false) ⇒ Output

Returns a new instance of Output.



21
22
23
24
25
26
27
# File 'lib/slk/formatters/output.rb', line 21

def initialize(io: $stdout, err: $stderr, color: nil, verbose: false, quiet: false)
  @io = io
  @err = err
  @color = color.nil? ? io.tty? : color
  @verbose = verbose
  @quiet = quiet
end

Instance Attribute Details

#quietObject (readonly)

Returns the value of attribute quiet.



19
20
21
# File 'lib/slk/formatters/output.rb', line 19

def quiet
  @quiet
end

#verboseObject (readonly)

Returns the value of attribute verbose.



19
20
21
# File 'lib/slk/formatters/output.rb', line 19

def verbose
  @verbose
end

Instance Method Details

#blue(text) ⇒ Object



63
# File 'lib/slk/formatters/output.rb', line 63

def blue(text) = wrap(:blue, text)

#bold(text) ⇒ Object



67
# File 'lib/slk/formatters/output.rb', line 67

def bold(text) = wrap(:bold, text)

#cyan(text) ⇒ Object



65
# File 'lib/slk/formatters/output.rb', line 65

def cyan(text) = wrap(:cyan, text)

#debug(message) ⇒ Object



53
54
55
56
57
# File 'lib/slk/formatters/output.rb', line 53

def debug(message)
  return unless @verbose

  @err.puts(colorize("#{gray('[debug]')} #{message}"))
end

#error(message) ⇒ Object



37
38
39
# File 'lib/slk/formatters/output.rb', line 37

def error(message)
  @err.puts(colorize("#{red('Error:')} #{message}"))
end

#gray(text) ⇒ Object



66
# File 'lib/slk/formatters/output.rb', line 66

def gray(text) = wrap(:gray, text)

#green(text) ⇒ Object



61
# File 'lib/slk/formatters/output.rb', line 61

def green(text) = wrap(:green, text)

#info(message) ⇒ Object



49
50
51
# File 'lib/slk/formatters/output.rb', line 49

def info(message)
  puts(colorize(message))
end

#magenta(text) ⇒ Object



64
# File 'lib/slk/formatters/output.rb', line 64

def magenta(text) = wrap(:magenta, text)


33
34
35
# File 'lib/slk/formatters/output.rb', line 33

def print(message)
  @io.print(message) unless @quiet
end

#puts(message = '') ⇒ Object



29
30
31
# File 'lib/slk/formatters/output.rb', line 29

def puts(message = '')
  @io.puts(message) unless @quiet
end

#red(text) ⇒ Object

Color helpers



60
# File 'lib/slk/formatters/output.rb', line 60

def red(text) = wrap(:red, text)

#success(message) ⇒ Object



45
46
47
# File 'lib/slk/formatters/output.rb', line 45

def success(message)
  puts(colorize("#{green('')} #{message}"))
end

#warn(message) ⇒ Object



41
42
43
# File 'lib/slk/formatters/output.rb', line 41

def warn(message)
  @err.puts(colorize("#{yellow('Warning:')} #{message}")) unless @quiet
end

#with_quiet(value) ⇒ Object



73
74
75
# File 'lib/slk/formatters/output.rb', line 73

def with_quiet(value)
  self.class.new(io: @io, err: @err, color: @color, verbose: @verbose, quiet: value)
end

#with_verbose(value) ⇒ Object



69
70
71
# File 'lib/slk/formatters/output.rb', line 69

def with_verbose(value)
  self.class.new(io: @io, err: @err, color: @color, verbose: value, quiet: @quiet)
end

#yellow(text) ⇒ Object



62
# File 'lib/slk/formatters/output.rb', line 62

def yellow(text) = wrap(:yellow, text)