diff options
Diffstat (limited to 'railties/lib/rails/secrets.rb')
-rw-r--r-- | railties/lib/rails/secrets.rb | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/railties/lib/rails/secrets.rb b/railties/lib/rails/secrets.rb index c7a8676d7b..aea72b2d01 100644 --- a/railties/lib/rails/secrets.rb +++ b/railties/lib/rails/secrets.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require "yaml" require "active_support/message_encryptor" require "active_support/core_ext/string/strip" @@ -42,7 +44,7 @@ module Rails <<-end_of_template.strip_heredoc # See `secrets.yml` for tips on generating suitable keys. # production: - # external_api_key: 1466aac22e6a869134be3d09b9e89232fc2c2289 + # external_api_key: 1466aac22e6a869134be3d09b9e89232fc2c2289 end_of_template end @@ -100,12 +102,15 @@ module Rails end def writing(contents) - tmp_path = File.join(Dir.tmpdir, File.basename(path)) - File.write(tmp_path, contents) + tmp_file = "#{File.basename(path)}.#{Process.pid}" + tmp_path = File.join(Dir.tmpdir, tmp_file) + IO.binwrite(tmp_path, contents) yield tmp_path - write(File.read(tmp_path)) + updated_contents = IO.binread(tmp_path) + + write(updated_contents) if updated_contents != contents ensure FileUtils.rm(tmp_path) if File.exist?(tmp_path) end |