class ActsAsMentionable::TransactionCallbacks

Attributes

on_committed_block[R]
on_rolled_back_block[R]

Public Class Methods

new(on_committed_block, on_rolled_back_block) click to toggle source
# File lib/acts_as_mentionable/transaction_callbacks.rb, line 29
def initialize on_committed_block, on_rolled_back_block
  @on_committed_block = on_committed_block
  @on_rolled_back_block = on_rolled_back_block
end
on_committed() { || ... } click to toggle source
# File lib/acts_as_mentionable/transaction_callbacks.rb, line 4
def on_committed &block
  if current_transaction.open?
    add_transaction_record new(block, nil)
  else
    yield
  end
end
on_rolled_back(&block) click to toggle source
# File lib/acts_as_mentionable/transaction_callbacks.rb, line 12
def on_rolled_back &block
  add_transaction_record new(nil, block)
end

Private Class Methods

add_transaction_record(record) click to toggle source
# File lib/acts_as_mentionable/transaction_callbacks.rb, line 18
def add_transaction_record record
  current_transaction.add_record record
end
current_transaction() click to toggle source
# File lib/acts_as_mentionable/transaction_callbacks.rb, line 22
def current_transaction
  Mention.connection.current_transaction
end

Public Instance Methods

committed!(_should_run_callbacks = true) click to toggle source
# File lib/acts_as_mentionable/transaction_callbacks.rb, line 34
def committed! _should_run_callbacks = true
  on_committed_block&.call
end
rolledback!(_force_restore_state = false, _should_run_callbacks = true) click to toggle source
# File lib/acts_as_mentionable/transaction_callbacks.rb, line 38
def rolledback! _force_restore_state = false, _should_run_callbacks = true
  on_rolled_back_block&.call
end