@m_seki の

I like ruby tooから引っ越し

Div変更開始

WEBrick::CGIのサポートを追加した。ついでにTofuletがTofuのContextを兼ねていたのだけど、コンテキストとサーブレットを分離した。WEBrick::CGIから入っても、サーブレットから入っても、どちらもコンテキストを生成してservice(@bartender)する。requestとresponseは分離することができないのではないか? という思いつきで導入したコンテキストだけど、本当に両者をまとめてよかったのかどうか、実は自信がない。でもそのresponseはrequestと分ち難く結びついていると思うんだよなー。

とか書いたってViewCVSとかを準備するまで誰からも見えないのであった。

というわけでWEBrick::CGI用Tofuletの全てはこちら。

  class CGITofulet < WEBrick::CGI
    def initialize(bartender, *args)
      @bartender = bartender
      super(*args)
    end
    
    def service(req, res)
      TofuletContext.new(req, res).service(@bartender)
    end
  end

CGIそのものはこれ。ENV, stdin, stdoutを渡せば、リモートのWEBrick::CGI#startが全てうまくやってくれる。

#!/usr/local/bin/ruby

require 'drb/drb'

DRb.start_service
ro = DRbObject.new_with_uri('druby://localhost:12321')
ro.start(ENV.to_hash, $stdin, $stdout)