Sha256: 3b0ba1eba8c9ac6b43d973b672dffc0d5971c0da8b96736eb15d2b63450f8e7f
Contents?: true
Size: 840 Bytes
Versions: 2
Compression:
Stored size: 840 Bytes
Contents
require 'active_support/all' require 'enumerable/associate' require 'mongoid' module Mongoid class TimeRange < Hash def initialize(from = Time.now, to = nil) merge!(from: from, to: to) end [:from, :to].each do |key| define_method key do self[key] end define_method :"#{key}=" do |value| self[key] = value end end alias_method :to_a, :values def mongoize self.class.mongoize(self) end class << self def mongoize(object) [:from, :to].associate { |key| Time.mongoize(object[key]) } end def demongoize(hash) return nil if hash.nil? hash = hash.symbolize_keys hash = [:from, :to].associate { |key| Time.demongoize(hash[key]) } new.merge(hash) end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
mongoid-time_range-0.4.1 | lib/mongoid/time_range.rb |
mongoid-time_range-0.4.0 | lib/mongoid/time_range.rb |