diff --git a/app/lib/emoji.rb b/app/lib/emoji.rb index e444b689379d947a2587e27788e474519ee318b9..6de70e9b4127cb5f4ab7a213d179aedd6d9e4b32 100644 --- a/app/lib/emoji.rb +++ b/app/lib/emoji.rb @@ -32,7 +32,7 @@ class Emoji def codepoint_to_unicode(codepoint) if codepoint.include?('-') - codepoint.split('-').map(&:hex).pack('U') + codepoint.split('-').map(&:hex).pack('U*') else [codepoint.hex].pack('U') end diff --git a/spec/helpers/emoji_helper_spec.rb b/spec/helpers/emoji_helper_spec.rb index 1eedfb719466aaf4c72fec3c4bd1f21eb24547d3..6edf7672f7bd6d0b6fbde7b30088e60fc8f91a8d 100644 --- a/spec/helpers/emoji_helper_spec.rb +++ b/spec/helpers/emoji_helper_spec.rb @@ -7,6 +7,11 @@ RSpec.describe EmojiHelper, type: :helper do expect(emojify(text)).to eq '📖 Book' end + it 'converts composite emoji shortcodes to unicode' do + text = ':couple_ww:' + expect(emojify(text)).to eq '👩â¤ðŸ‘©' + end + it 'does not convert shortcodes that are part of a string into unicode' do text = ':see_no_evil::hear_no_evil::speak_no_evil:' expect(emojify(text)).to eq text