なひです. > From: wakou / fsinet.or.jp [mailto:wakou / fsinet.or.jp] > Sent: Thursday, September 02, 1999 4:10 PM > > foo.cgi?b= > > > > のときは,cgi[ "a" ] = nil,cgi[ "b" ] = ""になるんですよね. > > 新案として、cgi["a"] == [] はいかがでしょうか? すいません,そうですそうでした[0]を忘れていました.m(..m > 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 > は有効です。 えーとすいません,どれがどれに対応するのか よくわからなくなってきました.^^; なひの希望としては, (i) foo.cgi?a=&b=のとき 1. cgi[ "a" ] == [ "" ] 2. cgi[ "b" ] == [ "" ] 3. cgi.has_key?( "a" ) == true 4. cgi.has_key?( "b" ) == true (ii) foo.cgi?b=&b=のとき 5. cgi[ "a" ] == [] 6. cgi[ "b" ] == [ "", "" ] 7. cgi.has_key?( "a" ) == false 8. cgi.has_key?( "b" ) == true です.あれ,これだと現在のままかな...5.だけ変更になるんですかね. # すいません実装の手間を考えずに書いてます.^^; > > だとしたら,cgi.remote_userとかも, > > ヘッダにない時は""でなくてnilになってくれると嬉しいですー. 訂正です.REMOTE_USERはヘッダ経由じゃない環境変数ですね.^^; 気持ちとしては,例えばHTTP_PROXY等も含めて,というつもりでした. > ああ、なるほど。手抜きをしたい場合には cgi.remote_user 等で、チェック > を自前でしたい場合には ENV['REMOTE_USER'] 等という使い分けを考えていま > した。 なるほどそういうことでしたか.では,なひみたいな使い方の場合は, ENV['REMOTE_USER']を使うべきですね. うーんと,いやまてよ,環境変数を参照するのって, mod_ruby環境で大丈夫かな...? > また、nil を返すようにしたとしても、その場合の対応は、 > > if cgi.remote_user or cgi.remote_user.empty? > > という感じで、空き文字列が返ってきた場合と同じになるようにも思われまし > た。その場合、どうせなら if cgi.remote_user.empty? だけで済む方が便利 > かなとも。いかがでしょうか? そうですね.なひとしては, 「ない」というのと「あるけど空文字列」を分けたい, というのが最初の動機ですので,環境変数を使うのに問題がなければ, そちらを利用して実現したいと思います. 「Rubyで楽しくプログラミング」という観点からは, 現仕様の方が便利かもしれませんね.なひは青山さんの判断に従いますです.