Class: BAI2::Account

Inherits:
Object
  • Object
show all
Defined in:
lib/bai2_ruby/account.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(header, transactions, trailer = nil) ⇒ Account

Returns a new instance of Account.



7
8
9
10
11
# File 'lib/bai2_ruby/account.rb', line 7

def initialize(header, transactions, trailer = nil)
  @header = header
  @transactions = transactions
  @trailer = trailer
end

Instance Attribute Details

#headerObject (readonly)

Returns the value of attribute header.



5
6
7
# File 'lib/bai2_ruby/account.rb', line 5

def header
  @header
end

#trailerObject (readonly)

Returns the value of attribute trailer.



5
6
7
# File 'lib/bai2_ruby/account.rb', line 5

def trailer
  @trailer
end

#transactionsObject (readonly)

Returns the value of attribute transactions.



5
6
7
# File 'lib/bai2_ruby/account.rb', line 5

def transactions
  @transactions
end

Instance Method Details

#net_totalObject



27
28
29
# File 'lib/bai2_ruby/account.rb', line 27

def net_total
  transactions.sum(&:signed_amount)
end

#set_trailer(trailer) ⇒ Object

Raises:



13
14
15
16
17
# File 'lib/bai2_ruby/account.rb', line 13

def set_trailer(trailer)
  raise BAI2::Error, "Trailer has already been set" if @trailer

  @trailer = trailer
end

#total_creditsObject



19
20
21
# File 'lib/bai2_ruby/account.rb', line 19

def total_credits
  transactions.select(&:credit?).sum(&:amount)
end

#total_debitsObject



23
24
25
# File 'lib/bai2_ruby/account.rb', line 23

def total_debits
  transactions.select(&:debit?).sum(&:amount)
end