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