Módulo: Mongoid::Criteria::Queryable::Extensions::BigDecimal::ClassMethods

Definido em:
lib/mongoid/criteria/queryable/extentions/big_decimal.rb

Recolhimento do Resumo do método de instância

Detalhes do método de instância

#evolua(objeto) ➤ Objeto

Evolui o grande decimal para um valor compatível com o MongoDB .

Exemplos:

Evolua o grande decimal

BigDecimal.evolve(decimal)

Parâmetros:

  • objeto (BIGDecimal)

    O objeto a ser convertido.

Retorna:

  • (Objeto)

    O decimal grande como uma string, um decimal128 ou o objeto inserido se não for atribuível.



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/mongoid/criteria/queryable/extentions/big_decimal.rb', linha 21

def evolua(objeto)
  __evolve__(objeto) fazer |obj|
    Método se obj.nada?

    caso obj
    quando ::BigDecimal
      se Mongoid.map_big_decimal_to_decimal128
        BSON::Decimal128.Novo(obj)
      mais
        obj.to_s
      end
    quando BSON::Decimal128 então obj
    mais
      se obj.numérico?
        se Mongoid.map_big_decimal_to_decimal128
          BSON::Decimal128.Novo(objeto.to_s)
        mais
          obj.to_s
        end
      mais
        obj
      end
    end
  end
end