class McDump::Report
Public Class Methods
new(items)
click to toggle source
# File lib/mc_dump/report.rb, line 5 def initialize(items) @items = items end
Public Instance Methods
dump(io=$stdout)
click to toggle source
# File lib/mc_dump/report.rb, line 9 def dump(io=$stdout) column_size_metadata = determine_column_size_metadata column_names = column_size_metadata.keys line_format = "|#{column_names.map { |name| " %#{column_size_metadata[name]}s " }.join("|")}|" io.puts line_format % column_names @items.each { |item| io.puts line_format % item.to_h.values_at(*column_names) } end
Private Instance Methods
determine_column_size_metadata()
click to toggle source
# File lib/mc_dump/report.rb, line 19 def determine_column_size_metadata @items.reduce({}) do |size_metadata, item| item.to_h.each do |data_key, data_value| size_metadata[data_key] ||= data_key.to_s.length size_metadata[data_key] = [ data_value.to_s.length, size_metadata[data_key] ].max end size_metadata end end