Class: Fulfil::RateLimit
- Inherits:
-
Object
- Object
- Fulfil::RateLimit
- Defined in:
- lib/fulfil/rate_limit.rb
Overview
The ‘Fulfil::RateLimit` allows clients to keep track of their API usage and to analyze Fulfil’s response HTTP headers.
Instance Attribute Summary collapse
-
#limit ⇒ Object
Returns the value of attribute limit.
-
#requests_left ⇒ Object
Returns the value of attribute requests_left.
-
#resets_at ⇒ Object
Returns the value of attribute resets_at.
Instance Method Summary collapse
-
#analyse!(headers) ⇒ true
Analyses the rate limit based on the response headers from Fulfil.
-
#requests_left? ⇒ Boolean
Returns whether there are any requests left in the current rate limit window.
Instance Attribute Details
#limit ⇒ Object
Returns the value of attribute limit.
7 8 9 |
# File 'lib/fulfil/rate_limit.rb', line 7 def limit @limit end |
#requests_left ⇒ Object
Returns the value of attribute requests_left.
7 8 9 |
# File 'lib/fulfil/rate_limit.rb', line 7 def requests_left @requests_left end |
#resets_at ⇒ Object
Returns the value of attribute resets_at.
7 8 9 |
# File 'lib/fulfil/rate_limit.rb', line 7 def resets_at @resets_at end |
Instance Method Details
#analyse!(headers) ⇒ true
Analyses the rate limit based on the response headers from Fulfil.
13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/fulfil/rate_limit.rb', line 13 def analyse!(headers) rate_limit_headers = RateLimitHeaders.new(headers) self.limit = rate_limit_headers.limit self.requests_left = rate_limit_headers.requests_left self.resets_at = rate_limit_headers.resets_at return true if requests_left? report_rate_limit_hit_and_raise end |
#requests_left? ⇒ Boolean
Returns whether there are any requests left in the current rate limit window.
27 28 29 |
# File 'lib/fulfil/rate_limit.rb', line 27 def requests_left? requests_left&.positive? end |