Exception: Twitter::Error

Inherits:
StandardError
  • Object
show all
Defined in:
lib/twitter/error.rb

Overview

Custom error class for rescuing from all Twitter errors

Direct Known Subclasses

ClientError, ServerError

Defined Under Namespace

Classes: BadGateway, BadRequest, ClientError, EnhanceYourCalm, Forbidden, InternalServerError, NotAcceptable, NotFound, ServerError, ServiceUnavailable, Unauthorized

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(message, http_headers) ⇒ Twitter::Error

Initializes a new Error object

Parameters:

  • message (String)
  • http_headers (Hash)


11
12
13
14
# File 'lib/twitter/error.rb', line 11

def initialize(message, http_headers)
  @http_headers = Hash[http_headers]
  super(message)
end

Instance Attribute Details

#http_headersObject (readonly)

Returns the value of attribute http_headers.



4
5
6
# File 'lib/twitter/error.rb', line 4

def http_headers
  @http_headers
end

Instance Method Details

#ratelimit_limitInteger

Returns:

  • (Integer)


22
23
24
# File 'lib/twitter/error.rb', line 22

def ratelimit_limit
  @http_headers.values_at('x-ratelimit-limit', 'X-RateLimit-Limit').detect{|value| value}.to_i
end

#ratelimit_remainingInteger

Returns:

  • (Integer)


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

def ratelimit_remaining
  @http_headers.values_at('x-ratelimit-remaining', 'X-RateLimit-Remaining').detect{|value| value}.to_i
end

#ratelimit_resetTime

Returns:

  • (Time)


17
18
19
# File 'lib/twitter/error.rb', line 17

def ratelimit_reset
  Time.at(@http_headers.values_at('x-ratelimit-reset', 'X-RateLimit-Reset').detect{|value| value}.to_i)
end

#retry_afterInteger

Returns:

  • (Integer)


32
33
34
# File 'lib/twitter/error.rb', line 32

def retry_after
  [(ratelimit_reset - Time.now).ceil, 0].max
end