Merge pull request #5482 from hsbt/rubygems-3-3-bundler-2-3

Merge RubyGems 3.3.x and Bundler 2.3.x
This commit is contained in:
Hiroshi SHIBATA 2022-02-02 16:57:34 +09:00 committed by GitHub
parent 69463805f0
commit 6794f8cf92
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
115 changed files with 1701 additions and 889 deletions

View file

@ -53,41 +53,41 @@ use with other commands.
"#{program_name} REGEXP"
end
def fetch_remote_specs(dependency) # :nodoc:
def fetch_remote_specs(name, requirement, prerelease) # :nodoc:
fetcher = Gem::SpecFetcher.fetcher
ss, = fetcher.spec_for_dependency dependency
specs_type = prerelease ? :complete : :released
ss.map {|spec, _| spec }
ss = if name.nil?
fetcher.detect(specs_type) { true }
else
fetcher.detect(specs_type) do |name_tuple|
name === name_tuple.name && requirement.satisfied_by?(name_tuple.version)
end
end
ss.map {|tuple, source| source.fetch_spec(tuple) }
end
def fetch_specs(name_pattern, dependency) # :nodoc:
def fetch_specs(name_pattern, requirement, prerelease) # :nodoc:
specs = []
if local?
specs.concat Gem::Specification.stubs.find_all {|spec|
name_pattern =~ spec.name and
dependency.requirement.satisfied_by? spec.version
name_matches = name_pattern ? name_pattern =~ spec.name : true
version_matches = requirement.satisfied_by?(spec.version)
name_matches and version_matches
}.map(&:to_spec)
end
specs.concat fetch_remote_specs dependency if remote?
specs.concat fetch_remote_specs name_pattern, requirement, prerelease if remote?
ensure_specs specs
specs.uniq.sort
end
def gem_dependency(pattern, version, prerelease) # :nodoc:
dependency = Gem::Deprecate.skip_during do
Gem::Dependency.new pattern, version
end
dependency.prerelease = prerelease
dependency
end
def display_pipe(specs) # :nodoc:
specs.each do |spec|
unless spec.dependencies.empty?
@ -119,11 +119,9 @@ use with other commands.
ensure_local_only_reverse_dependencies
pattern = name_pattern options[:args]
requirement = Gem::Requirement.new options[:version]
dependency =
gem_dependency pattern, options[:version], options[:prerelease]
specs = fetch_specs pattern, dependency
specs = fetch_specs pattern, requirement, options[:prerelease]
reverse = reverse_dependencies specs
@ -162,14 +160,6 @@ use with other commands.
response
end
def remote_specs(dependency) # :nodoc:
fetcher = Gem::SpecFetcher.fetcher
ss, _ = fetcher.spec_for_dependency dependency
ss.map {|s,o| s }
end
def reverse_dependencies(specs) # :nodoc:
reverse = Hash.new {|h, k| h[k] = [] }
@ -205,7 +195,7 @@ use with other commands.
private
def name_pattern(args)
args << '' if args.empty?
return if args.empty?
if args.length == 1 and args.first =~ /\A(.*)(i)?\z/m
flags = $2 ? Regexp::IGNORECASE : nil