Sha256: 650cdde36b2d343e203197b3e009484554fb8a56320e558f83c390c42e950027
Contents?: true
Size: 1.06 KB
Versions: 3
Compression:
Stored size: 1.06 KB
Contents
module TablePrint class Column attr_reader :formatters attr_accessor :name, :data, :time_format, :default_width def initialize(attr_hash={}) @formatters = [] attr_hash.each do |k, v| self.send("#{k}=", v) end end def name=(n) @name = n.to_s end def formatters=(formatter_list) formatter_list.each do |f| add_formatter(f) end end def display_method=(method) method = method.to_s unless method.is_a? Proc @display_method = method end def display_method @display_method ||= name end def add_formatter(formatter) @formatters << formatter end def data_width [ name.each_char.collect{|c| c.bytesize == 1 ? 1 : 2}.inject(0, &:+), Array(data).compact.collect(&:to_s).collect{|m| m.each_char.collect{|n| n.bytesize == 1 ? 1 : 2}.inject(0, &:+)}.max ].max end def width [(default_width || max_width), data_width].min end private def max_width TablePrint::Config.max_width end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
table_print-1.3.2 | lib/table_print/column.rb |
table_print-1.3.1 | lib/table_print/column.rb |
table_print-1.3.0 | lib/table_print/column.rb |