From: Michael Orlitzky Date: Thu, 19 Apr 2012 13:55:22 +0000 (-0400) Subject: Add a Configuration class which loads a user YAML file instead of Ruby code. X-Git-Tag: 0.0.1~110 X-Git-Url: http://gitweb.michael.orlitzky.com/?p=mailshears.git;a=commitdiff_plain;h=b507408a9970a426ee2b55f1ec06332aa9df7ffe;ds=sidebyside Add a Configuration class which loads a user YAML file instead of Ruby code. --- diff --git a/lib/mailshears/configuration.rb b/lib/mailshears/configuration.rb new file mode 100644 index 0000000..1031464 --- /dev/null +++ b/lib/mailshears/configuration.rb @@ -0,0 +1,59 @@ +require 'yaml' + +class Configuration + + USERCONF_PATH = ENV['HOME'] + '/.mailshears.conf.yml' + + def initialize() + cfg = self.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 + # If the user config file doesn't exist, whatever. + end + + @dict = cfg + end + + + def method_missing(sym, *args) + # Replace all missing method calls with dictionary lookups. + return @dict[sym] + end + + + private; + + def default_configuration() + d = {} + + d['i_mean_business'] = false + + d['dbhost'] = 'localhost' + d['dbport'] = 5432 + d['dbopts'] = '' + d['dbtty'] = '' + d['dbuser'] = 'postgres' + d['dbpass'] = '' + d['dbname'] = 'postfix' + + d['plugins'] = ['dovecot_mailstore', 'roundcube_db'] + + d['mail_root'] = '/var/spool/mail/vhosts' + + d['roundcube_dbhost'] = 'localhost' + d['roundcube_dbport'] = 5432 + d['roundcube_dbopts'] = '' + d['roundcube_dbtty'] = '' + d['roundcube_dbuser'] = 'postgres' + d['roundcube_dbpass'] = '' + d['roundcube_dbname'] = 'roundcube' + + return d + end + +end