Class: Mongoid::Atomic::Paths::Embedded::Many

Inherits:
Object
  • Object
show all
Includes:
Mongoid::Atomic::Paths::Embedded
Defined in:
lib/mongoid/atomic/paths/embedded/many.rb

Overview

This class encapsulates behaviour for locating and updating documents that are defined as an embedded 1-n.

Instance Attribute Summary

Attributes included from Mongoid::Atomic::Paths::Embedded

#delete_modifier, #document, #insert_modifier, #parent

Instance Method Summary collapse

Methods included from Mongoid::Atomic::Paths::Embedded

#path

Constructor Details

#initialize(document) ⇒ Many

Create the new path utility.

Examples:

Create the path util.

Many.new(document)

Parameters:

  • document (Document)

    The document to generate the paths for.

Since:

  • 2.1.0



20
21
22
23
# File 'lib/mongoid/atomic/paths/embedded/many.rb', line 20

def initialize(document)
  @document, @parent = document, document._parent
  @insert_modifier, @delete_modifier ="$push", "$pull"
end

Instance Method Details

#positionString

Get the position of the document in the hierarchy. This will include indexes of 1-n embedded relations that may sit above the embedded many.

Examples:

Get the position.

many.position

Returns:

  • (String)

    The position of the document.

Since:

  • 2.1.0



35
36
37
38
39
# File 'lib/mongoid/atomic/paths/embedded/many.rb', line 35

def position
  pos = parent.atomic_position
  locator = document.new_record? ? "" : ".#{document._index}"
  "#{pos}#{"." unless pos.blank?}#{document..store_as}#{locator}"
end