class Facter::InternalFactManager

Public Instance Methods

resolve_facts(searched_facts) click to toggle source
# File lib/facter/framework/core/fact/internal/internal_fact_manager.rb, line 6
def resolve_facts(searched_facts)
  internal_searched_facts = filter_internal_facts(searched_facts)

  resolved_facts = resolve(internal_searched_facts)
  nil_resolved_facts = resolve_nil_facts(searched_facts)

  resolved_facts.concat(nil_resolved_facts)
end

Private Instance Methods

filter_internal_facts(searched_facts) click to toggle source
# File lib/facter/framework/core/fact/internal/internal_fact_manager.rb, line 17
def filter_internal_facts(searched_facts)
  searched_facts.select { |searched_fact| %i[core legacy].include? searched_fact.type }
end
resolve(searched_facts) click to toggle source
# File lib/facter/framework/core/fact/internal/internal_fact_manager.rb, line 30
def resolve(searched_facts)
  resolved_facts = []

  searched_facts
    .uniq { |searched_fact| searched_fact.fact_class.name }
    .each do |searched_fact|
    begin
      fact = CoreFact.new(searched_fact)
      fact_value = nil
      Facter::Framework::Benchmarking::Timer.measure(searched_fact.name) { fact_value = fact.create }
      resolved_facts << fact_value unless fact_value.nil?
    rescue StandardError => e
      @@log.log_exception(e)
    end
  end

  resolved_facts.flatten!
  FactAugmenter.augment_resolved_facts(searched_facts, resolved_facts)
end
resolve_nil_facts(searched_facts) click to toggle source
# File lib/facter/framework/core/fact/internal/internal_fact_manager.rb, line 21
def resolve_nil_facts(searched_facts)
  resolved_facts = []
  searched_facts.select { |fact| fact.type == :nil }.each do |fact|
    resolved_facts << ResolvedFact.new(fact.name, nil, :nil, fact.name)
  end

  resolved_facts
end