class SyncClient::SyncQueue

Constants

CALLBACK_DEFAULTS

Attributes

attributes[RW]
callbacks[RW]
options[RW]
queue[RW]

Public Class Methods

new(attributes, options) click to toggle source
# File lib/sync_client/sync_queue.rb, line 10
def initialize(attributes, options)
  @attributes = attributes
  @queue = options[:to]
  @callbacks = options[:for] ? Array(options[:for]) : CALLBACK_DEFAULTS
  @options = options
end

Public Instance Methods

publishable?(action, object) click to toggle source
# File lib/sync_client/sync_queue.rb, line 17
def publishable?(action, object)
  callbacks.include?(action) and update?(action, object) and resolve_condition(object)
end
resolve_condition(object) click to toggle source
# File lib/sync_client/sync_queue.rb, line 25
def resolve_condition(object)
  return true if options[:if].nil? && options[:unless].nil?
  result = options[:if] == true || (options[:if].respond_to?(:call) && options[:if].call(object)) if options.has_key?(:if)
  result = options[:unless] == false || (options[:unless].respond_to?(:call) && !options[:unless].call(object)) if options.has_key?(:unless)
  result
end
update?(action, object) click to toggle source
# File lib/sync_client/sync_queue.rb, line 21
def update?(action, object)
  action.to_s != 'update' || object.any_attributes_changed?(attributes)
end