mirror of
https://github.com/mastodon/mastodon
synced 2024-12-30 06:28:11 +09:00
a390abdefb
* Use the same emoji data on the frontend and backend * Move emoji.json to repository, add tests This way you don't need to install node dependencies if you only want to run Ruby code
25 lines
489 B
Ruby
25 lines
489 B
Ruby
# frozen_string_literal: true
|
|
|
|
module EmojiHelper
|
|
def emojify(text)
|
|
return text if text.blank?
|
|
|
|
text.gsub(emoji_pattern) do |match|
|
|
emoji = Emoji.instance.unicode($1) # rubocop:disable Style/PerlBackrefs
|
|
|
|
if emoji
|
|
emoji
|
|
else
|
|
match
|
|
end
|
|
end
|
|
end
|
|
|
|
def emoji_pattern
|
|
@emoji_pattern ||=
|
|
/(?<=[^[:alnum:]:]|\n|^)
|
|
(#{Emoji.instance.names.map { |name| Regexp.escape(name) }.join('|')})
|
|
(?=[^[:alnum:]:]|$)/x
|
|
end
|
|
end
|