Module: Mongoid::Extensions::Time::ClassMethods
- Defined in:
- lib/mongoid/extensions/time.rb
Instance Method Summary collapse
-
#configured ⇒ Time
Get the configured time to use when converting - either the time zone or the time.
-
#demongoize(object) ⇒ Time | nil
Convert the object from its mongo friendly ruby type to this type.
-
#mongoize(object) ⇒ Time | nil
Turn the object from the ruby type we deal with to a Mongo friendly type.
Instance Method Details
#configured ⇒ Time
Get the configured time to use when converting - either the time zone or the time.
37 38 39 |
# File 'lib/mongoid/extensions/time.rb', line 37 def configured Mongoid.use_activesupport_time_zone? ? (::Time.zone || ::Time) : ::Time end |
#demongoize(object) ⇒ Time | nil
Convert the object from its mongo friendly ruby type to this type.
49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/mongoid/extensions/time.rb', line 49 def demongoize(object) return if object.blank? time = if object.acts_like?(:time) Mongoid::Config.use_utc? ? object : object.getlocal elsif object.acts_like?(:date) ::Date.demongoize(object).to_time elsif object.is_a?(String) begin object.__mongoize_time__ rescue ArgumentError nil end end return if time.nil? if Mongoid::Config.use_activesupport_time_zone? time.in_time_zone(Mongoid.time_zone) else time end end |
#mongoize(object) ⇒ Time | nil
Turn the object from the ruby type we deal with to a Mongo friendly type.
81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 |
# File 'lib/mongoid/extensions/time.rb', line 81 def mongoize(object) return if object.blank? begin time = object.__mongoize_time__ rescue ArgumentError return end if time.acts_like?(:time) if object.respond_to?(:sec_fraction) ::Time.at(time.to_i, object.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 end end |