青山です。

Tue, Jun 01, 1999 at 11:35:52AM +0900 において
Yukihiro Matsumoto さん曰く:

> CGI.rbって1.2.xでは動かないんですかねえ.実は私でさえ1.2系と
> 1.3系の差異を十分に把握してないんですが.

もしかして要望もあるかなとは思ったのですが、1.4 がかなり近そうだったの
で 1.3 のみとしました。

1.2 で引っかかるのは、:: を使ったメソッド定義が出来ない(呼び出しは 1.2
系でもできます)、<<-END 系のヒアドキュメントが使えないといったあたりだ
と思います。

また、Time オブジェクトの clone が出来ないようです。

$ ruby-1.2 -e 't = Time.now.dup'
/tmp/rba00679:1:in `clone': can't clone Time (TypeError)
        from /tmp/rba00679:1:in `dup'
        from /tmp/rba00679:1

定義側ではこんな感じで、利用する側では、CGI::print や CGI::print{}
がエラーになるので、CGI::print() や CGI::print(){} とするか、
CGI.print や CGI.print{} とする必要があります。

と、まあ、CGI.rb の範囲ではこの程度のようなので、Time オブジェクトの
clone さえできるようになれば 1.2 系でも使えるようにはなりますが、どう
しましょうか?

あ、それと、multipart form 対応も出来たのですが、tempfile.rb の複数の
new がうまく動作しない件と、ファイル名の参照の件はいかがでしょうか?
ファイル名の参照の仕方によって、CGI.rb の方でのインターフェイスを決め
ようと思っています。まあ、こんな感じでしょうかね。

query = CGI.new
values = query["uploaded_file"]
values[0].read             # アップされたファイルの読み込み
values[0].local_filename   # tempfile.rb が生成したファイル名
values[0].upload_filename  # アップ時のクライアント側でのファイル名
values[0].content_type     # アップ時にクライアントが content_type も付加していた場合


-- 
青山 和光 Wakou Aoyama <wakou / fsinet.or.jp>