summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Rodríguez <[email protected]>2024-05-28 17:58:00 +0200
committergit <[email protected]>2024-06-06 18:53:31 +0000
commit0fb73a8eda941075533cdd109b591b746fee4c19 (patch)
treeb14e91f09e1c7cd2cb02ca90b260e28284d2e12c
parent765d61593a088902debbffb62ed8ffb459643ce1 (diff)
[rubygems/rubygems] Avoid appending a final "/" when `fallback_timeout` is used in config
https://github.com/rubygems/rubygems/commit/a0af1baa2b
-rw-r--r--lib/bundler/settings.rb2
-rw-r--r--spec/bundler/commands/config_spec.rb6
2 files changed, 7 insertions, 1 deletions
diff --git a/lib/bundler/settings.rb b/lib/bundler/settings.rb
index 4cd189af12..878747a53b 100644
--- a/lib/bundler/settings.rb
+++ b/lib/bundler/settings.rb
@@ -493,7 +493,7 @@ module Bundler
return {} unless valid_file
serializer_class.load(file.read).inject({}) do |config, (k, v)|
k = k.dup
- k << "/" if /https?:/i.match?(k) && !%r{/\Z}.match?(k)
+ k << "/" if /https?:/i.match?(k) && !k.end_with?("/", "__#{FALLBACK_TIMEOUT_URI_OPTION.upcase}")
k.gsub!(".", "__")
unless k.start_with?("#")
diff --git a/spec/bundler/commands/config_spec.rb b/spec/bundler/commands/config_spec.rb
index e35344de23..d6a30eae5b 100644
--- a/spec/bundler/commands/config_spec.rb
+++ b/spec/bundler/commands/config_spec.rb
@@ -358,6 +358,12 @@ end
E
expect(out).to eq("http://gems.example.org/ => http://gem-mirror.example.org/")
end
+
+ it "allows configuring fallback timeout for each mirror, and does not duplicate configs", rubygems: ">= 3.5.12" do
+ bundle "config set --global mirror.https://rubygems.org.fallback_timeout 1"
+ bundle "config set --global mirror.https://rubygems.org.fallback_timeout 2"
+ expect(File.read(home(".bundle/config"))).to include("BUNDLE_MIRROR").once
+ end
end
describe "quoting" do