Module: RunAfterCommit

Defined in:
lib/run_after_commit.rb,
lib/run_after_commit/version.rb

Constant Summary collapse

VERSION =
"0.0.1"

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



5
6
7
8
# 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

Instance Method Details

#run_after_commit(method = nil, &block) ⇒ Object



10
11
12
13
14
15
16
17
# 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