From 0fa41f72fcb773bd32c7ce77f9df33e328ff0e44 Mon Sep 17 00:00:00 2001 From: igor04 Date: Fri, 12 Jul 2019 19:22:36 +0300 Subject: Prevent exception of loading database yaml with blank config file [closes: #36661] --- railties/lib/rails/application/configuration.rb | 2 +- railties/test/application/configuration_test.rb | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) (limited to 'railties') diff --git a/railties/lib/rails/application/configuration.rb b/railties/lib/rails/application/configuration.rb index f5456f4916..5b3e96cbd4 100644 --- a/railties/lib/rails/application/configuration.rb +++ b/railties/lib/rails/application/configuration.rb @@ -209,7 +209,7 @@ module Rails yaml = Pathname.new(path) erb = DummyERB.new(yaml.read) - YAML.load(erb.result) + YAML.load(erb.result) || {} else {} end diff --git a/railties/test/application/configuration_test.rb b/railties/test/application/configuration_test.rb index f6bec3242a..a05d86f738 100644 --- a/railties/test/application/configuration_test.rb +++ b/railties/test/application/configuration_test.rb @@ -1793,6 +1793,11 @@ module ApplicationTests assert_equal [X, D], C.descendants end + test "load_database_yaml returns blank hash if configuration file is blank" do + app_file "config/database.yml", "" + app "development" + assert_equal({}, Rails.application.config.load_database_yaml) + end test "raises with proper error message if no database configuration found" do FileUtils.rm("#{app_path}/config/database.yml") -- cgit v1.2.3