1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
# encoding: utf-8
module Origin
module Extensions
# This module contains additional datetime behaviour.
module DateTime
# Evolve the date time into a mongo friendly UTC time.
#
# @example Evolve the date time.
# date_time.__evolve_time__
#
# @return [ Time ] The converted time in UTC.
#
# @since 1.0.0
def __evolve_time__
usec = strftime("%6N").to_f
if utc?
::Time.utc(year, month, day, hour, min, sec, usec)
else
::Time.local(year, month, day, hour, min, sec, usec).utc
end
end
module ClassMethods
# Evolve the object to an date.
#
# @example Evolve dates.
#
# @example Evolve string dates.
#
# @example Evolve date ranges.
#
# @param [ Object ] object The object to evolve.
#
# @return [ Time ] The evolved date time.
#
# @since 1.0.0
def evolve(object)
object.__evolve_time__
end
end
end
end
end
::DateTime.__send__(:include, Origin::Extensions::DateTime)
::DateTime.__send__(:extend, Origin::Extensions::DateTime::ClassMethods)
|