Class: SixthSense::Scoring::Aggregator
- Inherits:
-
Object
- Object
- SixthSense::Scoring::Aggregator
- Defined in:
- lib/sixth_sense/scoring/aggregator.rb
Constant Summary collapse
- AXES =
%i[adequacy redundancy quality].freeze
Instance Method Summary collapse
- #analyze(test_file, context) ⇒ Object
-
#initialize(level:) ⇒ Aggregator
constructor
A new instance of Aggregator.
Constructor Details
#initialize(level:) ⇒ Aggregator
Returns a new instance of Aggregator.
10 11 12 |
# File 'lib/sixth_sense/scoring/aggregator.rb', line 10 def initialize(level:) @level = level end |
Instance Method Details
#analyze(test_file, context) ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/sixth_sense/scoring/aggregator.rb', line 14 def analyze(test_file, context) analyzer_results = applicable_analyzers.map { |analyzer_class| analyzer_class.new.analyze(test_file, context) } axis_scores = AXES.map { |axis| axis_score(axis, analyzer_results) } measured_values = axis_scores.select(&:measured?).map(&:value) Result::FileReport.new( test_file: test_file, axis_scores: axis_scores, composite: measured_values.empty? ? nil : measured_values.min.round(2), level: @level, warnings: context.warnings ) end |