Module: SharedBroker::Compressor
- Defined in:
- lib/shared_broker/compressor.rb
Defined Under Namespace
Classes: CompressionError, DecompressionError
Constant Summary
collapse
- SUPPORTED_ALGORITHMS =
%w[gzip deflate].freeze
Class Method Summary
collapse
Class Method Details
.compress(data, algorithm) ⇒ Object
12
13
14
15
16
17
18
19
20
21
22
23
|
# File 'lib/shared_broker/compressor.rb', line 12
def self.compress(data, algorithm)
validate_algorithm!(algorithm)
case algorithm.to_s
when "gzip"
Zlib.gzip(data)
when "deflate"
Zlib::Deflate.deflate(data)
end
rescue => e
raise CompressionError, "Failed to compress data using #{algorithm.inspect}. Error: #{e.message}"
end
|
.decompress(data, algorithm) ⇒ Object
25
26
27
28
29
30
31
32
33
34
35
36
|
# File 'lib/shared_broker/compressor.rb', line 25
def self.decompress(data, algorithm)
validate_algorithm!(algorithm)
case algorithm.to_s
when "gzip"
Zlib.gunzip(data)
when "deflate"
Zlib::Inflate.inflate(data)
end
rescue => e
raise DecompressionError, "Failed to decompress data using #{algorithm.inspect}. Error: #{e.message}"
end
|