You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
20 lines
400 B
20 lines
400 B
7 years ago
|
# frozen_string_literal: true
|
||
|
|
||
|
module EmojiHelper
|
||
|
EMOJI_PATTERN = /(?<=[^[:alnum:]:]|\n|^):([\w+-]+):(?=[^[:alnum:]:]|$)/x
|
||
|
|
||
|
def emojify(text)
|
||
|
return text if text.blank?
|
||
|
|
||
|
text.gsub(EMOJI_PATTERN) do |match|
|
||
|
emoji = Emoji.find_by_alias($1) # rubocop:disable Rails/DynamicFindBy,Style/PerlBackrefs
|
||
|
|
||
|
if emoji
|
||
|
emoji.raw
|
||
|
else
|
||
|
match
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|