class Cql::Compression::Lz4Compressor
A compressor that uses the LZ4 compression library.
@note This compressor requires the [lz4-ruby](rubygems.org/gems/lz4-ruby)
gem (v0.3.2 or later required).
Constants
- BUFFER_FORMAT
Attributes
algorithm[R]
@return [String]
Public Class Methods
new(min_size=64)
click to toggle source
@param [Integer] min_size (64) Don’t compress frames smaller than
this size (see {#compress?}).
# File lib/cql/compression/lz4_compressor.rb, line 21 def initialize(min_size=64) @algorithm = 'lz4'.freeze @min_size = min_size end
Public Instance Methods
compress(str)
click to toggle source
# File lib/cql/compression/lz4_compressor.rb, line 32 def compress(str) [str.bytesize, LZ4::Raw.compress(str.to_s).first].pack(BUFFER_FORMAT) end
compress?(str)
click to toggle source
@return [true, false] will return false for frames smaller than the
`min_size` given to the constructor.
# File lib/cql/compression/lz4_compressor.rb, line 28 def compress?(str) str.bytesize > @min_size end
decompress(str)
click to toggle source
# File lib/cql/compression/lz4_compressor.rb, line 36 def decompress(str) decompressed_size, compressed_data = str.to_s.unpack(BUFFER_FORMAT) LZ4::Raw.decompress(compressed_data, decompressed_size).first end