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にパッチがあたったものがある。適用すれば動いた。