diff options
author | Hiroshi SHIBATA <hsbt@ruby-lang.org> | 2023-04-18 19:37:47 +0900 |
---|---|---|
committer | git <svn-admin@ruby-lang.org> | 2023-04-19 06:56:24 +0000 |
commit | d1c42da7a1212fe04dc86ed7a7439dd69380f08a (patch) | |
tree | a8156a5152b50641a701af50e9e4ffd7a9b2dbbe | |
parent | 40d1a0004041f60301c8090ab8955024ebc35cc2 (diff) | |
download | ruby-d1c42da7a1212fe04dc86ed7a7439dd69380f08a.tar.gz |
[rubygems/rubygems] To use Gem::YAMLSerializer in Bundler
https://github.com/rubygems/rubygems/commit/5351e01b32
-rw-r--r-- | lib/bundler/settings.rb | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/lib/bundler/settings.rb b/lib/bundler/settings.rb index 1139eab503..88dd829d66 100644 --- a/lib/bundler/settings.rb +++ b/lib/bundler/settings.rb @@ -386,8 +386,7 @@ module Bundler return unless file SharedHelpers.filesystem_access(file) do |p| FileUtils.mkdir_p(p.dirname) - require_relative "yaml_serializer" - p.open("w") {|f| f.write(YAMLSerializer.dump(hash)) } + p.open("w") {|f| f.write(serializer_class.dump(hash)) } end end @@ -449,8 +448,7 @@ module Bundler SharedHelpers.filesystem_access(config_file, :read) do |file| valid_file = file.exist? && !file.size.zero? return {} unless valid_file - require_relative "yaml_serializer" - YAMLSerializer.load(file.read).inject({}) do |config, (k, v)| + serializer_class.load(file.read).inject({}) do |config, (k, v)| new_k = k if k.include?("-") @@ -467,6 +465,15 @@ module Bundler end end + def serializer_class + require "rubygems/yaml_serializer" + Gem::YAMLSerializer + rescue LoadError + # TODO: Remove this when RubyGems 3.4 is EOL + require_relative "yaml_serializer" + YAMLSerializer + end + PER_URI_OPTIONS = %w[ fallback_timeout ].freeze |