mirror of
https://github.com/ruby/ruby.git
synced 2025-08-23 13:04:13 +02:00
* 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:
parent
bd950a75b5
commit
ea2a00d785
40 changed files with 663 additions and 109 deletions
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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|
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -21,6 +21,8 @@ class Gem::Resolver::VendorSet < Gem::Resolver::Set
|
|||
attr_reader :specs # :nodoc:
|
||||
|
||||
def initialize # :nodoc:
|
||||
super()
|
||||
|
||||
@directories = {}
|
||||
@specs = {}
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue