lib/rubygems/commands/inabox_command.rb in geminabox-0.2.3 vs lib/rubygems/commands/inabox_command.rb in geminabox-0.2.4
- old
+ new
@@ -46,18 +46,26 @@
def send_gem
say "Pushing #{File.split(@gemfile).last} to #{geminabox_host}..."
File.open(@gemfile, "rb") do |file|
url = URI.parse(geminabox_host)
- query, headers = Multipart::MultipartPost.new.prepare_query("file" => file)
+ request_body, request_headers = Multipart::MultipartPost.new.prepare_query("file" => file)
Net::HTTP.start(url.host, url.port) {|con|
- con.read_timeout = 5
- response = con.post("/upload", query, headers)
- puts response.body
+ req = Net::HTTP::Post.new('/upload', request_headers)
+ req.basic_auth(url.user, url.password) if url.user
+ handle_response(con.request(req, request_body))
}
end
+ end
+ def handle_response(response)
+ case response
+ when Net::HTTPSuccess, Net::HTTPRedirection
+ puts response.body
+ else
+ response.error!
+ end
end
def config_path
File.join(Gem.user_home, '.gem', 'geminabox')
end