From d870b7b8605e48bb0cd40e4b60684705ec06a846 Mon Sep 17 00:00:00 2001 From: Erik Michaels-Ober Date: Thu, 26 Jul 2012 09:23:35 -0700 Subject: [PATCH] Prevent MultiJson::DecodeError error from bubbling up --- lib/twitter/api.rb | 4 ++-- lib/twitter/client.rb | 3 +++ lib/twitter/error/decode_error.rb | 9 +++++++++ 3 files changed, 14 insertions(+), 2 deletions(-) create mode 100644 lib/twitter/error/decode_error.rb diff --git a/lib/twitter/api.rb b/lib/twitter/api.rb index 491cf38f2..c4822bce8 100644 --- a/lib/twitter/api.rb +++ b/lib/twitter/api.rb @@ -319,8 +319,8 @@ def update_profile_image(image, options={}) # @example Return the settings for the authenticating user. # Twitter.settings def settings(options={}) - method = options.size.zero? ? :get : :post - object_from_response(Twitter::Settings, method, "1/account/settings.json", options) + request_method = options.size.zero? ? :get : :post + object_from_response(Twitter::Settings, request_method, "1/account/settings.json", options) end # Returns activity about me diff --git a/lib/twitter/client.rb b/lib/twitter/client.rb index a4c34daa5..4bfd4acb2 100644 --- a/lib/twitter/client.rb +++ b/lib/twitter/client.rb @@ -2,6 +2,7 @@ require 'twitter/api' require 'twitter/configurable' require 'twitter/error/client_error' +require 'twitter/error/decode_error' require 'twitter/rate_limit' require 'simple_oauth' require 'uri' @@ -82,6 +83,8 @@ def request(method, path, params={}, options={}) response rescue Faraday::Error::ClientError raise Twitter::Error::ClientError + rescue MultiJson::DecodeError + raise Twitter::Error::DecodeError end def auth_header(method, uri, params={}) diff --git a/lib/twitter/error/decode_error.rb b/lib/twitter/error/decode_error.rb new file mode 100644 index 000000000..e1b8eb537 --- /dev/null +++ b/lib/twitter/error/decode_error.rb @@ -0,0 +1,9 @@ +require 'twitter/error' + +module Twitter + class Error + # Raised when JSON parsing fails + class DecodeError < Twitter::Error + end + end +end