Class: IOP::GzipCompressor
- Inherits:
-
Object
- Object
- IOP::GzipCompressor
- Defined in:
- lib/iop/zlib.rb
Overview
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!
Instance Attribute Summary
Attributes included from Sink
Attributes included from Feed
Instance Method Summary collapse
-
#initialize(*args) ⇒ GzipCompressor
constructor
Creates class instance.
- #process(data = nil) ⇒ Object
- #process! ⇒ Object
- #write(data) ⇒ Object
Methods included from Feed
Constructor Details
#initialize(*args) ⇒ GzipCompressor
Creates class instance.
129 130 131 |
# File 'lib/iop/zlib.rb', line 129 def initialize(*args) @args = args end |
Instance Method Details
#process(data = nil) ⇒ Object
133 134 135 136 137 138 139 140 |
# File 'lib/iop/zlib.rb', line 133 def process(data = nil) if data.nil? @compressor.finish super else @compressor.write(data) end end |
#process! ⇒ Object
146 147 148 149 150 151 |
# 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) ⇒ Object
142 143 144 |
# File 'lib/iop/zlib.rb', line 142 def write(data) downstream&.process(data) end |