class MdParser::TextTableVisitor
Public Instance Methods
cell_widths(titles, rows)
click to toggle source
# File lib/md_parser/text_table_visitor.rb, line 5 def cell_widths(titles, rows) c = cols(titles, rows); c.map{|x| x.map{|y| y ? y.length : 0}.max} end
cols(titles, rows)
click to toggle source
# File lib/md_parser/text_table_visitor.rb, line 10 def cols(titles, rows) titles.each.with_index.map{|t,i| [t] + rows.map{|r| r[i]} } end
pad_row(values, widths)
click to toggle source
# File lib/md_parser/text_table_visitor.rb, line 14 def pad_row(values, widths) "| "+ widths.zip(values).map{|w,v| v + ( " " * (w-v.length)) }.join(" | ") + " |" end
separator_row(widths)
click to toggle source
# File lib/md_parser/text_table_visitor.rb, line 18 def separator_row(widths) "|-"+ widths.map{|w| "-" * w }.join("-|-") + "-|" end
to_table(titles, rows)
click to toggle source
# File lib/md_parser/text_table_visitor.rb, line 22 def to_table(titles, rows) w = cell_widths(titles, rows) ( [ pad_row(titles, w), separator_row(w) ] + rows.map{|r| pad_row(r, w)} ).join("\n") end
visit_table(titles, rows)
click to toggle source
# File lib/md_parser/text_table_visitor.rb, line 29 def visit_table(titles, rows) to_table(titles, rows) end