Module: ActiveGraph::Node::Dependent::QueryProxyMethods
- Included in:
 - Query::QueryProxy
 
- Defined in:
 - lib/active_graph/node/dependent/query_proxy_methods.rb
 
Overview
methods used to resolve association dependencies
Instance Method Summary collapse
- 
  
    
      #each_for_destruction(owning_node)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Used as part of ‘dependent: :destroy` and may not have any utility otherwise.
 - 
  
    
      #unique_nodes(association, self_identifer, other_node, other_rel, ids = [])  ⇒ ActiveGraph::Node::Query::QueryProxy 
    
    
  
  
  
  
  
  
  
  
  
    
This will match nodes who only have a single relationship of a given type.
 
Instance Method Details
#each_for_destruction(owning_node) ⇒ Object
Used as part of ‘dependent: :destroy` and may not have any utility otherwise. It keeps track of the node responsible for a cascading `destroy` process. but this is not always available, so we require it explicitly.
      10 11 12 13 14 15 16 17 18 19 20 21  | 
    
      # File 'lib/active_graph/node/dependent/query_proxy_methods.rb', line 10 def each_for_destruction(owning_node) target = owning_node.called_by || owning_node objects = pluck(identity).compact.reject do |obj| target.dependent_children.include?(obj) end objects.each do |obj| obj.called_by = target target.dependent_children << obj yield obj end end  | 
  
#unique_nodes(association, self_identifer, other_node, other_rel, ids = []) ⇒ ActiveGraph::Node::Query::QueryProxy
This will match nodes who only have a single relationship of a given type. It’s used by ‘dependent: :delete_orphans` and `dependent: :destroy_orphans` and may not have much utility otherwise.
      29 30 31 32 33 34  | 
    
      # File 'lib/active_graph/node/dependent/query_proxy_methods.rb', line 29 def unique_nodes(association, self_identifer, other_node, other_rel, ids = []) fail 'Only supported by in QueryProxy chains started by an instance' unless source_object return false if send(association.name).empty? unique_nodes_query(association, self_identifer, other_node, other_rel, ids) .proxy_as(association.target_class, other_node) end  |