From 0fb73a8eda941075533cdd109b591b746fee4c19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Rodr=C3=ADguez?= Date: Tue, 28 May 2024 17:58:00 +0200 Subject: [rubygems/rubygems] Avoid appending a final "/" when `fallback_timeout` is used in config https://github.com/rubygems/rubygems/commit/a0af1baa2b --- lib/bundler/settings.rb | 2 +- spec/bundler/commands/config_spec.rb | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) 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 -- cgit v1.2.3