Class: Packwerk::ReferenceChecking::Checkers::DependencyChecker
- Inherits:
-
Object
- Object
- Packwerk::ReferenceChecking::Checkers::DependencyChecker
- Includes:
- Checker
- Defined in:
- lib/packwerk/reference_checking/checkers/dependency_checker.rb
Overview
Checks whether a given reference conforms to the configured graph of dependencies.
Constant Summary collapse
- VIOLATION_TYPE =
: String
"dependency"
Instance Method Summary collapse
-
#invalid_reference?(reference) ⇒ Boolean
: (Packwerk::Reference reference) -> bool.
-
#message(reference) ⇒ Object
: (Packwerk::Reference reference) -> String.
-
#strict_mode_violation?(offense) ⇒ Boolean
: (ReferenceOffense offense) -> bool.
-
#violation_type ⇒ Object
: -> String.
Methods included from Checker
Instance Method Details
#invalid_reference?(reference) ⇒ Boolean
: (Packwerk::Reference reference) -> bool
21 22 23 24 25 26 |
# File 'lib/packwerk/reference_checking/checkers/dependency_checker.rb', line 21 def invalid_reference?(reference) return false unless reference.package.enforce_dependencies? return false if reference.package.dependency?(reference.constant.package) true end |
#message(reference) ⇒ Object
: (Packwerk::Reference reference) -> String
30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/packwerk/reference_checking/checkers/dependency_checker.rb', line 30 def (reference) const_name = reference.constant.name const_package = reference.constant.package ref_package = reference.package <<~EOS Dependency violation: #{const_name} belongs to '#{const_package}', but '#{ref_package}' does not specify a dependency on '#{const_package}'. Are the constant and its references in the right packages? #{(reference)} EOS end |
#strict_mode_violation?(offense) ⇒ Boolean
: (ReferenceOffense offense) -> bool
45 46 47 48 |
# File 'lib/packwerk/reference_checking/checkers/dependency_checker.rb', line 45 def strict_mode_violation?(offense) referencing_package = offense.reference.package referencing_package.config["enforce_dependencies"] == "strict" end |
#violation_type ⇒ Object
: -> String
15 16 17 |
# File 'lib/packwerk/reference_checking/checkers/dependency_checker.rb', line 15 def violation_type VIOLATION_TYPE end |