Class: ArchUnit::Metrics::Assertion::MetricZoneViolation
- Inherits:
-
Common::Assertion::Violation
- Object
- Common::Assertion::Violation
- ArchUnit::Metrics::Assertion::MetricZoneViolation
- Defined in:
- lib/archunit/metrics/assertion/metric_zone.rb
Overview
A file whose abstractness/instability point falls in a discouraged zone.
Constant Summary collapse
- ZONES =
%i[pain uselessness].freeze
Instance Attribute Summary collapse
-
#distance_info ⇒ Object
readonly
Returns the value of attribute distance_info.
-
#zone ⇒ Object
readonly
Returns the value of attribute zone.
Instance Method Summary collapse
- #abstractness ⇒ Object
-
#initialize(distance_info:, zone:) ⇒ MetricZoneViolation
constructor
A new instance of MetricZoneViolation.
- #instability ⇒ Object
Constructor Details
#initialize(distance_info:, zone:) ⇒ MetricZoneViolation
Returns a new instance of MetricZoneViolation.
17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/archunit/metrics/assertion/metric_zone.rb', line 17 def initialize(distance_info:, zone:) unless distance_info.is_a?(Extraction::DistanceInfo) raise ArgumentError, 'distance_info must be a DistanceInfo value' end unless ZONES.include?(zone) raise ArgumentError, "unknown architectural zone: #{zone.inspect}" end @distance_info = distance_info @zone = zone super() end |
Instance Attribute Details
#distance_info ⇒ Object (readonly)
Returns the value of attribute distance_info.
15 16 17 |
# File 'lib/archunit/metrics/assertion/metric_zone.rb', line 15 def distance_info @distance_info end |
#zone ⇒ Object (readonly)
Returns the value of attribute zone.
15 16 17 |
# File 'lib/archunit/metrics/assertion/metric_zone.rb', line 15 def zone @zone end |
Instance Method Details
#abstractness ⇒ Object
30 31 32 |
# File 'lib/archunit/metrics/assertion/metric_zone.rb', line 30 def abstractness Calculation::Distance.abstractness.calculate(distance_info) end |
#instability ⇒ Object
34 35 36 |
# File 'lib/archunit/metrics/assertion/metric_zone.rb', line 34 def instability Calculation::Distance.instability.calculate(distance_info) end |