Class: Coltrane::Renderers::TextRenderer::ArrayDrawer
- Inherits:
-
BaseDrawer
- Object
- BaseDrawer
- Coltrane::Renderers::TextRenderer::ArrayDrawer
show all
- Defined in:
- lib/coltrane/renderers/text_renderer/array_drawer.rb
Instance Attribute Summary
Attributes inherited from BaseDrawer
#flavor, #layout, #model, #options, #per_row
Instance Method Summary
collapse
Methods inherited from BaseDrawer
#initialize
Instance Method Details
#render ⇒ Object
7
8
9
|
# File 'lib/coltrane/renderers/text_renderer/array_drawer.rb', line 7
def render
public_send("render_#{layout}")
end
|
#render_horizontal ⇒ Object
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
# File 'lib/coltrane/renderers/text_renderer/array_drawer.rb', line 19
def render_horizontal
array
.each_slice(per_row)
.map { |row|
row
.map { |element|
TextRenderer.render(element, **options)
.split("\n")
.yield_self { |lines|
lines
.map { |l| l.gsub(/\e\[(\d+)(;\d+)*m/, '').size }
.max
.yield_self { |column_w|
lines
.map { |l| l.ljust(column_w) }
.+([' ' * column_w])
}
}
}
.transpose
.map(&:join)
}.join("\n")
end
|
#render_vertical ⇒ Object
15
16
17
|
# File 'lib/coltrane/renderers/text_renderer/array_drawer.rb', line 15
def render_vertical
renders.join("\n")
end
|
#renders ⇒ Object
11
12
13
|
# File 'lib/coltrane/renderers/text_renderer/array_drawer.rb', line 11
def renders
@renders ||= array.map {|it| TextRenderer.render(it, **options) }
end
|