[ruby/rubygems] Removed deprecated Gem::DependencyInstaller#find_gems_with_sources

https://github.com/ruby/rubygems/commit/1b3f3bf194
This commit is contained in:
Hiroshi SHIBATA 2025-11-14 13:50:30 +09:00 committed by git
parent 4622712695
commit 4a0465da61
2 changed files with 0 additions and 183 deletions

View File

@ -119,78 +119,6 @@ class Gem::DependencyInstaller
@domain == :both || @domain == :remote
end
##
# Returns a list of pairs of gemspecs and source_uris that match
# Gem::Dependency +dep+ from both local (Dir.pwd) and remote (Gem.sources)
# sources. Gems are sorted with newer gems preferred over older gems, and
# local gems preferred over remote gems.
def find_gems_with_sources(dep, best_only = false) # :nodoc:
set = Gem::AvailableSet.new
if consider_local?
sl = Gem::Source::Local.new
if spec = sl.find_gem(dep.name)
if dep.matches_spec? spec
set.add spec, sl
end
end
end
if consider_remote?
begin
# This is pulled from #spec_for_dependency to allow
# us to filter tuples before fetching specs.
tuples, errors = Gem::SpecFetcher.fetcher.search_for_dependency dep
if best_only && !tuples.empty?
tuples.sort! do |a,b|
if b[0].version == a[0].version
if b[0].platform != Gem::Platform::RUBY
1
else
-1
end
else
b[0].version <=> a[0].version
end
end
tuples = [tuples.first]
end
specs = []
tuples.each do |tup, source|
spec = source.fetch_spec(tup)
rescue Gem::RemoteFetcher::FetchError => e
errors << Gem::SourceFetchProblem.new(source, e)
else
specs << [spec, source]
end
if @errors
@errors += errors
else
@errors = errors
end
set << specs
rescue Gem::RemoteFetcher::FetchError => e
# FIX if there is a problem talking to the network, we either need to always tell
# the user (no really_verbose) or fail hard, not silently tell them that we just
# couldn't find their requested gem.
verbose do
"Error fetching remote data:\t\t#{e.message}\n" \
"Falling back to local-only install"
end
@domain = :local
end
end
set
end
rubygems_deprecate :find_gems_with_sources
def in_background(what) # :nodoc:
fork_happened = false
if @build_docs_in_background && Process.respond_to?(:fork)

View File

@ -1114,117 +1114,6 @@ class TestGemDependencyInstaller < Gem::TestCase
assert_equal %w[activesupport-1.0.0], Gem::Specification.map(&:full_name)
end
def test_find_gems_gems_with_sources
util_setup_gems
inst = Gem::DependencyInstaller.new
dep = Gem::Dependency.new "b", ">= 0"
Gem::Specification.reset
set = Gem::Deprecate.skip_during do
inst.find_gems_with_sources(dep)
end
assert_kind_of Gem::AvailableSet, set
s = set.set.first
assert_equal @b1, s.spec
assert_equal Gem::Source.new(@gem_repo), s.source
end
def test_find_gems_with_sources_local
util_setup_gems
FileUtils.mv @a1_gem, @tempdir
inst = Gem::DependencyInstaller.new
dep = Gem::Dependency.new "a", ">= 0"
set = nil
Dir.chdir @tempdir do
set = Gem::Deprecate.skip_during do
inst.find_gems_with_sources dep
end
end
gems = set.sorted
assert_equal 2, gems.length
remote, local = gems
assert_equal "a-1", local.spec.full_name, "local spec"
assert_equal File.join(@tempdir, @a1.file_name),
local.source.download(local.spec), "local path"
assert_equal "a-1", remote.spec.full_name, "remote spec"
assert_equal Gem::Source.new(@gem_repo), remote.source, "remote path"
end
def test_find_gems_with_sources_prerelease
util_setup_gems
installer = Gem::DependencyInstaller.new
dependency = Gem::Dependency.new("a", Gem::Requirement.default)
set = Gem::Deprecate.skip_during do
installer.find_gems_with_sources(dependency)
end
releases = set.all_specs
assert releases.any? {|s| s.name == "a" && s.version.to_s == "1" }
refute releases.any? {|s| s.name == "a" && s.version.to_s == "1.a" }
dependency.prerelease = true
set = Gem::Deprecate.skip_during do
installer.find_gems_with_sources(dependency)
end
prereleases = set.all_specs
assert_equal [@a1_pre, @a1], prereleases
end
def test_find_gems_with_sources_with_best_only_and_platform
util_setup_gems
a1_x86_mingw32, = util_gem "a", "1" do |s|
s.platform = "x86-mingw32"
end
util_setup_spec_fetcher @a1, a1_x86_mingw32
Gem.platforms << Gem::Platform.new("x86-mingw32")
installer = Gem::DependencyInstaller.new
dependency = Gem::Dependency.new("a", Gem::Requirement.default)
set = Gem::Deprecate.skip_during do
installer.find_gems_with_sources(dependency, true)
end
releases = set.all_specs
assert_equal [a1_x86_mingw32], releases
end
def test_find_gems_with_sources_with_bad_source
Gem.sources.replace ["http://not-there.nothing"]
installer = Gem::DependencyInstaller.new
dep = Gem::Dependency.new("a")
out = Gem::Deprecate.skip_during do
installer.find_gems_with_sources(dep)
end
assert out.empty?
assert_kind_of Gem::SourceFetchProblem, installer.errors.first
end
def test_resolve_dependencies
util_setup_gems