Class: Mongoid::Relations::Cascading::Restrict

Inherits:
Object
  • Object
show all
Defined in:
lib/mongoid/relations/cascading/restrict.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(document, metadata) ⇒ Strategy

Initialize the new cascade strategy, which will set up the relation and the metadata.

Examples:

Instantiate the strategy

Strategy.new(document, )

Parameters:

  • document (Document)

    The document to cascade from.

  • metadata (Metadata)

    The relation's metadata.


19
20
21
22
# File 'lib/mongoid/relations/cascading/restrict.rb', line 19

def initialize(document, )
  @document, @metadata = document, 
  @relation = document.send(.name)
end

Instance Attribute Details

#documentObject

Returns the value of attribute document


7
8
9
# File 'lib/mongoid/relations/cascading/restrict.rb', line 7

def document
  @document
end

#metadataObject

Returns the value of attribute metadata


7
8
9
# File 'lib/mongoid/relations/cascading/restrict.rb', line 7

def 
  @metadata
end

#relationObject

Returns the value of attribute relation


7
8
9
# File 'lib/mongoid/relations/cascading/restrict.rb', line 7

def relation
  @relation
end

Instance Method Details

#cascadeObject

Execute the cascading deletion for the relation if it already exists. This should be optimized in the future potentially not to load all objects from the db.

Examples:

Perform the cascading delete.

strategy.cascade

30
31
32
33
34
# File 'lib/mongoid/relations/cascading/restrict.rb', line 30

def cascade
  unless relation.blank?
    raise Errors::DeleteRestriction.new(document, .name)
  end
end