summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorHiroshi SHIBATA <hsbt@ruby-lang.org>2023-04-18 19:37:47 +0900
committergit <svn-admin@ruby-lang.org>2023-04-19 06:56:24 +0000
commitd1c42da7a1212fe04dc86ed7a7439dd69380f08a (patch)
treea8156a5152b50641a701af50e9e4ffd7a9b2dbbe /lib
parent40d1a0004041f60301c8090ab8955024ebc35cc2 (diff)
downloadruby-d1c42da7a1212fe04dc86ed7a7439dd69380f08a.tar.gz
[rubygems/rubygems] To use Gem::YAMLSerializer in Bundler
https://github.com/rubygems/rubygems/commit/5351e01b32
Diffstat (limited to 'lib')
-rw-r--r--lib/bundler/settings.rb15
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