module Aquasync::AggregatedMethods::ClassMethods

Public Instance Methods

append_attributes(delta, opts) click to toggle source

Handle :append_attributes option. @param [Hash]

# File lib/models/concerns/aquasync_aggregated_methods.rb, line 37
def append_attributes(delta, opts)
  return delta unless opts[:append_attributes]
  atr = opts[:append_attributes]
  klass = self.name
  delta.merge!(atr[:all]) if atr[:all]
  delta.merge!(atr[klass]) if atr[klass]
  delta
end
aq_commit_deltas(deltas, opts = {}) click to toggle source

DeltasAggregator requirement @return [NilClass]

# File lib/models/concerns/aquasync_aggregated_methods.rb, line 28
def aq_commit_deltas(deltas, opts = {})
  deltas.each {|d|
    delta = append_attributes(d, opts)
    commit_delta(delta, opts)
  }
end
aq_deltas(ust, opts = {}) click to toggle source

DeltasAggregator requirement @return [Array<Aquasync::Base>]

# File lib/models/concerns/aquasync_aggregated_methods.rb, line 22
def aq_deltas(ust, opts = {})
  begin_of_association_chain(opts).where(:ust.gt => ust)
end
begin_of_association_chain(opts) click to toggle source
# File lib/models/concerns/aquasync_aggregated_methods.rb, line 62
def begin_of_association_chain(opts)
  model = opts[:begin_of_association_chain]
  if(model)
    # current_user Book => current_user.books
    model.send(self.name.downcase.pluralize)
  else
    self
  end
end
commit_delta(delta, opts) click to toggle source

commits a delta. @param [Hash]

# File lib/models/concerns/aquasync_aggregated_methods.rb, line 48
def commit_delta(delta, opts)
  record = begin_of_association_chain(opts).find_by(gid: delta["gid"])
  if record
    record.resolve_conflict(delta)
  else
    create_record_from_delta(delta, opts)
  end
end
create_record_from_delta(delta, opts) click to toggle source

@param [Hash]

# File lib/models/concerns/aquasync_aggregated_methods.rb, line 58
def create_record_from_delta(delta, opts)
  begin_of_association_chain(opts).create!(delta)
end