Class: Hutils::TextVisualizer::LineVisualizer

Inherits:
Object
  • Object
show all
Includes:
Term::ANSIColor
Defined in:
lib/hutils/text_visualizer.rb

Instance Method Summary collapse

Constructor Details

#initialize(colors:, compact:, highlights:, out:) ⇒ LineVisualizer

Returns a new instance of LineVisualizer.



9
10
11
12
13
14
# File 'lib/hutils/text_visualizer.rb', line 9

def initialize(colors:, compact:, highlights:, out:)
  @colors = colors
  @compact = compact
  @highlights = highlights
  @out = out
end

Instance Method Details

#display(message, indent: "", time: nil) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/hutils/text_visualizer.rb', line 16

def display(message, indent: "", time: nil)
  if time
    @out.print "#{colorize(:cyan, time.iso8601)} "
  end
  message.to_a.reject { |k, v| k == nil }.
    sort_by { |k, v| k }.
    map { |k, v|
      pair_to_string(k, v)
    }.each_with_index { |display, i|
      if @compact
        @out.print(indent) if i == 0
        @out.print("#{display} ")
      else
        marker = i == 0 ? "+ " : "  "
        @out.puts "#{indent}#{marker}#{display}"
      end
    }
  @out.puts ""
end