Module: MongoMapper::Extensions::Time

Included in:
Time
Defined in:
lib/mongo_mapper/extensions/time.rb

Instance Method Summary collapse

Instance Method Details

#from_mongo(value) ⇒ Object



15
16
17
18
19
20
21
# File 'lib/mongo_mapper/extensions/time.rb', line 15

def from_mongo(value)
  if ::Time.try(:zone).present? && value.present?
    value.in_time_zone(::Time.zone)
  else
    value
  end
end

#to_mongo(value) ⇒ Object



5
6
7
8
9
10
11
12
13
# File 'lib/mongo_mapper/extensions/time.rb', line 5

def to_mongo(value)
  if value.nil? || value == ''
    nil
  else
    time_class = ::Time.try(:zone).present? ? ::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)
  end
end