module Mongoid::Criteria::Queryable
A queryable is any object that needs queryable’s dsl injected into it to build MongoDB queries. For example, a Mongoid::Criteria
is an Queryable
.
@example Include queryable functionality.
class Criteria include Queryable end
Attributes
@attribute [r] aliases The aliases. @attribute [r] driver The Mongo driver being used. @attribute [r] serializers The serializers.
@attribute [r] aliases The aliases. @attribute [r] driver The Mongo driver being used. @attribute [r] serializers The serializers.
@attribute [r] aliases The aliases. @attribute [r] driver The Mongo driver being used. @attribute [r] serializers The serializers.
Public Class Methods
Initialize the new queryable. Will yield itself to the block if a block is provided for objects that need additional behavior.
@example Initialize the queryable.
Queryable.new
@param [ Hash ] aliases The optional field aliases. @param [ Hash ] serializers The optional field serializers. @param [ Symbol ] driver The driver being used.
@since 1.0.0
# File lib/mongoid/criteria/queryable.rb, line 68 def initialize(aliases = {}, serializers = {}, driver = :mongo) @aliases, @driver, @serializers = aliases, driver.to_sym, serializers @options = Options.new(aliases, serializers) @selector = Selector.new(aliases, serializers) @pipeline = Pipeline.new(aliases) @aggregating = nil yield(self) if block_given? end
Public Instance Methods
Is this queryable equal to another object? Is true if the selector and options are equal.
@example Are the objects equal?
queryable == criteria
@param [ Object
] other The object to compare against.
@return [ true, false ] If the objects are equal.
@since 1.0.0
# File lib/mongoid/criteria/queryable.rb, line 52 def ==(other) return false unless other.is_a?(Queryable) selector == other.selector && options == other.options end
Handle the creation of a copy via clone or dup.
@example Handle copy initialization.
queryable.initialize_copy(criteria)
@param [ Queryable
] other The original copy.
@since 1.0.0
# File lib/mongoid/criteria/queryable.rb, line 85 def initialize_copy(other) @options = other.options.__deep_copy__ @selector = other.selector.__deep_copy__ @pipeline = other.pipeline.__deep_copy__ end