class Report

Attributes

balance[R]
credits[R]
debits[R]

Public Class Methods

new(ledger) click to toggle source
# File lib/mega_lotto_ps/report.rb, line 2
def initialize(ledger)
  @balance          = ledger.inject(0) { |sum, (k,v)| sum + v }
  @credits, @debits = ledger.partition { |k,v| v > 0 }
end

Public Instance Methods

formatted_line_items(items) click to toggle source
# File lib/mega_lotto_ps/report.rb, line 15
def formatted_line_items(items)
  items.map { |k, v| "#{k}: #{'%.2f' % v.abs}" }.join("\n")
end
formatted_output() click to toggle source
# File lib/mega_lotto_ps/report.rb, line 9
def formatted_output
  "Current Balance: #{balance}\n\n" +
  "Credits:\n\n#{formatted_line_items(credits)}\n\n" +
  "Debits:\n\n#{formatted_line_items(debits)}"
end