class DNSUpdater::Config
Config
file, configuration handling
Public Class Methods
addDefault(name, config)
click to toggle source
# File lib/dnsupdater/config.rb, line 44 def self.addDefault(name, config) getDefaultConfig[name] = config end
getDefaultConfig()
click to toggle source
# File lib/dnsupdater/config.rb, line 10 def self.getDefaultConfig @@DefaultConfig ||= { 'Default' => 'PowerDNS' } @@DefaultConfig end
new(configFile = nil)
click to toggle source
# File lib/dnsupdater/config.rb, line 17 def initialize(configFile = nil) @ConfigFile = nil @ConfigFile = Pathname.new(configFile) unless configFile.to_s.empty? @TargetProtocol = {} update(load) end
Public Instance Methods
getDefaultProtocol()
click to toggle source
# File lib/dnsupdater/config.rb, line 25 def getDefaultProtocol self['Default'].downcase.to_sym end
getTargetProtocol(name)
click to toggle source
# File lib/dnsupdater/config.rb, line 33 def getTargetProtocol(name) protocol = name.downcase.to_sym return @TargetProtocol[protocol] if @TargetProtocol.key?(protocol) return getDefaultProtocol if self[name]['Target'].to_s.empty? target = self[name]['Target'].downcase.to_sym return getDefaultProtocol if target == :default target end
setTargetProtocol(source, protocol)
click to toggle source
# File lib/dnsupdater/config.rb, line 29 def setTargetProtocol(source, protocol) @TargetProtocol[source] = protocol.downcase.to_sym unless protocol.to_s.empty? end
Private Instance Methods
load()
click to toggle source
# File lib/dnsupdater/config.rb, line 50 def load config = self.class.getDefaultConfig if @ConfigFile @ConfigFile = @ConfigFile.expand_path unless @ConfigFile.absolute? @ConfigFile = Pathname.new(Etc.sysconfdir) / 'dnsupdater.yaml' unless File.exist?(@ConfigFile) if File.exist?(@ConfigFile) configData = YAML.load_file(@ConfigFile) config = Utils.deepMerge(config, configData) if configData.is_a?(Hash) end end config end