18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
# File 'lib/promiscuous/publisher/model.rb', line 18
def setup_class_binding
super
klass.class_eval do
cattr_accessor :publisher_operation_hooked
return if self.publisher_operation_hooked
self.publisher_operation_hooked = true
[:create, :update, :destroy].each do |operation|
__send__("after_#{operation}", "promiscuous_publish_#{operation}".to_sym)
define_method "promiscuous_publish_#{operation}" do
self.class.promiscuous_publisher.new(:instance => self, :operation => operation).publish
end
end
def promiscuous_sync(options={})
options = options.merge({ :instance => self, :operation => :update, :defer => false })
self.class.promiscuous_publisher.new(options).publish
true
end
end if klass
end
|