Class: ChurchCommunityBuilder::MergeableTransactionList

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/api/mergeable_transaction_list.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(transaction_list = nil) ⇒ MergeableTransactionList

Returns a new instance of MergeableTransactionList.



10
11
12
13
14
15
16
17
18
19
20
# File 'lib/api/mergeable_transaction_list.rb', line 10

def initialize(transaction_list = nil)

  if transaction_list.nil?
    @transaction_array = []

  else
    @transaction_array = transaction_list.transaction_array

  end
  
end

Instance Attribute Details

#transaction_arrayObject (readonly)

for debugging



7
8
9
# File 'lib/api/mergeable_transaction_list.rb', line 7

def transaction_array
  @transaction_array
end

Instance Method Details

#[](index) ⇒ Object



27
28
29
# File 'lib/api/mergeable_transaction_list.rb', line 27

def [](index)
  Transaction.new( @transaction_array[index] ) if @transaction_array and @transaction_array[index]
end

#add(transaction_type) ⇒ Object Also known as: merge

Adds an TransactionList, MergeableTransactionList, or Transaction to this list.



46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/api/mergeable_transaction_list.rb', line 46

def add(transaction_type)
  
  if transaction_type.is_a?(TransactionList)
    @transaction_array += transaction_type.transaction_array

  elsif transaction_type.is_a?(MergeableTransactionList)
    @transaction_array += transaction_type.transaction_array
  
  elsif transaction_type.is_a?(Transaction)
    @transaction_array << JSON.parse( transaction_type.to_json )

  end

end

#all_namesObject



22
23
24
25
# File 'lib/api/mergeable_transaction_list.rb', line 22

def all_names
  return [] unless @transaction_array
  @transaction_array.collect { |transaction| transaction['individual']['content'] }
end

#countObject



63
64
65
# File 'lib/api/mergeable_transaction_list.rb', line 63

def count
  @transaction_array.size
end

#each(&block) ⇒ Object

This method is needed for Enumerable.



33
34
35
# File 'lib/api/mergeable_transaction_list.rb', line 33

def each &block
  @transaction_array.each{ |transaction| yield( Transaction.new(transaction) )}
end

#empty?Boolean

Returns:

  • (Boolean)


68
69
70
# File 'lib/api/mergeable_transaction_list.rb', line 68

def empty?
  self.count == 0 ? true : false
end

#idsObject

Get all the Transaction ids in the list.

Returns:

  • An array of Transaction ids.



40
41
42
# File 'lib/api/mergeable_transaction_list.rb', line 40

def ids
  (@transaction_array.collect { |transaction| transaction['id'] }).uniq
end