lib/evrythng/error.rb in evrythng-0.0.5 vs lib/evrythng/error.rb in evrythng-0.1.0
- old
+ new
@@ -1,59 +1,36 @@
module Evrythng
# Custom error class for rescuing from all Evrythng errors
class Error < StandardError
attr_reader :http_headers
+ # Initializes a new Error object
+ #
+ # @param message [String]
+ # @param http_headers [Hash]
+ # @return [Evrythng::Error]
def initialize(message, http_headers)
@http_headers = Hash[http_headers]
- super message
+ super(message)
end
+ # @return [Time]
def ratelimit_reset
Time.at(@http_headers.values_at('x-ratelimit-reset', 'X-RateLimit-Reset').detect{|value| value}.to_i)
end
+ # @return [Integer]
def ratelimit_limit
@http_headers.values_at('x-ratelimit-limit', 'X-RateLimit-Limit').detect{|value| value}.to_i
end
+ # @return [Integer]
def ratelimit_remaining
@http_headers.values_at('x-ratelimit-remaining', 'X-RateLimit-Remaining').detect{|value| value}.to_i
end
+ # @return [Integer]
def retry_after
[(ratelimit_reset - Time.now).ceil, 0].max
end
end
-
- # Raised when Evrythng returns the HTTP status code 400
- class BadRequest < Error; end
-
- # Raised when Evrythng returns the HTTP status code 401
- class Unauthorized < Error; end
-
- # Raised when Evrythng returns the HTTP status code 403
- class Forbidden < Error; end
-
- # Raised when Evrythng returns the HTTP status code 404
- class NotFound < Error; end
-
- # Raised when Evrythng returns the HTTP status code 406
- class NotAcceptable < Error; end
-
- # Raised when Evrythng returns the HTTP status code 420
- class EnhanceYourCalm < Error
- # The number of seconds your application should wait before requesting date from the Search API again
- def retry_after
- @http_headers.values_at('retry-after', 'Retry-After').detect {|value| value }.to_i
- end
- end
-
- # Raised when Evrythng returns the HTTP status code 500
- class InternalServerError < Error; end
-
- # Raised when Evrythng returns the HTTP status code 502
- class BadGateway < Error; end
-
- # Raised when Evrythng returns the HTTP status code 503
- class ServiceUnavailable < Error; end
end