Clase: Mongoid::Atomic::Modifiers
- Hereda:
-
encriptada
- Objeto
- encriptada
- Mongoid::Atomic::Modifiers
- Definido en:
- lib/mongoid/atomic/modifiers.rb
Overview
Esta clase contiene la lógica para admitir operaciones atómicas en la base de datos.
Resumen del método de instancia colapsar
-
#add_to_set(modifications) ⇒ objeto
Agrega los modificadores atómicos $addToSet al hash.
-
#pull(modificaciones) ⇒ Object
Agrega todos los modificadores extractados al hash de modificadores.
-
#pull_all(modifications) ⇒ Object
Agrega todos los modificadores extractados al hash de modificadores.
-
#push(modificaciones) ⇒ Objeto
Adds push modifiers to the modifiers hash.
-
#set(modificaciones) ⇒ Objeto
Agrega operaciones de conjunto al hash de modificadores.
-
#unset(modificaciones) ⇒ Objeto
Añade operaciones unset al hash de modificadores.
Detalles del método de instancia
#add_to_set(modificaciones) ⇒ objeto
Agrega los modificadores atómicos $addToSet al hash.
14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/mongoid/atomic/modifiers.rb', line 14 def Añadir a conjunto(modificaciones) modificaciones.each_pair hacer |Campo, Valor| si Agregar a sets.has_key?(Campo) Valor.cada hacer |val| Agregar a sets[Campo]['$each'].push(val) end else Agregar a sets[Campo] = { '$each' => Valor } end end end |
#pull(modificaciones) ⇒ Objeto
Agrega todos los modificadores extractados al hash de modificadores.
45 46 47 48 49 50 |
# File 'lib/mongoid/atomic/modifiers.rb', line 45 def tirar(modificaciones) modificaciones.each_pair hacer |Campo, Valor| extracciones[Campo] = Valor pull_fields[Campo.división('.', 2)[0]] = Campo end end |
#pull_all(modificaciones) ⇒ objeto
Agrega todos los modificadores extractados al hash de modificadores.
32 33 34 35 36 37 |
# File 'lib/mongoid/atomic/modifiers.rb', line 32 def pull_all(modificaciones) modificaciones.each_pair hacer |Campo, Valor| add_operation(pull_alls, Campo, Valor) pull_fields[Campo.división('.', 2)[0]] = Campo end end |
#push(modificaciones) ⇒ Objeto
Adds push modifiers to the modifiers hash.
58 59 60 61 62 63 64 |
# File 'lib/mongoid/atomic/modifiers.rb', line 58 def push(modificaciones) modificaciones.each_pair hacer |Campo, Valor| push_fields[Campo] = Campo mods = ¿conflicto_de_empuje?(Campo) ? conflicting_pushes : empuja add_operation(mods, Campo, { '$each' => Arreglo.ajustar(Valor) }) end end |
#set(modificaciones) ⇒ objeto
Agrega operaciones de conjunto al hash de modificadores.
72 73 74 75 76 77 78 79 80 |
# File 'lib/mongoid/atomic/modifiers.rb', line 72 def Configura(modificaciones) modificaciones.each_pair hacer |Campo, Valor| Next si Campo == '_id' mods = set_conflict?(Campo) ? conflicting_sets : conjuntos add_operation(mods, Campo, Valor) set_fields[Campo.división('.', 2)[0]] = Campo end end |
#unset(modificaciones) ⇒ Objeto
Añade operaciones unset al hash de modificadores.
88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 |
# File 'lib/mongoid/atomic/modifiers.rb', line 88 def Sin establecer(modificaciones) modificaciones.cada hacer |Campo| Campo = Campo.to_s si ¿conflicto_deseleccionado?(Campo) # Si el $set en conflicto cubre todo el campo principal (no solo un # sub-path), escribe el estado actual completo, que ya # refleja este valor no establecido. Sáltate $unset: es redundante. Next si unset_superseded_by_set?(Campo) conflicting_unsets.update(Campo => true) else No establecidos.update(Campo => true) end end end |