aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib/rails/application/configuration.rb
diff options
context:
space:
mode:
authorPierre Schambacher <pschambacher@zendesk.com>2017-04-26 19:00:33 -0700
committerPierre Schambacher <pschambacher@zendesk.com>2017-04-26 20:47:56 -0700
commitdfc361df364c0c01a244355fe39f5871fb5b00f9 (patch)
tree4db548ba9762538e1a9a510079a91a93c1625fd8 /railties/lib/rails/application/configuration.rb
parenteac6f3690fd245b9d72aadcfa365ed16c4ef8b96 (diff)
downloadrails-dfc361df364c0c01a244355fe39f5871fb5b00f9.tar.gz
rails-dfc361df364c0c01a244355fe39f5871fb5b00f9.tar.bz2
rails-dfc361df364c0c01a244355fe39f5871fb5b00f9.zip
Added a shared section to config/database.yml that will be loaded for all environments
Diffstat (limited to 'railties/lib/rails/application/configuration.rb')
-rw-r--r--railties/lib/rails/application/configuration.rb9
1 files changed, 8 insertions, 1 deletions
diff --git a/railties/lib/rails/application/configuration.rb b/railties/lib/rails/application/configuration.rb
index 7c49fabba5..27c1572357 100644
--- a/railties/lib/rails/application/configuration.rb
+++ b/railties/lib/rails/application/configuration.rb
@@ -133,7 +133,14 @@ module Rails
config = if yaml && yaml.exist?
require "yaml"
require "erb"
- YAML.load(ERB.new(yaml.read).result) || {}
+ loaded_yaml = YAML.load(ERB.new(yaml.read).result) || {}
+ shared = loaded_yaml.delete("shared")
+ if shared
+ loaded_yaml.each do |_k, values|
+ values.reverse_merge!(shared)
+ end
+ end
+ Hash.new(shared).merge(loaded_yaml)
elsif ENV["DATABASE_URL"]
# Value from ENV['DATABASE_URL'] is set to default database connection
# by Active Record.