Class: Report

Inherits:
Object
  • Object
show all
Defined in:
lib/mega_lotto_ps/report.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(ledger) ⇒ Report

Returns a new instance of Report.



2
3
4
5
# 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

Instance Attribute Details

#balanceObject (readonly)

Returns the value of attribute balance.



7
8
9
# File 'lib/mega_lotto_ps/report.rb', line 7

def balance
  @balance
end

#creditsObject (readonly)

Returns the value of attribute credits.



7
8
9
# File 'lib/mega_lotto_ps/report.rb', line 7

def credits
  @credits
end

#debitsObject (readonly)

Returns the value of attribute debits.



7
8
9
# File 'lib/mega_lotto_ps/report.rb', line 7

def debits
  @debits
end

Instance Method Details

#formatted_line_items(items) ⇒ Object



15
16
17
# 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_outputObject



9
10
11
12
13
# 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