compress_controller.rb

来自「ruby on rails web敏捷开发之路第二版 源代码」· RB 代码 · 共 39 行

RB
39
字号
#---# Excerpted from "Agile Web Development with Rails, 2nd Ed."# We make no guarantees that this code is fit for any purpose. # Visit http://www.pragmaticprogrammer.com/titles/rails2 for more book information.#---require 'zlib'require 'stringio'class CompressController < ApplicationController  after_filter :compress  def index    render(:text => "<pre>" + File.read("/etc/motd") + "</pre>")  end  protected  def compress    accepts = request.env['HTTP_ACCEPT_ENCODING']    return unless accepts && accepts =~ /(x-gzip|gzip)/    encoding = $1    output = StringIO.new    def output.close   # Zlib does a close. Bad Zlib...      rewind    end    gz = Zlib::GzipWriter.new(output)    gz.write(response.body)    gz.close    if output.length < response.body.length      response.body = output.string      response.headers['Content-encoding'] = encoding    end  endend

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?