Rack::ContentType と Rack::ContentLength (ついでに Rack::Chunked)

大分、めんどくささが軽減された様に思う。
注) 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 ウォッチでした。
(サンプル)

プロフィール

このブログ記事について

このページは、koshigoeが2009年3月15日 01:17に書いたブログ記事です。

ひとつ前のブログ記事は「自宅の OSX Leopard で hosts より DNS が優先されるようになってた」です。

次のブログ記事は「文房具ラッシュ」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。