10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
# File 'lib/marples/model_action_broadcast.rb', line 10
def self.included base
base.class_eval do
class_attribute :marples_transport
class_attribute :marples_client_name
class_attribute :marples_logger
self.marples_logger = NullLogger.instance
CALLBACKS.each do |callback|
callback_action = callback.to_s =~ /e$/ ? "#{callback}d" : "#{callback}ed"
after_callback = "after_#{callback}"
next unless respond_to? after_callback
notify = lambda { |record| record.broadcast_action(callback_action) }
if TRANSACTION_ACTIONS.include?(callback) && respond_to?(:after_commit)
after_commit :on => callback, ¬ify
else
send after_callback, ¬ify
end
end
def self.marples_client
@marples_client ||= build_marples_client
end
def self.build_marples_client
Marples::Client.new transport: marples_transport,
client_name: marples_client_name, logger: marples_logger
end
end
end
|