Method: Facter::Util::Fact#define_resolution

Defined in:
lib/facter/custom_facts/util/fact.rb

#define_resolution(resolution_name, options = {}, &block) ⇒ Facter::Util::Resolution

Define a new named resolution or return an existing resolution with the given name.

Parameters:

  • resolution_name (String)

    The name of the resolve to define or look up

  • options (Hash) (defaults to: {})

    A hash of options to set on the resolution

Returns:



78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
# File 'lib/facter/custom_facts/util/fact.rb', line 78

def define_resolution(resolution_name, options = {}, &block)
  resolution_type = options.delete(:type) || :simple

  resolve = create_or_return_resolution(resolution_name, resolution_type)

  resolve.options(options) unless options.empty?
  resolve.evaluate(&block) if block

  resolve
rescue StandardError => e
  msg = "Unable to add resolve #{resolution_name.inspect} for fact '#{@name}': #{e.message}"
  msg += "\n#{e.backtrace.join("\n")}" if Options[:trace]
  log.error(msg, true)
  nil
end