module AfterCommitAction
Public Instance Methods
_after_commit_hook()
click to toggle source
# File lib/after_commit_action.rb, line 30 def _after_commit_hook begin until @_execute_after_commit.blank? @_execute_after_commit.shift.call end rescue => e if defined?(Exceptional) # Rails quietly swallows exceptions in after-commit actions; to avoid missing these # exceptions, we pass them to Exceptional explicitly Exceptional.context(:after_commit_entity => self.inspect) Exceptional.handle(e, "execute_after_commit") else Rails.logger.error "Error in execute_after_commit block: #{e.inspect}" end raise e end end
execute_after_commit(&block)
click to toggle source
# File lib/after_commit_action.rb, line 19 def execute_after_commit(&block) if self.class.connection.open_transactions == 0 return block.call else self.class.connection.add_transaction_record(self) end @_execute_after_commit ||= [] @_execute_after_commit<< block end