Class: DeepStore::Codecs::GzipCodec
- Inherits:
-
Object
- Object
- DeepStore::Codecs::GzipCodec
- Includes:
- Codec
- Defined in:
- lib/deep_store/codecs/gzip_codec.rb
Constant Summary collapse
- CHUNK_SIZE =
1024 * 1024
Instance Method Summary collapse
Methods included from Codec
Instance Method Details
#decode(stream) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/deep_store/codecs/gzip_codec.rb', line 10 def decode(stream) decompressed_stream = Tempfile.new decompressed_stream.binmode Zlib::GzipReader.open(stream) do |gz| while (chunk = gz.read(CHUNK_SIZE)) decompressed_stream.write(chunk) end end stream.rewind decompressed_stream.rewind decompressed_stream end |
#encode(stream) ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/deep_store/codecs/gzip_codec.rb', line 25 def encode(stream) compressed_stream = Tempfile.new compressed_stream.binmode Zlib::GzipWriter.open(compressed_stream.path) do |gz| while (chunk = stream.read(CHUNK_SIZE)) gz.write(chunk) end end stream.rewind compressed_stream.rewind compressed_stream end |