Sha256: c5078a276cbb388c35a99c1021455ea85fd4f4ea4102d404ffcfd211fb91036e
Contents?: true
Size: 913 Bytes
Versions: 1
Compression:
Stored size: 913 Bytes
Contents
require "run_after_commit/version" module RunAfterCommit def self.included(base) base.after_commit :run_after_commit_queue base.after_rollback :clear_after_commit_queue end 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 def run_after_commit_queue after_commit_queue.each do |action| self.instance_eval(&action) end ensure clear_after_commit_queue end 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 def clear_after_commit_queue self.class.connection.instance_variable_set "@run_after_commit_queue", [] true end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
run_after_commit-0.0.1 | lib/run_after_commit.rb |