module MultipleMan::Publisher

Public Class Methods

included(base) click to toggle source
# 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

Public Instance Methods

multiple_man_publish(operation=:create) click to toggle source
# File lib/multiple_man/mixins/publisher.rb, line 20
def multiple_man_publish(operation=:create)
  self.class.multiple_man_publisher.publish(self, operation)
end