Chris@909: module CodeRay Chris@909: Chris@909: # A simplified interface to the gzip library +zlib+ (from the Ruby Standard Library.) Chris@909: module GZip Chris@909: Chris@909: require 'zlib' Chris@909: Chris@909: # The default zipping level. 7 zips good and fast. Chris@909: DEFAULT_GZIP_LEVEL = 7 Chris@909: Chris@909: # Unzips the given string +s+. Chris@909: # Chris@909: # Example: Chris@909: # require 'gzip_simple' Chris@909: # print GZip.gunzip(File.read('adresses.gz')) Chris@909: def GZip.gunzip s Chris@909: Zlib::Inflate.inflate s Chris@909: end Chris@909: Chris@909: # Zips the given string +s+. Chris@909: # Chris@909: # Example: Chris@909: # require 'gzip_simple' Chris@909: # File.open('adresses.gz', 'w') do |file Chris@909: # file.write GZip.gzip('Mum: 0123 456 789', 9) Chris@909: # end Chris@909: # Chris@909: # If you provide a +level+, you can control how strong Chris@909: # the string is compressed: Chris@909: # - 0: no compression, only convert to gzip format Chris@909: # - 1: compress fast Chris@909: # - 7: compress more, but still fast (default) Chris@909: # - 8: compress more, slower Chris@909: # - 9: compress best, very slow Chris@909: def GZip.gzip s, level = DEFAULT_GZIP_LEVEL Chris@909: Zlib::Deflate.new(level).deflate s, Zlib::FINISH Chris@909: end Chris@909: Chris@909: end Chris@909: Chris@909: end