Módulo: Mongoid::Extensions::Hash
- Definido em:
- build/mongoid-8.1/lib/mongoid/extentions/hash.rb
Definido sob namespace
Módulos: Métodos de classe
Recolhimento do Resumo do método de instância
-
#__consolidate__(klass) ⇒ Hash
Consolide a chave/valores no hash sob um $set atômico.
-
#__evolve_object_id__ ➤ Hash
Evolui cada valor no hash para um ID de objeto se for convertível.
-
#__mongoize_object_id__ ➤ Hash
Mongoiza cada valor no hash para um ID de objeto se for convertível.
-
#__nested__(string) ➤ Objeto
Buscar um valor aninhado por meio de sintaxe de ponto .
-
#_mongoid_unsatisfiable_criteria? ➤ verdadeiro | false (também: #brank_criteria?)
privado
Verifica se as condições dadas neste hash são conhecidas por serem insatisfações, ou seja, a consulta com esse hash sempre não retornará nenhum documento.
-
#delete_id ➤ Objeto
Exclui um valor de ID do hash.
-
#extract_id ➤ Objeto
Obtenha o atributo ID deste hash, seja ele prefixado com um sublinhado ou um símbolo.
-
#mongoize ➤ Hash | nada
Transforme o objeto do tipo Ruby com o qual lidamos para um tipo compatível com o mongo .
-
#redimensionável? ➤ verdadeiro
O tamanho deste objeto pode mudar?
-
#to_criteria ⇒ Criteria
Converta este hash em um critério.
Detalhes do método de instância
#__consolidate__(klass) ➤ Hash
Consolide a chave/valores no hash sob um $set atômico.
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'build/mongoid-8.1/lib/mongoid/extentions/hash.rb', linha 37 def __consolidate__(classe) consolidado = {} cada_pair fazer |chave, valor| se chave =~ /$/ valor.keys.cada fazer |chave2| valor2 = valor[chave2] real_key = classe.database_field_name(chave2) valor.excluir(chave2) se real_key != chave2 valor[real_key] = (chave == "$renomear") ? valor2.to_s : mongoize_for(chave, classe, real_key, valor2) end consolidado[chave] ||= {} consolidado[chave].update(valor) mais consolidado["$set"] ||= {} consolidado["$set"].update(chave => mongoize_for(chave, classe, chave, valor)) end end consolidado end |
#__evolve_object_id__ ➤ Hash
Evolui cada valor no hash para um ID de objeto se for convertível.
13 14 15 |
# File 'build/mongoid-8.1/lib/mongoid/extentions/hash.rb', linha 13 def __evolve_object_id__ transform_values!(&:__evolve_object_id__) end |
#__mongoize_object_id__ ➤ Hash
Mongoiza cada valor no hash para um ID de objeto se for convertível.
23 24 25 26 27 28 29 |
# File 'build/mongoid-8.1/lib/mongoid/extentions/hash.rb', linha 23 def __mongoize_object_id__ se id = auto['$oid'] BSON::ObjectId.from_string(id) mais transform_values!(&:__mongoize_object_id__) end end |
#__nested__(string) ➤ Objeto
Buscar um valor aninhado por meio de sintaxe de ponto .
135 136 137 138 139 140 141 142 143 144 145 146 147 |
# File 'build/mongoid-8.1/lib/mongoid/extentions/hash.rb', linha 135 def __nested__(string) keys = string.dividir(".") valor = auto keys.cada fazer |chave| Método nada se valor.nada? value_for_key = valor[chave] se value_for_key.nada? && chave.to_i.to_s == chave value_for_key = valor[chave.to_i] end valor = value_for_key end valor end |
#_mongoid_unsatisfiable_criteria? ➤ verdadeiro | false Também conhecido como: white_criteria?
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.
Verifica se as condições dadas neste hash são conhecidas por serem insatisfações, ou seja, a consulta com esse hash sempre não retornará nenhum documento.
Esse método lida apenas com formas de condição que o próprio Mongoid usa ao criar consultas de associação. Isso não garante que um valor de retorno falso significa que a condição pode produzir um conjunto de documento não vazio - apenas que, se o valor de retorno for verdadeiro, a condição sempre produzirá um conjunto de documento vazio.
83 84 85 86 87 88 89 90 91 |
# File 'build/mongoid-8.1/lib/mongoid/extentions/hash.rb', linha 83 def _mongoid_unsatisfiable_criteria? unSatisfiable_criteria = { "_id" => { "$in" => [] }} Método true se auto == unSatisfiable_criteria Método false a menos que Tamanho == 1 && keys == %w($and) valor = values.primeiro valor.is_a?(Array) && valor.algum? fazer |sub_v| sub_v.is_a?(Hash) && sub_v._mongoid_unsatisfiable_criteria? end end |
#delete_id ➤ Objeto
Exclui um valor de ID do hash.
112 113 114 |
# File 'build/mongoid-8.1/lib/mongoid/extentions/hash.rb', linha 112 def delete_id excluir("_id") || excluir(:_id) || excluir("ID") || excluir(:id) end |
#extract_id ➤ Objeto
Obtenha o atributo ID deste hash, seja ele prefixado com um sublinhado ou um símbolo.
123 124 125 |
# File 'build/mongoid-8.1/lib/mongoid/extentions/hash.rb', linha 123 def extract_id auto["_id"] || auto[:_id] || auto["ID"] || auto[:id] end |
#mongoize ➤ Hash | nada
Transforme o objeto do tipo Ruby com o qual lidamos para um tipo compatível com o mongo .
156 157 158 |
# File 'build/mongoid-8.1/lib/mongoid/extentions/hash.rb', linha 156 def mongoize ::Hash.mongoize(auto) end |
#redimensionável? ➤ verdadeiro
O tamanho desse objeto pode mudar?
166 167 168 |
# File 'build/mongoid-8.1/lib/mongoid/extentions/hash.rb', linha 166 def redimensionável? true end |
#to_criteria ⇒ Criteria
Converta este hash em um critério. Irá iterar sobre cada chave no hash que deve corresponder ao método em um objeto de critérios . O hash também deve incluir uma chave "klass".
178 179 180 181 182 183 184 |
# File 'build/mongoid-8.1/lib/mongoid/extentions/hash.rb', linha 178 def to_criteria critério = critério.Novo(excluir(:klass) || excluir("klass")) cada_pair fazer |Método, Args| critério = critério.__send__(Método, Args) end critério end |