diff options
-rw-r--r-- | lib/rubygems/config_file.rb | 11 | ||||
-rw-r--r-- | test/rubygems/test_gem_config_file.rb | 10 |
2 files changed, 21 insertions, 0 deletions
diff --git a/lib/rubygems/config_file.rb b/lib/rubygems/config_file.rb index df74ff8920..7874ad0dc9 100644 --- a/lib/rubygems/config_file.rb +++ b/lib/rubygems/config_file.rb @@ -210,6 +210,17 @@ class Gem::ConfigFile @hash = @hash.merge environment_config end + @hash.transform_keys! do |k| + # gemhome and gempath are not working with symbol keys + if %w[backtrace bulk_threshold verbose update_sources cert_expiration_length_days + install_extension_in_lib ipv4_fallback_enabled sources disable_default_gem_server + ssl_verify_mode ssl_ca_cert ssl_client_cert].include?(k) + k.to_sym + else + k + end + end + # HACK: these override command-line args, which is bad @backtrace = @hash[:backtrace] if @hash.key? :backtrace @bulk_threshold = @hash[:bulk_threshold] if @hash.key? :bulk_threshold diff --git a/test/rubygems/test_gem_config_file.rb b/test/rubygems/test_gem_config_file.rb index e8c76ab49b..a055f248be 100644 --- a/test/rubygems/test_gem_config_file.rb +++ b/test/rubygems/test_gem_config_file.rb @@ -487,6 +487,16 @@ if you believe they were disclosed to a third party. end end + def test_accept_string_key + File.open @temp_conf, "w" do |fp| + fp.puts "verbose: false" + end + + util_config_file + + assert_equal false, @cfg.verbose + end + def test_load_ssl_verify_mode_from_config File.open @temp_conf, "w" do |fp| fp.puts ":ssl_verify_mode: 1" |