Para seguir practicando con ruby pensé en añadir la opción de los emoticonos para el weblog, de tal manera que expresiones tales como :) o 8) fuesen sustituidas por imágenes como
o
y esta fue la solución a la que llegué:
module Emotes
class Emotes
@@expressions = {
":)" => "face-smile.png",
";)" => "face-wink.png",
"8)" => "face-glasses.png",
":D" => "face-smile-big.png",
"xD" => "face-grin.png",
"XD" => "face-grin.png",
":(" => "face-sad.png",
":O" => "face-surprise.png",
"}:D" => "face-devil-grin.png",
"}:)" => "face-devil-grin.png",
":*" => "face-kiss.png",
"O:)" => "face-angel.png"
}
def Emotes.parse(text, location = nil)
emoticon_text = text.dup
@@expressions.each {
|key, value|
key = Regexp.escape(key)
emoticon_text.gsub!(/(\s+)#{key}/) {
$1 + "<img src=\"#{location}#{value}\" class=\"emote\" alt=\"#{value}\" />"
}
}
emoticon_text
end
def parse(text, location = nil)
Emotes.parse(text, location)
end
end
end
app/helpers/application_helper.rb
module ApplicationHelper
#emotes
def emotes(text)
Emotes::Emotes.parse(text, "/images/emotes/")
end
end
Los emoticonos disponibles están sacados del proyecto Tango y son estos:
:) =>
;) =>
8) =>
:D =>
xD =>
XD =>
:( =>
:O =>
}:) =>
}:D =>
:* =>
O:) =>
Son chulisimos…Me apunto la pagina porque el diseño de los iconos que tienen nos chana bastante…