Module: RailsFastCache::BrotliCompressor

Defined in:
lib/rails-fast-cache/brotli_compressor.rb

Constant Summary collapse

COMPRESSION_PREFIX =
"\x02".b
ZLIB_COMPRESSION_PREFIX =
"\x78".b
COMPRESSION_QUALITY =
3

Class Method Summary collapse

Class Method Details

.deflate(dumped) ⇒ Object



11
12
13
14
# File 'lib/rails-fast-cache/brotli_compressor.rb', line 11

def self.deflate(dumped)
  COMPRESSION_PREFIX +
    ::Brotli.deflate(dumped, quality: COMPRESSION_QUALITY)
end

.inflate(compressed) ⇒ Object



16
17
18
19
20
21
22
23
24
# File 'lib/rails-fast-cache/brotli_compressor.rb', line 16

def self.inflate(compressed)
  if compressed.start_with?(COMPRESSION_PREFIX)
    ::Brotli.inflate(compressed.byteslice(1..-1))
  elsif compressed.start_with?(ZLIB_COMPRESSION_PREFIX)
    ::Zlib.inflate(compressed)
  else
    compressed
  end
end