青山です。

On Thu, 2 Sep 1999 00:04:12 +0900,
"NAKAMURA, Hiroshi"  wrote:

>   foo.cgi?b=
> 
> のときは,cgi[ "a" ] = nil,cgi[ "b" ] = ""になるんですよね.

新案として、cgi["a"] == [] はいかがでしょうか?

cgi["a"] == nil,  cgi["b"] == [""], cgi["a"][0] == Error, cgi["b"][0] == ""
cgi["a"] == [],   cgi["b"] == [""], cgi["a"][0] == nil,   cgi["b"][0] == ""

前者が現在。後者が新案です。どちらの場合も cgi.has_key?("a") == false
は有効です。

> だとしたら,cgi.remote_userとかも,
> ヘッダにない時は""でなくてnilになってくれると嬉しいですー.

ああ、なるほど。手抜きをしたい場合には cgi.remote_user 等で、チェック
を自前でしたい場合には ENV['REMOTE_USER'] 等という使い分けを考えていま
した。

また、nil を返すようにしたとしても、その場合の対応は、

if cgi.remote_user or cgi.remote_user.empty?

という感じで、空き文字列が返ってきた場合と同じになるようにも思われまし
た。その場合、どうせなら if cgi.remote_user.empty? だけで済む方が便利
かなとも。いかがでしょうか?

-----
なんとなく params, cookies ともに Array になりそうですね。デフォルト値
は [] で。


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