[ruby-dev:47314] [ruby-trunk - Feature #8354] lib/cgi/util.rb を関数としても使えるようにしたい

From: "mame (Yusuke Endoh)" <mame@...>
Date: 2013-05-02 15:10:24 UTC
List: ruby-dev #47314
Issue #8354 has been updated by mame (Yusuke Endoh).


escapeHTML を関数として呼び出せるのはいいと思います。

しかし h のエイリアスはあまり賛成でないです。一般的なプログラムの中で

  s = h s

みたいなコードを書くことを Ruby が推奨しているとは思わないので。

ERB の h は原則として <%=h ... %> というイディオム限定で許されていると
思います。
他に 1 文字メソッドというと p がありますが、こっちはデバッグ時限定で
許されていると思います。(最終的なコードには残さない前提)

一般的なコードの中で h を許したいという動機が何かあるんですかね。

-- 
Yusuke Endoh <mame@tsg.ne.jp>
----------------------------------------
Feature #8354: lib/cgi/util.rb を関数としても使えるようにしたい
https://bugs.ruby-lang.org/issues/8354#change-39090

Author: xibbar (Takeyuki FUJIOKA)
Status: Open
Priority: Normal
Assignee: xibbar (Takeyuki FUJIOKA)
Category: lib
Target version: current: 2.1.0


cgi/util.rb には CGI.escapeHTML などのメソッドがあります。
これらを使うにはCGI.escapeHTML(str) みたいにして
いちいち全部書かなきゃならなくて、
長いと思っています。
erbを使っている人なら include ERB::Util すると h(str) と使えるのですが、
私はerb使わずに素のCGIを書いているので、hが使えず不便でした。
なので、中身をutil.rb の中身を丸ごとmoduleにして
include CGI::Util すれば、escapeHTMLが使えて、
さらにescapeHTML にhをエイリアスにして、
erbと同じように使えるようにしてしまおうかと思います。
すでにerbでそういう名前で短縮名が使われているので、
新規に仕様を作るまでもなく真似します。
また、今は ERB::Util#h は実体がCGI.escapeHTMLですし。

メンテナが私なので反対がなければ入れたいと思います。



-- 
http://bugs.ruby-lang.org/

In This Thread