Class: Philiprehberger::Table::Renderer
- Inherits:
-
Object
- Object
- Philiprehberger::Table::Renderer
- Defined in:
- lib/philiprehberger/table/renderer.rb
Constant Summary collapse
- ANSI_PATTERN =
/\e\[[0-9;]*m/
Instance Method Summary collapse
-
#initialize(headers:, rows:, widths:, align:, style:, style_name:, separator: false, padding: 1) ⇒ Renderer
constructor
A new instance of Renderer.
- #render ⇒ Object
Constructor Details
#initialize(headers:, rows:, widths:, align:, style:, style_name:, separator: false, padding: 1) ⇒ Renderer
Returns a new instance of Renderer.
8 9 10 11 12 13 14 15 16 17 |
# File 'lib/philiprehberger/table/renderer.rb', line 8 def initialize(headers:, rows:, widths:, align:, style:, style_name:, separator: false, padding: 1) @headers = headers @rows = rows @widths = widths @align = align @style = style @style_name = style_name @separator = separator @padding = padding end |
Instance Method Details
#render ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/philiprehberger/table/renderer.rb', line 19 def render lines = [] case @style_name when :markdown lines << render_data_row(@headers) lines << render_markdown_separator @rows.each { |row| lines << render_data_row(row) } when :compact lines << render_compact_row(@headers) @rows.each { |row| lines << render_compact_row(row) } else lines << render_border(:top) lines << render_data_row(@headers) lines << render_border(:mid) @rows.each_with_index do |row, i| lines << render_border(:mid) if @separator && i.positive? lines << render_data_row(row) end lines << render_border(:bottom) end lines.join("\n") end |