Class: Twitter::RateLimit

Inherits:
Base
  • Object
show all
Includes:
Memoizable
Defined in:
lib/twitter/rate_limit.rb

Overview

Represents rate limit information from Twitter API responses

Instance Attribute Summary

Attributes inherited from Base

#attrs

Instance Method Summary collapse

Methods inherited from Base

#[], attr_reader, define_attribute_method, define_predicate_method, define_uri_method, display_uri_attr_reader, #initialize, object_attr_reader, predicate_attr_reader, uri_attr_reader

Methods included from Utils

flat_pmap, pmap

Constructor Details

This class inherits a constructor from Twitter::Base

Instance Method Details

#limitInteger

Returns the rate limit ceiling for this request

Examples:

rate_limit.limit

Returns:

  • (Integer)


14
15
16
17
# File 'lib/twitter/rate_limit.rb', line 14

def limit
  limit = @attrs["x-rate-limit-limit"]
  limit&.to_i
end

#remainingInteger

Returns the number of requests remaining

Examples:

rate_limit.remaining

Returns:

  • (Integer)


26
27
28
29
# File 'lib/twitter/rate_limit.rb', line 26

def remaining
  remaining = @attrs["x-rate-limit-remaining"]
  remaining&.to_i
end

#reset_atTime

Returns the time when the rate limit resets

Examples:

rate_limit.reset_at

Returns:

  • (Time)


38
39
40
41
# File 'lib/twitter/rate_limit.rb', line 38

def reset_at
  reset = @attrs["x-rate-limit-reset"]
  Time.at(reset.to_i).utc if reset
end

#reset_inInteger Also known as: retry_after

Returns the number of seconds until the rate limit resets

Examples:

rate_limit.reset_in

Returns:

  • (Integer)


50
51
52
53
# File 'lib/twitter/rate_limit.rb', line 50

def reset_in
  time = reset_at
  [(time - Time.now).ceil, 0].max if time
end