class Mrtable::Table
Attributes
header_cols[R]
rows[R]
Public Class Methods
new(header_cols, rows)
click to toggle source
# File lib/mrtable.rb, line 9 def initialize(header_cols, rows) @header_cols = header_cols @rows = rows end
Public Instance Methods
calc_maxlens()
click to toggle source
# File lib/mrtable.rb, line 33 def calc_maxlens num_cols = @rows[0].size maxlens = (0...num_cols).map do |ci| cols_at_ci = @rows.map { |cols| cols[ci] } if @header_cols cols_at_ci << @header_cols[ci] end cols_at_ci .map { |col| Mrtable.col_len(col) } .max end # compatibility for GFM min_len = 3 maxlens.map { |len| [len, min_len].max } end
complement(val)
click to toggle source
# File lib/mrtable.rb, line 50 def complement(val) num_cols_max = [ @header_cols.size, @rows.map { |cols| cols.size }.max ].max new_header_cols = Mrtable.complement_cols( @header_cols, num_cols_max, val) new_rows = @rows.map { |cols| Mrtable.complement_cols(cols, num_cols_max, val) } Table.new new_header_cols, new_rows end
map_col_with_ci() { |col, ci| ... }
click to toggle source
ci: column index @return new table
# File lib/mrtable.rb, line 16 def map_col_with_ci new_rows = @rows.map do |cols| new_cols = [] cols.each_with_index { |col, ci| new_cols << yield(col, ci) } new_cols end new_header_cols = [] @header_cols.each_with_index { |col, ci| new_header_cols << yield(col, ci) } Table.new new_header_cols, new_rows end