[#39021] CGI#[] on Ruby 1.8.1 — 堀川 久 <vzw00011@...>
明けましておめでとうございます。今年もよろしくです。
2 messages
2004/01/05
[#39026] Re: CGI#[] on Ruby — 堀川 久 <VZW00011@...>
おはようございます。
7 messages
2004/01/07
[#39031] ruby-mysqlのlist_dbs — Takashi Kanai <kanai@...4u.or.jp>
こんにちは、金井です。
5 messages
2004/01/08
[#39040] 内包オブジェクトがnilになったら自分もnilになるには? — Yac <yac@...>
岡といいます。こんにちは。
9 messages
2004/01/13
[#39051] — ruby@...
みなさん、こんにちは。みかみと申します。
7 messages
2004/01/19
[#39052] Re: compile error in ext/openssl
— GOTOU Yuuzou <gotoyuzo@...>
2004/01/19
In message <20040119074144.9461EAF55@mail.nmn.jp>,
[#39073] Ruby1.8のWIN32OLEで-wのとき — Takashi Kanai <kanai@...4u.or.jp>
金井です。
12 messages
2004/01/24
[#39074] Re: Ruby1.8のWIN32OLEで-wのとき
— Yac <yac@...>
2004/01/25
岡といいます。
[#39075] Re: Ruby1.8のWIN32OLEで-wのとき
— Takashi Kanai <kanai@...4u.or.jp>
2004/01/25
金井です。
[#39076] Re: Ruby1.8のWIN32OLEで-wのとき
— Yac <yac@...>
2004/01/25
岡です。
[#39077] Re: Ruby1.8のWIN32OLEで-wのとき
— Takashi Kanai <kanai@...4u.or.jp>
2004/01/25
金井です。
[#39078] Re: Ruby1.8のWIN32OLEで-wのとき
— "U.Nakamura" <usa@...>
2004/01/25
こんにちは、なかむら(う)です。
[ruby-list:39022] Re: CGI#[] on Ruby 1.8.1
From:
matz@... (Yukihiro Matsumoto)
Date:
2004-01-05 13:03:38 UTC
List:
ruby-list #39022
まつもと ゆきひろです
In message "[ruby-list:39021] CGI#[] on Ruby 1.8.1"
on 04/01/05, 堀川 久 <vzw00011@nifty.ne.jp> writes:
|Ruby 1.8.1で、CGI#[]の戻り値のクラスであるCGI::QueryExtension::Valueが
|Stringの派生クラスではなくなりましたが、副作用が出ています。
|
|文字列(Stringインスタンス)が期待されているところでは、is_a?(String)
|として値(のクラス)が正しいか検査することがあります。あるいはクラスに
|よって挙動を変えることもあります。
|
|このため、文字列と思ってCGI#[]の戻り値を使っていると、いろいろな場所で
|エラーになったり、予期しない挙動になったりしています。例えばRuby/DBIな
|どでもエラーが頻出します。
|
|これを避けるためには、次のように書かなければならず、悲しくなります。
しかし、長年is_a?で検査するのは悪いスタイルだと口を酸っぱく
して言ってるわけですから、これをどこまでサポートするべきなの
かは疑問です。
|潔く、次のようにしませんか。
|
| def [](key)
| params = @params[key]
| value = params[0]
| if @multipart
| if value
| return value
| elsif defined? StringIO
| StringIO.new("")
| else
| Tempfile.new("CGI")
| end
| else
| value || "" # 文字列を返す。
| end
| end
これはこれで動かないプログラムが出るような気がするんですが、
それは構わないんですか?
まつもと ゆきひろ /:|)