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