Sha256: 31b87ebe2fe17dc35aa52c28fbc8e8c57a25c14dae98b6fc64c367b04809a3b9
Contents?: true
Size: 1.14 KB
Versions: 68
Compression:
Stored size: 1.14 KB
Contents
module ZTK class Report # Report Private Functionality module Private def max_spreadsheet_lengths(headers, rows) max_lengths = OpenStruct.new headers.each do |header| collection = [header, rows.collect{|r| r.send(:table)[header] } ].flatten maximum = collection.map(&:to_s).map(&:length).max max_lengths.send(:table)[header] = maximum end max_lengths end def calculate_spreadsheet_width(headers, max_lengths) header_lengths = ((headers.count * 3) - 3) max_length = max_lengths.send(:table).values.reduce(:+) (2 + max_length + header_lengths + 2) end def format_header(headers, lengths) line = headers.collect do |header| "-" * lengths.send(:table)[header] end ["+-", line.join("-+-"), "-+"].join.strip end def format_row(*args) spacer = " " [spacer, args, spacer].flatten.join(" | ").strip end def format_entry(key, key_length, value, value_length) "| %#{key_length}s: %-#{value_length}s |" % [key.to_s.upcase, value.to_s] end end end end
Version data entries
68 entries across 68 versions & 1 rubygems