Module: Mongoid::Extensions::Time::ClassMethods
- Defined in:
- build/mongoid-master/lib/mongoid/extensions/time.rb
Instance Method Summary collapse
- #configured ⇒ Time deprecated Deprecated.
-
#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
Deprecated.
Get the configured time to use when converting - either the time zone or the time.
42 43 44 |
# File 'build/mongoid-master/lib/mongoid/extensions/time.rb', line 42 def configured ::Time.zone || ::Time end |
#demongoize(object) ⇒ Time | nil
Convert the object from its mongo friendly ruby type to this type.
54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'build/mongoid-master/lib/mongoid/extensions/time.rb', line 54 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 elsif object.is_a?(BSON::Timestamp) ::Time.at(object.seconds) end return if time.nil? time.in_time_zone(Mongoid.time_zone) end |
#mongoize(object) ⇒ Time | nil
Turn the object from the ruby type we deal with to a Mongo friendly type.
84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 |
# File 'build/mongoid-master/lib/mongoid/extensions/time.rb', line 84 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 |