Classe: Mongoid::AtomicUpdatePreparer Private

Herda:
Objeto
  • Objeto
mostrar tudo
Definido em:
lib/mongoid/atomic_update_preparer.rb

Visão geral

Esta classe faz parte de uma API privada. Evite usar essa classe, se possível, pois ela pode ser removida ou alterada no futuro.

Uma classe singleton para ajudar na preparação de atributos para atualizações atômicas.

Depois que o método Hash#__consolidate__ obsoleto for totalmente removido, esses métodos podem ser movidos para o Mongoid::Contextual::Mongo como métodos privados.

Recolhimento do Resumo do método de classe

Detalhes do método de classe

.preparar(atributos, klass) ➤ Hash

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Converta a chave/valores nos atributos em um hash de atualizações atômicas. Supõe-se que as chaves que não são do operador usem a operação $set.

Parâmetros:

  • classe (Classe)

    A classe modelo.

  • attributes (Hash)

    Os atributos a serem convertidos.

Retorna:

  • (Hash)

    As atualizações atômicas preparadas.



21
22
23
24
25
26
27
28
29
30
31
# File 'lib/mongoid/atomic_update_preparer.rb', linha 21

def preparar(attributes, classe)
  attributes.cada_pair.with_object({}) fazer |(chave, valor), atomic_updates|
    chave = classe.database_field_name(chave.to_s)

    se chave.to_s.start_with?('$')
      (atomic_updates[chave] ||= {}).update(prepare_operation(classe, chave, valor))
    mais
      (atomic_updates['$set'] ||= {})[chave] = mongoize_for(chave, classe, chave, valor)
    end
  end
end