Method: FeatureMap::Private::AdditionalMetricsFile.generate_content

Defined in:
lib/feature_map/private/additional_metrics_file.rb

.generate_content(feature_metrics, feature_test_coverage, health_config) ⇒ Object



35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/feature_map/private/additional_metrics_file.rb', line 35

def self.generate_content(feature_metrics, feature_test_coverage, health_config)
  feature_additional_metrics = {}

  percentile_metrics = PercentileMetricsCalculator.new(metrics: feature_metrics, test_coverage: feature_test_coverage)
  health_calculator = HealthCalculator.new(percentile_metrics: percentile_metrics, health_config: health_config)

  Private.feature_file_assignments.each_key do |feature_name|
    feature_additional_metrics[feature_name] = {
      'cyclomatic_complexity' => percentile_metrics.cyclomatic_complexity_for(feature_name),
      'encapsulation' => percentile_metrics.encapsulation_for(feature_name),
      'feature_size' => percentile_metrics.feature_size_for(feature_name),
      'test_coverage' => percentile_metrics.test_coverage_for(feature_name),
      'todo_count' => percentile_metrics.todo_count_for(feature_name),
      'health' => health_calculator.health_score_for(feature_name)
    }
  end

  { FEATURES_KEY => feature_additional_metrics }
end