diff options
author | Hiroshi SHIBATA <hsbt@ruby-lang.org> | 2023-04-17 18:54:29 +0900 |
---|---|---|
committer | git <svn-admin@ruby-lang.org> | 2023-04-19 06:56:18 +0000 |
commit | bf8d8ce1ee196a508c934f6664af949ca98548e5 (patch) | |
tree | ba7d9ab8027bbc58f5c93ae7d4e067af954fa690 /lib/rubygems/config_file.rb | |
parent | 364c2fea345a2b0cc5f1d975e1b55c7f542a7936 (diff) |
[rubygems/rubygems] Keep compatiblity of Bundler specs
https://github.com/rubygems/rubygems/commit/b211eeacba
Diffstat (limited to 'lib/rubygems/config_file.rb')
-rw-r--r-- | lib/rubygems/config_file.rb | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/lib/rubygems/config_file.rb b/lib/rubygems/config_file.rb index 36cf20194c..97c11bd95d 100644 --- a/lib/rubygems/config_file.rb +++ b/lib/rubygems/config_file.rb @@ -352,7 +352,27 @@ if you believe they were disclosed to a third party. begin content = Bundler::YAMLSerializer.load(File.read(filename)) - unless content.is_a? Hash + if content.is_a? Hash + content.transform_keys! do |k| + if k.match?(/__/) + if k.is_a?(Symbol) + k.to_s.gsub(/__/,".").to_sym + else + k.dup.gsub(/__/,".") + end + else + k + end + end + + content.transform_values! do |v| + if (v.is_a?(Hash) || v.is_a?(String)) && v.empty? + nil + else + v + end + end + else warn "Failed to load #{filename} because it doesn't contain valid YAML hash" return {} end |