12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 
     | 
    
      # File 'backend/app/model/mixins/implied_publication.rb', line 12
def is_published_by_implication?
  self.class.relationship_dependencies.any? {|relationship_name, relationship_dependency|
    next unless ImpliedPublication::relevant_relationships.include? relationship_name
    relationship_dependency.any? {|related_class|
      next unless related_class.columns.include?(:publish)
      relationship_class = related_class.find_relationship(relationship_name, true)
      reference_columns = relationship_class.reference_columns_for(self.class)
      referrer_columns = relationship_class.reference_columns_for(related_class)
      referrer_columns.any? {|referrer_column|
        reference_columns.any? {|reference_column|
          relationship_class.join(related_class, :id => referrer_column).
          filter(:publish => 1).
          filter(reference_column => self.id).
          any?
        }
      }
    }
  }
end
     |