Rack::Lint::LintError

% ruby -v
ruby 1.8.7 (2008-08-11 patchlevel 72) [i686-darwin9.6.0]

% gem list --local | grep rack
rack (0.9.1)

で、hello_rack.rbは

require 'rubygems'
require 'rack'

class HelloRack
  def call(env)
    req = Rack::Request.new(env)
    Rack::Response.new.finish do |res|
      res.write "<h2>Rack Environment Variables</h2>"
      res.write req.env.map{|k,v| "<li>#{k}: #{v}</li>"}.sort.join("\n")
    end
  end
end

hello_rack.ruは

require 'hello_rack'
run HelloRack.new

以下コマンドで実行すると

% rackup -s mongrel -p 9292 hello_rack.ru

エラー(Content-Lengthをソースで明示的に指定しない場合)↓

Rack::Lint::LintError: Content-Length header was 0, but should be ZZ

Content-Lengthをデフォルトではゼロにしてるみたい、なので以下にパッチが↓
#14 [PATCH] Fix Response#finish Content-Length handling - rack
GitHub - leahneukirchen/rack: a modular Ruby webserver interface | personal fork | PLEASE BRANCH/SEND PULL REQUESTS/FILE BUGS AT rack/rackにパッチがあたったものがある。適用すれば動いた。