class Facter::Util::DirectoryLoader
Constants
- EXTERNAL_FACT_WEIGHT
This value makes it highly likely that external facts will take precedence over all other facts
Attributes
directory[R]
Directory for fact loading
Public Class Methods
default_loader()
click to toggle source
# File lib/facter/util/directory_loader.rb, line 49 def self.default_loader loaders = Facter::Util::Config.external_facts_dirs.collect do |dir| Facter::Util::DirectoryLoader.new(dir) end Facter::Util::CompositeLoader.new(loaders) end
loader_for(dir)
click to toggle source
# File lib/facter/util/directory_loader.rb, line 41 def self.loader_for(dir) if File.directory?(dir) Facter::Util::DirectoryLoader.new(dir) else raise NoSuchDirectoryError end end
new(dir, weight = nil)
click to toggle source
# File lib/facter/util/directory_loader.rb, line 36 def initialize(dir, weight = nil) @directory = dir @weight = weight || EXTERNAL_FACT_WEIGHT end
Public Instance Methods
load(collection)
click to toggle source
Load facts from files in fact directory using the relevant parser classes to parse them.
# File lib/facter/util/directory_loader.rb, line 58 def load(collection) weight = @weight entries.each do |file| parser = Facter::Util::Parser.parser_for(file) if parser == nil next end data = parser.results if data == false Facter.warn "Could not interpret fact file #{file}" elsif data == {} or data == nil Facter.warn "Fact file #{file} was parsed but returned an empty data set" else data.each { |p,v| collection.add(p, :value => v) { has_weight(weight) } } end end end
Private Instance Methods
entries()
click to toggle source
# File lib/facter/util/directory_loader.rb, line 79 def entries Dir.entries(directory).find_all { |f| should_parse?(f) }.sort.map { |f| File.join(directory, f) } rescue Errno::ENOENT => detail [] end
should_parse?(file)
click to toggle source
# File lib/facter/util/directory_loader.rb, line 85 def should_parse?(file) not file =~ /^\./ end