Browse files

fix for AS Gzip returning a UTF-8 string in Ruby 1.9 when it is actua…

…lly binary [#6386 state:resolved]

Signed-off-by: José Valim <jose.valim@gmail.com>
  • Loading branch information...
1 parent ff00cd2 commit 31690ea8b3420aea4ea4427e1599665d093c974f @joshk joshk committed with josevalim Feb 9, 2011
Showing with 14 additions and 0 deletions.
  1. +4 −0 activesupport/lib/active_support/gzip.rb
  2. +10 −0 activesupport/test/gzip_test.rb
View
4 activesupport/lib/active_support/gzip.rb
@@ -5,6 +5,10 @@ module ActiveSupport
# A convenient wrapper for the zlib standard library that allows compression/decompression of strings with gzip.
module Gzip
class Stream < StringIO
+ def initialize(*)
+ super
+ set_encoding "BINARY" if "".encoding_aware?
+ end
def close; rewind; end
end
View
10 activesupport/test/gzip_test.rb
@@ -4,4 +4,14 @@ class GzipTest < Test::Unit::TestCase
def test_compress_should_decompress_to_the_same_value
assert_equal "Hello World", ActiveSupport::Gzip.decompress(ActiveSupport::Gzip.compress("Hello World"))
end
+
+ def test_compress_should_return_a_binary_string
+ compressed = ActiveSupport::Gzip.compress('')
+
+ if "".encoding_aware?
+ assert_equal Encoding.find('binary'), compressed.encoding
+ end
+
+ assert !compressed.blank?, "a compressed blank string should not be blank"
+ end
end

0 comments on commit 31690ea

Please sign in to comment.