This class contains the logic for supporting atomic operations against the database.
Adds pull modifiers to the modifiers hash.
@example Add pull operations.
modifiers.pull({ "addresses" => { "street" => "Bond" }})
@param [ Hash ] modifications The pull modifiers.
@since 2.2.0
# File lib/mongoid/atomic/modifiers.rb, line 16 def pull(modifications) modifications.each_pair do |field, value| add_operation(pulls, field, value) pull_fields << field.split(".", 2)[0] end end
Adds push modifiers to the modifiers hash.
@example Add push operations.
modifiers.push({ "addresses" => { "street" => "Bond" }})
@param [ Hash ] modifications The push modifiers.
@since 2.1.0
# File lib/mongoid/atomic/modifiers.rb, line 31 def push(modifications) modifications.each_pair do |field, value| mods = push_conflict?(field) ? conflicting_pushes : pushes add_operation(mods, field, Array.wrap(value)) end end
Adds set operations to the modifiers hash.
@example Add set operations.
modifiers.set({ "title" => "sir" })
@param [ Hash ] modifications The set modifiers.
@since 2.1.0
# File lib/mongoid/atomic/modifiers.rb, line 46 def set(modifications) modifications.each_pair do |field, value| next if field == "_id" mods = set_conflict?(field) ? conflicting_sets : sets add_operation(mods, field, value) set_fields << field.split(".", 2)[0] end end
Adds unset operations to the modifiers hash.
@example Add unset operations.
modifiers.unset([ "addresses" ])
@param [ Array<String> ] modifications The unset relation names.
@since 2.2.0
# File lib/mongoid/atomic/modifiers.rb, line 63 def unset(modifications) modifications.each do |field| unsets.update(field => true) end end
Generated with the Darkfish Rdoc Generator 2.