From f7a1e25ae96a267190f06cce52d27ec5186f9dec Mon Sep 17 00:00:00 2001 From: Ewoud Kohl van Wijngaarden Date: Fri, 21 Jul 2023 12:16:14 +0200 Subject: [PATCH] Use FacterDB.filter_results --- Gemfile | 2 ++ lib/rspec-puppet-facts.rb | 6 +----- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/Gemfile b/Gemfile index 546cfb6..0fb8a6e 100644 --- a/Gemfile +++ b/Gemfile @@ -12,3 +12,5 @@ group :coverage, optional: ENV['COVERAGE']!='yes' do gem 'codecov', :require => false gem 'simplecov-console', :require => false end + +gem 'facterdb', github: 'ekohl/facterdb', branch: 'filter-results' diff --git a/lib/rspec-puppet-facts.rb b/lib/rspec-puppet-facts.rb index a26d5fb..aaac87e 100644 --- a/lib/rspec-puppet-facts.rb +++ b/lib/rspec-puppet-facts.rb @@ -128,11 +128,7 @@ def on_supported_os_implementation(opts = {}) # facter data (see FacterDB 0.5.2 for Facter releases 3.8 and 3.9). In this situation we need to # cycle through and downgrade Facter versions per platform type until we find matching Facter data. filter.each do |filter_spec| - versions = JGrep.jgrep(db.to_json, FacterDB.generate_filter_str(filter_spec)) \ - .to_h do |facts| - result = facts.to_h { |k, v| [k.to_sym, v] } - [Gem::Version.new(result[:facterversion]), result] - end + versions = FacterDB.filter_results(db, filter_spec).to_h { |facts| [Gem::Version.new(facts[:facterversion]), facts] } version, facts = versions.select { |v, _f| strict_requirement =~ v }.max_by { |v, _f| v }