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