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

Definido en:
lib/mongoid/extensions/big_decimal.rb

Resumen del método de instancia colapsar

Detalles del método de instancia

#demongoize(objeto) ⇒ BigDecimal | nil

Convierte el objeto de su tipo Ruby compatible con mongo a este tipo.

Parámetros:

  • Objeto (objeto)

    El objeto a desmongocionar.

Devuelve:

  • (BigDecimal | nil)

    Un BigDecimal derivado del objeto o nil.



55
56
57
58
59
60
61
62
63
# Archivo 'lib/mongoid/extensions/big_decimal.rb', línea 55

def desmongoizar(Objeto)
  return si Objeto.blank?

  si Objeto.is_a?(BSON::Decimal128)
    Objeto.to_big_decimal
  elsif Objeto.numeric?
    Objeto.to_d
  end
end

#mongoize(objeto) ⇒ String | BSON::Decimal128 | nil

Mongolizar un objeto de cualquier tipo para almacenarlo en la base de datos como se almacena.

Ejemplos:

Mongoize el objeto.

BigDecimal.mongoize(123)

Parámetros:

  • Objeto (objeto)

    El objeto para Mongoize

Devuelve:

  • (String | BSON::Decimal128 | nil)

    Un string o Decimal128 que representa el objeto o nil. String si Mongoid.map_big_decimal_to_decimal128 es falso, BSON::Decimal128 si no.



75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
# Archivo 'lib/mongoid/extensions/big_decimal.rb', línea 75

def mongoize(Objeto)
  return si Objeto.blank?

  si Mongoid.map_big_decimal_to_decimal128
    si Objeto.is_a?(BSON::Decimal128)
      Objeto
    elsif Objeto.is_a?(BigDecimal)
      BSON::Decimal128.Nuevo(Objeto)
    elsif Objeto.numeric?
      BSON::Decimal128.Nuevo(Objeto.to_s)
    elsif !Objeto.is_a?(String)
      Objeto.intentar(to_d)
    end
  elsif Objeto.is_a?(BSON::Decimal128) || Objeto.numeric?
    Objeto.to_s
  elsif !Objeto.is_a?(String)
    Objeto.intentar(to_d)&.to_s
  end
end