Module: FunCi::Tui::StreakCounter

Defined in:
lib/fun_ci/tui/streak_counter.rb

Constant Summary collapse

PASS_STATUS =
"completed"
ACTIVE_STATUSES =
%w[running scheduled].freeze

Class Method Summary collapse

Class Method Details

.count(runs) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
# File 'lib/fun_ci/tui/streak_counter.rb', line 9

def self.count(runs)
  terminal_runs = runs.reject { |r| ACTIVE_STATUSES.include?(r[:status]) }
  return nil if terminal_runs.empty?

  streak = 0
  terminal_runs.each do |run|
    break unless run[:status] == PASS_STATUS
    streak += 1
  end
  streak
end

.format_text(streak) ⇒ Object



21
22
23
24
25
26
# File 'lib/fun_ci/tui/streak_counter.rb', line 21

def self.format_text(streak)
  return nil if streak.nil?
  return "Streak broken" if streak == 0

  "#{streak} in a row!"
end