Skip to content

Commit 7f0939d

Browse files
authored
Merge pull request #8849 from tambry/psych_4.x
(PUP-11405) Replace deprecated/changed Psych YAML methods, pin rdoc
2 parents 5d7a81d + 6084fcb commit 7f0939d

File tree

2 files changed

+11
-3
lines changed

2 files changed

+11
-3
lines changed

Gemfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ group(:features) do
2929
#gem 'ruby-shadow', '~> 2.5', require: false, platforms: [:ruby]
3030
gem 'minitar', '~> 0.9', require: false
3131
gem 'msgpack', '~> 1.2', require: false
32-
gem 'rdoc', '~> 6.0', require: false, platforms: [:ruby]
32+
gem 'rdoc', ['~> 6.0', '< 6.4.0'], require: false, platforms: [:ruby]
3333
# requires native augeas headers/libs
3434
# gem 'ruby-augeas', require: false, platforms: [:ruby]
3535
# requires native ldap headers/libs

lib/puppet/util/yaml.rb

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,11 @@ class YamlLoadError < Puppet::Error; end
2424
# @raise [YamlLoadException] If deserialization fails.
2525
# @return The parsed YAML, which can be Hash, Array or scalar types.
2626
def self.safe_load(yaml, allowed_classes = [], filename = nil)
27-
data = YAML.safe_load(yaml, allowed_classes, [], true, filename)
27+
if Gem::Version.new(Psych::VERSION) >= Gem::Version.new('3.1.0')
28+
data = YAML.safe_load(yaml, permitted_classes: allowed_classes, aliases: true, filename: filename)
29+
else
30+
data = YAML.safe_load(yaml, allowed_classes, [], true, filename)
31+
end
2832
data = false if data.nil?
2933
data
3034
rescue ::Psych::DisallowedClass => detail
@@ -68,7 +72,11 @@ def self.load_file(filename, default_value = false, strip_classes = false)
6872
end
6973
data.to_ruby || default_value
7074
else
71-
yaml = YAML.load_file(filename)
75+
if Gem::Version.new(Psych::VERSION) >= Gem::Version.new('3.3.2')
76+
yaml = YAML.unsafe_load_file(filename)
77+
else
78+
yaml = YAML.load_file(filename)
79+
end
7280
yaml || default_value
7381
end
7482
rescue *YamlLoadExceptions => detail

0 commit comments

Comments
 (0)