Module: Saviour::DbHelpers

Defined in:
lib/saviour/db_helpers.rb

Defined Under Namespace

Classes: CommitDummy, RollbackDummy

Constant Summary collapse

NotInTransaction =
Class.new(StandardError)

Class Method Summary collapse

Class Method Details

.run_after_commit(&block) ⇒ Object



50
51
52
53
54
55
56
57
# File 'lib/saviour/db_helpers.rb', line 50

def run_after_commit(&block)
  unless ActiveRecord::Base.connection.current_transaction.open?
    raise NotInTransaction, 'Trying to use `run_after_commit` but no transaction is currently open.'
  end

  dummy = CommitDummy.new(block)
  ActiveRecord::Base.connection.add_transaction_record(dummy)
end

.run_after_rollback(&block) ⇒ Object



59
60
61
62
63
64
65
66
# File 'lib/saviour/db_helpers.rb', line 59

def run_after_rollback(&block)
  unless ActiveRecord::Base.connection.current_transaction.open?
    raise NotInTransaction, 'Trying to use `run_after_commit` but no transaction is currently open.'
  end

  dummy = RollbackDummy.new(block)
  ActiveRecord::Base.connection.add_transaction_record(dummy)
end