class Cassandra::Compression::Compressors::Snappy
A compressor that uses the Snappy
compression library.
@note This compressor requires the
[snappy](http://rubygems.org/gems/snappy) gem (v0.0.10 or later for JRuby support).
@note No need to instantiate this class manually, use `compression:
:snappy` option when calling {Cassandra.cluster} and one will be created automatically for you.
Attributes
algorithm[R]
@return [String] `'snappy'`
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/cassandra/compression/compressors/snappy.rb 36 def initialize(min_size = 64) 37 unless defined?(::Snappy) 38 begin 39 require 'snappy' 40 rescue LoadError => e 41 raise LoadError, %(Snappy support requires the "snappy" gem: #{e.message}), 42 e.backtrace 43 end 44 end 45 46 @algorithm = 'snappy'.freeze 47 @min_size = min_size 48 end
Public Instance Methods
compress(str)
click to toggle source
@see Cassandra::Compression::Compressor#compress
# File lib/cassandra/compression/compressors/snappy.rb 58 def compress(str) 59 ::Snappy.deflate(str) 60 end
compress?(str)
click to toggle source
@return [true, false] will return false for frames smaller than the
`min_size` given to the constructor.
@see Cassandra::Compression::Compressor#compress?
# File lib/cassandra/compression/compressors/snappy.rb 53 def compress?(str) 54 str.bytesize > @min_size 55 end
decompress(str)
click to toggle source
@see Cassandra::Compression::Compressor#decompress
# File lib/cassandra/compression/compressors/snappy.rb 63 def decompress(str) 64 ::Snappy.inflate(str) 65 end