X-Git-Url: http://gitweb.michael.orlitzky.com/?p=mailshears.git;a=blobdiff_plain;f=lib%2Fmailshears%2Fconfiguration.rb;h=f9a07bf1f7c81df2b5166991cb9d20dcfb7c2131;hp=1031464a4215c32ee29c2a80e03808a0971a0751;hb=806cb5223ac1f439cc40b8354a7dad08b380cfd5;hpb=b507408a9970a426ee2b55f1ec06332aa9df7ffe diff --git a/lib/mailshears/configuration.rb b/lib/mailshears/configuration.rb index 1031464..f9a07bf 100644 --- a/lib/mailshears/configuration.rb +++ b/lib/mailshears/configuration.rb @@ -3,23 +3,31 @@ require 'yaml' class Configuration USERCONF_PATH = ENV['HOME'] + '/.mailshears.conf.yml' - + @dict = {} + def initialize() - cfg = self.default_configuration() + cfg = default_configuration() # Now, load the user configuration which will override the # variables defined above. begin - user_config = Config.new(YAML.load(File.open(USERCONF_PATH))) - cfg.update!(user_config) - rescue LoadError + user_config = YAML.load(File.open(USERCONF_PATH)) + + # Write our own update() method for Ruby 1.8. + user_config.each do |key, value| + cfg[key] = value + end + rescue Errno::ENOENT # If the user config file doesn't exist, whatever. end + # Convert all of the keys to symbols. + cfg = cfg.inject({}){|memo,(k,v)| memo[k.to_sym] = v; memo} + @dict = cfg end - + def method_missing(sym, *args) # Replace all missing method calls with dictionary lookups. return @dict[sym]