Class: Pcli::Output::Padded

Inherits:
Object
  • Object
show all
Defined in:
lib/pcli/output/padded.rb

Class Method Summary collapse

Class Method Details

.show(input, output, screen) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/pcli/output/padded.rb', line 6

def self.show(input, output, screen)
  amount = 5
  messages = input

  messages = [messages] unless messages.respond_to?(:each)

  messages = messages.flat_map { |m| m == '' ? '' : m.split("\n") }

  length = screen.width - amount
  result = ''

  messages.each do |message|
    message.each_char.with_index do |c, i|
      if (i % length).zero?
        result += "\n" if i.positive?
        result += ' ' * amount
      end
      result += c
    end
    result += "\n"
  end

  output.print(result)
end