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