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