Parent

Class/Module Index [+]

Quicksearch

Mongoid::Atomic::Modifiers

This class contains the logic for supporting atomic operations against the database.

Public Instance Methods

pull(modifications) click to toggle source

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
push(modifications) click to toggle source

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
set(modifications) click to toggle source

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
unset(modifications) click to toggle source

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

[Validate]

Generated with the Darkfish Rdoc Generator 2.