diff --git a/lib/zip/file.rb b/lib/zip/file.rb index 93a76d3..89a098f 100644 --- a/lib/zip/file.rb +++ b/lib/zip/file.rb @@ -267,7 +267,7 @@ module Zip end true end - initialize(name) + initialize_cdir(@name) end # Write buffer write changes to buffer and return diff --git a/test/file_test.rb b/test/file_test.rb index 82019f0..e78eb8a 100644 --- a/test/file_test.rb +++ b/test/file_test.rb @@ -640,6 +640,16 @@ class ZipFileTest < MiniTest::Test assert_equal(res, true) end + def test_commit_preserves_options + zip_file = 'test/data/generated/preserve_options.zip' + ::Zip::File.open(zip_file, create: true, compression_level: 8) do |zf| + assert(zf.commit_required?) + zf.commit + assert_equal(8, zf.instance_variable_get(:@compression_level)) + refute(zf.commit_required?) + end + end + def test_double_commit(filename = 'test/data/generated/double_commit_test.zip') ::FileUtils.touch('test/data/generated/test_double_commit1.txt') ::FileUtils.touch('test/data/generated/test_double_commit2.txt')