summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorNoel Peden <[email protected]>2022-01-21 10:24:32 -0800
committerGitHub <[email protected]>2022-01-21 10:24:32 -0800
commit9df7ea821ca36d66f15e34f857fb271f4b4dbc43 (patch)
treef26b5aaf945e4c1b75c30aa72a00718d859f8c2f
parent6702f7e5c4a7494ab5007a0e42bbec2e760bcad3 (diff)
parent7f4045fc69683d51c7c3fbd6497cfadba4966484 (diff)
downloadcaxlsx-9df7ea821ca36d66f15e34f857fb271f4b4dbc43.tar.gz
caxlsx-9df7ea821ca36d66f15e34f857fb271f4b4dbc43.zip
Merge pull request #120 from DDeBruler/string-encoding
Return output stream in binmode
-rw-r--r--lib/axlsx/package.rb2
-rw-r--r--test/tc_package.rb3
2 files changed, 4 insertions, 1 deletions
diff --git a/lib/axlsx/package.rb b/lib/axlsx/package.rb
index d9865a48..1b30c815 100644
--- a/lib/axlsx/package.rb
+++ b/lib/axlsx/package.rb
@@ -124,7 +124,7 @@ module Axlsx
def to_stream(confirm_valid=false)
return false unless !confirm_valid || self.validate.empty?
Relationship.initialize_ids_cache
- zip = write_parts(Zip::OutputStream.new(StringIO.new, true))
+ zip = write_parts(Zip::OutputStream.new(StringIO.new.binmode, true))
stream = zip.close_buffer
stream.rewind
stream
diff --git a/test/tc_package.rb b/test/tc_package.rb
index f1ce0421..b98fa2f0 100644
--- a/test/tc_package.rb
+++ b/test/tc_package.rb
@@ -303,6 +303,9 @@ class TestPackage < Test::Unit::TestCase
# this is just a roundabout guess for a package as it is build now
# in testing.
assert(stream.size > 80000)
+ # Stream (of zipped contents) should have appropriate default encoding
+ assert stream.string.valid_encoding?
+ assert_equal(stream.external_encoding, Encoding::ASCII_8BIT)
# Cached ids should be cleared
assert(Axlsx::Relationship.ids_cache.empty?)
end