Class: MongoTrails::VersionCommitWrap

Inherits:
Object
  • Object
show all
Defined in:
lib/mongo_trails/mongo_support/version_commit_wrap.rb

Instance Method Summary collapse

Constructor Details

#initialize(rollback: nil, &callback) ⇒ VersionCommitWrap

Returns a new instance of VersionCommitWrap.



5
6
7
8
9
# File 'lib/mongo_trails/mongo_support/version_commit_wrap.rb', line 5

def initialize(rollback: nil, &callback)
  @callback = callback
  @rollback = rollback
  @executed = false
end

Instance Method Details

#add_to_transaction(connection = ActiveRecord::Base.connection) ⇒ Object



33
34
35
# File 'lib/mongo_trails/mongo_support/version_commit_wrap.rb', line 33

def add_to_transaction(connection = ActiveRecord::Base.connection)
  connection.add_transaction_record(self)
end

#before_committed!Object



19
# File 'lib/mongo_trails/mongo_support/version_commit_wrap.rb', line 19

def before_committed!; end

#committed!Object



26
27
28
29
30
31
# File 'lib/mongo_trails/mongo_support/version_commit_wrap.rb', line 26

def committed!(**)
  return if @executed

  @executed = true
  @callback.call
end

#has_transactional_callbacks?Boolean

rubocop:disable Naming/PredicatePrefix

Returns:

  • (Boolean)


11
12
13
# File 'lib/mongo_trails/mongo_support/version_commit_wrap.rb', line 11

def has_transactional_callbacks? # rubocop:disable Naming/PredicatePrefix
  true
end

#rolledback!Object



21
22
23
24
# File 'lib/mongo_trails/mongo_support/version_commit_wrap.rb', line 21

def rolledback!(*)
  @executed = true
  @rollback&.call
end

#trigger_transactional_callbacks?Boolean

Returns:

  • (Boolean)


15
16
17
# File 'lib/mongo_trails/mongo_support/version_commit_wrap.rb', line 15

def trigger_transactional_callbacks?
  true
end