lib/mongo_mapper/extensions/time.rb in mongo_mapper-0.12.0 vs lib/mongo_mapper/extensions/time.rb in mongo_mapper-0.13.0.beta1
- old
+ new
@@ -1,21 +1,23 @@
+require 'active_support/core_ext/time/zones'
+
# encoding: UTF-8
module MongoMapper
module Extensions
module Time
def to_mongo(value)
- if value.nil? || value == ''
+ if !value || '' == value
nil
else
- time_class = ::Time.try(:zone).present? ? ::Time.zone : ::Time
+ time_class = ::Time.zone || ::Time
time = value.is_a?(::Time) ? value : time_class.parse(value.to_s)
- at(time.to_f).utc if time # ensure milliseconds are preserved with to_f (issue #308)
+ at(time.to_i, time.usec / 1000 * 1000).utc
end
end
def from_mongo(value)
- if ::Time.try(:zone).present? && value.present?
- value.in_time_zone(::Time.zone)
+ if value and zone = ::Time.zone
+ value.in_time_zone(zone)
else
value
end
end
end
\ No newline at end of file