Get the configured time to use when converting - either the time zone or the time.
@example Get the configured time.
::Time.configured
@retun [ Time ] The configured time.
@since 3.0.0
# File lib/mongoid/extensions/time.rb, line 32 def configured Mongoid.use_activesupport_time_zone? ? (::Time.zone || ::Time) : ::Time end
Convert the object from its mongo friendly ruby type to this type.
@example Demongoize the object.
Time.demongoize(object)
@param [ Time ] object The time from Mongo.
@return [ Time ] The object as a date.
@since 3.0.0
# File lib/mongoid/extensions/time.rb, line 46 def demongoize(object) return nil if object.blank? object = object.getlocal unless Mongoid::Config.use_utc? if Mongoid::Config.use_activesupport_time_zone? object = object.in_time_zone(Mongoid.time_zone) end object end
Turn the object from the ruby type we deal with to a Mongo friendly type.
@example Mongoize the object.
Time.mongoize("2012-1-1")
@param [ Object ] object The object to mongoize.
@return [ Time ] The object mongoized.
@since 3.0.0
# File lib/mongoid/extensions/time.rb, line 66 def mongoize(object) return nil if object.blank? begin time = object.__mongoize_time__ if time.respond_to?(:sec_fraction) ::Time.at(time.to_i, time.sec_fraction * 10**6).utc elsif time.respond_to?(:subsec) ::Time.at(time.to_i, time.subsec * 10**6).utc else ::Time.at(time.to_i, time.usec).utc end rescue ArgumentError EPOCH end end