class BooticCli::Formatters::Table
Constants
- CELL_PADDING
Public Instance Methods
format(array_of_arrays, headings = true)
click to toggle source
# File lib/bootic_cli/formatters.rb, line 10 def format(array_of_arrays, headings = true) array_of_arrays = array_of_arrays.dup # [122, 23, 45, 66] cell_sizes = array_of_arrays.each.with_object([]) do |row, memo| row.each.with_index do |cell, idx| if !memo[idx] || memo[idx] < cell.size memo[idx] = cell.size end end end data = array_of_arrays.map do |row| row.map.with_index{|e, idx| e.to_s.ljust(cell_sizes[idx] + CELL_PADDING) }.join(' | ') end if headings sep = cell_sizes.map{|i| '-' * (i + CELL_PADDING)}.join('-|-') data.insert(1, sep) end data.join("\r\n") end