大分、めんどくささが軽減された様に思う。
注) commit:c81542e28aa715ca209186f5c58b96f373b44fcf の段階の話です。
日常的に Rack を使っている訳ではありませんが、サンプルを書いて試す時に結構めんどくさくて気になっていた点が最近解消された模様です。
- ハンドラが Rack::ContentLength を使い、Content-Length の設定忘れを防いでくれる
- Rack::ContentType を use しておけば、デフォルトの Content-Type を自動でセットしてくれる
あくまで、各ウェブサーバ用のハンドラで、それぞれ Rack::ContentLength を使っているので、ハンドラを自前で書いている場合は相変わらずだとは思います。ただ、滅多に無いケースでしょう。そんな場合は、今まで通り Rack::ContentLength を use しておくしかないですね。
これで、大抵の場合、サンプルを確認する際に、わざわざ "-E deployment" をつける必要がなくなります。Rack::Lint の憎たらしさがなくなった様な気がします(八つ当たりですが)。
Rack::ContentType に関しては、あくまで、アプリ側で Content-Type をセットしていない場合に、デフォルトの Content-Type をセットしてくれるだけです。ボディやヘッダから推測してくれる様な機能はまだありません。
あと、Rack::Chunked というミドルウェアも追加されています。機能は名前通りです。アプリが返すレスポンスのボディを each した時の各要素をチャンクと見なし、適当に上手い事ボディをラップしてくれます。
そんな感じで、久しぶりの Rack ウォッチでした。
(サンプル)


コメントする