diff options
author | Carlos Antonio da Silva <carlosantoniodasilva@gmail.com> | 2012-01-12 21:07:15 -0200 |
---|---|---|
committer | Carlos Antonio da Silva <carlosantoniodasilva@gmail.com> | 2012-02-01 08:55:19 -0200 |
commit | 9d25af60a28d5484d04f10b0153f435106f4949b (patch) | |
tree | 19facf063c00287b32b44109e754327b71b31f01 | |
parent | 608eddc6f5465c642bd02f5523a8e486a87020b1 (diff) | |
download | rails-9d25af60a28d5484d04f10b0153f435106f4949b.tar.gz rails-9d25af60a28d5484d04f10b0153f435106f4949b.tar.bz2 rails-9d25af60a28d5484d04f10b0153f435106f4949b.zip |
Move escaping regexps to constants
-rw-r--r-- | activesupport/lib/active_support/core_ext/string/output_safety.rb | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/activesupport/lib/active_support/core_ext/string/output_safety.rb b/activesupport/lib/active_support/core_ext/string/output_safety.rb index a8d51abbb5..104ee251de 100644 --- a/activesupport/lib/active_support/core_ext/string/output_safety.rb +++ b/activesupport/lib/active_support/core_ext/string/output_safety.rb @@ -5,6 +5,8 @@ class ERB module Util HTML_ESCAPE = { '&' => '&', '>' => '>', '<' => '<', '"' => '"' } JSON_ESCAPE = { '&' => '\u0026', '>' => '\u003E', '<' => '\u003C' } + HTML_ESCAPE_ONCE_REGEXP = /[\"><]|&(?!([a-zA-Z]+|(#\d+));)/ + JSON_ESCAPE_REGEXP = /[&"><]/ # A utility method for escaping HTML tag characters. # This method is also aliased as <tt>h</tt>. @@ -42,7 +44,7 @@ class ERB # html_escape_once("<< Accept & Checkout") # # => "<< Accept & Checkout" def html_escape_once(s) - result = s.to_s.gsub(/[\"><]|&(?!([a-zA-Z]+|(#\d+));)/) { |special| HTML_ESCAPE[special] } + result = s.to_s.gsub(HTML_ESCAPE_ONCE_REGEXP) { |special| HTML_ESCAPE[special] } s.html_safe? ? result.html_safe : result end @@ -66,7 +68,7 @@ class ERB # <%=j @person.to_json %> # def json_escape(s) - result = s.to_s.gsub(/[&"><]/) { |special| JSON_ESCAPE[special] } + result = s.to_s.gsub(JSON_ESCAPE_REGEXP) { |special| JSON_ESCAPE[special] } s.html_safe? ? result.html_safe : result end |