summaryrefslogtreecommitdiff
path: root/lib/after_commit_queue.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/after_commit_queue.rb')
-rw-r--r--lib/after_commit_queue.rb50
1 files changed, 0 insertions, 50 deletions
diff --git a/lib/after_commit_queue.rb b/lib/after_commit_queue.rb
deleted file mode 100644
index cbeaea97951..00000000000
--- a/lib/after_commit_queue.rb
+++ /dev/null
@@ -1,50 +0,0 @@
-# frozen_string_literal: true
-
-module AfterCommitQueue
- extend ActiveSupport::Concern
-
- included do
- after_commit :_run_after_commit_queue
- after_rollback :_clear_after_commit_queue
- end
-
- def run_after_commit(&block)
- _after_commit_queue << block if block
-
- true
- end
-
- def run_after_commit_or_now(&block)
- if ApplicationRecord.inside_transaction?
- if ActiveRecord::Base.connection.current_transaction.records&.include?(self)
- run_after_commit(&block)
- else
- # If the current transaction does not include this record, we can run
- # the block now, even if it queues a Sidekiq job.
- Sidekiq::Worker.skipping_transaction_check do
- instance_eval(&block)
- end
- end
- else
- instance_eval(&block)
- end
-
- true
- end
-
- protected
-
- def _run_after_commit_queue
- while action = _after_commit_queue.pop
- self.instance_eval(&action)
- end
- end
-
- def _after_commit_queue
- @after_commit_queue ||= []
- end
-
- def _clear_after_commit_queue
- _after_commit_queue.clear
- end
-end