Class: ChurnVsComplexity::Timetravel::Traveller

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

Instance Method Summary collapse

Constructor Details

#initialize(git_period:, relative_period:, engine:, serializer:, jump_days:, factory:) ⇒ Traveller



7
8
9
10
11
12
13
14
# File 'lib/churn_vs_complexity/timetravel/traveller.rb', line 7

def initialize(git_period:, relative_period:, engine:, serializer:, jump_days:, factory:)
  @relative_period = relative_period
  @engine = engine
  @jump_days = jump_days
  @serializer = serializer
  @git_period = git_period
  @factory = factory
end

Instance Method Details

#check(folder:) ⇒ Object



16
17
18
19
20
21
22
23
24
25
# File 'lib/churn_vs_complexity/timetravel/traveller.rb', line 16

def check(folder:)
  git_strategy = @factory.git_strategy(folder:)
  commits = git_strategy.resolve_commits_with_interval(git_period: @git_period, jump_days: @jump_days)

  chunked = make_chunks(commits)
  work_on(chunked:, folder:, git_strategy:)
  combined = chunked.map { |c_and_p| read_result(c_and_p[:pipe]) }.reduce({}, :merge)

  @serializer.serialize(combined)
end