Project

rumoji

0.18
No release in over 3 years
Low commit activity in last 3 years
There's a lot of open issues
Transcode emoji utf-8 characters into emoji-cheat-sheet form
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies
 Project Readme

Rumoji

This is a tool to convert Emoji Unicode codepoints into the human-friendly codes used by http://www.emoji-cheat-sheet.com/ and back again.

Why would you want to do this? Read this blog post: http://mwunsch.tumblr.com/post/34721548842/we-need-to-talk-about-emoji

tl;dr

By doing this, you can ensure that users across devices can see the authorโ€™s intention. You can always show users an image, but you canโ€™t show them a range of characters their system does not support.

This gem is primarily for handling emoji characters in user-generated content. Depending on your technical stack, these characters could end up being lost.

Usage

Rumoji.encode(str)
# Takes a String, transforms Emoji into cheat-sheet codes

Rumoji.encode(str) { |emoji| #your code here }
# Takes a String, transforms Emoji into whatever you want

Rumoji.decode(str)
# Does the reverse of encode

Rumoji.encode_io(read, write)
# For an IO pipe (a read stream, and a write stream), transform Emoji from the
# read end, and write the cheat-sheet codes on the write end.

Rumoji.decode_io(read, write)
# Same thing but in reverse!

Installation

gem install rumoji

Note that rumoji has only been tested in Rubies >= 1.9!!!

Some examples:

puts Rumoji.encode("Lack of cross-device emoji support makes me ๐Ÿ˜ญ")
#=> Lack of cross-device emoji support makes me :sob:

Rumoji.encode_io(StringIO.new("๐Ÿ’ฉ")).string
#=> ":poop:"

Here's a fun file:

Rumoji.decode_io($stdin, $stdout)

On the command line

echo "But Rumoji makes encoding issues a :joy:" | ruby ./funfile.rb
#=> But Rumoji makes encoding issues a ๐Ÿ˜‚

Emoji methods

.code

The symbol of the emoji surrounded with colons

Rumoji.encode("๐Ÿ˜ญ") {|emoji| emoji.code}
#=> ":sob:"

.symbol

The symbol of the emoji

Rumoji.encode("๐Ÿ˜ญ") {|emoji| emoji.code}
#=> "sob"

.multiple?

Returns true if the emoji is made up of multiple code points. E.g. ๐Ÿ‡บ๐Ÿ‡ธ

Rumoji.encode("๐Ÿ‡บ๐Ÿ‡ธ") {|emoji| emoji.multiple?}
#=> true

.string

The raw emoji

Rumoji.encode("๐Ÿ˜ญ") {|emoji| emoji.string}
#=> "๐Ÿ˜ญ"

Implement the emoji codes from emoji-cheat-sheet.com using a tool like gemoji along with Rumoji, and you'll easily be able to transform user input with raw emoji unicode into images you can show to all users.

Having trouble discerning what's happening in this README? You might be on a device with NO emoji support! All the more reason to use Rumoji. Transcode the raw unicode into something users can understand across devices!

Thanks!

Copyright

Copyright (c) 2012 - 2016 Mark Wunsch. Licensed under the MIT License.