Masao Mutoh
mutoh****@highw*****
2003年 7月 24日 (木) 23:29:46 JST
むとうです。 On Thu, 24 Jul 2003 05:13:49 +0900 TAKEUCHI Hitoshi <hitos****@namar*****> wrote: > たけうちです。 > > もちろん、個人で(あるいは通常のCGIとして)これをやる分には > > 全く問題がないのですが、拡張性を期待するようなメソッドなどは、 > > 別途、Hikiのローカルメソッドでラップしてあげるのがベターかと思います。 > > 標準クラスのメソッドをオーバーライドするのはかなりまずい感じだけど、メソッド > の追加は比較的被害が少ないんじゃないかな? 被害は極小でしょう。あまりお気になさらずに。 蛇足ついでですがもうちょっとだけ。 例えば、同じmod_ruby上のCGIアプリがString#escapeというメソッドを持っていて 全く違う用途のescapeをしようとしたらどうでしょうか。 #もちろん、そのアプリがそのような実装をしているとしたらそちらの実装も #悪いと思いますが、この場合はお互い様と言うことで。 String#escapeURLだったらまだ用途が限定できるのでString#escapeよりは (違う意味ではつかわれなさそうという意味で)安全そうな気がします。 さらに言えば、CGI::escape(str)であれば、より用途がはっきりします。 おそらくCGI::escape()をオーバーライドしたい人というのは、URL Encodeの 挙動を変えたいことを意図しているでしょうからそれのオーバーライドは String#escapeをオーバーライドするより、意味的に安全だと思います。 さらにCGI::escapeをHiki::escapeでラップしたとしたらどうでしょう。 Hiki::escapeをオーバーライドしたい人はより目的をはっきりと限定できます。 Rubyの場合は既存クラスにメソッドを追加できることは長所の一つなので それを否定するつもりは毛頭ございませんが、こういう考え方もできると いうことで。 #どちらかというとライブラリを開発する際に気にしなきゃいけないって #いう話ですね。 以上、完全に蛇足でした。 -- .:% Masao Mutoh<mutoh****@highw*****>