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