diff options
| -rw-r--r-- | lib/rubygems/util/atomic_file_writer.rb | 1 | ||||
| -rw-r--r-- | test/rubygems/test_gem_util_atomic_file_writer.rb | 12 |
2 files changed, 13 insertions, 0 deletions
diff --git a/lib/rubygems/util/atomic_file_writer.rb b/lib/rubygems/util/atomic_file_writer.rb index ea592407eb..32767c6a79 100644 --- a/lib/rubygems/util/atomic_file_writer.rb +++ b/lib/rubygems/util/atomic_file_writer.rb @@ -30,6 +30,7 @@ module Gem flags |= File::SHARE_DELETE if defined?(File::SHARE_DELETE) File.open(tmp_path, flags) do |temp_file| + temp_file.binmode if old_stat # Set correct permissions on new file begin diff --git a/test/rubygems/test_gem_util_atomic_file_writer.rb b/test/rubygems/test_gem_util_atomic_file_writer.rb new file mode 100644 index 0000000000..e011a38ad4 --- /dev/null +++ b/test/rubygems/test_gem_util_atomic_file_writer.rb @@ -0,0 +1,12 @@ +# frozen_string_literal: true + +require_relative "helper" +require "rubygems/util/atomic_file_writer" + +class TestGemUtilAtomicFileWriter < Gem::TestCase + def test_external_encoding + Gem::AtomicFileWriter.open(File.join(@tempdir, "test.txt")) do |file| + assert_equal(Encoding::ASCII_8BIT, file.external_encoding) + end + end +end |
