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