class String
HTML_CHARACTERS = [
"&", " ", "¡", "¢", "£", "¤", "¥", "¦", "§", "¨", "©", "ª", "«", "¬", "",
"¯", "°", "±", "²", "³", "´", "µ", "¶", "·", "¸", "¹", "º", "»", "¼", "½",
"¾", "¿", "À", "Á", "Â", "Ã", "Ä", "Å", "Æ", "Ç", "È", "É", "Ê", "Ë", "Ì",
"Í", "Î", "Ï", "Ð", "Ñ", "Ò", "Ó", "Ô", "Õ", "Ö", "×", "Ø", "Ù", "Ú", "Û",
"Ü", "Ý", "Þ", "ß", "à", "á", "â", "ã", "ä", "å", "æ", "ç", "è", "é", "ê",
"ë", "ì", "í", "î", "ï", "ð", "ñ", "ò", "ó", "ô", "õ", "ö", "÷", "ø", "ù",
"ú", "û", "ü", "ý", "þ", "ÿ", '"', "<", ">", "®"
]
HTML_ENTITIES = [
"&", " ", "¡", "¢", "£", "¤", "¥", "¦",
"§", "¨", "©", "ª", "«", "¬", "",
"¯", "°", "±", "²", "³", "´", "µ",
"¶", "·", "¸", "¹", "º", "»", "¼",
"½", "¾", "¿", "À", "Á", "Â",
"Ã", "Ä", "Å", "Æ", "Ç", "È",
"É", "Ê", "Ë", "Ì", "Í", "Î",
"Ï", "Ð", "Ñ", "Ò", "Ó", "Ô",
"Õ", "Ö", "×", "Ø", "Ù", "Ú",
"Û", "Ü", "Ý", "Þ", "ß", "à",
"á", "â", "ã", "ä", "å", "æ",
"ç", "è", "é", "ê", "ë", "ì",
"í", "î", "ï", "ð", "ñ", "ò",
"ó", "ô", "õ", "ö", "÷", "ø",
"ù", "ú", "û", "ü", "ý", "þ",
"ÿ", """, "<", ">", "®"
]
def htmlentities
self.dup.htmlentities!
end
def htmlentities!
self.translate!(HTML_CHARACTERS, HTML_ENTITIES)
end
def unhtmlentities
self.dup.unhtmlentities!
end
def unhtmlentities!
self.translate!(HTML_ENTITIES, HTML_CHARACTERS)
end
def translate!(from_array, to_array)
from_array.each_with_index do |char, i|
self.gsub!(char, to_array[i])
end
self
end
def translate(from_array, to_array)
self.dup.translate!(from_array, to_array)
end
end