class SyncClient::QueuePublisher

Attributes

sync_queues[RW]

Public Class Methods

new() click to toggle source
# File lib/sync_client/queue_publisher.rb, line 5
def initialize
  self.sync_queues = []
end

Public Instance Methods

add_publisher(attributes, options) click to toggle source
# File lib/sync_client/queue_publisher.rb, line 9
def add_publisher(attributes, options)
  self.sync_queues << SyncClient::SyncQueue.new(attributes, options)
end
publish(action, object, options = {}) click to toggle source
# File lib/sync_client/queue_publisher.rb, line 13
def publish(action, object, options = {})
  sync_queues.each do |sync_queue|
    SyncClient.logger.info("#{sync_queue.inspect}")
    queue_message(action, object, sync_queue.queue).publish if options[:force] || sync_queue.publishable?(action, object)
  end
end
queue_message(action, object, queue) click to toggle source
# File lib/sync_client/queue_publisher.rb, line 20
def queue_message(action, object, queue)
  SyncClient::PubMessage.new(
    :queue => queue,
    :action => action,
    :object_type => object.class.to_s,
    :object_attributes => object.publisher_attributes)
end