module Mongoid::Extensions::Range::ClassMethods

Public Instance Methods

demongoize(object) click to toggle source

Convert the object from its mongo friendly ruby type to this type.

@example Demongoize the object.

Range.demongoize({ "min" => 1, "max" => 5 })

@param [ Hash ] object The object to demongoize.

@return [ Range ] The range.

@since 3.0.0

# File lib/mongoid/extensions/range.rb, line 57
def demongoize(object)
  object.nil? ? nil : ::Range.new(object["min"], object["max"], object["exclude_end"])
end
mongoize(object) click to toggle source

Turn the object from the ruby type we deal with to a Mongo friendly type.

@example Mongoize the object.

Range.mongoize(1..3)

@param [ Range ] object The object to mongoize.

@return [ Hash ] The object mongoized.

@since 3.0.0

# File lib/mongoid/extensions/range.rb, line 72
def mongoize(object)
  return nil if object.nil?
  return object if object.is_a?(::Hash)
  return object if object.is_a?(String)
  hash = { "min" => object.first, "max" => object.last }
  if object.respond_to?(:exclude_end?) && object.exclude_end?
    hash.merge!("exclude_end" => true)
  end
  hash
end