Skip to content

Commit

Permalink
(maint) - Add deep_merge gem dependency
Browse files Browse the repository at this point in the history
  • Loading branch information
jordanbreen28 committed Jul 19, 2023
1 parent 3ca517d commit 828b171
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 10 deletions.
13 changes: 3 additions & 10 deletions lib/rspec-puppet-facts.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
require 'facter'
require 'facterdb'
require 'json'
require 'deep_merge'

# The purpose of this module is to simplify the Puppet
# module's RSpec tests by looping through all supported
Expand Down Expand Up @@ -229,9 +230,9 @@ def self.with_custom_facts(os, facts)
next if fact[:options][:exclude] && fact[:options][:exclude].include?(os)

if fact[:value].respond_to?(:call)
facts = facts.deep_merge({name.to_sym => fact[:value].call(os, facts)})
facts = facts.deep_merge!({name.to_sym => fact[:value].call(os, facts)})
else
facts = facts.deep_merge({name.to_sym => fact[:value]})
facts = facts.deep_merge!({name.to_sym => fact[:value]})
end
end

Expand Down Expand Up @@ -408,11 +409,3 @@ def self.facter_version_for_puppet_version(puppet_version)
:default => RspecPuppetFacts.facter_version_for_puppet_version(Puppet.version)
c.add_setting :facterdb_string_keys, :default => false
end

# monkey patch the Hash Class to add deep_merge
class ::Hash
def deep_merge(second)
merger = proc { |_, v1, v2| Hash === v1 && Hash === v2 ? v1.merge(v2, &merger) : Array === v1 && Array === v2 ? v1 | v2 : [:undefined, nil, :nil].include?(v2) ? v1 : v2 }
merge(second.to_h, &merger)
end
end
1 change: 1 addition & 0 deletions rspec-puppet-facts.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ Gem::Specification.new do |s|
s.add_development_dependency 'voxpupuli-rubocop', '~> 2.0'

s.add_runtime_dependency 'facter'
s.add_runtime_dependency 'deep_merge', '~> 1.2'

Check failure on line 29 in rspec-puppet-facts.gemspec

View workflow job for this annotation

GitHub Actions / rubocop

Gemspec/OrderedDependencies: Dependencies should be sorted in an alphabetical order within their section of the gemspec. Dependency `deep_merge` should appear before `facter`.
s.add_runtime_dependency 'facterdb', '>= 0.5.0'
s.add_runtime_dependency 'puppet'
end

0 comments on commit 828b171

Please sign in to comment.