Sha256: c031c67e8370da44e6f7687522732595d5a4065aaa0a0160cd4f9ee8e278bb73
Contents?: true
Size: 1.63 KB
Versions: 8
Compression:
Stored size: 1.63 KB
Contents
# encoding: utf-8 require "mongoid/contextual/queryable" require "mongoid/contextual/mongo" require "mongoid/contextual/memory" module Mongoid module Contextual # The aggregate operations provided in the aggregate module get delegated # through to the context from the criteria. delegate(*Aggregable::Mongo.public_instance_methods(false), to: :context) # The atomic operations provided in the atomic context get delegated # through to the context from the criteria. delegate(*Atomic.public_instance_methods(false), to: :context) # The methods in the contexts themselves should all get delegated to, # including destructive, modification, and optional methods. delegate(*(Mongo.public_instance_methods(false) - [ :skip, :limit ]), to: :context) # This gets blank and empty included. delegate(*Queryable.public_instance_methods(false), to: :context) # Get the context in which criteria queries should execute. This is either # in memory (for embedded documents) or mongo (for root level documents.) # # @example Get the context. # criteria.context # # @return [ Memory, Mongo ] The context. # # @since 3.0.0 def context @context ||= create_context end private # Create the context for the queries to execute. Will be memory for # embedded documents and mongo for root documents. # # @api private # # @example Create the context. # contextual.create_context # # @return [ Mongo, Memory ] The context. # # @since 3.0.0 def create_context embedded ? Memory.new(self) : Mongo.new(self) end end end
Version data entries
8 entries across 8 versions & 4 rubygems