[ruby-list:39027] Re: CGI#[] on Ruby

From: matz@... (Yukihiro Matsumoto)
Date: 2004-01-07 01:36:50 UTC
List: ruby-list #39027
まつもと ゆきひろです

In message "[ruby-list:39026] Re: CGI#[] on Ruby"
    on 04/01/07, 堀川 久 <VZW00011@nifty.ne.jp> writes:

|> しかし、長年is_a?で検査するのは悪いスタイルだと口を酸っぱく
|> して言ってるわけですから、これをどこまでサポートするべきなの
|> かは疑問です。
|
|例えば引数のクラスによって挙動を変える(私はこの手のは書きませんけど)場合など
|にis_a?が多用されているようです。メソッドの有無により判定するより簡単だからで
|しょうか。
|
|また、引数のクラスのassertionにもよく使われると思います。これは私も多用してい
|ます。
|
|悪いスタイルと言われても、現に幅広く普及しているので、できるかぎりサポートした
|ほうが嬉しいです。

その論理だと悪いスタイルを無くすことはできないことになります
ね。あきらめるべきだと?

うれしい人がいることには同意しますが。

# あらかじめ言っておくと私は変更することそのものに反対してま
# せん。(今回こそは)きちんと結論を得てから「正しい」変更をし
# たいだけで。

|1.6用に書かれたアプリケーションがエラーになりますが、1.8で採られた対策も完璧で
|はない(何しろ本物のArrayインスタンスではない)ので、アプリケーション全体にわ
|たるテストが欠かせません。
|
|このような場合、私はcgi.rbをrequireした後にCGI#[]を1.6互換と置き換える小さなコ
|ードを書いています。
|
|この方法で1.6用のスクリプトを安全に動かせるので、1.8はシンプルにしてはどうでし
|ょうか。

現状のcgi.rbにはあまり手を入れたくなくて、いっそCGIライブラ
リはAPIを再設計してもう一度新しいのを用意したいんですが。
「またかよ」と言われそうですが。

multipartかどうかで挙動が大きく変わるのも使いにくいし、HTML 
生成とCGIインタフェースも分離したいし。たくさんある標準添付
でないCGI関係のライブラリから良いものを探せばよいのかもしれ
ませんが。

                                まつもと ゆきひろ /:|)

In This Thread