Class: Cassandra::Compression::Compressors::Snappy
- Inherits:
-
Cassandra::Compression::Compressor
- Object
- Cassandra::Compression::Compressor
- Cassandra::Compression::Compressors::Snappy
- Defined in:
- lib/cassandra/compression/compressors/snappy.rb
Overview
Note:
This compressor requires the 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.
A compressor that uses the Snappy compression library.
Instance Attribute Summary collapse
-
#algorithm ⇒ String
readonly
'snappy'
.
Instance Method Summary collapse
- #compress(str) ⇒ Object
-
#compress?(str) ⇒ true, false
Will return false for frames smaller than the
min_size
given to the constructor. - #decompress(str) ⇒ Object
-
#initialize(min_size = 64) ⇒ Snappy
constructor
A new instance of Snappy.
Constructor Details
#initialize(min_size = 64) ⇒ Snappy
36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/cassandra/compression/compressors/snappy.rb', line 36 def initialize(min_size = 64) unless defined?(::Snappy) begin require 'snappy' rescue LoadError => e raise LoadError, %(Snappy support requires the "snappy" gem: #{e.message}), e.backtrace end end @algorithm = 'snappy'.freeze @min_size = min_size end |
Instance Attribute Details
#algorithm ⇒ String (readonly)
32 33 34 |
# File 'lib/cassandra/compression/compressors/snappy.rb', line 32 def algorithm @algorithm end |
Instance Method Details
#compress(str) ⇒ Object
58 59 60 |
# File 'lib/cassandra/compression/compressors/snappy.rb', line 58 def compress(str) ::Snappy.deflate(str) end |
#compress?(str) ⇒ true, false
Returns will return false for frames smaller than the
min_size
given to the constructor.
53 54 55 |
# File 'lib/cassandra/compression/compressors/snappy.rb', line 53 def compress?(str) str.bytesize > @min_size end |
#decompress(str) ⇒ Object
63 64 65 |
# File 'lib/cassandra/compression/compressors/snappy.rb', line 63 def decompress(str) ::Snappy.inflate(str) end |