module Pheme::Compression
Constants
- GZIP_MAGIC_NUMBER
Public Instance Methods
Source
# File lib/pheme/compression.rb, line 6 def compress(body) gz = Zlib::GzipWriter.new(StringIO.new) gz << body Base64.encode64(gz.close.string) end
Source
# File lib/pheme/compression.rb, line 12 def decompress(body) return Zlib::GzipReader.new(StringIO.new(Base64.decode64(body))).read if gzip?(body) body end
Private Instance Methods
Source
# File lib/pheme/compression.rb, line 23 def gzip?(body) # Decode the first 4 bytes to compare with magic number Base64.decode64(body[0..4]).unpack('n') == GZIP_MAGIC_NUMBER end