Красная тряпка с фильтром смайликов - PullRequest
1 голос
/ 28 февраля 2012

Что было бы хорошим способом реализовать смайлики / смайлики в простой системе обмена сообщениями? Я вышел на красную ткань как ценное решение.

Сообщения будут сохраняться в БД как;), :); ( * как описано здесь, но это старое: http://flip.netzbeben.de/2008/07/smilies-in-rails-using-redcloth/ Я пытаюсь что-нибудь прокомментировать это решение в безопасности и т. д.?

UPDATE: Создан вспомогательный метод, этот работает

  def emoticons(text)

emoticons = { ":)" => "<img src='/assets/emoticons/smile.gif' class='emoticon'>",
              ":(" => "<img src='/assets/emoticons/cry.gif' class='emoticon'>"
            }

[emoticons.keys, emoticons.values].transpose.each do |search, replace|
  text.gsub!(search, replace)
end

return raw text

конец

Есть ли способ еще улучшить это? замена работает хотя

1 Ответ

1 голос
/ 28 февраля 2012

Это

emoticons = {":)" => "[happy/]", ":(" => "[sad/]"}
text = "test :) :("
[emoticons.keys, emoticons.values].transpose.each do |search, replace|
  text.gsub!(search, replace)
end
p text

выдаст

test [happy/] [sad/]

Вы можете играть с gsub, чтобы получить вывод HTML вместо псевдо-BB-кода

...