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/