diff options
author | Andre Arko <andre@arko.net> | 2013-02-13 08:42:35 -0800 |
---|---|---|
committer | Andre Arko <andre@arko.net> | 2013-02-13 08:42:52 -0800 |
commit | ea0b8e097128ec2f7e81ea3b7b2df84b463d1930 (patch) | |
tree | a80db85620427e3dbb1c36c7a11e2c3e8b42d7dd | |
parent | 727e64d28b62daf16a24cece987f484c01c82ed4 (diff) | |
download | bundler-ea0b8e097128ec2f7e81ea3b7b2df84b463d1930.tar.gz |
handle 413 gracefully in verbose mode
-rw-r--r-- | lib/bundler/fetcher.rb | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/lib/bundler/fetcher.rb b/lib/bundler/fetcher.rb index cac36ad2dc..085a2a2393 100644 --- a/lib/bundler/fetcher.rb +++ b/lib/bundler/fetcher.rb @@ -7,6 +7,7 @@ module Bundler REDIRECT_LIMIT = 5 # how long to wait for each gemcutter API call API_TIMEOUT = 10 + class FallbackError < Bundler::HTTPError; end attr_reader :has_api @@ -79,8 +80,11 @@ module Bundler # new line now that the dots are over Bundler.ui.info "" unless Bundler.ui.debug? - Bundler.ui.debug "Error during API request. #{e.class}: #{e.message}" - Bundler.ui.debug e.backtrace.join(" ") + if FallbackError === e + Bundler.ui.debug "API refused request: #{e.message}" + else + Bundler.ui.debug "Error during API request. #{e.class}: #{e.message}" + end Bundler.ui.info "Fetching full source index from #{strip_user_pass_from_uri(@remote_uri)}" specs = fetch_all_remote_specs @@ -152,9 +156,10 @@ module Bundler when Net::HTTPSuccess Bundler.ui.debug("HTTP Success") response.body + when Net::HTTPRequestEntityTooLarge + raise FallbackError, response.body else - Bundler.ui.debug("HTTP Error") - raise HTTPError + raise HTTPError, "#{response.class}: #{response.body}" end end |