module Mongoid::Criteria::Queryable::Extensions::BigDecimal::ClassMethods
Public Instance Methods
evolve(object)
click to toggle source
Evolves the big decimal into a MongoDB friendly value.
@example Evolve the big decimal
BigDecimal.evolve(decimal)
@param [ BigDecimal
] object The object to convert.
@return [ Object
] The big decimal as a string, a Decimal128,
or the inputted object if it is uncastable.
# File lib/mongoid/criteria/queryable/extensions/big_decimal.rb, line 24 def evolve(object) __evolve__(object) do |obj| return if obj.nil? case obj when ::BigDecimal if Mongoid.map_big_decimal_to_decimal128 BSON::Decimal128.new(obj) else obj.to_s end when BSON::Decimal128 then obj else if obj.numeric? if Mongoid.map_big_decimal_to_decimal128 BSON::Decimal128.new(object.to_s) else obj.to_s end else obj end end end end