Class: Transaction

Inherits:
Object show all
Includes:
TransactionWrapper
Defined in:
lib/hyalite/transaction.rb

Direct Known Subclasses

Hyalite::ReconcileTransaction

Instance Method Summary collapse

Methods included from TransactionWrapper

#init

Constructor Details

#initialize(transaction_wrappers = nil, &block) ⇒ Transaction

Returns a new instance of Transaction.



12
13
14
15
16
17
18
# File 'lib/hyalite/transaction.rb', line 12

def initialize(transaction_wrappers = nil, &block)
  @transaction_wrappers = transaction_wrappers || []
  if block_given?
    @close_proc = block
    @transaction_wrappers << self
  end
end

Instance Method Details

#closeObject



20
21
22
23
24
25
26
# File 'lib/hyalite/transaction.rb', line 20

def close
  if @close_proc
    @close_proc.call
  else
    close_all
  end
end

#close_allObject



28
29
30
31
32
# File 'lib/hyalite/transaction.rb', line 28

def close_all
  @transaction_wrappers.each do |wrapper|
    wrapper.close
  end
end

#init_allObject



34
35
36
37
38
# File 'lib/hyalite/transaction.rb', line 34

def init_all
  @transaction_wrappers.each do |wrapper|
    wrapper.init
  end
end

#performObject



40
41
42
43
44
45
46
# File 'lib/hyalite/transaction.rb', line 40

def perform
  init_all

  yield(self)
ensure
  close_all
end