Class: MetzScan::Analyzers::PackageDependencyPressure
- Inherits:
-
Object
- Object
- MetzScan::Analyzers::PackageDependencyPressure
- Includes:
- ProjectAnalyzerTriage
- Defined in:
- lib/metz_scan/analyzers/package_dependency_pressure.rb,
lib/metz_scan/analyzers/package_dependency_pressure/finding.rb,
lib/metz_scan/analyzers/package_dependency_pressure/metadata.rb,
lib/metz_scan/analyzers/package_dependency_pressure/package_map.rb,
lib/metz_scan/analyzers/package_dependency_pressure/reference_set.rb,
lib/metz_scan/analyzers/package_dependency_pressure/reference_collector.rb,
lib/metz_scan/analyzers/package_dependency_pressure/shared_dependency_triage.rb
Overview
Reports declarations referenced from several files outside their package.
Defined Under Namespace
Modules: Metadata, SharedDependencyTriage Classes: Finding, Location, ReferenceCollector, ReferenceSet
Constant Summary collapse
- RULE_ID =
"MetzProject/PackageDependencyPressure"- PROJECT_ANALYZER_STATUS =
"candidate"- CONFIDENCE =
"medium"- TRIAGE_SEVERITY =
"manual review"- TRIAGE_SUMMARY =
"Candidate package-boundary signal; review cross-package reference pressure in context."- WHY =
"Cross-package reference pressure can reveal boundaries that many parts of the system depend on."- SUGGESTED_NEXT_MOVES =
[ "Review whether callers need the full declaration or a narrower interface.", "Look for package-specific workflows that could own repeated dependency edges." ].freeze
- PackageMap =
MetzScan::Analyzers::PackageMap
Instance Method Summary collapse
- #call ⇒ Object
-
#initialize(paths: nil, index: nil, minimum_referring_files: 12, minimum_referring_packages: 5) ⇒ PackageDependencyPressure
constructor
A new instance of PackageDependencyPressure.
Constructor Details
#initialize(paths: nil, index: nil, minimum_referring_files: 12, minimum_referring_packages: 5) ⇒ PackageDependencyPressure
Returns a new instance of PackageDependencyPressure.
33 34 35 36 37 38 39 |
# File 'lib/metz_scan/analyzers/package_dependency_pressure.rb', line 33 def initialize(paths: nil, index: nil, minimum_referring_files: 12, minimum_referring_packages: 5) @paths = Array(paths) @index = index || ProjectIndex.build(@paths) @reference_collector = ReferenceCollector.new(@index) @minimum_referring_files = minimum_referring_files @minimum_referring_packages = minimum_referring_packages end |
Instance Method Details
#call ⇒ Object
41 42 43 44 45 |
# File 'lib/metz_scan/analyzers/package_dependency_pressure.rb', line 41 def call return [] unless index.available? declarations.filter_map { |declaration| finding_for(declaration) } end |