Object
# File lib/hiera.rb, line 37 def debug(msg); @logger.debug(msg); end
Loggers are pluggable, just provide a class called Hiera::Foo_logger and respond to :warn and :debug
See hiera-puppet for an example that uses the Puppet loging system instead of our own
# File lib/hiera.rb, line 25 def logger=(logger) loggerclass = "#{logger.capitalize}_logger" require "hiera/#{logger}_logger" unless constants.include?(loggerclass) @logger = const_get(loggerclass) rescue Exception => e @logger = Console_logger warn("Failed to load #{logger} logger: #{e.class}: #{e}") end
If the config option is a string its assumed to be a filename, else a hash of what would have been in the YAML config file
# File lib/hiera.rb, line 44 def initialize(options={}) options[:config] ||= File.join(Util.config_dir, 'hiera.yaml') @config = Config.load(options[:config]) Config.load_backends end
Calls the backends to do the actual lookup.
The scope can be anything that responds to [], if you have input data like a Puppet Scope that does not you can wrap that data in a class that has a [] method that fetches the data from your source. See hiera-puppet for an example of this.
The order-override will insert as first in the hierarchy a data source of your choice.
# File lib/hiera.rb, line 61 def lookup(key, default, scope, order_override=nil, resolution_type=:priority) Backend.lookup(key, default, scope, order_override, resolution_type) end
Generated with the Darkfish Rdoc Generator 2.