Class: Deb::Builder

Inherits:
Object
  • Object
show all
Defined in:
lib/deb/builder.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeBuilder

Returns a new instance of Builder.



29
30
31
32
# File 'lib/deb/builder.rb', line 29

def initialize
  @debits ||= {}
  @credits ||= {}
end

Instance Attribute Details

#creditsObject (readonly)

Returns the value of attribute credits.



3
4
5
# File 'lib/deb/builder.rb', line 3

def credits
  @credits
end

#debitsObject (readonly)

Returns the value of attribute debits.



3
4
5
# File 'lib/deb/builder.rb', line 3

def debits
  @debits
end

#description(desc) ⇒ Object (readonly)

Returns the value of attribute description.



3
4
5
# File 'lib/deb/builder.rb', line 3

def description
  @description
end

#reference(ref) ⇒ Object (readonly)

Returns the value of attribute reference.



3
4
5
# File 'lib/deb/builder.rb', line 3

def reference
  @reference
end

Instance Method Details

#buildObject



34
35
36
37
38
39
40
41
42
43
# File 'lib/deb/builder.rb', line 34

def build
  Deb::Transaction.new(description: @description, transactionable: @reference, kind: @kind) do |t|
    credits.each do |, amount|
      t.credit_items.build(account: , amount: amount)
    end
    debits.each do |, amount|
      t.debit_items.build(account: , amount: amount)
    end
  end
end

#credit(account, amount) ⇒ Object



11
12
13
14
15
# File 'lib/deb/builder.rb', line 11

def credit(, amount)
  @credits ||= {}
  @credits[] ||= 0
  @credits[] += amount
end

#debit(account, amount) ⇒ Object



5
6
7
8
9
# File 'lib/deb/builder.rb', line 5

def debit(, amount)
  @debits ||= {}
  @debits[] ||= 0
  @debits[] += amount
end

#kind(kind) ⇒ Object



21
22
23
# File 'lib/deb/builder.rb', line 21

def kind(kind)
  @kind = kind
end