Exception: Twitter::Error
- Inherits:
-
StandardError
- Object
- StandardError
- Twitter::Error
- Defined in:
- lib/twitter/error.rb
Overview
Custom error class for rescuing from all Twitter errors
Defined Under Namespace
Modules: Code Classes: UnacceptableIO
Constant Summary collapse
- Codes =
Code
- ConfigurationError =
Class.new(::ArgumentError)
- ClientError =
Raised when Twitter returns a 4xx HTTP status code
Class.new(self)
- BadRequest =
Raised when Twitter returns the HTTP status code 400
Class.new(ClientError)
Class.new(ClientError)
- Forbidden =
Raised when Twitter returns the HTTP status code 403
Class.new(ClientError)
- AlreadyFavorited =
Raised when a Tweet has already been favorited
Class.new(Forbidden)
- AlreadyRetweeted =
Raised when a Tweet has already been retweeted
Class.new(Forbidden)
- DuplicateStatus =
Raised when a Tweet has already been posted
Class.new(Forbidden)
- AlreadyPosted =
DuplicateStatus
- NotFound =
Raised when Twitter returns the HTTP status code 404
Class.new(ClientError)
- NotAcceptable =
Raised when Twitter returns the HTTP status code 406
Class.new(ClientError)
- RequestTimeout =
Raised when Twitter returns the HTTP status code 408
Class.new(ClientError)
- UnprocessableEntity =
Raised when Twitter returns the HTTP status code 422
Class.new(ClientError)
- TooManyRequests =
Raised when Twitter returns the HTTP status code 429
Class.new(ClientError)
- EnhanceYourCalm =
TooManyRequests
- RateLimited =
TooManyRequests
- ServerError =
Raised when Twitter returns a 5xx HTTP status code
Class.new(self)
- InternalServerError =
Raised when Twitter returns the HTTP status code 500
Class.new(ServerError)
- BadGateway =
Raised when Twitter returns the HTTP status code 502
Class.new(ServerError)
Class.new(ServerError)
- GatewayTimeout =
Raised when Twitter returns the HTTP status code 504
Class.new(ServerError)
Instance Attribute Summary collapse
- #code ⇒ Integer readonly
- #rate_limit ⇒ Twitter::RateLimit readonly
Class Method Summary collapse
- .errors ⇒ Hash
- .forbidden_messages ⇒ Object
-
.from_response(response) ⇒ Twitter::Error
Create a new error from an HTTP response.
Instance Method Summary collapse
-
#initialize(message = '', rate_limit = {}, code = nil) ⇒ Twitter::Error
constructor
Initializes a new Error object.
Constructor Details
#initialize(message = '', rate_limit = {}, code = nil) ⇒ Twitter::Error
Initializes a new Error object
105 106 107 108 109 |
# File 'lib/twitter/error.rb', line 105 def initialize( = '', rate_limit = {}, code = nil) super() @rate_limit = Twitter::RateLimit.new(rate_limit) @code = code end |
Instance Attribute Details
#code ⇒ Integer (readonly)
7 8 9 |
# File 'lib/twitter/error.rb', line 7 def code @code end |
#rate_limit ⇒ Twitter::RateLimit (readonly)
9 10 11 |
# File 'lib/twitter/error.rb', line 9 def rate_limit @rate_limit end |
Class Method Details
.errors ⇒ Hash
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
# File 'lib/twitter/error.rb', line 51 def errors @errors ||= { 400 => Twitter::Error::BadRequest, 401 => Twitter::Error::Unauthorized, 403 => Twitter::Error::Forbidden, 404 => Twitter::Error::NotFound, 406 => Twitter::Error::NotAcceptable, 408 => Twitter::Error::RequestTimeout, 420 => Twitter::Error::EnhanceYourCalm, 422 => Twitter::Error::UnprocessableEntity, 429 => Twitter::Error::TooManyRequests, 500 => Twitter::Error::InternalServerError, 502 => Twitter::Error::BadGateway, 503 => Twitter::Error::ServiceUnavailable, 504 => Twitter::Error::GatewayTimeout, } end |
.forbidden_messages ⇒ Object
69 70 71 72 73 74 75 |
# File 'lib/twitter/error.rb', line 69 def @forbidden_messages ||= { 'Status is a duplicate.' => Twitter::Error::DuplicateStatus, 'You have already favorited this status.' => Twitter::Error::AlreadyFavorited, 'sharing is not permissible for this status (Share validations failed)' => Twitter::Error::AlreadyRetweeted, } end |
.from_response(response) ⇒ Twitter::Error
Create a new error from an HTTP response
45 46 47 48 |
# File 'lib/twitter/error.rb', line 45 def from_response(response) , code = parse_error(response.body) new(, response.response_headers, code) end |