class PaymentSchedule::Output

Public Class Methods

to_s(schedule) click to toggle source
# File lib/payment_schedule/output.rb, line 6
def to_s(schedule)
  table = Terminal::Table.new(title: schedule.class) do |t|
    t << heading(schedule)
    t << :separator

    schedule.row_numbers.each do |row_no|
      t << row_contents(schedule, row_no)
    end
  end

  table.to_s
end

Private Class Methods

heading(schedule) click to toggle source
# File lib/payment_schedule/output.rb, line 21
def heading(schedule)
  names = schedule.component_names.map do |name|
    name.to_s.tr('_', ' ').capitalize
  end

  ['No', names].flatten
end
row_contents(schedule, row_no) click to toggle source
# File lib/payment_schedule/output.rb, line 29
def row_contents(schedule, row_no)
  values = schedule.component_names.map { |name| schedule[name, row_no] }
  [row_no, values].flatten
end