Commit 8608f10b133549966e000b6c983d9aa1edd1bdd6
1 parent
c8d37823
Exists in
master
and in
1 other branch
Set default settings from config.example.yml if key is missing from config.yml
Showing
1 changed file
with
9 additions
and
3 deletions
Show diff stats
config/initializers/_load_config.rb
@@ -20,12 +20,12 @@ if ENV['HEROKU'] | @@ -20,12 +20,12 @@ if ENV['HEROKU'] | ||
20 | end | 20 | end |
21 | 21 | ||
22 | # Use example config for test environment. | 22 | # Use example config for test environment. |
23 | -config_file = Rails.root.join('config', Rails.env == "test" ? "config.example.yml" : "config.yml") | 23 | +default_config_file = Rails.root.join("config", "config.example.yml") |
24 | +config_file = Rails.env == "test" ? default_config_file : Rails.root.join("config", "config.yml") | ||
24 | 25 | ||
25 | # Load config if config file exists. | 26 | # Load config if config file exists. |
26 | if File.exists?(config_file) | 27 | if File.exists?(config_file) |
27 | - yaml = File.read(config_file) | ||
28 | - config = YAML.load(yaml) | 28 | + config = YAML.load_file(config_file) |
29 | config.merge!(config.delete(Rails.env)) if config.has_key?(Rails.env) | 29 | config.merge!(config.delete(Rails.env)) if config.has_key?(Rails.env) |
30 | config.each do |k,v| | 30 | config.each do |k,v| |
31 | Errbit::Config.send("#{k}=", v) | 31 | Errbit::Config.send("#{k}=", v) |
@@ -35,6 +35,12 @@ elsif not ENV['HEROKU'] | @@ -35,6 +35,12 @@ elsif not ENV['HEROKU'] | ||
35 | raise "Please copy 'config/config.example.yml' to 'config/config.yml' and configure your settings." | 35 | raise "Please copy 'config/config.example.yml' to 'config/config.yml' and configure your settings." |
36 | end | 36 | end |
37 | 37 | ||
38 | +# Set default settings from config.example.yml if key is missing from config.yml | ||
39 | +default_config = YAML.load_file(default_config_file) | ||
40 | +default_config.each do |k,v| | ||
41 | + Errbit::Config.send("#{k}=", v) if Errbit::Config.send(k) === nil | ||
42 | +end | ||
43 | + | ||
38 | # Set SMTP settings if given. | 44 | # Set SMTP settings if given. |
39 | if smtp = Errbit::Config.smtp_settings | 45 | if smtp = Errbit::Config.smtp_settings |
40 | Errbit::Application.config.action_mailer.smtp_settings = smtp | 46 | Errbit::Application.config.action_mailer.smtp_settings = smtp |