From 926e912cd4eeedacc5833457ed34e57bd06f5b1a Mon Sep 17 00:00:00 2001 From: Nick Lewis Date: Tue, 31 May 2011 13:25:43 -0700 Subject: (#7670) Stop preloading all facts in the application If a requested fact isn't found in the same location as its name, we want to load all of the facts to find it. However, to simplify that, we were previously just preloading all the facts every time. Because requesting a fact now implicitly loads all facts if necessary, we can rely on that, providing results much more quickly in the case where facts do match their filenames. Reviewed-By: Jacob Helwig --- lib/facter/application.rb | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/lib/facter/application.rb b/lib/facter/application.rb index bd68149..9b6da1d 100644 --- a/lib/facter/application.rb +++ b/lib/facter/application.rb @@ -10,10 +10,6 @@ module Facter names = argv # Create the facts hash that is printed to standard out. - # Pre-load all of the facts, since we can have multiple facts - # per file, and since we can't know ahead of time which file a - # fact will be in, we'll need to load every file. - facts = Facter.to_hash unless names.empty? facts = {} names.each do |name| @@ -26,6 +22,9 @@ module Facter end end + # Print everything if they didn't ask for specific facts. + facts ||= Facter.to_hash + # Print the facts as YAML and exit if options[:yaml] require 'yaml' -- cgit