[macruby-changes] [4171] MacRuby/trunk/lib/rubygems/gemcutter_utilities.rb
source_changes at macosforge.org
source_changes at macosforge.org
Thu May 27 14:39:59 PDT 2010
Revision: 4171
http://trac.macosforge.org/projects/ruby/changeset/4171
Author: martinlagardette at apple.com
Date: 2010-05-27 14:39:54 -0700 (Thu, 27 May 2010)
Log Message:
-----------
Oops, one file was missing in rubygems, causing some gems to crash when requiring it
- Fixes #678
Added Paths:
-----------
MacRuby/trunk/lib/rubygems/gemcutter_utilities.rb
Added: MacRuby/trunk/lib/rubygems/gemcutter_utilities.rb
===================================================================
--- MacRuby/trunk/lib/rubygems/gemcutter_utilities.rb (rev 0)
+++ MacRuby/trunk/lib/rubygems/gemcutter_utilities.rb 2010-05-27 21:39:54 UTC (rev 4171)
@@ -0,0 +1,49 @@
+require 'net/http'
+require 'rubygems/remote_fetcher'
+
+module Gem::GemcutterUtilities
+
+ def sign_in
+ return if Gem.configuration.rubygems_api_key
+
+ say "Enter your RubyGems.org credentials."
+ say "Don't have an account yet? Create one at http://rubygems.org/sign_up"
+
+ email = ask " Email: "
+ password = ask_for_password "Password: "
+ say "\n"
+
+ response = rubygems_api_request :get, "api/v1/api_key" do |request|
+ request.basic_auth email, password
+ end
+
+ with_response response do |resp|
+ say "Signed in."
+ Gem.configuration.rubygems_api_key = resp.body
+ end
+ end
+
+ def rubygems_api_request(method, path, &block)
+ host = ENV['RUBYGEMS_HOST'] || 'https://rubygems.org'
+ uri = URI.parse "#{host}/#{path}"
+
+ request_method = Net::HTTP.const_get method.to_s.capitalize
+
+ Gem::RemoteFetcher.fetcher.request(uri, request_method, &block)
+ end
+
+ def with_response(resp)
+ case resp
+ when Net::HTTPSuccess then
+ if block_given? then
+ yield resp
+ else
+ say resp.body
+ end
+ else
+ say resp.body
+ terminate_interaction 1
+ end
+ end
+
+end
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-changes/attachments/20100527/7f901842/attachment.html>
More information about the macruby-changes
mailing list