lib/readability_parser/error.rb in readability_parser-0.0.2 vs lib/readability_parser/error.rb in readability_parser-0.0.3
- old
+ new
@@ -1,10 +1,17 @@
+require 'multi_json'
+
module ReadabilityParser
class Error < StandardError
+ # Raised when Readability returns a 4xx or 500 HTTP status code
class ClientError < Error
+ # Creates a new error from an HTTP environement
+ #
+ # @param response [Hash]
+ # @return [ReadabilityParser::Error::ClientError]
def initialize(error=nil)
parsed_error = parse_error(error)
http_error = error.response[:status].to_i
if ERROR_MAP.has_key?(http_error)
@@ -12,15 +19,20 @@
else
super
end
end
- def parse_error(error)
- JSON.parse(error.response[:body], :symbolize_names => true)
- end
+ private
+
+ def parse_error(error)
+ MultiJson.load(error.response[:body], :symbolize_keys => true)
+ end
end # ClientError
class ConfigurationError < ReadabilityParser::Error; end
+
+ # Raised when there's an error in Faraday
+ class RequestError < ReadabilityParser::Error; end
# Raised when ReadabilityParser returns a 400 HTTP status code
class BadRequest < ReadabilityParser::Error; end
# Raised when ReadabilityParser returns a 401 HTTP status code