class Mongoid::Atomic::Modifiers

Public Instance Methods

add_each_operation(mods, field, value) click to toggle source
# File lib/patches/push_each.rb, line 41
def add_each_operation(mods, field, value)
  value = Array.wrap(value)
  if mods.has_key?(field)
    value.each do |val|
      mods[field]["$each"].push(val)
    end
  else
    mods[field] = { "$each" => value }
  end
end
conflicting_pushes() click to toggle source
# File lib/patches/push_each.rb, line 52
def conflicting_pushes
  conflicts["$push"] ||= {}
end
push(modifications) click to toggle source
# File lib/patches/push_each.rb, line 33
def push(modifications)
  modifications.each_pair do |field, value|
    push_fields[field] = field
    mods = push_conflict?(field) ? conflicting_pushes : pushes
    add_each_operation(mods, field, value)
  end
end
pushes() click to toggle source
# File lib/patches/push_each.rb, line 56
def pushes
  self["$push"] ||= {}
end