[前][次][番号順一覧][スレッド一覧]

ruby-changes:25967

From: drbrain <ko1@a...>
Date: Fri, 30 Nov 2012 12:28:15 +0900 (JST)
Subject: [ruby-changes:25967] drbrain:r38024 (trunk): * lib/rubygems/spec_fetcher.rb: Allow prerelease spec fetching to fail

drbrain	2012-11-30 12:28:04 +0900 (Fri, 30 Nov 2012)

  New Revision: 38024

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=38024

  Log:
    * lib/rubygems/spec_fetcher.rb:  Allow prerelease spec fetching to fail
      for bundler.
    * test/rubygems/test_gem_spec_fetcher.rb:  Test for above.

  Modified files:
    trunk/ChangeLog
    trunk/lib/rubygems/spec_fetcher.rb
    trunk/test/rubygems/test_gem_spec_fetcher.rb

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 38023)
+++ ChangeLog	(revision 38024)
@@ -1,3 +1,9 @@
+Fri Nov 30 12:27:51 2012  Eric Hodel  <drbrain@s...>
+
+	* lib/rubygems/spec_fetcher.rb:  Allow prerelease spec fetching to fail
+	  for bundler.
+	* test/rubygems/test_gem_spec_fetcher.rb:  Test for above.
+
 Fri Nov 30 12:20:53 2012  Eric Hodel  <drbrain@s...>
 
 	* lib/rake/backtrace.rb:  Removed duplication in
Index: lib/rubygems/spec_fetcher.rb
===================================================================
--- lib/rubygems/spec_fetcher.rb	(revision 38023)
+++ lib/rubygems/spec_fetcher.rb	(revision 38024)
@@ -195,7 +195,8 @@
                 when :released
                   tuples_for source, :released
                 when :complete
-                  tuples_for(source, :prerelease) + tuples_for(source, :released)
+                  tuples_for(source, :prerelease, true) +
+                    tuples_for(source, :released)
                 when :prerelease
                   tuples_for(source, :prerelease)
                 else
@@ -211,9 +212,18 @@
     [list, errors]
   end
 
-  def tuples_for(source, type)
+  def tuples_for(source, type, gracefully_ignore=false)
     cache = @caches[type]
-    cache[source.uri] ||= source.load_specs(type)
+
+    if gracefully_ignore
+      begin
+        cache[source.uri] ||= source.load_specs(type)
+      rescue Gem::RemoteFetcher::FetchError
+        []
+      end
+    else
+      cache[source.uri] ||= source.load_specs(type)
+    end
   end
 end
 
Index: test/rubygems/test_gem_spec_fetcher.rb
===================================================================
--- test/rubygems/test_gem_spec_fetcher.rb	(revision 38023)
+++ test/rubygems/test_gem_spec_fetcher.rb	(revision 38024)
@@ -187,6 +187,20 @@
     assert_equal comp.sort, specs[@source].sort
   end
 
+  def test_available_specs_complete_handles_no_prerelease
+    v = Gem.marshal_version
+    @fetcher.data.delete "#{@gem_repo}prerelease_specs.#{v}.gz"
+
+    specs, _ = @sf.available_specs(:complete)
+
+    assert_equal [@source], specs.keys
+
+    comp = @released
+
+    assert_equal comp.sort, specs[@source].sort
+  end
+
+
   def test_available_specs_cache
     specs, _ = @sf.available_specs(:latest)
 

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]