* lib/rubygems: Update to RubyGems 2.2.2 prerelease to check fixes to

CI.
	* test/rubygems:  ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44799 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
drbrain 2014-02-04 00:48:31 +00:00
parent bd950a75b5
commit ea2a00d785
40 changed files with 663 additions and 109 deletions

View file

@ -25,10 +25,12 @@ class Gem::Resolver::APISet < Gem::Resolver::Set
# http://guides.rubygems.org/rubygems-org-api
def initialize dep_uri = 'https://rubygems.org/api/v1/dependencies'
super()
dep_uri = URI dep_uri unless URI === dep_uri # for ruby 1.8
@dep_uri = dep_uri
@uri = dep_uri + '../../..'
@uri = dep_uri + '../..'
@data = Hash.new { |h,k| h[k] = [] }
@source = Gem::Source.new @uri
@ -41,6 +43,8 @@ class Gem::Resolver::APISet < Gem::Resolver::Set
def find_all req
res = []
return res unless @remote
versions(req.name).each do |ver|
if req.dependency.match? req.name, ver[:number]
res << Gem::Resolver::APISpecification.new(self, ver)
@ -55,6 +59,7 @@ class Gem::Resolver::APISet < Gem::Resolver::Set
# data for DependencyRequests +reqs+.
def prefetch reqs
return unless @remote
names = reqs.map { |r| r.dependency.name }
needed = names - @data.keys

View file

@ -12,11 +12,30 @@ class Gem::Resolver::BestSet < Gem::Resolver::ComposedSet
def initialize sources = Gem.sources
super()
sources.each_source do |source|
@sources = sources
end
##
# Picks which sets to use for the configured sources.
def pick_sets # :nodoc:
@sources.each_source do |source|
@sets << source.dependency_resolver_set
end
end
def find_all req # :nodoc:
pick_sets if @remote and @sets.empty?
super
end
def prefetch reqs # :nodoc:
pick_sets if @remote and @sets.empty?
super
end
def pretty_print q # :nodoc:
q.group 2, '[BestSet', ']' do
q.breakable

View file

@ -16,9 +16,20 @@ class Gem::Resolver::ComposedSet < Gem::Resolver::Set
# Gem::Resolver::compose_sets instead.
def initialize *sets
super()
@sets = sets
end
##
# Sets the remote network access for all composed sets.
def remote= remote
super
@sets.each { |set| set.remote = remote }
end
##
# Finds all specs matching +req+ in all sets.

View file

@ -33,6 +33,8 @@ class Gem::Resolver::GitSet < Gem::Resolver::Set
attr_reader :specs # :nodoc:
def initialize # :nodoc:
super()
@git = ENV['git'] || 'git'
@need_submodules = {}
@repositories = {}
@ -91,6 +93,7 @@ class Gem::Resolver::GitSet < Gem::Resolver::Set
@repositories.each do |name, (repository, reference)|
source = Gem::Source::Git.new name, repository, reference
source.root_dir = @root_dir
source.remote = @remote
source.specs.each do |spec|
git_spec = Gem::Resolver::GitSpecification.new self, spec, source

View file

@ -5,6 +5,8 @@
class Gem::Resolver::IndexSet < Gem::Resolver::Set
def initialize source = nil # :nodoc:
super()
@f =
if source then
sources = Gem::SourceList.from [source]
@ -34,6 +36,8 @@ class Gem::Resolver::IndexSet < Gem::Resolver::Set
def find_all req
res = []
return res unless @remote
name = req.dependency.name
@all[name].each do |uri, n|

View file

@ -24,14 +24,17 @@ class Gem::Resolver::InstallerSet < Gem::Resolver::Set
# Creates a new InstallerSet that will look for gems in +domain+.
def initialize domain
super()
@domain = domain
@remote = consider_remote?
@f = Gem::SpecFetcher.fetcher
@always_install = []
@ignore_dependencies = false
@ignore_installed = false
@remote_set = Gem::Resolver::BestSet.new if consider_remote?
@remote_set = Gem::Resolver::BestSet.new
@specs = {}
end
@ -120,5 +123,16 @@ class Gem::Resolver::InstallerSet < Gem::Resolver::Set
end
end
def remote= remote # :nodoc:
case @domain
when :local then
@domain = :both if remote
when :remote then
@domain = nil unless remote
when :both then
@domain = :local unless remote
end
end
end

View file

@ -9,6 +9,8 @@ class Gem::Resolver::LockSet < Gem::Resolver::Set
# Creates a new LockSet from the given +source+
def initialize source
super()
@source = Gem::Source::Lock.new source
@specs = []
end

View file

@ -4,6 +4,15 @@
class Gem::Resolver::Set
##
# Set to true to disable network access for this set
attr_accessor :remote
def initialize # :nodoc:
@remote = true
end
##
# The find_all method must be implemented. It returns all Resolver
# Specification objects matching the given DependencyRequest +req+.
@ -23,5 +32,13 @@ class Gem::Resolver::Set
def prefetch reqs
end
##
# When true, this set is allowed to access the network when looking up
# specifications or dependencies.
def remote? # :nodoc:
@remote
end
end

View file

@ -21,6 +21,8 @@ class Gem::Resolver::VendorSet < Gem::Resolver::Set
attr_reader :specs # :nodoc:
def initialize # :nodoc:
super()
@directories = {}
@specs = {}
end