Compare commits

..

165 Commits

Author SHA1 Message Date
Mislav Marohnić
6a39782a46 gemoji 2.0.1 2014-08-02 09:24:58 -07:00
Adam Roben
c6a9db29bd Fix tests 2014-08-02 09:24:09 -07:00
Adam Roben
3ec375d299 Remove incorrect unicode aliases
db/aliases.html now clears out any incorrect aliases it finds.
2014-08-02 09:24:09 -07:00
Adam Roben
34cd8356bb Use the same unicode aliases as Safari 7.0.5 on OS X 10.9.4
Category-Emoji.json contains many code point sequences ending in U+FE0F
VARIATION SELECTOR-16. OS X renders some of these code point sequences
as color emoji even if you strip off VARIATION SELECTOR-16. (And in fact
it even renders some of them as color emoji if you replace VARIATION
SELECTOR-16 with VARIATION SELECTOR-15, even though that is explicitly
requesting a "text" variant of the character).

We used to assume that VARIATION SELECTOR-16 was optional for all emoji.
But this doesn't match OS X's behavior. This could cause problems, e.g.,
if you were to use the unicode_aliases property to detect Unicode emoji
and replace them with images for browsers that don't support emoji
natively.

The Ruby code no longer does anything special with VARIATION SELECTOR-16
other than to remove it from the description of each emoji. The new
db/aliases.html file can be used to determine which the correct Unicode
aliases for each emoji are. That page takes each emoji, generates a set
of variants using VARIATION SELECTOR-16 and VARIATION SELECTOR-15,
and renders each variant into a <canvas> element twice: once with a red
font color, and once with a green font color. If the variant renders the
same way, the OS is rendering the variant as a color emoji, and we add
it to the "unicodes" array for that emoji.

So the new process for generating db/emoji.json is:

1. rake db:dump > tmp
2. mv tmp db/emoji.json
3. open -a Safari db/aliases.html
4. Copy the resulting JSON from Safari
5. pbpaste > db/emoji.json

This ensures that unicode_aliases only contains those code point
sequences which actually render as color emoji on OS X.
2014-08-02 09:24:09 -07:00
Mislav Marohnić
58f2f068c1 gemoji 2.0.0 2014-07-04 17:41:23 +08:00
Mislav Marohnić
c5ee5ebb29 Assert that our PNG images are 64x64 px
`shipit.png` is 75 px for some reason, though.
2014-07-04 12:41:27 +08:00
Mislav Marohnić
2b26bb9b0d Fix MD5 checksumming in test that detect duplicates
`Digest::MD5.file` returns an Digest::MD5 instance, not a string
representing the checksum.
2014-07-04 12:09:49 +08:00
Mislav Marohnić
be4946fbbe Actually allow installing the gem on Ruby 2.x you know 2014-07-04 12:09:11 +08:00
Mislav Marohnić
3b65ee2f15 Merge pull request #49 from github/edit-emoji
Add API for adding new / editing existing emoji
2014-07-04 11:54:55 +08:00
Mislav Marohnić
0bea2df7ba Add ability to use Emoji.create without a block 2014-07-04 11:51:20 +08:00
Mislav Marohnić
e9480a983b Merge pull request #51 from phoet/patch-1
fix formatting
2014-07-04 11:43:31 +08:00
Mislav Marohnić
3935375ca8 Change emoji creation API to take name as 1st argument
It's more likely that someone will want to add a new emoji with a custom
image rather than a character that has a Unicode representation.

Also move the VARIATION_SELECTOR_16 logic outside of Emoji::Character
since it doesn't need to be concerned with it.
2014-07-03 18:13:55 +08:00
Peter Schröder
77ff183d85 fix formatting 2014-07-02 22:17:35 -04:00
Mislav Marohnić
06c5d0993b Fix some emoji images
/cc @charliesome because I only discovered these mismatches because of
his trains
2014-07-03 00:23:02 +08:00
Mislav Marohnić
f73921aacd Add test that images on disk don't have duplicates 2014-07-02 19:51:36 +08:00
Mislav Marohnić
e2ae300270 Merge pull request #50 from github/preview
HTML page to preview the emoji database
2014-06-28 09:13:41 +08:00
Mislav Marohnić
bbfae32663 HTML page to preview the emoji database 2014-06-28 07:50:16 +08:00
Mislav Marohnić
65031cfcd2 Add documentation note about images for added emoji
It comes down to: if you add new emoji, you must add images for them as
well. That's the whole point.
2014-06-28 07:19:58 +08:00
Mislav Marohnić
7477247802 Add API for adding new / editing existing emoji
- Emoji.create(raw) => yields to block
- Emoji.edit_emoji(emoji) => yields to block

The block forms are so that the list of aliases & unicode_aliases is
re-indexed after the update.
2014-06-28 07:19:58 +08:00
Mislav Marohnić
ef06de5305 Merge pull request #48 from github/fire-old-api
🔥 old gemoji API
2014-06-28 06:08:09 +08:00
Mislav Marohnić
097fbafcb7 🔥 old API 2014-06-27 19:09:59 +08:00
Mislav Marohnić
608ddd58fd Update gemspec to fix warnings
- Specifying `licenses` is recommended
- More helpful `summary` and `description`
2014-06-27 19:03:27 +08:00
Mislav Marohnić
72aecc9105 Actually give up on 1.8.7 compatbility
Gemoji implementation depends on `codepoints` and test depend on some
more Ruby 1.9-only features, so don't pretend that the library will be
1.8 compatible anytime soon. Probably never.

This reverts commit 6a781b6474.
2014-06-27 19:02:05 +08:00
Mislav Marohnić
6a781b6474 Add json gem for 1.8.7 test compatibility 2014-06-27 18:52:36 +08:00
Mislav Marohnić
cb55354db9 Set up minitest gem for 1.8.7 test compatibility 2014-06-27 18:43:58 +08:00
Mislav Marohnić
490b07b49e Disable spam 2014-06-27 18:43:09 +08:00
Mislav Marohnić
1a7a23fd46 Enable Travis CI 2014-06-27 18:36:36 +08:00
Mislav Marohnić
d7b020fd16 Merge pull request #47 from github/no-symlinks
Get emoji list & aliases from data file instead of symlinks
2014-06-27 18:33:17 +08:00
Mislav Marohnić
a9112090fa Tweak tags for some emoji
Ensure that tags accurately describe the original meaning of the emoji
(with respect to its definition from Unicode spec).
2014-06-27 18:25:56 +08:00
Mislav Marohnić
01394ed139 Have unicode_aliases include emoji's raw representation as well
This brings it up to par with `aliases`, which includes `name` as well.
2014-06-27 11:21:46 +08:00
Mislav Marohnić
2530b24121 Update usage examples in the README with the new API 2014-06-27 11:21:45 +08:00
Mislav Marohnić
5d2401222a Improve emoji lookup fallback behavior
Instead of an unfriendly LocalJumpError, raise the Emoji::NotFound
exception with a helpful message if the block was not given.

If a fallback block was given, yield the value for which the lookup failed.
2014-06-27 11:21:45 +08:00
Mislav Marohnić
70db910026 Add dump script to inspect Unicode descriptions & aliases
This script was used to construct the initial `emoji.json` file.

Example:

    rake db:dump | less -r
2014-06-27 11:21:45 +08:00
Mislav Marohnić
0845c3898a Add task to download Unicode 6.3 names list
This list contains textual descriptions for emoji characters.
2014-06-27 11:21:45 +08:00
Mislav Marohnić
07e15fde99 Remove duplicate image for shipit squirrel 2014-06-27 11:21:45 +08:00
Mislav Marohnić
2fad57ed49 Get emoji list & aliases from data file instead of symlinks
Previously, emoji name & unicode aliases were determined by following
symlinks among `images/emoji/*.png`. This led to nontrivial code for
resolving these aliases, made it tricky for contributors to add new
aliases and inspect existing ones, and didn't leave room for adding
metadata to emojis such as tags or descriptions from the Unicode spec.

Moreover, the aliases as symlinks led to duplication of image assets in
users' applications, with `hocho.png` and `knife.png` representing the
same emoji but being two separate images. Users were also unsure what to
do with `unicode/{HEX-NAME}.png` files, which would end up among their
images after running the `:emoji` task.

This change removes the symlinks support and creates the list of emojis
and their aliases in `emoji.json`. A single emoji is now represented with
an Emoji::Character instance, which has the `image_filename` method to
determine the path to the corresponding image instead of having to
construct it manually.
2014-06-27 11:21:45 +08:00
Mislav Marohnić
c8c9805bfc 🔥 image symlinks
Emoji aliases as symlinks didn't scale.
2014-06-03 02:25:14 +07:00
Mislav Marohnić
f1d0bfedaf Simplify db:generate task and have JSON be human-readable 2014-03-12 12:16:15 +01:00
Trevor Turk
204ace76da Merge pull request #40 from github/use-extant-emoji-in-readme-example
Use extant emoji in the example
2014-02-24 13:34:32 -06:00
Rob Rix
824a0ee189 Use extant emoji in the example 2014-02-24 13:50:01 -05:00
Javan Makhmali
4536894c48 Merge pull request #39 from TheRakken/patch-1
Fixed typo in README.md
2014-02-01 15:12:14 -08:00
TheRakken
28983a9ea9 Fixed typo in README.md 2014-02-02 02:06:43 +03:00
Javan Makhmali
11c08bdd2f Shell out to cp ourself.
The output from using FileUtil's `cp_r` with the previous options was `cp -rp --remove-destination`, which aren't even valid options.
2014-01-30 17:31:09 -05:00
Trevor Turk
c77cd152ba Use old hash syntax for Ruby 1.8 compatibility 2014-01-30 15:12:37 -06:00
Joshua Peek
73f48e4b57 Merge pull request #38 from github/knife-alias
Alias 🔪 to the same as 🔪
2014-01-30 09:48:00 -08:00
Coby Chapple
633bd4ff33 alias 🔪 to the same as 🔪 2014-01-30 17:10:31 +00:00
Javan Makhmali
8c96cb878f Document unicode mapping 2013-11-16 13:37:41 -05:00
Javan Makhmali
dc06bc9a6b Recursively copy the whole emoji dir, preserving symlinks 2013-11-16 13:10:04 -05:00
Javan Makhmali
7755a8a181 Gemoji 1.5.0 2013-11-10 21:45:17 -05:00
Javan Makhmali
69f625f36c Merge pull request #37 from github/unicode-mapping
Unicode mapping, codepoint fixes, and tests!
2013-11-10 18:43:45 -08:00
Javan Makhmali
13bcea9b4a Make mappings private pending better names 2013-11-10 11:09:48 -05:00
Javan Makhmali
19ddee2bdc Fix up incorrect/mising speaker emojis 2013-11-10 11:05:52 -05:00
Javan Makhmali
9cd56f6e3d Add missing train emoji 2013-11-10 10:49:01 -05:00
Javan Makhmali
56da9a86e3 Add support for the unicode variation selector (fe0f) added to 107 emojis in iOS 7 / OS X 10.9.
http://www.unicode.org/L2/L2011/11438-emoji-var.pdf
http://unicode.org/reports/tr28/tr28-3.html#13_7_variation_selectors
2013-11-10 10:04:11 -05:00
Javan Makhmali
c180447c5b Compare our emoji to emoji straight from the horse's mouth 2013-11-06 09:22:12 -05:00
Javan Makhmali
150c509735 Add missing 🌃 2013-11-05 22:26:25 -05:00
Javan Makhmali
8e098547ad Fix incorrect codepoint for 🌠 2013-11-05 20:50:02 -05:00
Javan Makhmali
968373beae Merge branch 'keycaps' of git://github.com/lautis/gemoji into unicode-mapping 2013-11-05 20:26:19 -05:00
Javan Makhmali
cb85b7b105 Tests to ensure the gem is in good shape. Leave the unicode tests intentionally failing. Fix to follow. 2013-11-05 20:07:56 -05:00
Javan Makhmali
bfbc8c5e98 Convert emoji names to unicode and vice versa. Add some *gasp* tests. h/t @mbillard 2013-11-05 20:00:37 -05:00
Ted Nyman
2d799338d9 Update LICENSE for the source code 2013-06-24 14:25:43 -06:00
Joshua Peek
8b45468c6e Merge pull request #28 from rick/master
A more proper take on this 🐬 -> 🐬 thing
2013-02-11 08:19:11 -08:00
Rick Bradley
d7f9549261 Ah -- do the 🐬 symlink thing 2013-02-11 10:15:56 -06:00
Rick Bradley
17946e381b Alias 🐬 -> 🐬
Is this how this works?
2013-02-10 23:45:28 -06:00
Ville Lautanala
f9f0527fbe Fix digit/keycap unicode code points
Emoji digits and # are normal ASCII digits followed by COMBINING ENCLOSING KEYCAP (0x20e3). http://www.unicode.org/~scherer/emoji4unicode/20091221/emojidata.html
2013-01-26 13:40:11 +02:00
Joshua Peek
a844c2c1f7 Gemoji 1.4.0 2013-01-14 22:07:39 -08:00
Joshua Peek
ece49a0f11 Merge pull request #24 from danthompson/non_rails_support
Add non rails support
2013-01-09 13:39:39 -08:00
Dan Thompson
27e6ef7bc0 Remove external dependencies 2013-01-09 16:25:21 -05:00
Jamie Dihiansan
b67f98a130 Merge branch 'master' of https://github.com/github/gemoji 2013-01-08 13:29:03 -06:00
Jamie Dihiansan
282ae85ea0 updated 🖕 to be more explicit 2013-01-08 13:28:49 -06:00
Trevor Turk
baa55a8eda Gemoji 1.3.1 2013-01-08 11:41:55 -06:00
Jamie Dihiansan
4db892b66b Changed dates to 2013 2013-01-08 08:17:28 -06:00
Jamie Dihiansan
8db84353e4 Merge pull request #25 from github/fu
added 🖕
2013-01-08 06:14:14 -08:00
Jamie Dihiansan
7f9b0eaca9 cleaned up fu image 2013-01-08 08:09:15 -06:00
Jamie Dihiansan
3e9c7cc8fb added 🖕 2013-01-07 16:23:38 -06:00
Dan Thompson
808cb099de Remove 'Rails' as rake task no longer requires it 2013-01-07 10:03:43 -05:00
Dan Thompson
8441803d17 Update target path to not rely on Rails constant 2013-01-07 09:57:37 -05:00
Dan Thompson
8781d47ddb add environment task
appends to or creates when not already present (no-op)
2013-01-07 09:41:40 -05:00
Julia West
88fce2aa9e Merge pull request #22 from danthompson/typo
Fix readme typo
2013-01-03 14:39:19 -08:00
Dan Thompson
b9fa07e0e2 Fix readme typo 2013-01-03 17:24:44 -05:00
Joshua Peek
6723776d77 Merge pull request #21 from rsenk330/rakefile-desc
Add a description to the emoji rake task.
2012-12-05 05:59:25 -08:00
Ryan Senkbeil
5179cd8159 Add a description to the emoji rake task.
This makes it show up when using `rake -T`.
2012-12-04 13:42:50 -06:00
Joshua Peek
198d829f42 Load tasks 2012-11-29 11:30:57 -06:00
Joshua Peek
5446d53d36 Gemoji 1.3.0 2012-11-29 11:08:46 -06:00
Joshua Peek
77e1fb9e71 Editing 2012-11-29 10:45:33 -06:00
Joshua Peek
cf468c1cfd Fix syntax error 2012-11-29 10:44:29 -06:00
Joshua Peek
6d538220a2 🔥 railtie 2012-11-29 10:42:52 -06:00
Joshua Peek
cf1632ef7a railtie 2012-11-29 10:23:41 -06:00
Joshua Peek
de74b4ec57 Merge pull request #20 from lautis/flags
Correct UTF-8 code points for flags
2012-11-29 08:18:03 -08:00
Ville Lautanala
f7af2578a1 Correct UTF-8 code points for flags
Flags are rendered in place of country's ISO 3166 code, encoded using "regional indicator symbols".
2012-11-29 13:00:29 +02:00
Joshua Peek
08ddb3bd7d Fix syntax 2012-11-16 13:17:54 -06:00
Joshua Peek
bde981dad7 emoji -> gemoji 2012-11-16 13:11:28 -06:00
Joshua Peek
13f9ecc764 Merge branch 'master' of https://github.com/github/gemoji 2012-11-16 13:09:43 -06:00
Joshua Peek
33adca56ea Add maintainer release notes 2012-11-16 13:09:29 -06:00
Julia West
3ede22022f Gemoji 1.2.1 2012-11-16 14:07:08 -05:00
Julia West
8bf88ab86e Merge pull request #17 from github/more-missing-emoji
Adding missing squares, 'sparkle', 'package', and 'back'.
2012-11-16 10:34:42 -08:00
Julia West
1e9e262ddf Adding missing squares, sparkle, package, and back.
- Renaming existing squares for consistency with sized naming convention.
2012-11-16 11:31:26 -05:00
Joshua Peek
c03becb3a0 Gemoji 1.2.0 2012-11-15 00:14:54 -06:00
Joshua Peek
ffcccd85c7 More corrections 2012-11-15 00:10:52 -06:00
Joshua Peek
175fbfb2c3 Fix miss named emoji 2012-11-14 23:50:28 -06:00
Joshua Peek
a9e9415fcc Merge pull request #16 from github/updated-code-points
Updated the 1st-gen emoji code points
2012-11-14 16:08:03 -08:00
Joshua Peek
892ac6274d Copy unicode images too 2012-11-14 17:50:21 -06:00
Joshua Peek
7ffe22d83c Add task to find unnamed images 2012-11-14 17:38:51 -06:00
Julia West
c0c2f10406 Recoding 1st-gen emoji. 2012-11-14 17:53:42 -05:00
Joshua Peek
8cca11fdb1 Gemoji 1.1.3 2012-11-12 12:50:08 -06:00
Joshua Peek
91a5a025ca Add emoji path to assets group
Closes #15
2012-11-12 12:49:29 -06:00
Joshua Peek
01e1710b79 Gemoji 1.1.2 2012-10-25 09:17:17 -05:00
Trevor Turk
2f0ad36b67 lowercase! 2012-10-24 22:40:12 -05:00
Trevor Turk
b84e5754d9 lowercase! 2012-10-24 22:34:13 -05:00
Trevor Turk
c6af1af8f6 Merge pull request #14 from github/missing-emoji
Adding missing emoji
2012-10-24 14:59:22 -07:00
Julia West
8190c65f76 Renaming tongue emojis to be consistent with official names and each other. 2012-10-24 17:07:14 -04:00
Julia West
c921ef1b5b Adding missing emoji.
- Renaming kissing_face to kissing_closed_eyes.
- Adding alias for unlinked Heavy White Check Mark.
2012-10-24 16:53:35 -04:00
Jamie Dihiansan
bfa00106fc Merge pull request #13 from github/add-bee-alias
Add bee -> honeybee alias
2012-10-17 09:47:15 -07:00
Mike Skalnik
9ee88a974d Add bee -> honeybee 2012-10-17 11:12:58 -05:00
Joshua Peek
e11d502d4d Gemoji 1.1.1 2012-10-02 17:06:00 -05:00
Joshua Peek
24cb142c5e Fix rake task path 2012-10-02 17:05:39 -05:00
Joshua Peek
42503f1dfa Gemoji 1.1.0 2012-10-02 16:45:16 -05:00
Joshua Peek
3bf04c21ab Restrict gemspec file 2012-10-02 16:32:04 -05:00
Joshua Peek
dbb7e48c66 Update bundler instructions 2012-10-02 16:30:57 -05:00
Joshua Peek
ed273dee14 Fix config paths 2012-10-02 16:28:39 -05:00
Joshua Peek
b5542d5075 Assets not, config 2012-10-02 16:24:21 -05:00
Joshua Peek
e21a63645c Add images path directly 2012-10-02 16:20:53 -05:00
Joshua Peek
c79a1d69d0 Move images into subdir 2012-10-02 16:20:53 -05:00
Joshua Peek
971bcd6236 Separate railtie file 2012-10-02 16:20:51 -05:00
Trevor Turk
d1d6d35da9 add an example to the readme 2012-10-02 15:47:15 -05:00
Joshua Peek
97f5441ada Gemoji 1.0.0 2012-10-02 15:26:33 -05:00
Trevor Turk
e43f1ac171 try to give attribution where possible 2012-10-02 15:24:13 -05:00
Trevor Turk
fc275cad0a clean up readme 2012-10-02 15:17:17 -05:00
Joshua Peek
38731ced7e Stub gemoji require 2012-10-02 15:15:41 -05:00
Joshua Peek
0e3f686bbd Rename gemspec 2012-10-02 15:15:13 -05:00
Trevor Turk
bd929a9ee0 require emoji in the task 2012-10-01 16:57:41 -05:00
Trevor Turk
436209c12f require environment instead of emoji 2012-10-01 16:51:21 -05:00
Trevor Turk
24d9881f20 move rake task so we can require it in our apps 2012-10-01 16:42:43 -05:00
Trevor Turk
74372af2f8 draft new readme 2012-10-01 11:14:45 -05:00
Jamie Dihiansan
a94b90198a Update LICENSE
Added 37signals credit.
2012-10-01 10:09:40 -05:00
Joshua Peek
25da8c9323 Add copyrights 2012-10-01 10:07:18 -05:00
Joshua Peek
da797b13e3 Emoji 0.4.0 2012-10-01 09:40:40 -05:00
Joshua Peek
9fa5dcd311 Remove gitignore 2012-10-01 09:40:01 -05:00
Joshua Peek
f2f80d4e8a Merge pull request #11 from github/improved-octocat
Know a better Octocat emoji
2012-10-01 07:38:21 -07:00
Matt Burke
315015e90e Recreate symlinks from 97709fea55 with all lowercase file names. 2012-09-30 17:30:01 -04:00
Joshua Peek
d815c7f9b7 💥
Closes #10
2012-09-29 10:18:36 -05:00
Coby Chapple
5919a89968 use a better octocat image 2012-09-29 14:54:32 +10:00
Joshua Peek
3358ffbeb4 Remove some old instructions 2012-09-28 10:05:13 -05:00
Joshua Peek
e46c8207fc Just images/emoji 2012-09-28 10:00:59 -05:00
Joshua Peek
ded4714831 Merge pull request #9 from github/cleanup
Cleanup
2012-09-28 07:58:30 -07:00
Joshua Peek
8c15ced399 Add rake copy task 2012-09-28 09:53:41 -05:00
Joshua Peek
765df113e1 Remove stuff 2012-09-28 09:36:54 -05:00
Shay Frendt
52210cece2 Merge pull request #7 from github/remove-git-from-gemspec
Update gemspec to not rely on `git` executable
2012-08-24 13:07:48 -07:00
Shay Frendt
bcf62ad7cd Update gemspec to not rely on git executable
- This prevents runtime issues when this gem is vendored in an
  application running on systems that don't have git installed
2012-08-24 14:23:58 -04:00
Trevor Turk
db6bc0fb28 todo about the problematic symlinks 2012-08-01 13:01:44 -05:00
Trevor Turk
69e7ea119c Revert "Recreate symlinks from 97709fea55c97c55c467b983b2d98c927fbb5b3f"
This reverts commit 15fd347c8e.
2012-08-01 13:00:15 -05:00
Trevor Turk
1ebc4b1f74 Emoji 0.3.4 2012-08-01 12:01:37 -05:00
Trevor Turk
a2e1d15d13 notes and todos 2012-08-01 11:53:38 -05:00
Trevor Turk
ffaef44107 use replace for sprite and emojify for images 2012-08-01 11:45:06 -05:00
Joshua Peek
10a29606b6 Emoji 0.3.3 2012-08-01 11:43:56 -05:00
Joshua Peek
2f1da81b8c Fix dir again 2012-08-01 11:43:43 -05:00
Joshua Peek
65616aa784 Emoji 0.3.2 2012-08-01 11:39:57 -05:00
Joshua Peek
092e292fd5 Use real images dir for names listing 2012-08-01 11:39:30 -05:00
Joshua Peek
f3e24cdad2 Emoji 0.3.1 2012-08-01 11:16:09 -05:00
Joshua Peek
15fd347c8e Recreate symlinks from 97709fea55 2012-08-01 11:13:59 -05:00
Trevor Turk
97709fea55 try bypassing symlinks for the 3 images giving me problems :( 2012-08-01 10:43:29 -05:00
Trevor Turk
5c4f118291 optimize images using http://imageoptim.com 2012-08-01 10:10:54 -05:00
Trevor Turk
7add9b556c try re-adding those images 2012-07-31 17:30:12 -05:00
Trevor Turk
859732a2a3 remove problematic images for now 2012-07-31 17:18:30 -05:00
Trevor Turk
f54da96e86 try to re-save possibly corrupt images 2012-07-31 17:07:25 -05:00
2561 changed files with 9473 additions and 1853 deletions

3
.gitignore vendored
View File

@@ -1 +1,2 @@
Gemfile.lock
.ruby-version
db/NamesList.txt

5
.travis.yml Normal file
View File

@@ -0,0 +1,5 @@
rvm:
- 1.9.3
- 2.1.2
notifications:
email: false

View File

@@ -1,2 +1,6 @@
source :rubygems
source "https://rubygems.org"
gem "rake"
gem "minitest"
gemspec

18
Gemfile.lock Normal file
View File

@@ -0,0 +1,18 @@
PATH
remote: .
specs:
gemoji (2.0.1)
GEM
remote: https://rubygems.org/
specs:
minitest (5.3.5)
rake (10.3.2)
PLATFORMS
ruby
DEPENDENCIES
gemoji!
minitest
rake

39
LICENSE Normal file
View File

@@ -0,0 +1,39 @@
octocat, squirrel, shipit
Copyright (c) 2013 GitHub Inc. All rights reserved.
bowtie, neckbeard, fu
Copyright (c) 2013 37signals, LLC. All rights reserved.
feelsgood, finnadie, goberserk, godmode, hurtrealbad, rage 1-4, suspect
Copyright (c) 2013 id Software. All rights reserved.
trollface
Copyright (c) 2013 whynne@deviantart. All rights reserved.
All other images
Copyright (c) 2013 Apple Inc. All rights reserved.
Source code:
Copyright (c) 2013 GitHub, Inc.
Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation
files (the "Software"), to deal in the Software without
restriction, including without limitation the rights to use,
copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following
conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.

27
MAINTAINING.md Normal file
View File

@@ -0,0 +1,27 @@
# Maintainers
## Releasing a new gem
If you are just adding new emoji or making a small fix, only increment the patch level "1.0.x". If you need to rename a ton of emojis or making any other radical (but still mostly backwards compatible changes), bump the minor version "1.x.x".
### Make a release commit
To prepare the release commit, edit the [gemoji.gemspec](https://github.com/github/gemoji/blob/master/gemoji.gemspec) `version` value. Then make a single commit with the description as "Gemoji 1.x.x". Finally, tag the commit with `v1.x.x`.
Example commit https://github.com/github/gemoji/commit/v1.0.0
```
$ git ci -m "Gemoji 1.0.0"
$ git tag v1.0.0
$ git push
$ git push --tags
```
### Publish the gem
Build and push the new gem with
```
$ gem build gemoji.gemspec
$ gem push gemoji-1.0.0.gem
```

130
README.md
View File

@@ -1,35 +1,123 @@
Emoji
=====
gemoji
======
Shared Emoji assets between GitHub, Campfire, and BCX.
Emoji images and names. See the LICENSE for copyright information.
Contributing
Installation
------------
### Designers
Add `gemoji` to your Gemfile.
Drop a 64x64 png into `images/` and commit it.
``` ruby
gem 'gemoji'
```
### Others
**Sync images**
Rerun `rake` to rebuild static assets and sprites. (Trying to make this step unnecessary)
Images can be copied to your public directory with `rake emoji` in your app. This is the recommended approach since the images will be available at a consistent location. This works best with cached formatted user content generated by tools like [html-pipeline](https://github.com/jch/html-pipeline).
Deploying
---------
``` ruby
# Rakefile
load 'tasks/emoji.rake'
```
### GitHub
```
$ rake emoji
```
1. Run `rake emoji` in app root
**Assets Precompiling**
### Campfire
If you must, you can manually add all the images to your asset load path.
1. Push changes to 37signals/emoji
2. Update emoji version in config/externals.yml
3. Run `cap local externals:setup` in app root
4. Run `rake emoji` in app root
5. Run `Rails.cache.clear` in app console
``` ruby
# config/application.rb
config.assets.paths << Emoji.images_path
```
### BCX
Then have them compiled to public on deploy.
1. Push changes to 37signals/emoji
2. Run `bundle update emoji` in app root
``` ruby
# config/application.rb
config.assets.precompile << "emoji/**/*.png"
```
**WARNING** Since there are a ton of images, just adding the path may slow down other lookups if you aren't using it. Compiling all the emojis on deploy will add overhead to your deploy if even the images haven't changed. Theres just so many more superfluous files to iterate over. Also, the urls will be fingerprinted which may not be ideal for referencing from cached content.
Example Rails Helper
--------------------
This would allow emojifying content such as: `it's raining :cat:s and :dog:s!`
See the [Emoji cheat sheet](http://www.emoji-cheat-sheet.com) for more examples.
```ruby
module EmojiHelper
def emojify(content)
h(content).to_str.gsub(/:([\w+-]+):/) do |match|
if emoji = Emoji.find_by_alias($1) { nil }
%(<img alt="#$1" src="#{asset_path("emoji/#{emoji.image_filename}")}" style="vertical-align:middle" width="20" height="20" />)
else
match
end
end.html_safe if content.present?
end
end
```
Unicode mapping
---------------
Translate emoji names to unicode and vice versa.
```ruby
>> Emoji.find_by_alias("cat").raw
=> "🐱" # Don't see a cat? That's U+1F431.
>> Emoji.find_by_unicode("\u{1f431}").name
=> "cat"
```
Adding new emoji
----------------
You can add new emoji characters to the `Emoji.all` list:
```ruby
emoji = Emoji.create("music") do |char|
char.add_alias "song"
char.add_unicode_alias "\u{266b}"
char.add_tag "notes"
end
emoji.name #=> "music"
emoji.raw #=> "♫"
emoji.image_filename #=> "unicode/266b.png"
# Creating custom emoji (no Unicode aliases):
emoji = Emoji.create("music") do |char|
char.add_tag "notes"
end
emoji.custom? #=> true
emoji.image_filename #=> "music.png"
```
As you create new emoji, you must ensure that you also create and put the images
they reference by their `image_filename` to your assets directory.
For existing emojis, you can edit the list of aliases or add new tags in an edit block:
```ruby
emoji = Emoji.find_by_alias "musical_note"
Emoji.edit_emoji(emoji) do |char|
char.add_alias "music"
char.add_unicode_alias "\u{266b}"
char.add_tag "notes"
end
Emoji.find_by_alias "music" #=> emoji
Emoji.find_by_unicode "\u{266b}" #=> emoji
```

View File

@@ -1,32 +1,29 @@
$:.unshift File.expand_path("../lib", __FILE__)
require 'rake/testtask'
require 'emoji'
require 'sprockets'
require 'rake/clean'
task :default => :test
Assets = Sprockets::Environment.new do |env|
env.append_path Emoji.path
env.append_path File.join(Emoji.path, 'assets')
Rake::TestTask.new do |t|
t.libs << "test"
t.test_files = FileList["test/*_test.rb"]
end
file "lib/emoji.png" do |f|
Assets["emoji.png.erb"].write_to(f.name)
namespace :db do
desc %(Generate Emoji data files needed for development)
task :generate => ['db/Category-Emoji.json', 'db/NamesList.txt']
desc %(Dump a list of supported Emoji with Unicode descriptions and aliases)
task :dump => :generate do
system 'ruby', '-Ilib', 'db/dump.rb'
end
end
file "lib/emoji.js" do |f|
Assets["emoji.js.erb"].write_to(f.name)
emoji_plist = '/System/Library/Input Methods/CharacterPalette.app/Contents/Resources/Category-Emoji.plist'
nameslist_url = 'http://www.unicode.org/Public/6.3.0/ucd/NamesList.txt'
task 'db/Category-Emoji.json' do |t|
system "plutil -convert json -r '#{emoji_plist}' -o '#{t.name}'"
end
file "lib/emoji.css" do |f|
Assets["emoji.css.erb"].write_to(f.name)
file 'db/NamesList.txt' do |t|
system "curl -fsSL '#{nameslist_url}' -o '#{t.name}'"
end
assets = [
"lib/emoji.png",
"lib/emoji.js",
"lib/emoji.css"
]
assets.each { |asset| CLOBBER.include(asset) }
task :default => [:clobber] + assets

47
db/Category-Emoji.json Normal file
View File

@@ -0,0 +1,47 @@
{
"EmojiDataArray" : [
{
"CVDataTitle" : "EmojiCategory-People",
"CVCategoryImage" : "Emoji-HumanImage",
"CVCategoryData" : {
"CVSkipNullGlyphs" : true,
"Data" : "😄,😃,😀,😊,☺️,😉,😍,😘,😚,😗,😙,😜,😝,😛,😳,😁,😔,😌,😒,😞,😣,😢,😂,😭,😪,😥,😰,😅,😓,😩,😫,😨,😱,😠,😡,😤,😖,😆,😋,😷,😎,😴,😵,😲,😟,😦,😧,😈,👿,😮,😬,😐,😕,😯,😶,😇,😏,😑,👲,👳,👮,👷,💂,👶,👦,👧,👨,👩,👴,👵,👱,👼,👸,😺,😸,😻,😽,😼,🙀,😿,😹,😾,👹,👺,🙈,🙉,🙊,💀,👽,💩,🔥,✨,🌟,💫,💥,💢,💦,💧,💤,💨,👂,👀,👃,👅,👄,👍,👎,👌,👊,✊,✌️,👋,✋,👐,👆,👇,👉,👈,🙌,🙏,☝️,👏,💪,🚶,🏃,💃,👫,👪,👬,👭,💏,💑,👯,🙆,🙅,💁,🙋,💆,💇,💅,👰,🙎,🙍,🙇,🎩,👑,👒,👟,👞,👡,👠,👢,👕,👔,👚,👗,🎽,👖,👘,👙,💼,👜,👝,👛,👓,🎀,🌂,💄,💛,💙,💜,💚,❤️,💔,💗,💓,💕,💖,💞,💘,💌,💋,💍,💎,👤,👥,💬,👣,💭"
}
},
{
"CVDataTitle" : "EmojiCategory-Nature",
"CVCategoryImage" : "Emoji-NatureImage",
"CVCategoryData" : {
"CVSkipNullGlyphs" : true,
"Data" : "🐶,🐺,🐱,🐭,🐹,🐰,🐸,🐯,🐨,🐻,🐷,🐽,🐮,🐗,🐵,🐒,🐴,🐑,🐘,🐼,🐧,🐦,🐤,🐥,🐣,🐔,🐍,🐢,🐛,🐝,🐜,🐞,🐌,🐙,🐚,🐠,🐟,🐬,🐳,🐋,🐄,🐏,🐀,🐃,🐅,🐇,🐉,🐎,🐐,🐓,🐕,🐖,🐁,🐂,🐲,🐡,🐊,🐫,🐪,🐆,🐈,🐩,🐾,💐,🌸,🌷,🍀,🌹,🌻,🌺,🍁,🍃,🍂,🌿,🌾,🍄,🌵,🌴,🌲,🌳,🌰,🌱,🌼,🌐,🌞,🌝,🌚,🌑,🌒,🌓,🌔,🌕,🌖,🌗,🌘,🌜,🌛,🌙,🌍,🌎,🌏,🌋,🌌,🌠,⭐️,☀️,⛅️,☁️,⚡️,☔️,❄️,⛄️,🌀,🌁,🌈,🌊"
}
},
{
"CVDataTitle" : "EmojiCategory-Objects",
"CVCategoryImage" : "Emoji-ObjectsImage",
"CVCategoryData" : {
"CVSkipNullGlyphs" : true,
"Data" : "🎍,💝,🎎,🎒,🎓,🎏,🎆,🎇,🎐,🎑,🎃,👻,🎅,🎄,🎁,🎋,🎉,🎊,🎈,🎌,🔮,🎥,📷,📹,📼,💿,📀,💽,💾,💻,📱,☎️,📞,📟,📠,📡,📺,📻,🔊,🔉,🔈,🔇,🔔,🔕,📢,📣,⏳,⌛️,⏰,⌚️,🔓,🔒,🔏,🔐,🔑,🔎,💡,🔦,🔆,🔅,🔌,🔋,🔍,🛁,🛀,🚿,🚽,🔧,🔩,🔨,🚪,🚬,💣,🔫,🔪,💊,💉,💰,💴,💵,💷,💶,💳,💸,📲,📧,📥,📤,✉️,📩,📨,📯,📫,📪,📬,📭,📮,📦,📝,📄,📃,📑,📊,📈,📉,📜,📋,📅,📆,📇,📁,📂,✂️,📌,📎,✒️,✏️,📏,📐,📕,📗,📘,📙,📓,📔,📒,📚,📖,🔖,📛,🔬,🔭,📰,🎨,🎬,🎤,🎧,🎼,🎵,🎶,🎹,🎻,🎺,🎷,🎸,👾,🎮,🃏,🎴,🀄️,🎲,🎯,🏈,🏀,⚽️,⚾️,🎾,🎱,🏉,🎳,⛳️,🚵,🚴,🏁,🏇,🏆,🎿,🏂,🏊,🏄,🎣,☕️,🍵,🍶,🍼,🍺,🍻,🍸,🍹,🍷,🍴,🍕,🍔,🍟,🍗,🍖,🍝,🍛,🍤,🍱,🍣,🍥,🍙,🍘,🍚,🍜,🍲,🍢,🍡,🍳,🍞,🍩,🍮,🍦,🍨,🍧,🎂,🍰,🍪,🍫,🍬,🍭,🍯,🍎,🍏,🍊,🍋,🍒,🍇,🍉,🍓,🍑,🍈,🍌,🍐,🍍,🍠,🍆,🍅,🌽"
}
},
{
"CVDataTitle" : "EmojiCategory-Places",
"CVCategoryImage" : "Emoji-PlacesImage",
"CVCategoryData" : {
"CVSkipNullGlyphs" : true,
"Data" : "🏠,🏡,🏫,🏢,🏣,🏥,🏦,🏪,🏩,🏨,💒,⛪️,🏬,🏤,🌇,🌆,🏯,🏰,⛺️,🏭,🗼,🗾,🗻,🌄,🌅,🌃,🗽,🌉,🎠,🎡,⛲️,🎢,🚢,⛵️,🚤,🚣,⚓️,🚀,✈️,💺,🚁,🚂,🚊,🚉,🚞,🚆,🚄,🚅,🚈,🚇,🚝,🚋,🚃,🚎,🚌,🚍,🚙,🚘,🚗,🚕,🚖,🚛,🚚,🚨,🚓,🚔,🚒,🚑,🚐,🚲,🚡,🚟,🚠,🚜,💈,🚏,🎫,🚦,🚥,⚠️,🚧,🔰,⛽️,🏮,🎰,♨️,🗿,🎪,🎭,📍,🚩,🇯🇵,🇰🇷,🇩🇪,🇨🇳,🇺🇸,🇫🇷,🇪🇸,🇮🇹,🇷🇺,🇬🇧"
}
},
{
"CVDataTitle" : "EmojiCategory-Symbols",
"CVCategoryImage" : "Emoji-SymbolImage",
"CVCategoryData" : {
"CVSkipNullGlyphs" : true,
"Data" : "1⃣,2⃣,3⃣,4⃣,5⃣,6⃣,7⃣,8⃣,9⃣,0⃣,🔟,🔢,#️⃣,🔣,⬆️,⬇️,⬅️,➡️,🔠,🔡,🔤,↗️,↖️,↘️,↙️,↔️,↕️,🔄,◀️,▶️,🔼,🔽,↩️,↪️,,⏪,⏩,⏫,⏬,⤵️,⤴️,🆗,🔀,🔁,🔂,🆕,🆙,🆒,🆓,🆖,📶,🎦,🈁,🈯️,🈳,🈵,🈴,🈲,🉐,🈹,🈺,🈶,🈚️,🚻,🚹,🚺,🚼,🚾,🚰,🚮,🅿️,♿️,🚭,🈷,🈸,🈂,Ⓜ️,🛂,🛄,🛅,🛃,🉑,㊙️,㊗️,🆑,🆘,🆔,🚫,🔞,📵,🚯,🚱,🚳,🚷,🚸,⛔️,✳️,❇️,❎,✅,✴️,💟,🆚,📳,📴,🅰,🅱,🆎,🅾,💠,➿,♻️,♈️,♉️,♊️,♋️,♌️,♍️,♎️,♏️,♐️,♑️,♒️,♓️,⛎,🔯,🏧,💹,💲,💱,©,®,™,❌,‼️,⁉️,❗️,❓,❕,❔,⭕️,🔝,🔚,🔙,🔛,🔜,🔃,🕛,🕧,🕐,🕜,🕑,🕝,🕒,🕞,🕓,🕟,🕔,🕠,🕕,🕖,🕗,🕘,🕙,🕚,🕡,🕢,🕣,🕤,🕥,🕦,✖️,,,➗,♠️,♥️,♣️,♦️,💮,💯,✔️,☑️,🔘,🔗,➰,〰,〽️,🔱,◼️,◻️,◾️,◽️,▪️,▫️,🔺,🔲,🔳,⚫️,⚪️,🔴,🔵,🔻,⬜️,⬛️,🔶,🔷,🔸,🔹"
}
}
],
"CVViewFontList" : [
"AppleColorEmoji"
]
}

87
db/aliases.html Normal file
View File

@@ -0,0 +1,87 @@
<!DOCTYPE html>
<title>Emoji alias detection</title>
<style>
textarea {
font-family: monospace;
}
</style>
<p>Save the following as <tt>emoji.json</tt>:</p>
<textarea id="output" rows="50" cols="80"></textarea>
<script>
const VARIATION_SELECTOR_15 = String.fromCharCode(0xfe0e);
const VARIATION_SELECTOR_16 = String.fromCharCode(0xfe0f);
function detectAliases(db) {
for (var i = 0; i < db.length; ++i) {
var emoji = db[i];
var raw = emoji.emoji;
if (!raw) {
continue;
}
var candidates = [];
if (raw.length === 1) {
candidates.push(raw + VARIATION_SELECTOR_15);
candidates.push(raw + VARIATION_SELECTOR_16);
} else if (raw[raw.length - 1] === VARIATION_SELECTOR_16) {
var base = raw.substr(0, raw.length - 1);
candidates.push(base);
candidates.push(base + VARIATION_SELECTOR_15);
}
var aliases = candidates.filter(isColorEmoji);
if (aliases.length) {
emoji.unicodes = aliases;
} else {
delete emoji.unicodes;
}
}
dump(db);
}
function isColorEmoji(candidate) {
// Draw the emoji twice using a different color each time. If the emoji
// draws as the same color regardless of what color we set, it's a color
// emoji.
return color(candidate, "#f00") === color(candidate, "#0f0");
}
var canvas = document.createElement("canvas");
function color(emoji, rgb) {
var context = canvas.getContext("2d");
context.clearRect(0, 0, 32, 32);
context.fillStyle = rgb;
context.textBaseline = "top";
context.font = "32px Arial";
context.fillText(emoji, 0, 0);
var data = context.getImageData(0, 0, 32, 32).data;
for (var i = 0; i < data.length; i += 4) {
if (data[i] === 0 && data[i + 1] === 0 && data[i + 2] === 0) {
continue;
}
return data[i].toString(16)
+ data[i + 1].toString(16)
+ data[i + 2].toString(16);
}
return "no colored pixel found";
}
function dump(db) {
var json = JSON.stringify(db, null, " ")
.replace(/^( +)(.+)\[\](,?)$/mg, "$1$2[\n$1]$3")
.replace(/,\n( *) /g, "\n$1, ");
document.getElementById("output").value = json + "\n";
}
var xhr = new XMLHttpRequest;
xhr.onload = function() {
detectAliases(JSON.parse(this.responseText));
};
xhr.open("GET", "emoji.json", false);
xhr.send(null);
</script>

79
db/dump.rb Normal file
View File

@@ -0,0 +1,79 @@
require 'emoji'
require 'json'
names_list = File.expand_path('../NamesList.txt', __FILE__)
class UnicodeCharacter
attr_reader :code, :description, :aliases
@index = {}
class << self
attr_reader :index
def fetch(code, *args, &block)
code = code.to_s(16).rjust(4, '0') if code.is_a?(Integer)
index.fetch(code, *args, &block)
end
end
def initialize(code, description)
@code = code.downcase
@description = description.downcase
@aliases = []
@references = []
self.class.index[@code] = self
end
def add_alias(string)
@aliases.concat string.split(/\s*,\s*/)
end
def add_reference(code)
@references << code.downcase
end
end
char = nil
File.foreach(names_list) do |line|
case line
when /^[A-F0-9]{4,5}\t/
code, desc = line.chomp.split("\t", 2)
codepoint = code.hex
char = UnicodeCharacter.new(code, desc)
when /^\t= /
char.add_alias($')
when /^\tx .+ - ([A-F0-9]{4,5})\)$/
char.add_reference($1)
end
end
trap(:PIPE) { abort }
items = []
variation = "\u{fe0f}".freeze
for emoji in Emoji.all
unicodes = emoji.unicode_aliases.dup
item = {}
unless emoji.custom?
variation_codepoint = variation.codepoints[0]
chars = emoji.raw.codepoints.map { |code| UnicodeCharacter.fetch(code) unless code == variation_codepoint }.compact
item[:emoji] = unicodes.shift
item[:unicodes] = unicodes if unicodes.any?
item[:description] = chars.map(&:description).join(' + ')
end
item[:aliases] = emoji.aliases
item[:tags] = emoji.tags
items << item
end
puts JSON.pretty_generate(items)
.gsub("\n\n", "\n")
.gsub(/,\n( +)/) { "\n%s, " % $1[2..-1] }

8474
db/emoji.json Normal file
View File

File diff suppressed because it is too large Load Diff

113
db/index.html Normal file
View File

@@ -0,0 +1,113 @@
<!doctype html>
<title>Emoji preview</title>
<style type="text/css">
body {
font: 14px/18px Verdana, Arial, sans-serif;
padding: 2em;
}
ol {
list-style: none;
padding-left: 0;
}
li {
margin-left: 0;
margin-top: 5px;
clear: left;
}
li:first-child { display: none; }
li > span {
display: block;
}
.emoji {
font-size: 50px;
line-height: 50px;
float: left;
margin-right: 20px;
}
.description {
font-style: italic;
color: gray;
}
.aliases span:before, .aliases span:after {
content: ":";
color: gray;
}
.tags {
font-size: 11px;
}
.tags span {
display: inline-block;
padding: 1px 5px 2px;
border-radius: 3px;
background: #dadada;
line-height: 11px;
}
</style>
<p><input type=search placeholder="Search..."></p>
<ol>
<li>
<span class="emoji"></span>
<span class="description"></span>
<span class="aliases"></span>
<span class="tags"></span>
</li>
</ol>
<script>
function renderEmoji(emojis) {
var item, els, template = document.querySelector('li')
for (var emoji, i=0; i < emojis.length; i++) {
emoji = emojis[i]
item = template.cloneNode(true)
els = item.querySelectorAll('span')
if (emoji.emoji) els[0].textContent = emoji.emoji
else {
var img = document.createElement('img')
img.src = "../images/emoji/" + emoji.aliases[0] + ".png"
els[0].appendChild(img)
}
els[1].textContent = emoji.description || ''
els[2].innerHTML = emoji.aliases.map(function(n){ return '<span>'+n+'</span>' }).join(' ')
els[3].innerHTML = emoji.tags.map(function(n){ return '<span>'+n+'</span>' }).join(' ')
template.parentNode.appendChild(item)
item._emojiText = (els[2].textContent + ' ' + els[3].textContent).replace(/_/g, '-')
}
}
xhr = new XMLHttpRequest
xhr.onreadystatechange = function() {
if (this.readyState == 4) {
json = JSON.parse(this.responseText)
renderEmoji(json)
}
}
xhr.open('GET', 'emoji.json', false)
xhr.send(null)
function searchEmoji(query) {
var el,
re = new RegExp('\\b' + query),
els = document.querySelectorAll('li')
for (var i=1; i < els.length; i++) {
el = els[i]
if ( !query || re.test(el._emojiText) ) {
el.style.display = 'list-item'
} else {
el.style.display = 'none'
}
}
}
var timeout, search = document.querySelector('input[type=search]')
search.addEventListener('input', function() {
var $this = this
if (timeout) clearTimeout(timeout)
timeout = setTimeout(function(){ searchEmoji($this.value) }, 200)
}, false)
search.focus()
</script>

View File

@@ -1,14 +0,0 @@
Gem::Specification.new do |s|
s.name = "emoji"
s.version = "0.3.0"
s.summary = "Emoji Assets"
s.description = "Shared Emoji assets between GitHub, Campfire, and BCX."
s.authors = ["GitHub", "37signals"]
s.email = "support@github.com"
s.homepage = "https://github.com/github/emoji"
s.files = `git ls-files`.split("\n")
s.add_development_dependency "sprockets", "~> 2.0"
end

21
gemoji.gemspec Normal file
View File

@@ -0,0 +1,21 @@
Gem::Specification.new do |s|
s.name = "gemoji"
s.version = "2.0.1"
s.summary = "Emoji conversion and image assets"
s.description = "Image assets and character information for emoji."
s.required_ruby_version = '> 1.9'
s.authors = ["GitHub"]
s.email = "support@github.com"
s.homepage = "https://github.com/github/gemoji"
s.licenses = ["MIT"]
s.files = Dir[
"README.md",
"images/**/*.png",
"db/emoji.json",
"lib/**/*.rb",
"lib/tasks/*.rake"
]
end

View File

@@ -1 +0,0 @@
unicode/e00e.png

View File

@@ -1 +0,0 @@
unicode/e421.png

View File

@@ -1 +0,0 @@
unicode/1f4af.png

View File

@@ -1 +0,0 @@
unicode/e50a.png

View File

@@ -1 +0,0 @@
unicode/1f522.png

View File

@@ -1 +0,0 @@
unicode/e42c.png

View File

@@ -1 +0,0 @@
unicode/e532.png

View File

@@ -1 +0,0 @@
unicode/e534.png

View File

@@ -1 +0,0 @@
unicode/1f524.png

View File

@@ -1 +0,0 @@
unicode/1f521.png

View File

@@ -1 +0,0 @@
unicode/1f251.png

View File

@@ -1 +0,0 @@
unicode/1f6a1.png

View File

@@ -1 +0,0 @@
unicode/e01d.png

View File

@@ -1 +0,0 @@
unicode/23f0.png

View File

@@ -1 +0,0 @@
unicode/e10c.png

View File

@@ -1 +0,0 @@
unicode/e431.png

View File

@@ -1 +0,0 @@
unicode/2693.png

View File

@@ -1 +0,0 @@
unicode/e04e.png

View File

@@ -1 +0,0 @@
unicode/e334.png

View File

@@ -1 +0,0 @@
unicode/e059.png

View File

@@ -1 +0,0 @@
unicode/1f41c.png

View File

@@ -1 +0,0 @@
unicode/e345.png

View File

@@ -1 +0,0 @@
unicode/e249.png

View File

@@ -1 +0,0 @@
unicode/e23f.png

View File

@@ -1 +0,0 @@
unicode/e23b.png

View File

@@ -1 +0,0 @@
unicode/23ec.png

View File

@@ -1 +0,0 @@
unicode/23eb.png

View File

@@ -1 +0,0 @@
unicode/e233.png

View File

@@ -1 +0,0 @@
unicode/1f53d.png

View File

@@ -1 +0,0 @@
unicode/e23a.png

View File

@@ -1 +0,0 @@
unicode/2935.png

View File

@@ -1 +0,0 @@
unicode/2934.png

View File

@@ -1 +0,0 @@
unicode/e235.png

View File

@@ -1 +0,0 @@
unicode/e239.png

View File

@@ -1 +0,0 @@
unicode/e238.png

View File

@@ -1 +0,0 @@
unicode/e234.png

View File

@@ -1 +0,0 @@
unicode/21aa.png

View File

@@ -1 +0,0 @@
unicode/e232.png

View File

@@ -1 +0,0 @@
unicode/2195.png

View File

@@ -1 +0,0 @@
unicode/1f53c.png

View File

@@ -1 +0,0 @@
unicode/e237.png

View File

@@ -1 +0,0 @@
unicode/e236.png

View File

@@ -1 +0,0 @@
unicode/1f503.png

View File

@@ -1 +0,0 @@
unicode/1f504.png

View File

@@ -1 +0,0 @@
unicode/e502.png

View File

@@ -1 +0,0 @@
unicode/1f69b.png

View File

@@ -1 +0,0 @@
unicode/e410.png

View File

@@ -1 +0,0 @@
unicode/e154.png

View File

@@ -1 +0,0 @@
unicode/e533.png

View File

@@ -1 +0,0 @@
unicode/e51a.png

View File

@@ -1 +0,0 @@
unicode/1f37c.png

View File

@@ -1 +0,0 @@
unicode/e523.png

View File

@@ -1 +0,0 @@
unicode/e13a.png

View File

@@ -1 +0,0 @@
unicode/1f6c4.png

View File

@@ -1 +0,0 @@
unicode/e310.png

View File

@@ -1 +0,0 @@
unicode/2611.png

View File

@@ -1 +0,0 @@
unicode/e436.png

View File

@@ -1 +0,0 @@
unicode/1f34c.png

View File

@@ -1 +0,0 @@
unicode/203c.png

View File

@@ -1 +0,0 @@
unicode/e14d.png

View File

@@ -1 +0,0 @@
unicode/1f4ca.png

View File

@@ -1 +0,0 @@
unicode/e320.png

View File

@@ -1 +0,0 @@
unicode/e016.png

View File

@@ -1 +0,0 @@
unicode/e42a.png

View File

@@ -1 +0,0 @@
unicode/e13f.png

View File

@@ -1 +0,0 @@
unicode/1f6c1.png

View File

@@ -1 +0,0 @@
unicode/1f50b.png

View File

@@ -1 +0,0 @@
unicode/e051.png

View File

@@ -1 +0,0 @@
unicode/e047.png

View File

@@ -1 +0,0 @@
unicode/e30c.png

View File

@@ -1 +0,0 @@
unicode/1f41e.png

View File

@@ -1 +0,0 @@
unicode/e209.png

View File

@@ -1 +0,0 @@
unicode/e325.png

View File

@@ -1 +0,0 @@
unicode/e34c.png

View File

@@ -1 +0,0 @@
unicode/1f6b4.png

View File

@@ -1 +0,0 @@
unicode/e136.png

View File

@@ -1 +0,0 @@
unicode/e322.png

View File

@@ -1 +0,0 @@
unicode/e521.png

View File

@@ -1 +0,0 @@
unicode/e34b.png

View File

@@ -1 +0,0 @@
unicode/26ab.png

View File

@@ -1 +0,0 @@
unicode/1f0cf.png

View File

@@ -1 +0,0 @@
unicode/2712.png

View File

@@ -1 +0,0 @@
unicode/e21a.png

View File

@@ -1 +0,0 @@
unicode/1f33c.png

View File

@@ -1 +0,0 @@
unicode/1f421.png

Some files were not shown because too many files have changed in this diff Show More