class IOP::GzipCompressor
Filter class to perform Gzip data compression.
This class is an adapter for the standard Ruby Zlib::GzipWriter
class.
This class produces valid .gz files.
### Use case: compress a string and store it to .gz file.
require 'iop/zlib' require 'iop/file' require 'iop/string' ( IOP::StringSplitter.new('Hello IOP') | IOP::GzipCompressor.new | IOP::FileWriter.new('hello.gz') ).process!
@since 0.1
Public Class Methods
new(*args)
click to toggle source
Creates class instance.
@param args [Array] arguments passed to Zlib::GzipWriter
constructor
# File lib/iop/zlib.rb, line 129 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/zlib.rb, line 133 def process(data = nil) if data.nil? @compressor.finish super else @compressor.write(data) end end
process!()
click to toggle source
Calls superclass method
IOP::Sink#process!
# File lib/iop/zlib.rb, line 146 def process! @compressor = Zlib::GzipWriter.new(self, *@args) super ensure @compressor.close unless @compressor.nil? end
write(data)
click to toggle source
# File lib/iop/zlib.rb, line 142 def write(data) downstream&.process(data) end