When added to a config script (-S in mongrel_rails) it will look at the client’s allowed response types and then gzip compress anything that is going out.
Valid option is :always_deflate => false which tells the handler to deflate everything even if the client can’t handle it.
# File lib/mongrel/handlers.rb, line 298
298: def process(request, response)
299: accepts = request.params[HTTP_ACCEPT_ENCODING]
300: # only process if they support compression
301: if @always_deflate or (accepts and (accepts.include? "deflate" and not response.body_sent))
302: response.header["Content-Encoding"] = "deflate"
303: response.body = deflate(response.body)
304: end
305: end
# File lib/mongrel/handlers.rb, line 308
308: def deflate(stream)
309: deflater = Deflate.new(
310: DEFAULT_COMPRESSION,
311: # drop the zlib header which causes both Safari and IE to choke
312: -MAX_WBITS,
313: DEF_MEM_LEVEL,
314: DEFAULT_STRATEGY)
315:
316: stream.rewind
317: gzout = StringIO.new(deflater.deflate(stream.read, FINISH))
318: stream.close
319: gzout.rewind
320: gzout
321: end
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.