Class: TabularFormatter
- Inherits:
-
Object
- Object
- TabularFormatter
- Defined in:
- lib/tabular_formatter.rb
Instance Method Summary collapse
-
#initialize(input_data, options = {}) ⇒ TabularFormatter
constructor
A new instance of TabularFormatter.
- #to_csv(col_sep = ',') ⇒ Object
- #to_pretty_table ⇒ Object
- #to_tsv ⇒ Object
Constructor Details
#initialize(input_data, options = {}) ⇒ TabularFormatter
Returns a new instance of TabularFormatter.
6 7 8 9 10 |
# File 'lib/tabular_formatter.rb', line 6 def initialize input_data, = {} @input_data = input_data @options = @options[:headers] = true if @options[:headers].nil? end |
Instance Method Details
#to_csv(col_sep = ',') ⇒ Object
12 13 14 15 16 |
# File 'lib/tabular_formatter.rb', line 12 def to_csv(col_sep = ',') CSV.generate(col_sep: col_sep) do |csv| @input_data.each { |row| csv << row } end end |
#to_pretty_table ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/tabular_formatter.rb', line 22 def to_pretty_table return '' if @input_data.blank? or @input_data.first.empty? max_column_lengths = Array.new(@input_data.first.length, 0) @input_data.each do |row| row.each_with_index do |cell, index| max_column_lengths[index] = [cell.to_s.length, max_column_lengths[index]].max end end output = [] @input_data.each do |row| output << print_table_row(max_column_lengths, row) end divider = max_column_lengths.inject("") do |str, l| str << "-#{'-' * l}-+" end.chomp!("+") divider = divider[1..-1] output.insert(1, divider) output.join("\n").concat("\n") end |
#to_tsv ⇒ Object
18 19 20 |
# File 'lib/tabular_formatter.rb', line 18 def to_tsv to_csv("\t") end |