lib/gems/request.rb in gems-1.1.1 vs lib/gems/request.rb in gems-1.2.0

- old
+ new

@@ -1,8 +1,9 @@ require 'net/http' require 'rubygems' require 'open-uri' +require 'gems/errors' module Gems module Request def delete(path, data = {}, content_type = 'application/x-www-form-urlencoded', request_host = host) request(:delete, path, data, content_type, request_host) @@ -61,15 +62,20 @@ '?' + URI.encode_www_form(hash) end def body_from_response(response, method, content_type) - if response.is_a?(Net::HTTPRedirection) + case response + when Net::HTTPRedirection uri = URI.parse(response['location']) host_with_scheme = [uri.scheme, uri.host].join('://') request(method, uri.request_uri, {}, content_type, host_with_scheme) - else + when Net::HTTPNotFound + raise Gems::NotFound.new(response.body) + when Net::HTTPSuccess response.body + else + raise Gems::GemError.new(response.body) end end end end