Class: IOP::ZstdDecompressor
- Inherits:
-
Object
- Object
- IOP::ZstdDecompressor
- Defined in:
- lib/iop/zstdlib.rb
Overview
Note:
this class depends on external zstdlib gem.
Filter class to perform Gzip data compression.
This class is an adapter for the standard Ruby Zlib::GzipWriter class.
This class can decompress .zst files.
### Use case: decompress a .zst file and compute MD5 hash sum of uncompressed data.
require 'iop/file'
require 'iop/digest'
require 'iop/zstdlib'
( IOP::FileReader.new('hello.zst') | IOP::ZstdDecompressor.new | (d = IOP::DigestComputer.new(Digest::MD5.new)) ).process!
puts d.digest.hexdigest
Instance Attribute Summary
Attributes included from Sink
Attributes included from Feed
Instance Method Summary collapse
-
#initialize(*args) ⇒ ZstdDecompressor
constructor
Creates class instance.
- #process(data = nil) ⇒ Object
- #process! ⇒ Object
Methods included from Feed
Constructor Details
#initialize(*args) ⇒ ZstdDecompressor
Creates class instance.
81 82 83 |
# File 'lib/iop/zstdlib.rb', line 81 def initialize(*args) @args = args end |
Instance Method Details
#process(data = nil) ⇒ Object
85 86 87 88 89 90 91 92 |
# File 'lib/iop/zstdlib.rb', line 85 def process(data = nil) if data.nil? super(@inflate.finish) super else super(@inflate.inflate(data)) end end |
#process! ⇒ Object
94 95 96 97 98 99 100 101 |
# File 'lib/iop/zstdlib.rb', line 94 def process! @inflate = Zstdlib::Inflate.new(*@args) begin super ensure @inflate.close end end |