module RunAfterCommit
Constants
- VERSION
Public Class Methods
included(base)
click to toggle source
# File lib/run_after_commit.rb, line 5 def self.included(base) base.after_commit :run_after_commit_queue base.after_rollback :clear_after_commit_queue end
Public Instance Methods
run_after_commit(method = nil, &block)
click to toggle source
# File lib/run_after_commit.rb, line 10 def run_after_commit(method = nil, &block) after_commit_queue << Proc.new { send method } if method after_commit_queue << block if block run_after_commit_queue if self.class.connection.open_transactions.zero? true end
Protected Instance Methods
after_commit_queue()
click to toggle source
# File lib/run_after_commit.rb, line 29 def after_commit_queue self.class.connection.instance_variable_get("@run_after_commit_queue") || self.class.connection.instance_variable_set("@run_after_commit_queue", []) end
clear_after_commit_queue()
click to toggle source
# File lib/run_after_commit.rb, line 33 def clear_after_commit_queue self.class.connection.instance_variable_set "@run_after_commit_queue", [] true end
run_after_commit_queue()
click to toggle source
# File lib/run_after_commit.rb, line 21 def run_after_commit_queue after_commit_queue.each do |action| self.instance_eval(&action) end ensure clear_after_commit_queue end