Module: Mongoid::Extensions::BigDecimal::ClassMethods
- Defined in:
- lib/mongoid/extensions/big_decimal.rb
Instance Method Summary collapse
-
#demongoize(object) ⇒ BigDecimal | nil
Convert the object from its mongo friendly ruby type to this type.
-
#mongoize(object) ⇒ String | BSON::Decimal128 | nil
Mongoize an object of any type to how it’s stored in the db.
Instance Method Details
#demongoize(object) ⇒ BigDecimal | nil
Convert the object from its mongo friendly ruby type to this type.
56 57 58 59 60 61 62 63 |
# File 'lib/mongoid/extensions/big_decimal.rb', line 56 def demongoize(object) return if object.blank? if object.is_a?(BSON::Decimal128) object.to_big_decimal elsif object.numeric? object.to_d end end |
#mongoize(object) ⇒ String | BSON::Decimal128 | nil
Mongoize an object of any type to how it’s stored in the db.
75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
# File 'lib/mongoid/extensions/big_decimal.rb', line 75 def mongoize(object) return if object.blank? if Mongoid.map_big_decimal_to_decimal128 if object.is_a?(BSON::Decimal128) object elsif object.is_a?(BigDecimal) BSON::Decimal128.new(object) elsif object.numeric? BSON::Decimal128.new(object.to_s) elsif !object.is_a?(String) object.try(:to_d) end else if object.is_a?(BSON::Decimal128) || object.numeric? object.to_s elsif !object.is_a?(String) object.try(:to_d)&.to_s end end end |