module Mongoid::Extensions::Date::ClassMethods
Public Instance Methods
demongoize(object)
click to toggle source
Convert the object from its mongo friendly ruby type to this type.
@example Demongoize the object.
Date.demongoize(object)
@param [ Time
] object The time from Mongo.
@return [ Date
| nil ] The object as a date or nil.
# File lib/mongoid/extensions/date.rb, line 44 def demongoize(object) return if object.nil? if object.is_a?(String) object = begin object.__mongoize_time__ rescue ArgumentError nil end end if object.acts_like?(:time) || object.acts_like?(:date) ::Date.new(object.year, object.month, object.day) end end
mongoize(object)
click to toggle source
Turn the object from the ruby type we deal with to a Mongo friendly type.
@example Mongoize the object.
Date.mongoize("2012-1-1")
@param [ Object
] object The object to mongoize.
@return [ Time
| nil ] The object mongoized or nil.
# File lib/mongoid/extensions/date.rb, line 68 def mongoize(object) return if object.blank? begin if object.is_a?(String) # https://jira.mongodb.org/browse/MONGOID-4460 time = ::Time.parse(object) elsif object.respond_to?(:__mongoize_time__) time = object.__mongoize_time__ else nil end rescue ArgumentError nil end if time.acts_like?(:time) ::Time.utc(time.year, time.month, time.day) end end