Module: SyncableModels::Syncable

Defined in:
lib/syncable_models/syncable.rb

Instance Method Summary collapse

Instance Method Details

#syncable(options = {}) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/syncable_models/syncable.rb', line 5

def syncable(options = {})
  options.assert_valid_keys(:id_key, :scope, :conditions)

  class_attribute :syncable_models_id_key
  class_attribute :syncable_models_scope
  class_attribute :syncable_models_conditions

  self.syncable_models_id_key = options[:id_key] || :uuid
  self.syncable_models_scope = options[:scope] || nil
  self.syncable_models_conditions = options[:conditions] || {}

  include SyncableModels::ActiveRecord
end

#syncable_models_suitable(destination) ⇒ Object



19
20
21
22
23
24
25
26
27
# File 'lib/syncable_models/syncable.rb', line 19

def syncable_models_suitable(destination)
  result = syncable_models_scope? ? self.send(syncable_models_scope) : self

  if syncable_models_conditions[destination].present?
    result = syncable_models_conditions[destination].call
  end

  result
end