Method: ArSync.sync_serialize

Defined in:
lib/ar_sync/core.rb

.sync_serialize(target, user, query) ⇒ Object



84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
# File 'lib/ar_sync/core.rb', line 84

def self.sync_serialize(target, user, query)
  case target
  when ArSync::Collection, ArSync::ModelBase
    serialized = ArSerializer.serialize target, query, context: user, use: :sync
    return serialized if target.is_a? ArSync::ModelBase
    {
      _sync: { keys: [ArSync.sync_key(target), ArSync.sync_key(target, user)] },
      ordering: target.ordering,
      collection: serialized
    }
  when ActiveRecord::Relation, Array
    ArSync.serialize target.to_a, query, user: user
  when ArSerializer::Serializable
    ArSync.serialize target, query, user: user
  else
    target
  end
end