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