summaryrefslogtreecommitdiff
path: root/lib/rubygems/spec_fetcher.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rubygems/spec_fetcher.rb')
-rw-r--r--lib/rubygems/spec_fetcher.rb17
1 files changed, 10 insertions, 7 deletions
diff --git a/lib/rubygems/spec_fetcher.rb b/lib/rubygems/spec_fetcher.rb
index 6c71ee63aa..3823dbd8f3 100644
--- a/lib/rubygems/spec_fetcher.rb
+++ b/lib/rubygems/spec_fetcher.rb
@@ -91,6 +91,7 @@ class Gem::SpecFetcher
all = false,
matching_platform = true,
prerelease = false)
+
specs_and_sources, errors = find_matching_with_errors(dependency,
all,
matching_platform,
@@ -144,7 +145,10 @@ class Gem::SpecFetcher
# matching released versions are returned. If +matching_platform+
# is false, gems for all platforms are returned.
- def find_matching_with_errors(dependency, all = false, matching_platform = true, prerelease = false)
+ def find_matching_with_errors(dependency,
+ all = false,
+ matching_platform = true,
+ prerelease = false)
found = {}
rejected_specs = {}
@@ -257,13 +261,12 @@ class Gem::SpecFetcher
loaded = false
if File.exist? local_file then
- spec_dump = @fetcher.fetch_path spec_path, File.mtime(local_file)
+ spec_dump =
+ @fetcher.fetch_path(spec_path, File.mtime(local_file)) rescue nil
- if spec_dump.nil? then
- spec_dump = Gem.read_binary local_file
- else
- loaded = true
- end
+ loaded = true if spec_dump
+
+ spec_dump ||= Gem.read_binary local_file
else
spec_dump = @fetcher.fetch_path spec_path
loaded = true