Sha256: b8f1be6b8bb54e1c7376754e29562a73ad7f4be1415281706563e71761be7ac6
Contents?: true
Size: 1.93 KB
Versions: 24
Compression:
Stored size: 1.93 KB
Contents
# encoding: utf-8 module Mongoid module Extensions module BigDecimal # Convert the big decimal to an $inc-able value. # # @example Convert the big decimal. # bd.__to_inc__ # # @return [ Float ] The big decimal as a float. # # @since 3.0.3 def __to_inc__ to_f end # Turn the object from the ruby type we deal with to a Mongo friendly # type. # # @example Mongoize the object. # object.mongoize # # @return [ Object ] The object. # # @since 3.0.0 def mongoize to_s end # Is the BigDecimal a number? # # @example Is the object a number?. # object.numeric? # # @return [ true ] Always true. # # @since 6.0.0 def numeric? true end module ClassMethods # Convert the object from its mongo friendly ruby type to this type. # # @example Demongoize the object. # Object.demongoize(object) # # @param [ Object ] object The object to demongoize. # # @return [ BigDecimal, nil ] A BigDecimal derived from the object or nil. # # @since 3.0.0 def demongoize(object) object && object.numeric? ? ::BigDecimal.new(object.to_s) : nil end # Mongoize an object of any type to how it's stored in the db as a String. # # @example Mongoize the object. # BigDecimal.mongoize(123) # # @param [ Object ] object The object to Mongoize # # @return [ String, nil ] A String representing the object or nil. # # @since 3.0.7 def mongoize(object) object && object.numeric? ? object.to_s : nil end end end end end ::BigDecimal.__send__(:include, Mongoid::Extensions::BigDecimal) ::BigDecimal.extend(Mongoid::Extensions::BigDecimal::ClassMethods)
Version data entries
24 entries across 22 versions & 2 rubygems