五十嵐です。

Wakou Aoyama writes:
>CGI.message が良くないと思われるのは、機能と名前が不明確であるという点
>です。CGI のメッセージとは何か、エラー出力や簡易メッセージの出力ならば、
>text/plain の方が適切ではないか、そのようなあたりです。

そうですね。機能と名前が一致しているかは疑問ですね。

CGI.messageかどうかはともかくとして、まわりを見ていると HTTPヘッダの
出力を忘れてハマる例があるので、HTTPヘッダとHTMLをまとめて出力するAPIが
あると救われる人は多いと思います。そんなに大したことではないのですが。

>また、HTML の出力としても間違った出力の元になりやすいという事もありま
>す。

これは、どういうことでしょう?
「間違った出力」というものを出したことがないので...。

>つまり、P エレメントを自動的に付加してしまう CGI.message は機能的にも
>制限があり、標準的機能としては不適切と思われるわけです。

手元の cgi-lib.rb では、P エレメントの付加といったことはしないのですが。
1.2系列と1.3系列で違うんでしょうか?

>ところで、この CGI.tag というのは面白いアイディアですね。次のような感
>じにすると汎用性のあるインターフェイスになりますが、いかがでしょう。

イテレータはこういうふうに使うんですね。
勉強になります。

あと、ちょっと気になったのですが、

+  def CGI.tag(element, attributes = {})
+    "<" + escapeHTML(element) + attributes.collect{|name, value|
+      " " + escapeHTML(name) + '="' + escapeHTML(value) + '"'
+    }.to_s + ">" +
+    (iterator? ? yield.to_s + "</" + escapeHTML(element) + ">" : "")
   end

で、escapeHTML()を呼んでいるのですが、escapeHTML()が呼ばれるのは、
(置換が行なわれるのは)イリーガルな事態だという感じがするのですが、
タグ内部で( <ここ> ) で、&や",<,>を使う例はあるのでしょうか?

問題があるわけではないのですが、必要なのかわからなかったので。

-- 
五十嵐 晃(ikarashi / itlb.te.noda.sut.ac.jp)