Module: ChurnVsComplexity::GitDate

Defined in:
lib/churn_vs_complexity/git_date.rb

Defined Under Namespace

Classes: AbsoluteGitPeriod, NoStartGitPeriod

Class Method Summary collapse

Class Method Details

.git_period(cli_arg_since, latest_commit_date) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/churn_vs_complexity/git_date.rb', line 12

def self.git_period(cli_arg_since, latest_commit_date)
  latest_commit_date = latest_commit_date.to_date
  if cli_arg_since.nil?
    NoStartGitPeriod.new(latest_commit_date)
  elsif cli_arg_since.is_a?(Symbol)
    AbsoluteGitPeriod.looking_back(relative_period: cli_arg_since, from: latest_commit_date)
  elsif cli_arg_since.is_a?(String)
    AbsoluteGitPeriod.between(cli_arg_since, latest_commit_date)
  else
    raise Error, "Unexpected since value #{cli_arg_since}"
  end
end

.select_dates_with_at_least_interval(dates, interval) ⇒ Object



5
6
7
8
9
10
# File 'lib/churn_vs_complexity/git_date.rb', line 5

def self.select_dates_with_at_least_interval(dates, interval)
  ds = dates.sort
  ds.each_with_object([]) do |date, acc|
    acc << date if acc.empty? || date - acc.last >= interval
  end
end