Class: ChurnVsComplexity::Delta::Checker

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

Instance Method Summary collapse

Constructor Details

#initialize(serializer:, factory:, commit:, language:, excluded:, data_isolation_id: 0) ⇒ Checker

Returns a new instance of Checker.



6
7
8
9
10
11
12
13
# File 'lib/churn_vs_complexity/delta/checker.rb', line 6

def initialize(serializer:, factory:, commit:, language:, excluded:, data_isolation_id: 0)
  @serializer = serializer
  @excluded = excluded
  @factory = factory
  @commit = commit
  @language = language
  @data_isolation_id = data_isolation_id
end

Instance Method Details

#check(folder:) ⇒ Object

Raises:



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/churn_vs_complexity/delta/checker.rb', line 15

def check(folder:)
  raise Error, 'Invalid commit' unless valid_commit?(folder:)

  worktree = setup_worktree(folder:)

  changes = @factory.git_strategy(folder: worktree.folder).changes(commit: @commit)
  result = commit_summary(folder:)
  unless changes.empty?
    ComplexityAnnotator.new(factory: @factory, changes:)
                       .enhance(worktree_folder: worktree.folder, language: @language, excluded: @excluded, commit: @commit)
    result[:changes] = changes
  end

  @serializer.serialize(result)
end