Class: ChurnVsComplexity::ConcurrentCalculator

Inherits:
Object
  • Object
show all
Defined in:
lib/churn_vs_complexity/concurrent_calculator.rb

Constant Summary collapse

CONCURRENCY =
Etc.nprocessors

Instance Method Summary collapse

Constructor Details

#initialize(complexity:, churn:) ⇒ ConcurrentCalculator

Returns a new instance of ConcurrentCalculator.



9
10
11
12
13
# File 'lib/churn_vs_complexity/concurrent_calculator.rb', line 9

def initialize(complexity:, churn:)
  @complexity = complexity
  @churn = churn
  @churn_results = {}
end

Instance Method Details

#calculate(folder:, files:, since:) ⇒ Object



15
16
17
18
19
20
21
22
23
24
# File 'lib/churn_vs_complexity/concurrent_calculator.rb', line 15

def calculate(folder:, files:, since:)
  latest_commit_date = @churn.date_of_latest_commit(folder:)
  unless latest_commit_date == :disabled
    @git_period = GitDate.git_period(since, latest_commit_date)
    schedule_churn_calculation(folder, files[:included], @git_period.effective_start_date)
  end
  calculate_complexity(folder, files)
  await_results
  combine_results
end