Class: Spoom::Printer

Inherits:
Object
  • Object
show all
Extended by:
T::Helpers, T::Sig
Defined in:
lib/spoom/printer.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(out: $stdout, colors: true, indent_level: 0) ⇒ Printer

Returns a new instance of Printer.



18
19
20
21
22
# File 'lib/spoom/printer.rb', line 18

def initialize(out: $stdout, colors: true, indent_level: 0)
  @out = out
  @colors = colors
  @indent_level = indent_level
end

Instance Attribute Details

#outObject

Returns the value of attribute out.



15
16
17
# File 'lib/spoom/printer.rb', line 15

def out
  @out
end

Instance Method Details

#colorize(string, color) ⇒ Object



77
78
79
# File 'lib/spoom/printer.rb', line 77

def colorize(string, color)
  @colors ? string.colorize(color) : string
end

#dedentObject



32
33
34
# File 'lib/spoom/printer.rb', line 32

def dedent
  @indent_level -= 2
end

#indentObject



26
27
28
# File 'lib/spoom/printer.rb', line 26

def indent
  @indent_level += 2
end


38
39
40
41
# File 'lib/spoom/printer.rb', line 38

def print(string)
  return unless string
  @out.print(string)
end


47
48
49
50
51
52
# File 'lib/spoom/printer.rb', line 47

def print_colored(string, color, *colors)
  return unless string
  string = colorize(string, color)
  colors.each { |c| string = colorize(string, c) }
  @out.print(string)
end

#printl(string) ⇒ Object



62
63
64
65
66
67
# File 'lib/spoom/printer.rb', line 62

def printl(string)
  return unless string
  printt
  print(string)
  printn
end

#printnObject



56
57
58
# File 'lib/spoom/printer.rb', line 56

def printn
  print("\n")
end

#printtObject



71
72
73
# File 'lib/spoom/printer.rb', line 71

def printt
  print(" " * @indent_level)
end