20 lines
400 B
Ruby
20 lines
400 B
Ruby
|
# 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
|