Plack::Loader::GatewayCGIなるものを試作してみた

読了まで:約2分


Ruby on Rails の gateway.cgi 相当のモジュールを Plack::Loader のサブクラスとして実装してみた


前に [Plack::Server::GatewayCGI なるものを試作してみた]] んです、その後 Plack の開発を追っていたら、miyagawa さんがコミットメッセージで、 [rails の gateway.cgi のようなものは Plack::Loader のカテゴリがフィットするよ という趣旨のことを言ってたので、前に書いたPlack::Server::GatewayCGIPlack::Loader::GatewayCGIとして実装しなおしてみました。

  • <https://gist.github.com/289556 https://gist.github.com/289556>

例によってコードは github へ見に行ってください。

今回の特徴としては、前はPlack::Server::AnyEventにベースのバックエンドサーバに依存してたのが、今回はその依存がなくなり、Plack::Server::CoroとかPlack::Server::Standaloneとかが使えるようになりました。

今のところ、

  • Plack::Server::AnyEvent
  • Plack::Server::Coro
  • Plack::Server::POE
  • Plack::Server::ServerSimple
  • Plack::Server::Standalone

のサーバに対応しています。

一応Plack::Server::CGIでも動きますが、駐在プロセスとかできないので、高速化は一切できません。

あとPlack::Server::FastCGIに関しては、サーバのホストとポートの取得の仕方がわからなかったので、今のところ対応していません。誰かそのあたりのコードをプリーズ。

あ、それとPlack::Serverのネームスペースが非推奨になって、Plack::Handlerに変わったはずなので、ここら辺これから Plack の開発がすすんでくると読み替える必要があるんで注意してください。

あとまた例によって今回書いたPlack::Loader::GatewayCGIはプロトタイプなので、実際に実用しようと思うと、もうちょっとコードをリファクタリングする必要があると思います。

まあ実用するにはまだまだって感じなので、あんまり使い道はない感じですが、ちょっと実験するぐらいなら使えるので、いろいろいじって見るのもいいかと思います。

以上Plack::Loader::GatewayCGIを試作してみたという話でした。

にゃるら(カラクリスタ)

『輝かしい青春』なんて失かった人。
次に備えて待機中。

今は趣味でプログラミングをして
生活しています。