class Announcer::Publishers::ResquePublisher

Public Class Methods

new(instance=nil, params={}) click to toggle source
Calls superclass method Announcer::Publishers::Publisher::new
# File lib/announcer/publishers/resque_publisher.rb, line 8
def initialize(instance=nil, params={})
  super
  _disallow_multiple_per_instance
end
subscription_queue_formatter(config) click to toggle source
# File lib/announcer/publishers/resque_publisher.rb, line 27
def subscription_queue_formatter(config)
  if config.subscription_queue_formatter?
    formatter = config.subscription_queue_formatter
    case formatter
    when Array
      formatter.last
    when Proc
      formatter
    else
      raise Errors::PublisherError, "Invalid subscription_queue_formatter: #{formatter.inspect}"
    end
  else
    lambda { |subscription| "subscriptions_p#{subscription.priority}" }
  end
end

Public Instance Methods

publish(event) click to toggle source
# File lib/announcer/publishers/resque_publisher.rb, line 13
def publish(event)
  super

  unless event.subscriptions.empty?
    PublisherJob.set_queue(config.publisher_queue.to_sym)
    Resque.enqueue(PublisherJob, event.serialize)
  end
end
subscription_queue_formatter() click to toggle source
# File lib/announcer/publishers/resque_publisher.rb, line 22
def subscription_queue_formatter
  self.class.subscription_queue_formatter(config)
end

Private Instance Methods

_disallow_multiple_per_instance() click to toggle source
# File lib/announcer/publishers/resque_publisher.rb, line 79
def _disallow_multiple_per_instance
  if instance.has_publisher?(:resque)
    raise Errors::PublisherError,
      "cannot have multiple ResquePublishers in an Announcer instance"
  end
end