Initialize the new cascade strategy, which will set up the relation and the metadata.
@example Instantiate the strategy
Strategy.new(document, metadata)
@param [ Document ] document The document to cascade from. @param [ Metadata ] metadata The relation's metadata.
@return [ Strategy ] The new strategy.
# File lib/mongoid/relations/cascading/delete.rb, line 18 def initialize(document, metadata) @document, @metadata = document, metadata @relation = document.send(metadata.name) end
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.
@example Perform the cascading delete.
strategy.cascade
@since 2.0.0
# File lib/mongoid/relations/cascading/delete.rb, line 31 def cascade if relation if relation.cascades.empty? relation.clear else ::Array.wrap(relation).each { |doc| doc.delete } end end end
Generated with the Darkfish Rdoc Generator 2.