Class: CodeQualia::ScoreCalculator

Inherits:
Object
  • Object
show all
Defined in:
lib/code_qualia/score_calculator.rb

Instance Method Summary collapse

Constructor Details

#initialize(config) ⇒ ScoreCalculator

Returns a new instance of ScoreCalculator.



7
8
9
# File 'lib/code_qualia/score_calculator.rb', line 7

def initialize(config)
  @config = config
end

Instance Method Details

#calculate(coverage_data:, complexity_data:, git_data:) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/code_qualia/score_calculator.rb', line 11

def calculate(coverage_data:, complexity_data:, git_data:)
  results = []

  # Get target patterns from configuration using ConfigHelper
  target_patterns = ConfigHelper.get_target_patterns

  # Collect files from configured patterns and data sources
  config_files = []
  target_patterns.each do |pattern|
    config_files.concat(Dir.glob(pattern))
  end

  all_files = (
    config_files +
    coverage_data.keys +
    complexity_data.keys +
    git_data.keys
  ).uniq

  all_files.each do |file_path|
    next if @config.excluded?(file_path)

    file_methods = extract_methods_for_file(file_path, coverage_data, complexity_data, git_data)
    results.concat(file_methods)
  end

  results.sort_by { |method| -method[:score] }
end