[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