Skip to content

mroth/emoji_data.rb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

3f1885b Β· Mar 1, 2015
Sep 5, 2014
Sep 3, 2014
Sep 4, 2014
Apr 28, 2014
Apr 26, 2014
Sep 2, 2014
Sep 2, 2014
Jun 7, 2013
Mar 1, 2015
Sep 2, 2014
Sep 5, 2014
Jun 7, 2013
Sep 3, 2014
Mar 1, 2015
Mar 1, 2015
Mar 1, 2015

Repository files navigation

emoji_data.rb

Gem Version Build Status Dependency Status Coverage Status

Ruby library providing low level operations for dealing with Emoji glyphs in the Unicode standard. πŸ†’

EmojiData is like a swiss-army knife for dealing with Emoji encoding issues. If all you need to do is translate :poop: into πŸ’©, then there are plenty of other libs out there that will probably do what you want. But once you are dealing with Emoji as a fundamental part of your application, and you start to realize the nightmare of doublebyte encoding or variants, then this library may be your new best friend. :raised_hands:

EmojiData is used in production by Emojitracker.com to parse well over 100M+ emoji glyphs daily. πŸ’«

Don't like Ruby? This library has also now been ported to NodeJS and Elixir.

Installation

Add this line to your application's Gemfile:

gem 'emoji_data'

And then execute:

$ bundle

Or install it yourself as:

$ gem install emoji_data

Currently requires RUBY_VERSION >= 1.9.3.

Usage

Documentation

Full API documentation is available via YARD or here: http://www.rubydoc.info/gems/emoji_data

Examples

Here are some examples of the type of stuff you can do:

>> require 'emoji_data'
=> true

>> EmojiData.from_unified('1f680')
=> #<EmojiData::EmojiChar:0x007f8fdba33b40 @variations=[], @name="ROCKET",
@unified="1F680", @docomo=nil, @au="E5C8", @softbank="E10D", @google="FE7ED",
@image="1f680.png", @sheet_x=25, @sheet_y=4, @short_name="rocket",
@short_names=["rocket"], @text=nil, @apple_img=true, @hangouts_img=true,
@twitter_img=true>

>> EmojiData.all.count
=> 845

>> EmojiData.all_with_variants.count
=> 107

>> EmojiData.find_by_short_name("moon").count
=> 13

>> EmojiData.all.select(&:doublebyte?).map(&:short_name)
=> ["hash", "zero", "one", "two", "three", "four", "five", "six", "seven",
"eight", "nine", "cn", "de", "es", "fr", "gb", "it", "jp", "kr", "ru", "us"]

>> EmojiData.find_by_name("tree").map { |c| [c.unified, c.name, c.render] }
=> [["1F332", "EVERGREEN TREE", "🌲"], ["1F333", "DECIDUOUS TREE", "🌳"],
["1F334", "PALM TREE", "🌴"], ["1F384", "CHRISTMAS TREE", "πŸŽ„"], ["1F38B",
"TANABATA TREE", "πŸŽ‹"]]

>> EmojiData.scan("I β™₯ when marketers talk about the ☁. #blessed").each do |ec|
?>   puts "Found some #{ec.short_name}!"
>> end
Found some hearts!
Found some cloud!
=> [...]

Contributing

Please be sure to run rake spec and help keep test coverage at πŸ’―.

There is a full benchmark suite available via rake benchmark. Please run before and after your changes to ensure you have not caused a performance regression.

License

The MIT License (MIT)

About

😎 Emoji encoding swiss army knife for Ruby

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages