Skip to content

Commit 832c9b5

Browse files
authored
Merge pull request #2496 from ekohl/FACT-3102-ruby-3.1
(FACT-3102) Use non-deprecated YAML safe loading
2 parents 9543c0e + 89f86e7 commit 832c9b5

File tree

2 files changed

+11
-2
lines changed

2 files changed

+11
-2
lines changed

.github/workflows/unit_tests.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ jobs:
2121
- '2.3'
2222
- '2.7'
2323
- '3.0'
24+
- '3.1'
2425
- 'jruby'
2526
runs-on: ubuntu-18.04
2627
steps:

lib/facter/custom_facts/util/parser.rb

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,11 @@ def parse_results
7070
def parse_executable_output(output)
7171
res = nil
7272
begin
73-
res = YAML.safe_load(output, [Symbol, Time])
73+
res = if Gem::Version.new(Psych::VERSION) >= Gem::Version.new('3.1.0') # Ruby 2.6+
74+
YAML.safe_load(output, permitted_classes: [Symbol, Time])
75+
else
76+
YAML.safe_load(output, [Symbol, Time])
77+
end
7478
rescue StandardError => e
7579
Facter.debug("Could not parse executable fact output as YAML or JSON (#{e.message})")
7680
end
@@ -114,7 +118,11 @@ def parse_results
114118
# Add quotes to Yaml time
115119
cont = content.gsub(TIME, '"\1"')
116120

117-
YAML.safe_load(cont, [Date])
121+
if Gem::Version.new(Psych::VERSION) >= Gem::Version.new('3.1.0') # Ruby 2.6+
122+
YAML.safe_load(cont, permitted_classes: [Date])
123+
else
124+
YAML.safe_load(cont, [Date])
125+
end
118126
end
119127
end
120128

0 commit comments

Comments
 (0)