Class: Mongoid::Includes::Inclusions
- Inherits:
-
SimpleDelegator
- Object
- SimpleDelegator
- Mongoid::Includes::Inclusions
- Defined in:
- lib/mongoid/includes/inclusions.rb
Overview
Public: Collection of relations that need to be eager loaded.
Instance Method Summary collapse
-
#+(inclusions) ⇒ Object
Public: Returns the sum of the inclusions without any duplicates.
-
#add(metadata) ⇒ Object
Override: Avoid replacing existing inclusions.
-
#initialize(object = []) ⇒ Inclusions
constructor
Internal: By default, it wraps an empty set.
-
#push(metadata, options = {}) ⇒ Object
Public: Adds a new relation as an inclusion.
-
#uniq ⇒ Object
Public: Returns a new Inclusions without any duplicates.
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.
36 37 38 |
# File 'lib/mongoid/includes/inclusions.rb', line 36 def +(inclusions) Inclusions.new(union(inclusions)) end |
#add(metadata) ⇒ Object
Override: Avoid replacing existing inclusions.
15 16 17 |
# File 'lib/mongoid/includes/inclusions.rb', line 15 def add() include?() ? : super end |
#push(metadata, options = {}) ⇒ Object
Public: Adds a new relation as an inclusion.
Returns the added inclusion.
22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/mongoid/includes/inclusions.rb', line 22 def push(, = {}) = Inclusion.new(, ) unless .is_a?(Inclusion) # Ensure that an inclusion with a specified modifier replaces a # previously specified one. delete() if .modifier # Internally it's a set so it won't add it twice. add() end |
#uniq ⇒ Object
Public: Returns a new Inclusions without any duplicates.
41 42 43 |
# File 'lib/mongoid/includes/inclusions.rb', line 41 def uniq dup end |