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