Class: RedisMemo::AfterCommit
- Inherits:
-
Object
- Object
- RedisMemo::AfterCommit
- Defined in:
- lib/redis_memo/after_commit.rb
Overview
TODO: -> RedisMemo::Memoizable::AfterCommit
Defined Under Namespace
Classes: Callback
Constant Summary collapse
- @@callback_added =
We assume there’s only one ActiveRecord DB connection used for opening transactions
false
- @@pending_memo_versions =
{}
- @@previous_memo_versions =
{}
Class Method Summary collapse
- .bump_memo_version_after_commit(key, version, previous_version:) ⇒ Object
- .connection ⇒ Object
-
.in_transaction? ⇒ Boolean
github.com/Envek/after_commit_everywhere/blob/be8602f9fbb8e40b0fc8a04a47e4c2bc6b560ad5/lib/after_commit_everywhere.rb#L93 Helper method to determine whether we’re currently in transaction or not.
- .pending_memo_versions ⇒ Object
Class Method Details
.bump_memo_version_after_commit(key, version, previous_version:) ⇒ Object
23 24 25 26 27 28 |
# File 'lib/redis_memo/after_commit.rb', line 23 def self.bump_memo_version_after_commit(key, version, previous_version:) @@pending_memo_versions[key] = version @@previous_memo_versions[key] = previous_version reset_after_transaction end |
.connection ⇒ Object
11 12 13 |
# File 'lib/redis_memo/after_commit.rb', line 11 def self.connection ActiveRecord::Base.connection end |
.in_transaction? ⇒ Boolean
github.com/Envek/after_commit_everywhere/blob/be8602f9fbb8e40b0fc8a04a47e4c2bc6b560ad5/lib/after_commit_everywhere.rb#L93 Helper method to determine whether we’re currently in transaction or not
32 33 34 35 |
# File 'lib/redis_memo/after_commit.rb', line 32 def self.in_transaction? # service transactions (tests and database_cleaner) are not joinable connection.transaction_open? && connection.current_transaction.joinable? end |
.pending_memo_versions ⇒ Object
15 16 17 18 19 20 21 |
# File 'lib/redis_memo/after_commit.rb', line 15 def self.pending_memo_versions # In DB transactions, the pending memo version should be used immediately # as part of method checksums. method_cache_keys made of # pending_memo_versions are not referencable until we bump the # pending_memo_versions after commiting the current transaction @@pending_memo_versions end |