diff --git a/lib/zip/file.rb b/lib/zip/file.rb index 5ea27ea2..5c89606b 100644 --- a/lib/zip/file.rb +++ b/lib/zip/file.rb @@ -301,7 +301,7 @@ def commit # Write buffer write changes to buffer and return def write_buffer(io = ::StringIO.new) - return unless commit_required? + return io unless commit_required? ::Zip::OutputStream.write_buffer(io) do |zos| @cdir.each { |e| e.write_to_zip_output_stream(zos) } diff --git a/test/file_test.rb b/test/file_test.rb index b09f78bd..8179ce97 100644 --- a/test/file_test.rb +++ b/test/file_test.rb @@ -233,7 +233,7 @@ def test_open_buffer_without_block_write_buffer_does_nothing assert zf.entries.map(&:name).include?('zippedruby1.rb') # Ensure the buffer isn't changed. - zf.write_buffer(string_io) + assert_same(string_io, zf.write_buffer(string_io)) assert_equal(data, string_io.string) end