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.

# File lib/mongoid/criteria/queryable/extensions/object.rb, line 147
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.

# File lib/mongoid/criteria/queryable/extensions/object.rb, line 165
def __evolve__(object)
  return nil if object.nil?
  case object
  when ::Array
    object.map{ |obj| evolve(obj) }
  when ::Range
    object.__evolve_range__
  else
    res = yield(object)
    res.nil? ? object : res
  end
end