examples/printing/tables.rb
#!/usr/bin/env ruby
$LOAD_PATH.unshift(File.expand_path('../../../lib',__FILE__))
require 'command_kit/command'
require 'command_kit/printing/tables'
class TablesCmd < CommandKit::Command
include CommandKit::Printing::Tables
def run
header = ['A', 'B', 'C']
table = [
['AAAA', 'BBBB', 'CCCC'],
['AAAA', 'BBBB', 'CCCC'],
['AAAA', 'BBBB', 'CCCC']
]
puts
puts "Table:"
puts
print_table table
puts
puts "Table with header:"
puts
print_table table, header: header
puts
puts "ASCII border:"
puts
print_table table, header: header,
border: :ascii
puts
puts "Border + Separated rows:"
puts
print_table table, header: header,
border: :ascii,
separate_rows: true
puts
puts "Lined border:"
puts
print_table table, header: header,
border: :line
puts
puts "Double line border:"
puts
print_table table, header: header,
border: :double_line
uneven_table = [
['AAAAAA', 'B', 'CCCCCCC'],
['AAA', 'BBBB', 'CCC' ],
['A', 'BBBBBBB', 'C' ]
]
puts
puts "Left-justified:"
puts
print_table uneven_table, header: header,
justify: :left,
justify_header: :left,
border: :line
puts
puts "Right-justified:"
puts
print_table uneven_table, header: header,
justify: :right,
justify_header: :right,
border: :line
puts
puts "Center-justified:"
puts
print_table uneven_table, header: header,
justify: :center,
justify_header: :center,
border: :line
puts
puts "Table with empty cells:"
puts
table_with_empty_cells = [
['AAAA', 'BBBB', 'CCCC'],
['AAAA', nil, 'CCCC'],
['AAAA', 'BBBB']
]
print_table table_with_empty_cells, header: header,
justify: :left,
border: :line
puts
puts "Multi-line table:"
puts
multi_line_table = [
['AAAA', 'BBBB', "CCCC\nCC"],
['AAAA', "BBBB\nB", 'CCCC'],
["AAAA\nAA\nA", "BBBB", "CCCC"]
]
print_table multi_line_table, header: header,
justify: :left,
border: :line
puts
puts "Indent aware:"
puts
puts "* Item 1"
indent do
puts "* Item 2"
puts
indent do
print_table table, header: header,
border: :line
end
end
puts
end
end
if __FILE__ == $0
TablesCmd.start
end