Class: HieraSimulator::FactSource::FactFile

Inherits:
Object
  • Object
show all
Defined in:
lib/hiera-simulator/fact_source/factfile.rb

Overview

Retrieve facts from a specified file on the file system.

Instance Method Summary collapse

Constructor Details

#initialize(config, override = {}) ⇒ FactFile

Constructor

Parameters:

Raises:



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

Parameters:

  • node (String) (defaults to: nil)

    IGNORED

  • stringify_facts (Boolean)

    IGNORED

Returns:

  • (Hash)

    Facts from the node in question

Raises:



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