Class: Mongoid::Includes::Inclusions

Inherits:
SimpleDelegator
  • Object
show all
Defined in:
lib/mongoid/includes/inclusions.rb

Overview

Public: Collection of relations that need to be eager loaded.

Instance Method Summary collapse

Constructor Details

#initialize(object = []) ⇒ Inclusions

Internal: By default, it wraps an empty set.



10
11
12
# File 'lib/mongoid/includes/inclusions.rb', line 10

def initialize(object = [])
  super Set.new(object)
end

Instance Method Details

#+(inclusions) ⇒ Object

Public: Returns the sum of the inclusions without any duplicates.



31
32
33
# File 'lib/mongoid/includes/inclusions.rb', line 31

def +(inclusions)
  Inclusions.new(union(inclusions))
end

#push(metadata, options = {}) ⇒ Object

Public: Adds a new relation as an inclusion.

Returns the added inclusion.



17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/mongoid/includes/inclusions.rb', line 17

def push(, options = {})
   = Inclusion.new(, options) unless .is_a?(Inclusion)

  # Ensure that an inclusion with a specified loader or modifier replaces
  # a previously specified loader.
  delete() if .loader || .modifier

  # Internally it's a set so it won't add it twice.
  add()

  
end

#uniqObject

Public: Returns a new Inclusions without any duplicates.



36
37
38
# File 'lib/mongoid/includes/inclusions.rb', line 36

def uniq
  dup
end