class Mongoid::Includes::Inclusions

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

Public Class Methods

new(object = []) click to toggle source

Internal: By default, it wraps an empty set.

Calls superclass method
# File lib/mongoid/includes/inclusions.rb, line 10
def initialize(object = [])
  super Set.new(object)
end

Public Instance Methods

+(inclusions) click to toggle source

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

# File lib/mongoid/includes/inclusions.rb, line 36
def +(inclusions)
  Inclusions.new(union(inclusions))
end
add(metadata) click to toggle source

Override: Avoid replacing existing inclusions.

Calls superclass method
# File lib/mongoid/includes/inclusions.rb, line 15
def add(metadata)
  include?(metadata) ? metadata : super
end
push(metadata, options = {}) click to toggle source

Public: Adds a new relation as an inclusion.

Returns the added inclusion.

# File lib/mongoid/includes/inclusions.rb, line 22
def push(metadata, options = {})
  metadata = Inclusion.new(metadata, options) unless metadata.is_a?(Inclusion)

  # Ensure that an inclusion with a specified modifier replaces a
  # previously specified one.
  delete(metadata) if metadata.modifier

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

  metadata
end
uniq() click to toggle source

Public: Returns a new Inclusions without any duplicates.

# File lib/mongoid/includes/inclusions.rb, line 41
def uniq
  dup
end