Class | Mongoid::Relations::Targets::Enumerable |
In: |
lib/mongoid/relations/targets/enumerable.rb
|
Parent: | Object |
This class is the wrapper for all relational associations that have a target that can be a criteria or array of loaded documents. This handles both cases or a combination of the two.
entries | -> | load_all! |
Loads all the documents in the enumerable from the database.
@example Load all the documents. enumerable.load_all! @return [ true ] That the enumerable is loaded. @since 2.1.0 |
added | [RW] |
The three main instance variables are collections of documents.
@attribute [rw] added Documents that have been appended. @attribute [rw] loaded Persisted documents that have been loaded. @attribute [rw] unloaded A criteria representing persisted docs. |
loaded | [RW] |
The three main instance variables are collections of documents.
@attribute [rw] added Documents that have been appended. @attribute [rw] loaded Persisted documents that have been loaded. @attribute [rw] unloaded A criteria representing persisted docs. |
unloaded | [RW] |
The three main instance variables are collections of documents.
@attribute [rw] added Documents that have been appended. @attribute [rw] loaded Persisted documents that have been loaded. @attribute [rw] unloaded A criteria representing persisted docs. |
Initialize the new enumerable either with a criteria or an array.
@example Initialize the enumerable with a criteria.
Enumberable.new(Post.where(:person_id => id))
@example Initialize the enumerable with an array.
Enumerable.new([ post ])
@param [ Criteria, Array<Document> ] target The wrapped object.
@since 2.1.0
Check if the enumerable is equal to the other object.
@example Check equality.
enumerable == []
@param [ Enumerable ] other The other enumerable.
@return [ true, false ] If the objects are equal.
@since 2.1.0
Clears out all the documents in this enumerable. If passed a block it will yield to each document that is in memory.
@example Clear out the enumerable.
enumerable.clear
@example Clear out the enumerable with a block.
enumerable.clear do |doc| doc.unbind end
@return [ Array<Document> ] The cleared out added docs.
@since 2.1.0
Iterating over this enumerable has to handle a few different scenarios.
If the enumerable has its criteria loaded into memory then it yields to all the loaded docs and all the added docs.
If the enumerable has not loaded the criteria then it iterates over the cursor while loading the documents and then iterates over the added docs.
@example Iterate over the enumerable.
enumerable.each do |doc| puts doc end
@return [ true ] That the enumerable is now loaded.
@since 2.1.0
Inspection will just inspect the entries for nice array-style printing.
@example Inspect the enumerable.
enumerable.inspect
@return [ String ] The inspected enum.
@since 2.1.0
Reset the enumerable back to it‘s persisted state.
@example Reset the enumerable.
enumerable.reset
@return [ false ] Always false.
@since 2.1.0
Does this enumerable respond to the provided method?
@example Does the enumerable respond to the method?
enumerable.respond_to?(:sum)
@param [ String, Symbol ] name The name of the method. @param [ true, false ] include_private Whether to include private
methods.
@return [ true, false ] Whether the enumerable responds.
@since 2.1.0