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(connection = ActiveRecord::Base.connection, &block) ⇒ Object



56
57
58
59
60
61
62
63
# File 'lib/saviour/db_helpers.rb', line 56

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

  dummy = CommitDummy.new(block)
  connection.add_transaction_record(dummy)
end

.run_after_rollback(connection = ActiveRecord::Base.connection, &block) ⇒ Object



65
66
67
68
69
70
71
72
# File 'lib/saviour/db_helpers.rb', line 65

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

  dummy = RollbackDummy.new(block)
  connection.add_transaction_record(dummy)
end