@@ -58,16 +58,14 @@ def on_supported_os(opts = {})
5858 # @api private
5959 def on_supported_os_implementation ( opts = { } )
6060 unless /\A \d +\. \d +(?:\. \d +)*\z / . match? ( ( facterversion = opts [ :facterversion ] ) )
61- raise ArgumentError , ":facterversion must be in the format 'n.n' or " \
62- "'n.n.n' (n is numeric), not '#{ facterversion } '"
61+ raise ArgumentError , ":facterversion must be in the format 'n.n' or 'n.n.n' (n is numeric), not '#{ facterversion } '"
6362 end
6463
6564 filter = [ ]
6665 opts [ :supported_os ] . map do |os_sup |
6766 if os_sup [ 'operatingsystemrelease' ]
6867 Array ( os_sup [ 'operatingsystemrelease' ] ) . map do |operatingsystemmajrelease |
6968 opts [ :hardwaremodels ] . each do |hardwaremodel |
70-
7169 os_release_filter = "/^#{ Regexp . escape ( operatingsystemmajrelease . split ( ' ' ) [ 0 ] ) } /"
7270 case os_sup [ 'operatingsystem' ]
7371 when /BSD/i
@@ -90,7 +88,7 @@ def on_supported_os_implementation(opts = {})
9088 os_release_filter = "\" #{ operatingsystemmajrelease } \" "
9189 when /Amazon/i
9290 # Tighten the regex for Amazon Linux 2 so that we don't pick up Amazon Linux 2016 or 2017 facts
93- os_release_filter = " /^2$/" if operatingsystemmajrelease == '2'
91+ os_release_filter = ' /^2$/' if operatingsystemmajrelease == '2'
9492 end
9593
9694 filter << {
@@ -110,26 +108,26 @@ def on_supported_os_implementation(opts = {})
110108 end
111109 end
112110
113- strict_requirement = RspecPuppetFacts :: facter_version_to_strict_requirement ( facterversion )
111+ strict_requirement = RspecPuppetFacts . facter_version_to_strict_requirement ( facterversion )
114112
115- loose_requirement = RspecPuppetFacts :: facter_version_to_loose_requirement ( facterversion )
113+ loose_requirement = RspecPuppetFacts . facter_version_to_loose_requirement ( facterversion )
116114 received_facts = [ ]
117115
118116 # FacterDB may have newer versions of facter data for which it contains a subset of all possible
119117 # facter data (see FacterDB 0.5.2 for Facter releases 3.8 and 3.9). In this situation we need to
120118 # cycle through and downgrade Facter versions per platform type until we find matching Facter data.
121119 filter . each do |filter_spec |
122- versions = FacterDB . get_facts ( filter_spec , symbolize_keys : !RSpec . configuration . facterdb_string_keys ) . to_h { |facts | [ Gem ::Version . new ( facts [ :facterversion ] ) , facts ] }
120+ versions = FacterDB . get_facts ( filter_spec , symbolize_keys : !RSpec . configuration . facterdb_string_keys ) . to_h do |facts |
121+ [ Gem ::Version . new ( facts [ :facterversion ] ) , facts ]
122+ end
123123
124124 version , facts = versions . select { |v , _f | strict_requirement =~ v } . max_by { |v , _f | v }
125125
126126 unless version
127127 version , facts = versions . select { |v , _f | loose_requirement =~ v } . max_by { |v , _f | v } if loose_requirement
128128 next unless version
129129
130- if RspecPuppetFacts . spec_facts_strict?
131- raise ArgumentError , "No facts were found in the FacterDB for Facter v#{ facterversion } on #{ filter_spec } , aborting"
132- end
130+ raise ArgumentError , "No facts were found in the FacterDB for Facter v#{ facterversion } on #{ filter_spec } , aborting" if RspecPuppetFacts . spec_facts_strict?
133131
134132 RspecPuppetFacts . warning "No facts were found in the FacterDB for Facter v#{ facterversion } on #{ filter_spec } , using v#{ version } instead"
135133 end
@@ -152,6 +150,7 @@ def on_supported_os_implementation(opts = {})
152150
153151 os = "#{ os_fact [ 'name' ] . downcase } -#{ os_fact [ 'release' ] [ 'major' ] } -#{ os_fact [ 'hardware' ] } "
154152 next if RspecPuppetFacts . spec_facts_os_filter && !os . start_with? ( RspecPuppetFacts . spec_facts_os_filter )
153+
155154 facts . merge! RspecPuppetFacts . common_facts
156155 os_facts_hash [ os ] = RspecPuppetFacts . with_custom_facts ( os , facts )
157156 end
@@ -193,7 +192,7 @@ def add_custom_fact(name, value, options = {})
193192 def self . register_custom_fact ( name , value , options )
194193 @custom_facts ||= { }
195194 name = RSpec . configuration . facterdb_string_keys ? name . to_s : name . to_sym
196- @custom_facts [ name ] = { : options => options , : value => value }
195+ @custom_facts [ name ] = { options : options , value : value }
197196 end
198197
199198 # Adds any custom facts according to the rules defined for the operating
@@ -212,7 +211,7 @@ def self.with_custom_facts(os, facts)
212211 value = fact [ :value ] . respond_to? ( :call ) ? fact [ :value ] . call ( os , facts ) : fact [ :value ]
213212 # if merge_facts passed, merge supplied facts into facts hash
214213 if fact [ :options ] [ :merge_facts ]
215- facts . deep_merge! ( { name => value } )
214+ facts . deep_merge! ( { name => value } )
216215 else
217216 facts [ name ] = value
218217 end
@@ -235,7 +234,7 @@ def self.custom_facts
235234 # @return [nil,String]
236235 # @api private
237236 def self . spec_facts_os_filter
238- ENV [ 'SPEC_FACTS_OS' ]
237+ ENV . fetch ( 'SPEC_FACTS_OS' , nil )
239238 end
240239
241240 # If SPEC_FACTS_STRICT is set to `yes`, RspecPuppetFacts will error on missing FacterDB entries, instead of warning & skipping the tests, or using an older facter version.
@@ -251,17 +250,16 @@ def self.spec_facts_strict?
251250 # @return [Hash <Symbol => String>]
252251 def self . common_facts
253252 return @common_facts if @common_facts
253+
254254 @common_facts = {
255- : puppetversion => Puppet . version ,
256- : rubysitedir => RbConfig ::CONFIG [ 'sitelibdir' ] ,
257- : rubyversion => RUBY_VERSION ,
255+ puppetversion : Puppet . version ,
256+ rubysitedir : RbConfig ::CONFIG [ 'sitelibdir' ] ,
257+ rubyversion : RUBY_VERSION ,
258258 }
259259
260260 @common_facts [ :mco_version ] = MCollective ::VERSION if mcollective?
261261
262- if augeas?
263- @common_facts [ :augeasversion ] = Augeas . open ( nil , nil , Augeas ::NO_MODL_AUTOLOAD ) . get ( '/augeas/version' )
264- end
262+ @common_facts [ :augeasversion ] = Augeas . open ( nil , nil , Augeas ::NO_MODL_AUTOLOAD ) . get ( '/augeas/version' ) if augeas?
265263 @common_facts = stringify_keys ( @common_facts ) if RSpec . configuration . facterdb_string_keys
266264
267265 @common_facts
@@ -298,9 +296,8 @@ def self.mcollective?
298296 # @return [Array<Hash>]
299297 # @api private
300298 def self . meta_supported_os
301- unless metadata [ 'operatingsystem_support' ] . is_a? Array
302- fail StandardError , 'Unknown operatingsystem support in the metadata file!'
303- end
299+ raise StandardError , 'Unknown operatingsystem support in the metadata file!' unless metadata [ 'operatingsystem_support' ] . is_a? Array
300+
304301 metadata [ 'operatingsystem_support' ]
305302 end
306303
@@ -311,9 +308,8 @@ def self.meta_supported_os
311308 # @api private
312309 def self . metadata
313310 return @metadata if @metadata
314- unless File . file? metadata_file
315- fail StandardError , "Can't find metadata.json... dunno why"
316- end
311+ raise StandardError , "Can't find metadata.json... dunno why" unless File . file? metadata_file
312+
317313 content = File . read metadata_file
318314 @metadata = JSON . parse content
319315 end
@@ -329,7 +325,7 @@ def self.metadata_file
329325 # @param message [String]
330326 # @api private
331327 def self . warning ( message )
332- STDERR . puts message
328+ warn message
333329 end
334330
335331 # Reset the memoization
@@ -379,9 +375,6 @@ def self.facter_version_to_loose_requirement_string(version)
379375 elsif /\A [0-9]+\Z / . match? ( version )
380376 # Interpret 3 as < 4
381377 "< #{ version . to_i + 1 } "
382- else
383- # This would be the same as the strict requirement
384- nil
385378 end
386379 end
387380
@@ -397,13 +390,13 @@ def self.facter_version_for_puppet_version(puppet_version)
397390 fd = File . open ( json_path , 'rb:UTF-8' )
398391 data = JSON . parse ( fd . read )
399392
400- version_map = data . map { |_ , versions |
393+ version_map = data . map do |_ , versions |
401394 if versions [ 'puppet' ] . nil? || versions [ 'facter' ] . nil?
402395 nil
403396 else
404397 [ Gem ::Version . new ( versions [ 'puppet' ] ) , versions [ 'facter' ] ]
405398 end
406- } . compact
399+ end . compact
407400
408401 puppet_gem_version = Gem ::Version . new ( puppet_version )
409402 applicable_versions = version_map . select { |p , _ | puppet_gem_version >= p }
@@ -422,8 +415,6 @@ def self.facter_version_for_puppet_version(puppet_version)
422415end
423416
424417RSpec . configure do |c |
425- c . add_setting :default_facter_version ,
426- default : RspecPuppetFacts . facter_version_for_puppet_version ( Puppet . version )
427- c . add_setting :facterdb_string_keys ,
428- default : false
418+ c . add_setting :default_facter_version , default : RspecPuppetFacts . facter_version_for_puppet_version ( Puppet . version )
419+ c . add_setting :facterdb_string_keys , default : false
429420end
0 commit comments