Skip to content

Commit e04a399

Browse files
committed
(BOLT-1585) Support YAML#safe_load for ruby >= 2.5
This commit adds logic for calling the correct form of the YAML.safe_load method (using a positional vs named argument for allowed types) based on the version of the Psych module shipped with ruby 2.5 vs 3.
1 parent d43a071 commit e04a399

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

lib/bolt/applicator.rb

+7-1
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,13 @@ def compile(target, scope)
162162

163163
def validate_hiera_config(hiera_config)
164164
if File.exist?(File.path(hiera_config))
165-
data = File.open(File.path(hiera_config), "r:UTF-8") { |f| YAML.safe_load(f.read, [Symbol]) }
165+
data = File.open(File.path(hiera_config), "r:UTF-8") do |f|
166+
if Psych.method(:safe_load).parameters.rassoc(:permitted_classes)
167+
YAML.safe_load(f.read, permitted_classes: [Symbol])
168+
else
169+
YAML.safe_load(f.read, [Symbol])
170+
end
171+
end
166172
if data.nil?
167173
return nil
168174
elsif data['version'] != 5

0 commit comments

Comments
 (0)