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
29 30 31 |
# File 'lib/gem_contribute/cli/rate_limit_footer.rb', line 29 def format_with_separators(integer) integer.to_s.reverse.gsub(/(\d{3})(?=\d)/, '\\1,').reverse end |
.print(adapter:, output: nil, stdout: $stdout) ⇒ Object
18 19 20 21 22 23 24 25 26 27 |
# File 'lib/gem_contribute/cli/rate_limit_footer.rb', line 18 def print(adapter:, output: nil, stdout: $stdout) output ||= Output::Standard.new(out: 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") output.info("GitHub rate limit: #{remaining} / #{limit} remaining · resets at #{reset} UTC") end |