summaryrefslogtreecommitdiff
path: root/lib/rubygems/resolver
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rubygems/resolver')
-rw-r--r--lib/rubygems/resolver/installer_set.rb35
1 files changed, 2 insertions, 33 deletions
diff --git a/lib/rubygems/resolver/installer_set.rb b/lib/rubygems/resolver/installer_set.rb
index e35e0aabec..27e6455148 100644
--- a/lib/rubygems/resolver/installer_set.rb
+++ b/lib/rubygems/resolver/installer_set.rb
@@ -28,11 +28,10 @@ class Gem::Resolver::InstallerSet < Gem::Resolver::Set
@f = Gem::SpecFetcher.fetcher
- @all = Hash.new { |h,k| h[k] = [] }
@always_install = []
@ignore_dependencies = false
@ignore_installed = false
- @loaded_remote_specs = []
+ @remote_set = Gem::Resolver::BestSet.new if consider_remote?
@specs = {}
end
@@ -79,16 +78,7 @@ class Gem::Resolver::InstallerSet < Gem::Resolver::Set
end
end
- if consider_remote? then
- load_remote_specs dep
-
- @all[name].each do |remote_source, n|
- if dep.match? n then
- res << Gem::Resolver::IndexSpecification.new(
- self, n.name, n.version, remote_source, n.platform)
- end
- end
- end
+ res.concat @remote_set.find_all req if consider_remote?
res
end
@@ -102,27 +92,6 @@ class Gem::Resolver::InstallerSet < Gem::Resolver::Set
end
##
- # Loads remote prerelease specs if +dep+ is a prerelease dependency
-
- def load_remote_specs dep # :nodoc:
- types = [:released]
- types << :prerelease if dep.prerelease?
-
- types.each do |type|
- next if @loaded_remote_specs.include? type
- @loaded_remote_specs << type
-
- list, = @f.available_specs type
-
- list.each do |uri, specs|
- specs.each do |n|
- @all[n.name] << [uri, n]
- end
- end
- end
- end
-
- ##
# Called from IndexSpecification to get a true Specification
# object.