diff options
Diffstat (limited to 'lib/bundler/mirror.rb')
-rw-r--r-- | lib/bundler/mirror.rb | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/lib/bundler/mirror.rb b/lib/bundler/mirror.rb index 97a6776adb..a6fa070eb8 100644 --- a/lib/bundler/mirror.rb +++ b/lib/bundler/mirror.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + require "socket" module Bundler @@ -37,7 +38,7 @@ module Bundler mirror = if config.all? @all else - (@mirrors[config.uri] = @mirrors[config.uri] || Mirror.new) + @mirrors[config.uri] ||= Mirror.new end config.update_mirror(mirror) end @@ -45,7 +46,9 @@ module Bundler private def fetch_valid_mirror_for(uri) - mirror = (@mirrors[URI(uri.to_s.downcase)] || @mirrors[URI(uri.to_s).host] || Mirror.new(uri)).validate!(@prober) + downcased = uri.to_s.downcase + mirror = @mirrors[downcased] || @mirrors[URI(downcased).host] || Mirror.new(uri) + mirror.validate!(@prober) mirror = Mirror.new(uri) unless mirror.valid? mirror end @@ -117,7 +120,7 @@ module Bundler def initialize(config_line, value) uri, fallback = - config_line.match(%r{^mirror\.(all|.+?)(\.fallback_timeout)?\/?$}).captures + config_line.match(%r{\Amirror\.(all|.+?)(\.fallback_timeout)?\/?\z}).captures @fallback = !fallback.nil? @all = false if uri == "all" |