Class: HieraSimulator::FactSource::FactFile
- Inherits:
-
Object
- Object
- HieraSimulator::FactSource::FactFile
- Defined in:
- lib/hiera-simulator/fact_source/factfile.rb
Overview
Retrieve facts from a specified file on the file system.
Instance Method Summary collapse
-
#facts(node = nil) ⇒ Hash
Get facts for a node.
-
#initialize(config, override = {}) ⇒ FactFile
constructor
Constructor.
Constructor Details
#initialize(config, override = {}) ⇒ FactFile
Constructor
10 11 12 13 |
# File 'lib/hiera-simulator/fact_source/factfile.rb', line 10 def initialize(config, override = {}) @fact_file = override.fetch(:fact_file, config.get('fact_file', nil)) raise HieraSimulator::FactSourceError, 'No :fact_file was passed to FactFile' if @fact_file.nil? end |
Instance Method Details
#facts(node = nil) ⇒ Hash
Get facts for a node
19 20 21 22 23 24 |
# File 'lib/hiera-simulator/fact_source/factfile.rb', line 19 def facts(node = nil) raise HieraSimulator::FactLookupError, "Invalid fact file specified: #{@fact_file}" unless File.file?(@fact_file) return HieraSimulator::FactSource::Util.modify_and_load_yamlfile(@fact_file) if @fact_file =~ /\.yaml$/ return HieraSimulator::FactSource::Util.modify_and_load_jsonfile(@fact_file) if @fact_file =~ /\.json$/ raise HieraSimulator::FactLookupError, "Unknown extension for: #{@fact_file}; .yaml and .json files are supported" end |