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



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

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
14
# 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)
    # strip milliseconds as Ruby does micro and bson does milli and rounding rounded wrong
    at(time.to_i).utc if time
  end
end