Clase: Mongoid::AtomicUpdatePreparer Privado

Hereda:
Objeto
  • Objeto
Mostrar todo
Definido en:
lib/mongoid/atomic_update_preparer.rb

Overview

Esta clase forma parte de una API privada. Debe evitar usarla siempre que sea posible, ya que podría eliminarse o modificarse en el futuro.

Una clase singleton para ayudar a preparar atributos para actualizaciones atómicas.

Una vez que el método obsoleto Hash#__consolidate__ se elimina por completo, estos métodos se pueden trasladar a Mongoid::Contextual::Mongo como métodos privados.

Colapso delresumen del método de clase

Detalles del método de clase

.preparar(atributos, clase) ⇒ Hash

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Convierta las claves/valores en los atributos en un hash de actualizaciones atómicas. Se supone que las claves no operadoras utilizan el operador $set.

Parámetros:

  • klass (Clase) -

    La clase modelo.

  • atributos (Hash)

    Los atributos a convertir.

Devuelve:

  • (Hash)

    Las actualizaciones atómicas preparadas.



21
22
23
24
25
26
27
28
29
30
31
# Archivo 'lib/mongoid/atomic_update_preparer.rb', línea 21

def prepare(atributos, klass)
  atributos.each_pair.con_objeto({}) hacer |(clave, valor), atomic_updates|
    clave = klass.nombre_del_campo_de_base_de_datos(clave.a_s)

    Si clave.a_s.empezar_con?('$')
      (atomic_updates[clave] ||= {}).update(preparar_operación(klass, clave, valor))
    else
      (atomic_updates['$set'] ||= {})[clave] = mongoizar_para('$set', klass, clave, valor)
    end
  end
end