Class: ChurnVsComplexity::Delta::MultiChecker
- Inherits:
-
Object
- Object
- ChurnVsComplexity::Delta::MultiChecker
- Defined in:
- lib/churn_vs_complexity/delta/multi_checker.rb
Instance Method Summary collapse
- #check(folder:) ⇒ Object
-
#initialize(serializer:, factory:, commits:, language:, excluded:) ⇒ MultiChecker
constructor
A new instance of MultiChecker.
Constructor Details
#initialize(serializer:, factory:, commits:, language:, excluded:) ⇒ MultiChecker
Returns a new instance of MultiChecker.
8 9 10 11 12 13 14 |
# File 'lib/churn_vs_complexity/delta/multi_checker.rb', line 8 def initialize(serializer:, factory:, commits:, language:, excluded:) @serializer = serializer @excluded = excluded @factory = factory @commits = commits @language = language end |
Instance Method Details
#check(folder:) ⇒ Object
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/churn_vs_complexity/delta/multi_checker.rb', line 16 def check(folder:) indexed_commits = @commits.map.with_index do |commit, index| [commit, index] end results = [] concurrency = [CONCURRENCY, indexed_commits.size].min concurrency.times.map do |ci| Thread.new do loop do commit, index = indexed_commits.shift break if commit.nil? result = check_commit(commit:, data_isolation_id: ci, folder:) results[index] = result end end end.each(&:join) @serializer.serialize(results) end |