Module: Apidepth::RateLimitHeaders
- Defined in:
- lib/apidepth/rate_limit_headers.rb
Constant Summary collapse
- REMAINING_HEADERS =
Ordered header names per field — first match wins.
%w[ x-ratelimit-remaining-requests x-ratelimit-remaining ratelimit-remaining ].freeze
- LIMIT_HEADERS =
%w[ x-ratelimit-limit-requests x-ratelimit-limit ratelimit-limit ].freeze
- RESET_HEADERS =
%w[ x-ratelimit-reset-requests x-ratelimit-reset ratelimit-reset retry-after ].freeze
Class Method Summary collapse
-
.extract(response, now_ms) ⇒ Object
Extract rate limit fields from a Net::HTTP::Response.
Class Method Details
.extract(response, now_ms) ⇒ Object
Extract rate limit fields from a Net::HTTP::Response. Returns a Hash with :rl_remaining, :rl_limit, :rl_reset_at keys, or nil if none of the recognised headers are present.
59 60 61 62 63 64 65 66 67 |
# File 'lib/apidepth/rate_limit_headers.rb', line 59 def self.extract(response, now_ms) remaining = find_integer(response, REMAINING_HEADERS) limit = find_integer(response, LIMIT_HEADERS) reset_at = find_reset_ms(response, RESET_HEADERS, now_ms) return nil if remaining.nil? && limit.nil? && reset_at.nil? { rl_remaining: remaining, rl_limit: limit, rl_reset_at: reset_at }.compact end |