class TableTransformer::LineGenerator

Attributes

column_width[R]

Public Class Methods

new(column_width:) click to toggle source
# File lib/table_transformer/line_generator.rb, line 7
def initialize(column_width:)
  @column_width = column_width
end

Public Instance Methods

data_line(data) click to toggle source
# File lib/table_transformer/line_generator.rb, line 24
def data_line(data)
  generate_line(data)
end
delimiter_line() click to toggle source
# File lib/table_transformer/line_generator.rb, line 11
def delimiter_line
  @delimiter_line ||= "+".tap do |line|
    column_width.each do |k, v|
      line += "-" * v + "+"
    end
    break line
  end
end
header_line() click to toggle source
# File lib/table_transformer/line_generator.rb, line 20
def header_line
  @header_line ||= generate_line(header_data)
end

Private Instance Methods

generate_line(data) click to toggle source
# File lib/table_transformer/line_generator.rb, line 39
def generate_line(data)
  "|".tap do |line|
    column_width.each do |k, v|
      blank_number = v - width(data[k]) - 1
      line += " " + data[k].to_s + " " * blank_number + "|"
    end
    break line
  end
end
header_data() click to toggle source
# File lib/table_transformer/line_generator.rb, line 30
def header_data
  {}.tap do |data|
    column_width.each do |k,|
      data[k] = k
    end
    break data
  end
end