class Terminal::Table::Row
Attributes
cells[R]
Row
cells
table[R]
Public Class Methods
new(table, array = [], **_kwargs)
click to toggle source
Initialize with width and options.
# File lib/terminal-table/row.rb, line 15 def initialize table, array = [], **_kwargs @cell_index = 0 @table = table @cells = [] array.each { |item| self << item } end
Public Instance Methods
[](index)
click to toggle source
# File lib/terminal-table/row.rb, line 30 def [] index cells[index] end
add_cell(item)
click to toggle source
# File lib/terminal-table/row.rb, line 22 def add_cell item options = item.is_a?(Hash) ? item : {:value => item} cell = Cell.new(options.merge(:index => @cell_index, :table => @table)) @cell_index += cell.colspan @cells << cell end
Also aliased as: <<
crossings()
click to toggle source
used to find indices where we have table ‘+’ crossings. in cases where the colspan > 1, then we will skip over some numbers if colspan is always 1, then the list should be incrementing by 1.
skip 0 entry, because it’s the left side. skip last entry, because it’s the right side. we only care about “+/T” style crossings.
# File lib/terminal-table/row.rb, line 58 def crossings idx = 0 @cells[0...-1].map { |c| idx += c.colspan } end
height()
click to toggle source
# File lib/terminal-table/row.rb, line 34 def height cells.map { |c| c.lines.count }.max || 0 end
number_of_columns()
click to toggle source
# File lib/terminal-table/row.rb, line 47 def number_of_columns @cells.collect(&:colspan).inject(0, &:+) end
render()
click to toggle source
# File lib/terminal-table/row.rb, line 38 def render vleft, vcenter, vright = @table.style.vertical (0...height).to_a.map do |line| vleft + cells.map do |cell| cell.render(line) end.join(vcenter) + vright end.join("\n") end