Class: SimpleData::IOCompressedWrite
- Inherits:
-
Object
- Object
- SimpleData::IOCompressedWrite
- Defined in:
- lib/simple-data/compression.rb
Overview
Compressed I/O wrapper
Instance Method Summary collapse
- #close ⇒ Object
-
#initialize(io, write: 16 * 1024) ⇒ IOCompressedWrite
constructor
A new instance of IOCompressedWrite.
- #write(data) ⇒ Object
Constructor Details
#initialize(io, write: 16 * 1024) ⇒ IOCompressedWrite
Returns a new instance of IOCompressedWrite.
18 19 20 21 22 23 |
# File 'lib/simple-data/compression.rb', line 18 def initialize(io, write: 16 * 1024) @io = io @write_size = write @written = 0 @zstd = Zstd::StreamingCompress.new end |
Instance Method Details
#close ⇒ Object
25 26 27 28 |
# File 'lib/simple-data/compression.rb', line 25 def close @io.write(@zstd.finish) @io.close end |
#write(data) ⇒ Object
30 31 32 33 34 35 36 37 38 |
# File 'lib/simple-data/compression.rb', line 30 def write(data) @written += data.size if (@written > @write_size) @io.write(@zstd.flush) @io.flush @written = 0 end @io.write(@zstd.compress(data)) end |