about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--app/lib/emoji.rb2
-rw-r--r--spec/helpers/emoji_helper_spec.rb5
2 files changed, 6 insertions, 1 deletions
diff --git a/app/lib/emoji.rb b/app/lib/emoji.rb
index e444b6893..6de70e9b4 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 1eedfb719..6edf7672f 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