class method
Gem::ConfigFile.deep_transform_config_keys!
deep_transform_config_keys!(config)
lib/rubygems/config_file.rb
View on GitHub ↗
# File tmp/rubies/ruby-4.0.0/lib/rubygems/config_file.rb, line 563
def self.deep_transform_config_keys!(config)
config.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
config.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.empty?
nil
elsif v.is_a?(Hash)
deep_transform_config_keys!(v)
else
v
end
end
config
end
No documentation available