Module: GemContribute::CLI::RateLimitFooter

Defined in:
lib/gem_contribute/cli/rate_limit_footer.rb

Overview

Prints a one-line GitHub rate-limit footer after ‘scan` or `issues` finishes its main output, when the adapter has rate-limit data.

Format: “GitHub rate limit: 4,587 / 5,000 remaining · resets at 14:32 UTC”

When ‘adapter.rate_limit` is nil (e.g. every call was served from cache), nothing is printed — see #4 acceptance criteria.

Class Method Summary collapse

Class Method Details

.format_with_separators(integer) ⇒ Object



27
28
29
# File 'lib/gem_contribute/cli/rate_limit_footer.rb', line 27

def format_with_separators(integer)
  integer.to_s.reverse.gsub(/(\d{3})(?=\d)/, '\\1,').reverse
end

Parameters:



17
18
19
20
21
22
23
24
25
# File 'lib/gem_contribute/cli/rate_limit_footer.rb', line 17

def print(adapter:, stdout: $stdout)
  rate_limit = adapter.respond_to?(:rate_limit) ? adapter.rate_limit : nil
  return if rate_limit.nil?

  remaining = format_with_separators(rate_limit.remaining)
  limit = format_with_separators(rate_limit.limit)
  reset = rate_limit.reset_at.utc.strftime("%H:%M")
  stdout.puts "GitHub rate limit: #{remaining} / #{limit} remaining · resets at #{reset} UTC"
end