Class: Report
- Inherits:
-
Object
- Object
- Report
- Defined in:
- lib/moneymanager/report.rb
Instance Method Summary collapse
- #print_group_by_categories_report(entries, onlyIncome) ⇒ Object
- #print_group_by_month_report(entries, tag) ⇒ Object
- #print_total_report(entries, onlyIncome) ⇒ Object
Instance Method Details
#print_group_by_categories_report(entries, onlyIncome) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/moneymanager/report.rb', line 13 def print_group_by_categories_report(entries, onlyIncome) entries = entries.select { |entry| entry.income? == onlyIncome }.each_with_object(Hash.new(0)) { |current, sum| tag = current.tag ||= 'Unknown' sum[tag] += current.amount }.map { |x, v| [x, v] }.sort! { |r1, r2| r1.first <=> r2.first } Layout.print_generic_rows(entries) end |
#print_group_by_month_report(entries, tag) ⇒ Object
26 27 28 29 30 31 32 33 34 |
# File 'lib/moneymanager/report.rb', line 26 def print_group_by_month_report(entries, tag) entries = entries.select { |entry| entry.tag == tag }.each_with_object(Hash.new(0)) { | current, sum | month = current.date.strftime("%B") sum[month] += current.amount } Layout.print_generic_rows(entries) end |
#print_total_report(entries, onlyIncome) ⇒ Object
3 4 5 6 7 8 9 10 11 |
# File 'lib/moneymanager/report.rb', line 3 def print_total_report(entries, onlyIncome) total = 0 if (onlyIncome) total = entries.reject(&:expense?).map(&:amount).reduce(:+) else total = entries.reject(&:income?).map(&:amount).reduce(:+) end Layout.print_single_value(total) end |