Class: Charming::Components::Viewport::ContentLines

Inherits:
Object
  • Object
show all
Defined in:
lib/charming/presentation/components/viewport/content_lines.rb

Overview

ContentLines normalizes viewport content into display lines.

Instance Method Summary collapse

Constructor Details

#initialize(content:, width:, wrap:) ⇒ ContentLines

Returns a new instance of ContentLines.



8
9
10
11
12
# File 'lib/charming/presentation/components/viewport/content_lines.rb', line 8

def initialize(content:, width:, wrap:)
  @content = content
  @window_width = width
  @wrap = wrap
end

Instance Method Details

#display_widthObject



20
21
22
# File 'lib/charming/presentation/components/viewport/content_lines.rb', line 20

def display_width
  lines.map { |line| UI::Width.measure(line) }.max || 0
end

#linesObject



14
15
16
17
18
# File 'lib/charming/presentation/components/viewport/content_lines.rb', line 14

def lines
  return wrapped_lines if wrap?

  rendered_content.lines(chomp: true)
end