Module: MultipleMan::Publisher

Defined in:
lib/multiple_man/mixins/publisher.rb

Defined Under Namespace

Modules: ClassMethods

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/multiple_man/mixins/publisher.rb', line 5

def Publisher.included(base)
  base.extend(ClassMethods)
  if base.respond_to?(:after_commit)
    base.after_commit(on: :create) { |r| r.multiple_man_publish(:create) }
    base.after_commit(on: :update) do |r|
      if !r.respond_to?(:previous_changes) || r.previous_changes.any?
        r.multiple_man_publish(:update)
      end
    end
    base.after_commit(on: :destroy) { |r| r.multiple_man_publish(:destroy) }
  end

  base.class_attribute :multiple_man_publisher
end

Instance Method Details

#multiple_man_publish(operation = :create) ⇒ Object



20
21
22
# File 'lib/multiple_man/mixins/publisher.rb', line 20

def multiple_man_publish(operation=:create)
  self.class.multiple_man_publisher.publish(self, operation)
end