From: Michael Orlitzky Date: Thu, 19 Apr 2012 14:34:58 +0000 (-0400) Subject: Get the new YAML-based configuration working, and update the README. X-Git-Tag: 0.0.1~107 X-Git-Url: https://gitweb.michael.orlitzky.com/?a=commitdiff_plain;h=ee1ba23ac80e0f73bd95ae95be5f2f3309a27f28;p=mailshears.git Get the new YAML-based configuration working, and update the README. --- diff --git a/README b/README index 1fd643c..1f06558 100644 --- a/README +++ b/README @@ -35,8 +35,8 @@ Right now, mailshears is targeted at one type of setup: You put it in a directory somewhere, and run bin/mailshears. To make it do anything, you'll need to create a config file. The default is -stored in lib/default_configuration.rb; I suggest you copy that to -$HOME/.mailshears.conf.rb and edit it to fit your environment. +stored in mailshears.example.conf.yml; I suggest you copy that to +$HOME/.mailshears.conf.yml and edit it to fit your environment. You'll probably want to set up a cron job to run it every once in a while. diff --git a/lib/mailshears/configuration.rb b/lib/mailshears/configuration.rb index 1031464..e77969d 100644 --- a/lib/mailshears/configuration.rb +++ b/lib/mailshears/configuration.rb @@ -3,19 +3,27 @@ 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