MoonWolfです。

> あら、そうなんですか。すると、動作モードhogeで
> session_hogeが存在する場合、do_hogeは呼ばれない、
> ということでしょうか。
> 相変わらずソースを見てなくて申し訳ないです。

CGI::Application 1.2.0beta で対応してみました。
APIが固まってないのでbeta扱いです。

MethodChainという考えを導入して、メソッドを数珠繋ぎに実行するようにして
みました。SessionManagedで複雑になっていたrunメソッドが55行->7行とすごく
簡素になりました。

    def run(cgi)
      chain = method_chain(cgi)

      body, options = dispatch(cgi, chain)

      cgi.out(options) {
        body
      }
    end

http://www.moonwolf.com/ruby/archive/cgiapp-1.2.0beta.tar.gz

# ruby-win32のアーカイブ公開に使用しているArcMLが、この対応の為に
# 一時的に利用不能になっていましたが、現在は復旧しています。
# http://www.moonwolf.com/~arcml/cgi-bin/arcml/?rm=threadlist&list_id=1&from=201

-- 
MoonWolf <moonwolf / moonwolf.com>