39 lines
766 B
Ruby
39 lines
766 B
Ruby
# A convenient wrapper for the zlib standard library that allows
|
|
# compression/decompression of strings with gzip.
|
|
|
|
module Zlib
|
|
|
|
##class Stream < StringIO
|
|
## def close; rewind; end
|
|
##end
|
|
|
|
# Decompresses a gzipped string.
|
|
def self.decompress(source)
|
|
GzipReader.new(StringIO.new(source)).read
|
|
end
|
|
|
|
# Compresses a string using gzip.
|
|
def self.compress(source)
|
|
output = StringIO.new
|
|
class << output
|
|
def close; rewind; end
|
|
end
|
|
gz = GzipWriter.new(output)
|
|
gz.write(source)
|
|
gz.close
|
|
output.string
|
|
end
|
|
|
|
# Inflate a deflated sting.
|
|
def self.inflate(string)
|
|
Inflate.inflate(string)
|
|
end
|
|
|
|
# Deflate a string.
|
|
def self.deflate(string, level=DEFAULT_COMPRESSION)
|
|
Deflate.deflate(string, level)
|
|
end
|
|
|
|
end
|
|
|