class RuntimeConfig
The RuntimeConfig
searches for a YAML config file in a list of directories. When a file is found it is read-in. The read-in config values are grouped in a tree of sections. The values of a section can then be used to overwrite the instance variable of a passed object.
Attributes
debugMode[RW]
Public Class Methods
new(appName, configFile = nil)
click to toggle source
# File lib/taskjuggler/RuntimeConfig.rb, line 24 def initialize(appName, configFile = nil) @appName = appName @config = nil @debugMode = false if configFile # Read user specified config file. unless loadConfigFile(configFile) error("Config file #{configFile} not found!") end else # Search config files in certain directories. [ '.', ENV['HOME'], '/etc' ].each do |path| # Try UNIX style hidden file first, then .rc. [ "#{path}/.#{appName}rc", "#{path}/#{appName}.rc" ].each do |file| break if loadConfigFile(file) end end end end
Public Instance Methods
configure(object, section)
click to toggle source
# File lib/taskjuggler/RuntimeConfig.rb, line 45 def configure(object, section) debug("Configuring object of type #{object.class}") sections = section.split('.') return false unless (p = @config) sections.each do |sec| p = p['_' + sec] unless p && p.is_a?(Hash) debug("Section #{section} not found in config file") return false end end object.instance_variables.each do |iv| ivName = iv[1..-1] debug("Processing class variable #{ivName}") if p.include?(ivName) debug("Setting @#{ivName} to #{p[ivName]}") object.instance_variable_set(iv, p[ivName]) end end true end