diff options
author | yuuji.yaginuma <yuuji.yaginuma@gmail.com> | 2019-03-14 15:39:23 +0900 |
---|---|---|
committer | yuuji.yaginuma <yuuji.yaginuma@gmail.com> | 2019-03-14 16:14:15 +0900 |
commit | 0187053109f62ea0188a76aee53aeee396f76632 (patch) | |
tree | 94e69cb5fdb6a3b9892fdff226cb2fa7e596774e | |
parent | 25620f91ca0ab261fbc883763040ec58d205514e (diff) | |
download | rails-0187053109f62ea0188a76aee53aeee396f76632.tar.gz rails-0187053109f62ea0188a76aee53aeee396f76632.tar.bz2 rails-0187053109f62ea0188a76aee53aeee396f76632.zip |
Make application work without tmp directory
The tmp directory is added to version control in the newly created
application. This was added in Rails 5.0.0(https://github.com/rails/rails/commit/f06ce4c12a396795a3b2c1812951d9277bcb3a82).
However, applications created before that are not guaranteed to have the
tmp directory. If the tmp directory does not exist, writing to the key file
raise error.
This is a bit incompatible. So I fixed that create the directory before
writing a key.
-rw-r--r-- | railties/lib/rails/application.rb | 1 | ||||
-rw-r--r-- | railties/test/application/configuration_test.rb | 3 |
2 files changed, 4 insertions, 0 deletions
diff --git a/railties/lib/rails/application.rb b/railties/lib/rails/application.rb index 558a4d1f57..6bc6c548d2 100644 --- a/railties/lib/rails/application.rb +++ b/railties/lib/rails/application.rb @@ -587,6 +587,7 @@ module Rails if !File.exist?(key_file) random_key = SecureRandom.hex(64) + FileUtils.mkdir_p(key_file.dirname) File.binwrite(key_file, random_key) end diff --git a/railties/test/application/configuration_test.rb b/railties/test/application/configuration_test.rb index eee2d633be..e34c075a1c 100644 --- a/railties/test/application/configuration_test.rb +++ b/railties/test/application/configuration_test.rb @@ -601,6 +601,9 @@ module ApplicationTests Rails.application.credentials.secret_key_base = nil RUBY + # For test that works even if tmp dir does not exist. + Dir.chdir(app_path) { FileUtils.remove_dir("tmp") } + app "development" assert_not_nil app.secrets.secret_key_base |