From 8608f10b133549966e000b6c983d9aa1edd1bdd6 Mon Sep 17 00:00:00 2001 From: Nathan Broadbent Date: Tue, 6 Sep 2011 12:56:42 +0800 Subject: [PATCH] Set default settings from config.example.yml if key is missing from config.yml --- config/initializers/_load_config.rb | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/config/initializers/_load_config.rb b/config/initializers/_load_config.rb index 19e2134..afde4f6 100644 --- a/config/initializers/_load_config.rb +++ b/config/initializers/_load_config.rb @@ -20,12 +20,12 @@ if ENV['HEROKU'] end # Use example config for test environment. -config_file = Rails.root.join('config', Rails.env == "test" ? "config.example.yml" : "config.yml") +default_config_file = Rails.root.join("config", "config.example.yml") +config_file = Rails.env == "test" ? default_config_file : Rails.root.join("config", "config.yml") # Load config if config file exists. if File.exists?(config_file) - yaml = File.read(config_file) - config = YAML.load(yaml) + config = YAML.load_file(config_file) config.merge!(config.delete(Rails.env)) if config.has_key?(Rails.env) config.each do |k,v| Errbit::Config.send("#{k}=", v) @@ -35,6 +35,12 @@ elsif not ENV['HEROKU'] raise "Please copy 'config/config.example.yml' to 'config/config.yml' and configure your settings." end +# Set default settings from config.example.yml if key is missing from config.yml +default_config = YAML.load_file(default_config_file) +default_config.each do |k,v| + Errbit::Config.send("#{k}=", v) if Errbit::Config.send(k) === nil +end + # Set SMTP settings if given. if smtp = Errbit::Config.smtp_settings Errbit::Application.config.action_mailer.smtp_settings = smtp -- libgit2 0.21.2