Sha256: 17c1f9b8616cfe1ae89716ee45a17a3c742b7513021fa29f17a5ecb5682cfb48

Contents?: true

Size: 717 Bytes

Versions: 66

Compression:

Stored size: 717 Bytes

Contents

# encoding: UTF-8
module MongoMapper
  module Extensions
    module Time
      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

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

class Time
  extend MongoMapper::Extensions::Time
end

Version data entries

66 entries across 66 versions & 7 rubygems

Version Path
mongo_mapper-unstable-2010.06.25 lib/mongo_mapper/extensions/time.rb
mongo_mapper-unstable-2010.06.24 lib/mongo_mapper/extensions/time.rb
mongo_mapper-unstable-2010.06.23 lib/mongo_mapper/extensions/time.rb
mongo_mapper-0.8.2 lib/mongo_mapper/extensions/time.rb
mongo_mapper-0.8.1 lib/mongo_mapper/extensions/time.rb
mongo_mapper-0.8.0 lib/mongo_mapper/extensions/time.rb