123456789_123456789_123456789_123456789_123456789_

Class: Mongoid::Association::EagerLoad::AssociationInclusion Private

Relationships & Source Files
Extension / Inclusion / Inheritance Descendants
Subclasses:
Super Chains via Extension / Inclusion / Inheritance
Class Chain:
self, Inclusion
Instance Chain:
self, Inclusion
Inherits: Mongoid::Association::EagerLoad::Inclusion
Defined in: lib/mongoid/association/eager_load/inclusion.rb

Overview

An inclusion that stands for a single association. The LookupPipeline holds the stage-building helpers the kinds lean on, and a node carries its own children, so the pipeline is built by recursion from the roots downward.

Class Method Summary

Instance Attribute Summary

Instance Method Summary

Inclusion - Inherited

#contribute

Add this inclusion's stages to the destination.

Constructor Details

.new(association, pipeline, children) ⇒ AssociationInclusion

[ GitHub ]

  
# File 'lib/mongoid/association/eager_load/inclusion.rb', line 57

def initialize(association, pipeline, children)
  super()
  @association = association
  @pipeline = pipeline
  @children = children
end

Class Method Details

.for(association, pipeline, children) ⇒ AssociationInclusion

Builds the right kind of inclusion for the association. Each subclass decides whether it handles it (.for?); exactly one does.

Parameters:

Returns:

  • (AssociationInclusion)

    The matching kind of inclusion.

[ GitHub ]

  
# File 'lib/mongoid/association/eager_load/inclusion.rb', line 40

def for(association, pipeline, children)
  subclasses.find { |kind| kind.for?(association) }.new(association, pipeline, children)
end

.for?(association) ⇒ true | false

Whether this kind handles the given association.

Parameters:

Returns:

  • (true | false)

    Whether it handles it.

Raises:

  • (NotImplementedError)
[ GitHub ]

  
# File 'lib/mongoid/association/eager_load/inclusion.rb', line 49

def for?(association)
  raise NotImplementedError
end

Instance Attribute Details

#associationMongoid::Association::Relatable (readonly)

Returns:

[ GitHub ]

  
# File 'lib/mongoid/association/eager_load/inclusion.rb', line 55

attr_reader :association