diff options
author | Nathan Ladd <[email protected]> | 2025-04-23 12:26:03 -0400 |
---|---|---|
committer | Hiroshi SHIBATA <[email protected]> | 2025-05-21 11:33:32 +0900 |
commit | 3ac239f7904816a61137524140306123e53c18dd () | |
tree | 91e1257b6ac681c51fbe0f1d618acd4c59050013 | |
parent | 27b0638386de460fde4a9fc3adb35400994aa2fa (diff) |
[rubygems/rubygems] Copy prerelease attribute to dependency resolver sets
https://.com/rubygems/rubygems/commit/5956e7f8e5
-rw-r--r-- | lib/rubygems/resolver/best_set.rb | 2 | ||||
-rw-r--r-- | lib/rubygems/resolver/source_set.rb | 2 | ||||
-rw-r--r-- | lib/rubygems/source.rb | 50 | ||||
-rw-r--r-- | test/rubygems/test_gem_commands_install_command.rb | 24 | ||||
-rw-r--r-- | test/rubygems/test_gem_resolver_best_set.rb | 14 |
5 files changed, 68 insertions, 24 deletions
@@ -21,7 +21,7 @@ class Gem::Resolver::BestSet < Gem::Resolver::ComposedSet def pick_sets # :nodoc: @sources.each_source do |source| - @sets << source.dependency_resolver_set end end @@ -42,6 +42,6 @@ class Gem::Resolver::SourceSet < Gem::Resolver::Set def get_set(name) link = @links[name] - @sets[link] ||= Gem::Source.new(link).dependency_resolver_set if link end end @@ -67,28 +67,11 @@ class Gem::Source ## # Returns a Set that can fetch specifications from this source. - - def dependency_resolver_set # :nodoc: - return Gem::Resolver::IndexSet.new self if uri.scheme == "file" - - fetch_uri = if uri.host == "rubygems.org" - index_uri = uri.dup - index_uri.host = "index.rubygems.org" - index_uri - else - uri - end - - bundler_api_uri = enforce_trailing_slash(fetch_uri) + "versions" - - begin - fetcher = Gem::RemoteFetcher.fetcher - response = fetcher.fetch_path bundler_api_uri, nil, true - rescue Gem::RemoteFetcher::FetchError - Gem::Resolver::IndexSet.new self - else - Gem::Resolver::APISet.new response.uri + "./info/" - end end def hash # :nodoc: @@ -234,6 +217,29 @@ class Gem::Source private def enforce_trailing_slash(uri) uri.merge(uri.path.gsub(%r{/+$}, "") + "/") end @@ -1214,6 +1214,30 @@ ERROR: Possible alternatives: non_existent_with_hint assert_match "Installing a (2)", @ui.output end def test_execute_installs_deps_a_gemdeps spec_fetcher do |fetcher| fetcher.download "q", "1.0" @@ -31,6 +31,20 @@ class TestGemResolverBestSet < Gem::TestCase assert_equal %w[a-1], found.map(&:full_name) end def test_find_all_local spec_fetcher do |fetcher| fetcher.spec "a", 1 |