class Packwerk::OffenseCollection
Attributes
errors[R]
new_violations[R]
Public Class Methods
new(root_path, deprecated_references = {})
click to toggle source
# File lib/packwerk/offense_collection.rb, line 15 def initialize(root_path, deprecated_references = {}) @root_path = root_path @deprecated_references = T.let(deprecated_references, T::Hash[Packwerk::Package, Packwerk::DeprecatedReferences]) @new_violations = T.let([], T::Array[Packwerk::ReferenceOffense]) @errors = T.let([], T::Array[Packwerk::Offense]) end
Public Instance Methods
add_offense(offense)
click to toggle source
# File lib/packwerk/offense_collection.rb, line 41 def add_offense(offense) unless offense.is_a?(ReferenceOffense) @errors << offense return end deprecated_references = deprecated_references_for(offense.reference.source_package) unless deprecated_references.add_entries(offense.reference, offense.violation_type) new_violations << offense end end
dump_deprecated_references_files()
click to toggle source
# File lib/packwerk/offense_collection.rb, line 58 def dump_deprecated_references_files @deprecated_references.each do |_, deprecated_references_file| deprecated_references_file.dump end end
listed?(offense)
click to toggle source
# File lib/packwerk/offense_collection.rb, line 32 def listed?(offense) return false unless offense.is_a?(ReferenceOffense) reference = offense.reference deprecated_references_for(reference.source_package).listed?(reference, violation_type: offense.violation_type) end
outstanding_offenses()
click to toggle source
# File lib/packwerk/offense_collection.rb, line 65 def outstanding_offenses errors + new_violations end
stale_violations?()
click to toggle source
# File lib/packwerk/offense_collection.rb, line 53 def stale_violations? @deprecated_references.values.any?(&:stale_violations?) end
Private Instance Methods
deprecated_references_file_for(package)
click to toggle source
# File lib/packwerk/offense_collection.rb, line 80 def deprecated_references_file_for(package) File.join(@root_path, package.name, "deprecated_references.yml") end
deprecated_references_for(package)
click to toggle source
# File lib/packwerk/offense_collection.rb, line 72 def deprecated_references_for(package) @deprecated_references[package] ||= Packwerk::DeprecatedReferences.new( package, deprecated_references_file_for(package), ) end