-require 'yaml'
-
-class Configuration
-
- USERCONF_PATH = ENV['HOME'] + '/.mailshears.conf.yml'
- @dict = {}
-
- def initialize()
- cfg = default_configuration()
-
- # Now, load the user configuration which will override the
- # variables defined above.
- begin
- 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]
- 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