module Mongoid::Criteria::Queryable::Extensions::Object::ClassMethods

Public Instance Methods

evolve(object) click to toggle source

Evolve the object.

@note This is here for API compatibility.

@example Evolve an object.

Object.evolve("test")

@return [ Object ] The provided object.

@since 1.0.0

# File lib/mongoid/criteria/queryable/extensions/object.rb, line 169
def evolve(object)
  object
end

Private Instance Methods

__evolve__(object) { |object| ... } click to toggle source

Evolve the object.

@api private

@todo Durran refactor out case statement.

@example Evolve an object and yield.

Object.evolve("test") do |obj|
  obj.to_s
end

@return [ Object ] The evolved object.

@since 1.0.0

# File lib/mongoid/criteria/queryable/extensions/object.rb, line 189
def __evolve__(object)
  return nil if object.nil?
  case object
  when ::Array
    object.map{ |obj| evolve(obj) }
  when ::Range
    { "$gte" => evolve(object.min), "$lte" => evolve(object.max) }
  else
    yield(object)
  end
end