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 |
.print(adapter:, stdout: $stdout) ⇒ Object
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 |