[Deprecated] Emojimmy makes it possible to store emoji characters in ActiveRecord datastores that don’t support 4-Byte UTF-8 Unicode (utf8mb4) encoding.
Ruby Logos
Latest commit 3283883 Sep 6, 2016 @remiprev remiprev Add deprecation notice

README.md

Emojimmy
Emojimmy makes it possible to store emoji characters in ActiveRecord datastores
that don’t support 4-Byte UTF-8 Unicode (utf8mb4) encoding.

You probably should be using a database that supports utf8mb4 though (and not this gem), like PostgreSQL or MySQL (5.5+). We built this gem because stock Heroku machines cannot compile the mysql2 gem to use the utf8mb4 encoding (because they ship with an old version of libmysqlclient).


Deprecation notice

⚠️ This repository is now deprecated since most MySQL and PostgreSQL installations these days support storing native emoji characters. The gem will continue to work as expected but v0.3 will be the last version.

Installation

Add this line to your application's Gemfile:

gem 'emojimmy'

Usage

ActiveRecord

You have to edit your models to specify which fields will be storing emoji characters:

# app/models/comment.rb
class Comment < ActiveRecord::Base
  stores_emoji_characters :body
end

Your model will now be able to store emoji characters in its body column.

# Create a comment with an emoji
@comment = Comment.create(body: "Hello! 😁")

# Our comment has been saved in the database
@comment.persisted? # => true

# Magic! Our body contains the emoji!
@comment.body # => "Hello! 😁"

# The real magic… how emoji are actually stored
@comment.read_attribute(:body) # => "Hello! :grin:"

Custom

If you only want to use Emojimmy’s conversion methods, you can use two methods, token_to_emoji and emoji_to_token:

Emojimmy.emoji_to_token("Hello! 😁")
# => "Hello! :grin:"

Emojimmy.token_to_emoji("Hello! :grin:")
# => "Hello! 😁"

License

Emojimmy is © 2013-2015 Mirego and may be freely distributed under the New BSD license. See the LICENSE.md file.

About Mirego

Mirego is a team of passionate people who believe that work is a place where you can innovate and have fun. We're a team of talented people who imagine and build beautiful Web and mobile applications. We come together to share ideas and change the world.

We also love open-source software and we try to give back to the community as much as we can.