Class: Sequent::Core::Transactions::ActiveRecordTransactionProvider

Inherits:
Object
  • Object
show all
Defined in:
lib/sequent/core/transactions/active_record_transaction_provider.rb

Instance Method Summary collapse

Instance Method Details

#after_commit(&block) ⇒ Object



17
18
19
# File 'lib/sequent/core/transactions/active_record_transaction_provider.rb', line 17

def after_commit(&block)
  after_commit_queue << block
end

#transactionalObject



6
7
8
9
10
11
12
13
14
15
# File 'lib/sequent/core/transactions/active_record_transaction_provider.rb', line 6

def transactional
  Sequent::ApplicationRecord.transaction(requires_new: true) do
    yield
  end
  while(!after_commit_queue.empty?) do
    after_commit_queue.pop.call
  end
ensure
  clear_after_commit_queue
end