Módulo: Mongoid::Persistable::Multipliable
- Estendido por:
- ActiveSupport::Concern
- Incluído em:
- Mongoid::Persistable
- Definido em:
- lib/mongoid/persistable/multipliable.rb
Visão geral
Define o comportamento para operações $mul.
Recolhimento do Resumo do método de instância
-
#mul(fatores) ➤ Documento
Multiplique os campos fornecidos pelos valores correspondentes.
Detalhes do método de instância
#mul(fatores) ➤ Documento
Multiplique os campos fornecidos pelos valores correspondentes. Os valores podem ser positivos ou negativos e, se não existir nenhum valor para o campo , ele será definido como zero.
21 22 23 24 25 26 27 28 29 30 31 32 33 |
# Arquivo 'lib/mongoid/persistable/multipliable.rb', linha 21 def mul(fatores) prepare_atomic_operation fazer |ops| process_atomic_operations(fatores) fazer |Campo, valor| fator = valor.is_a?(BigDecimal) ? valor.to_f : valor Current = attributes[Campo] new_value = (Current || 0) * fator process_attribute Campo, new_value se execution_atomicly? attributes[Campo] = new_value ops[atomic_attribute_name(Campo)] = fator end { "$mul" => ops } a menos que ops.vazio? end end |