Current File : //opt/puppetlabs/puppet/lib/ruby/vendor_ruby/facter/framework/formatters/json_fact_formatter.rb |
# frozen_string_literal: true
module Facter
class JsonFactFormatter
def initialize
@log = Facter::Log.new(self)
end
def format(resolved_facts)
user_queries = resolved_facts.uniq(&:user_query).map(&:user_query)
if user_queries.count == 1 && user_queries.first.empty?
format_for_no_query(resolved_facts)
else
format_for_user_queries(user_queries, resolved_facts)
end
end
private
def format_for_no_query(resolved_facts)
@log.debug('No user query provided')
fact_collection = FormatterHelper.retrieve_fact_collection(resolved_facts)
JSON.pretty_generate(fact_collection)
end
def format_for_user_queries(user_queries, resolved_facts)
@log.debug('User provided a query')
facts_to_display = FormatterHelper.retrieve_facts_to_display_for_user_query(user_queries, resolved_facts)
JSON.pretty_generate(facts_to_display)
end
end
end