class IOP::ZstdDecompressor
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
@note this class depends on external zstdlib
gem. @since 0.1
Public Class Methods
new(*args)
click to toggle source
Creates class instance.
@param args [Array] arguments passed to Zstdlib::Inflate
constructor
# File lib/iop/zstdlib.rb, line 81 def initialize(*args) @args = args end
Public Instance Methods
process(data = nil)
click to toggle source
Calls superclass method
IOP::Sink#process
# 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!()
click to toggle source
Calls superclass method
IOP::Sink#process!
# File lib/iop/zstdlib.rb, line 94 def process! @inflate = Zstdlib::Inflate.new(*@args) begin super ensure @inflate.close end end