class Banco::Reporter
Attributes
all_transactions[R]
csv_file_name[R]
incoming_total[R]
incoming_trans[R]
incomings[R]
name[R]
outgoing_total[R]
outgoing_trans[R]
outgoings[R]
Public Class Methods
new(csv_file_name, report_name, transactions)
click to toggle source
# File lib/banco/reporter.rb, line 21 def initialize(csv_file_name, report_name, transactions) @csv_file_name = csv_file_name @name = report_name @all_transactions = transactions @outgoing_trans = [] @incoming_trans = [] @outgoings = Hash.new(0) @incomings = Hash.new(0) puts 'formating data...' remove_blank_lines split_in_out total_outgoing total_incoming puts "\n\n" end
Public Instance Methods
remove_blank_lines()
click to toggle source
# File lib/banco/reporter.rb, line 37 def remove_blank_lines @all_transactions.delete_if { |trans| trans.moneyin.zero? && trans.moneyout.zero? } end
split_in_out()
click to toggle source
# File lib/banco/reporter.rb, line 41 def split_in_out @outgoing_trans, @incoming_trans = @all_transactions.partition { |trans| trans.moneyin.zero? && trans.moneyout.positive? } end
total_incoming()
click to toggle source
# File lib/banco/reporter.rb, line 50 def total_incoming @incoming_trans.each { |trans| @incomings[trans.description[0..8]] += trans.moneyin } @incoming_total = @incomings.values.map.reduce(:+) end
total_outgoing()
click to toggle source
# File lib/banco/reporter.rb, line 45 def total_outgoing @outgoing_trans.each { |trans| @outgoings[trans.description[0..8]] += trans.moneyout } @outgoing_total = @outgoings.values.map.reduce(:+) end