(続)String#{escape_html, unescape_html, escape_uri, unescape_uri} をつけたい
Twitterでメソッド名がよくないという
反応だったのでちょっと修正してみました。
--- a/lib/cgi/util.rb +++ b/lib/cgi/util.rb @@ -195,4 +195,29 @@ class CGI end lines.gsub(/^((?:#{Regexp::quote(shift)})*)__(?=<\/?\w)/, '\1') end + + class ::String + def escapeHTML + CGI::escapeHTML(self) + end + + def unescapeHTML + CGI::unescapeHTML(self) + end + + alias escape_html escapeHTML + alias unescape_html unescapeHTML + + def escape_uri + CGI::escape(self) + end + + def unescape_uri(charset=nil) + charset ? CGI::unescape(self, charset) : CGI::unescape(self) + end + + alias escape_url escape_uri + alias unescape_url unescape_uri + + end end
実行結果がこんな感じ。
% ruby -rcgi/util -e "puts '%E7%99%BD%E3%81%A0%E3%81%97'.unescape_uri" 白だし
Cで実装しろという話もありましたが、
そんなのすぐには完成しないので、また今度。