Method: CGI.escape_html
- Defined in:
- lib/standard/facets/cgi/escape_html.rb
.escape_html(string, *modes) ⇒ Object Also known as: escapeHTML
Extends ‘#escape_html` to support escape modes. By default all strings are escaped on `&`, `>` and `<`. Add the `:nonstandard` mode to omit this conversion.
If no mode is given then the ‘:default` mode is used.
Available modes include:
-
‘:quote` - escapes single and double quotes
-
‘:newlines` - escapes newline characters (r and n)
-
‘:ampersand` - escapes the ampersand sign
-
‘:brackets` - escapes less-than and greater-than signs
-
‘:default` - escapes double quotes
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/standard/facets/cgi/escape_html.rb', line 23 def self.escape_html(string, *modes) modes << :defualt if modes.empty? unless modes.include?(:nonstandard) string = string.gsub(/&/, '&').gsub(/>/, '>').gsub(/</, '<') end modes.each do |mode| string = \ case mode when :quote, :quotes string.gsub(%r|"|,'"').gsub(%r|'|,''') when :newlines, :newlines string.gsub(/[\r\n]+/,' ') when :ampersand string.gsub(/&/, '&') when :bracket, :brackets string.gsub(/>/, '>').gsub(/</, '<') when :default, true string.gsub(/\"/, '"') when false else raise ArgumentError, "unrecognized HTML escape mode -- #{node}" end end end |