Maintenance Ruby 3.3 gets fixes, but no new features. Switch to Ruby 4.0 →
class method
Gem::ConfigFile.load_with_rubygems_config_hash
load_with_rubygems_config_hash(yaml)
lib/rubygems/config_file.rb
View on GitHub ↗
# File tmp/rubies/ruby-3.3.0/lib/rubygems/config_file.rb, line 530
def self.load_with_rubygems_config_hash(yaml)
require_relative "yaml_serializer"
content = Gem::YAMLSerializer.load(yaml)
content.transform_keys! do |k|
if k.match?(/\A:(.*)\Z/)
k[1..-1].to_sym
elsif k.include?("__") || k.match?(%r{/\Z})
if k.is_a?(Symbol)
k.to_s.gsub(/__/,".").gsub(%r{/\Z}, "").to_sym
else
k.dup.gsub(/__/,".").gsub(%r{/\Z}, "")
end
else
k
end
end
content.transform_values! do |v|
if v.is_a?(String)
if v.match?(/\A:(.*)\Z/)
v[1..-1].to_sym
elsif v.match?(/\A[+-]?\d+\Z/)
v.to_i
elsif v.match?(/\Atrue|false\Z/)
v == "true"
elsif v.empty?
nil
else
v
end
elsif v.is_a?(Hash) && v.empty?
nil
else
v
end
end
content
end
No documentation available