aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib/rails/secrets.rb
diff options
context:
space:
mode:
Diffstat (limited to 'railties/lib/rails/secrets.rb')
-rw-r--r--railties/lib/rails/secrets.rb9
1 files changed, 6 insertions, 3 deletions
diff --git a/railties/lib/rails/secrets.rb b/railties/lib/rails/secrets.rb
index c7a8676d7b..0883857c55 100644
--- a/railties/lib/rails/secrets.rb
+++ b/railties/lib/rails/secrets.rb
@@ -100,12 +100,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