diff options
author | Hiroshi SHIBATA <hsbt@ruby-lang.org> | 2023-10-24 16:22:58 +0900 |
---|---|---|
committer | git <svn-admin@ruby-lang.org> | 2023-10-24 16:31:43 +0000 |
commit | 5c4978c11c4ea9569d5d99a86936fbef0ab7fa52 (patch) | |
tree | 0300dfa2a7e7d529573c71debda64e69b02fd0a7 /lib/rubygems | |
parent | c86c6a84f53a21330702ebd21cc1a65d7776171d (diff) | |
download | ruby-5c4978c11c4ea9569d5d99a86936fbef0ab7fa52.tar.gz |
[rubygems/rubygems] Handle empty array
https://github.com/rubygems/rubygems/commit/7c0afdd9af
Diffstat (limited to 'lib/rubygems')
-rw-r--r-- | lib/rubygems/yaml_serializer.rb | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/lib/rubygems/yaml_serializer.rb b/lib/rubygems/yaml_serializer.rb index 5847628514..209bc4718b 100644 --- a/lib/rubygems/yaml_serializer.rb +++ b/lib/rubygems/yaml_serializer.rb @@ -17,7 +17,11 @@ module Gem if v.is_a?(Hash) yaml << dump_hash(v).gsub(/^(?!$)/, " ") # indent all non-empty lines elsif v.is_a?(Array) # Expected to be array of strings - yaml << "\n- " << v.map {|s| s.to_s.gsub(/\s+/, " ").inspect }.join("\n- ") << "\n" + if v.empty? + yaml << " []\n" + else + yaml << "\n- " << v.map {|s| s.to_s.gsub(/\s+/, " ").inspect }.join("\n- ") << "\n" + end else yaml << " " << v.to_s.gsub(/\s+/, " ").inspect << "\n" end @@ -63,6 +67,7 @@ module Gem last_empty_key = key last_hash = stack[depth] else + val = [] if val == "[]" # empty array stack[depth][key] = val end elsif match = ARRAY_REGEX.match(line) |