Class | Facter::Util::Loader |
In: |
lib/facter/util/loader.rb
|
Parent: | Object |
Load facts on demand.
Load all resolutions for a single fact.
# File lib/facter/util/loader.rb, line 6 6: def load(fact) 7: # Now load from the search path 8: shortname = fact.to_s.downcase 9: load_env(shortname) 10: 11: filename = shortname + ".rb" 12: search_path.each do |dir| 13: # Load individual files 14: file = File.join(dir, filename) 15: 16: load_file(file) if FileTest.exist?(file) 17: 18: # And load any directories matching the name 19: factdir = File.join(dir, shortname) 20: load_dir(factdir) if FileTest.directory?(factdir) 21: end 22: end
Load all facts from all directories.
# File lib/facter/util/loader.rb, line 25 25: def load_all 26: return if defined?(@loaded_all) 27: 28: load_env 29: 30: search_path.each do |dir| 31: next unless FileTest.directory?(dir) 32: 33: Dir.entries(dir).each do |file| 34: path = File.join(dir, file) 35: if File.directory?(path) 36: load_dir(path) 37: elsif file =~ /\.rb$/ 38: load_file(File.join(dir, file)) 39: end 40: end 41: end 42: 43: @loaded_all = true 44: end
The list of directories we‘re going to search through for facts.
# File lib/facter/util/loader.rb, line 47 47: def search_path 48: result = [] 49: result += $LOAD_PATH.collect { |d| File.join(d, "facter") } 50: if ENV.include?("FACTERLIB") 51: result += ENV["FACTERLIB"].split(":") 52: end 53: 54: # This allows others to register additional paths we should search. 55: result += Facter.search_path 56: 57: result 58: end