Module: AfterCommit
- Defined in:
- lib/after_commit.rb
Defined Under Namespace
Modules: ActiveRecord, ConnectionAdapters
Class Method Summary
collapse
Class Method Details
.clear ⇒ Object
7
8
9
|
# File 'lib/after_commit.rb', line 7
def self.clear
Thread.current[:after_commit] = nil
end
|
.touched_records(type) ⇒ Object
2
3
4
5
|
# File 'lib/after_commit.rb', line 2
def self.touched_records(type)
h = (Thread.current[:after_commit] ||= {})
h[type] ||= []
end
|
.trigger ⇒ Object
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
# File 'lib/after_commit.rb', line 11
def self.trigger
begin
[:create, :update, :destroy].each do |type|
callback_name = "after_commit_on_#{type}"
touched_records(type).each do |record|
begin
record.send(callback_name) if record.respond_to?(callback_name)
rescue => e
puts e
end
end
end
ensure
self.clear
end
end
|