module Saviour::DbHelpers

Constants

NotInTransaction

Public Class Methods

run_after_commit(connection = ActiveRecord::Base.connection, &block) click to toggle source
# 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) click to toggle source
# 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