Sha256: fff2e7d6eeb9e9d4c659eb61e759209b850d7c62340e1834e486f86efeb459b2
Contents?: true
Size: 1.11 KB
Versions: 2
Compression:
Stored size: 1.11 KB
Contents
module CsvQuery class Outputter attr_reader :results def self.output(results) new(results).output end def initialize(results) @results = results end def output results.each_with_index do |result, index| puts format_string % result if index == 0 puts separator_line end end end private def column_widths return @column_widths if @column_widths num_columns = if results.first results.first.size else 0 end column_widths = [0] * num_columns results.collect { |row| row.each_with_index do |column, index| width = column.size column_widths[index] = width if width > column_widths[index] end } return column_widths end def format_string return @format_string if @format_string format_strings = column_widths.collect { |width| "%#{width}s" } @format_string = format_strings.join(" | ") end def separator_line column_widths.collect { |width| '-' * width }.join('-+-') end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
csv_query-1.0.2 | lib/csv_query/outputter.rb |
csv_query-1.0.1 | lib/csv_query/outputter.rb |