class TablePrint::FixedWidthFormatter
def format(value)
def format(value) padding = width - length(value.to_s) truncate(value) + (padding < 0 ? '' : " " * padding) end
def initialize(width)
def initialize(width) self.width = width end
def length(str)
def length(str) if TablePrint::Config.multibyte str.each_char.collect{|c| c.bytesize == 1 ? 1 : 2}.inject(0, &:+) else str.length end end
def truncate(value)
def truncate(value) return "" unless value value = value.to_s return value unless value.length > width "#{value[0..width-4]}..." end