gemoji 3.0.1 โ 4.0.0.pre0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/LICENSE +22 -0
- data/README.md +1 -16
- data/db/emoji.json +10585 -7016
- data/lib/emoji.rb +132 -50
- data/lib/emoji/character.rb +2 -0
- data/lib/gemoji.rb +2 -0
- metadata +8 -29
- data/bin/gemoji +0 -5
- data/db/Category-Emoji.json +0 -71
- data/images/basecamp.png +0 -0
- data/images/basecampy.png +0 -0
- data/images/bowtie.png +0 -0
- data/images/feelsgood.png +0 -0
- data/images/finnadie.png +0 -0
- data/images/goberserk.png +0 -0
- data/images/godmode.png +0 -0
- data/images/hurtrealbad.png +0 -0
- data/images/neckbeard.png +0 -0
- data/images/octocat.png +0 -0
- data/images/rage1.png +0 -0
- data/images/rage2.png +0 -0
- data/images/rage3.png +0 -0
- data/images/rage4.png +0 -0
- data/images/shipit.png +0 -0
- data/images/suspect.png +0 -0
- data/images/trollface.png +0 -0
- data/lib/emoji/cli.rb +0 -68
- data/lib/emoji/extractor.rb +0 -190
data/lib/emoji.rb
CHANGED
@@ -1,4 +1,6 @@
|
|
1
1
|
# encoding: utf-8
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
2
4
|
require 'emoji/character'
|
3
5
|
require 'json'
|
4
6
|
|
@@ -9,14 +11,6 @@ module Emoji
|
|
9
11
|
File.expand_path('../../db/emoji.json', __FILE__)
|
10
12
|
end
|
11
13
|
|
12
|
-
def apple_palette_file
|
13
|
-
File.expand_path('../../db/Category-Emoji.json', __FILE__)
|
14
|
-
end
|
15
|
-
|
16
|
-
def images_path
|
17
|
-
File.expand_path("../../images", __FILE__)
|
18
|
-
end
|
19
|
-
|
20
14
|
def all
|
21
15
|
return @all if defined? @all
|
22
16
|
@all = []
|
@@ -24,17 +18,6 @@ module Emoji
|
|
24
18
|
@all
|
25
19
|
end
|
26
20
|
|
27
|
-
def apple_palette
|
28
|
-
return @apple_palette if defined? @apple_palette
|
29
|
-
data = File.open(apple_palette_file, 'r:UTF-8') { |f| JSON.parse(f.read) }
|
30
|
-
@apple_palette = data.fetch('EmojiDataArray').each_with_object({}) do |group, all|
|
31
|
-
title = group.fetch('CVDataTitle').split('-', 2)[1]
|
32
|
-
all[title] = group.fetch('CVCategoryData').fetch('Data').split(',').map do |raw|
|
33
|
-
TEXT_GLYPHS.include?(raw) ? raw + VARIATION_SELECTOR_16 : raw
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
21
|
# Public: Initialize an Emoji::Character instance and yield it to the block.
|
39
22
|
# The character is added to the `Emoji.all` set.
|
40
23
|
def create(name)
|
@@ -73,45 +56,144 @@ module Emoji
|
|
73
56
|
|
74
57
|
private
|
75
58
|
VARIATION_SELECTOR_16 = "\u{fe0f}".freeze
|
76
|
-
ZERO_WIDTH_JOINER = "\u{200d}".freeze
|
77
|
-
FEMALE_SYMBOL = "\u{2640}".freeze
|
78
|
-
MALE_SYMBOL = "\u{2642}".freeze
|
79
59
|
|
80
|
-
#
|
81
|
-
TEXT_GLYPHS = [
|
60
|
+
# Characters which must have VARIATION_SELECTOR_16 to render as color emoji:
|
61
|
+
TEXT_GLYPHS = [
|
62
|
+
"\u{1f237}", # Japanese โmonthly amountโ button
|
63
|
+
"\u{1f202}", # Japanese โservice chargeโ button
|
64
|
+
"\u{1f170}", # A button (blood type)
|
65
|
+
"\u{1f171}", # B button (blood type)
|
66
|
+
"\u{1f17e}", # O button (blood type)
|
67
|
+
"\u{00a9}", # copyright
|
68
|
+
"\u{00ae}", # registered
|
69
|
+
"\u{2122}", # trade mark
|
70
|
+
"\u{3030}", # wavy dash
|
71
|
+
"\u{263a}", # smiling face
|
72
|
+
"\u{261D}", # index pointing up
|
73
|
+
"\u{270C}", # victory hand
|
74
|
+
"\u{270D}", # writing hand
|
75
|
+
"\u{2764}", # red heart
|
76
|
+
"\u{2763}", # heavy heart exclamation
|
77
|
+
"\u{2668}", # hot springs
|
78
|
+
"\u{2708}", # airplane
|
79
|
+
"\u{2600}", # sun
|
80
|
+
"\u{2601}", # cloud
|
81
|
+
"\u{2602}", # umbrella
|
82
|
+
"\u{2744}", # snowflake
|
83
|
+
"\u{2603}", # snowman
|
84
|
+
"\u{2660}", # spade suit
|
85
|
+
"\u{2665}", # heart suit
|
86
|
+
"\u{2666}", # diamond suit
|
87
|
+
"\u{2663}", # club suit
|
88
|
+
"\u{260e}", # telephone
|
89
|
+
"\u{2709}", # envelope
|
90
|
+
"\u{270F}", # pencil
|
91
|
+
"\u{2712}", # black nib
|
92
|
+
"\u{2702}", # scissors
|
93
|
+
"\u{26a0}", # warning
|
94
|
+
"\u{2B06}", # up arrow
|
95
|
+
"\u{2197}", # up-right arrow
|
96
|
+
"\u{27A1}", # right arrow
|
97
|
+
"\u{2198}", # down-right arrow
|
98
|
+
"\u{2B07}", # down arrow
|
99
|
+
"\u{2199}", # down-left arrow
|
100
|
+
"\u{2B05}", # left arrow
|
101
|
+
"\u{2196}", # up-left arrow
|
102
|
+
"\u{2195}", # up-down arrow
|
103
|
+
"\u{2194}", # left-right arrow
|
104
|
+
"\u{21A9}", # right arrow curving left
|
105
|
+
"\u{21AA}", # left arrow curving right
|
106
|
+
"\u{2934}", # right arrow curving up
|
107
|
+
"\u{2935}", # right arrow curving down
|
108
|
+
"\u{2721}", # star of David
|
109
|
+
"\u{262F}", # yin yang
|
110
|
+
"\u{271D}", # latin cross
|
111
|
+
"\u{25B6}", # play button
|
112
|
+
"\u{25C0}", # reverse button
|
113
|
+
"\u{23CF}", # eject button
|
114
|
+
"\u{2640}", # female sign
|
115
|
+
"\u{2642}", # male sign
|
116
|
+
"\u{267B}", # recycling symbol
|
117
|
+
"\u{2611}", # ballot box with check
|
118
|
+
"\u{2714}", # heavy check mark
|
119
|
+
"\u{2716}", # heavy multiplication x
|
120
|
+
"\u{303D}", # part alternation mark
|
121
|
+
"\u{2733}", # eight-spoked asterisk
|
122
|
+
"\u{2734}", # eight-pointed star
|
123
|
+
"\u{2747}", # sparkle
|
124
|
+
"\u{203C}", # double exclamation mark
|
125
|
+
"\u{2049}", # exclamation question mark
|
126
|
+
"\u{23}\u{20E3}", # keycap: #
|
127
|
+
"\u{2A}\u{20E3}", # keycap: *
|
128
|
+
"\u{30}\u{20E3}", # keycap: 0
|
129
|
+
"\u{31}\u{20E3}", # keycap: 1
|
130
|
+
"\u{32}\u{20E3}", # keycap: 2
|
131
|
+
"\u{33}\u{20E3}", # keycap: 3
|
132
|
+
"\u{34}\u{20E3}", # keycap: 4
|
133
|
+
"\u{35}\u{20E3}", # keycap: 5
|
134
|
+
"\u{36}\u{20E3}", # keycap: 6
|
135
|
+
"\u{37}\u{20E3}", # keycap: 7
|
136
|
+
"\u{38}\u{20E3}", # keycap: 8
|
137
|
+
"\u{39}\u{20E3}", # keycap: 9
|
138
|
+
"\u{2139}", # information
|
139
|
+
"\u{24C2}", # circled M
|
140
|
+
"\u{1F17F}", # P button
|
141
|
+
"\u{3297}", # Japanese โcongratulationsโ button
|
142
|
+
"\u{3299}", # Japanese โsecretโ button
|
143
|
+
"\u{25AA}", # black small square
|
144
|
+
"\u{25AB}", # white small square
|
145
|
+
"\u{25FB}", # white medium square
|
146
|
+
"\u{25FC}", # black medium square
|
147
|
+
].freeze
|
148
|
+
|
149
|
+
private_constant :VARIATION_SELECTOR_16, :TEXT_GLYPHS
|
82
150
|
|
83
151
|
def parse_data_file
|
84
|
-
data = File.open(data_file, 'r:UTF-8')
|
85
|
-
|
86
|
-
|
87
|
-
raw_emoji.fetch('aliases').each { |name| emoji.add_alias(name) }
|
88
|
-
if raw = raw_emoji['emoji']
|
89
|
-
unicodes = [raw, raw.sub(VARIATION_SELECTOR_16, '') + VARIATION_SELECTOR_16].uniq
|
90
|
-
unicodes.each { |uni| emoji.add_unicode_alias(uni) }
|
91
|
-
end
|
92
|
-
raw_emoji.fetch('tags').each { |tag| emoji.add_tag(tag) }
|
152
|
+
data = File.open(data_file, 'r:UTF-8') do |file|
|
153
|
+
JSON.parse(file.read, symbolize_names: true)
|
154
|
+
end
|
93
155
|
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
156
|
+
if "".respond_to?(:-@)
|
157
|
+
# Ruby >= 2.3 this is equivalent to .freeze
|
158
|
+
# Ruby >= 2.5 this will freeze and dedup
|
159
|
+
dedup = lambda { |str| -str }
|
160
|
+
else
|
161
|
+
dedup = lambda { |str| str.freeze }
|
162
|
+
end
|
163
|
+
|
164
|
+
append_unicode = lambda do |emoji, raw|
|
165
|
+
unless TEXT_GLYPHS.include?(raw) || emoji.unicode_aliases.include?(raw)
|
166
|
+
emoji.add_unicode_alias(dedup.call(raw))
|
98
167
|
end
|
99
168
|
end
|
100
169
|
|
101
|
-
# Add an explicit gendered variant to emoji that historically imply a gender
|
102
170
|
data.each do |raw_emoji|
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
171
|
+
self.create(nil) do |emoji|
|
172
|
+
raw_emoji.fetch(:aliases).each { |name| emoji.add_alias(dedup.call(name)) }
|
173
|
+
if raw = raw_emoji[:emoji]
|
174
|
+
append_unicode.call(emoji, raw)
|
175
|
+
start_pos = 0
|
176
|
+
while found_index = raw.index(VARIATION_SELECTOR_16, start_pos)
|
177
|
+
# register every variant where one VARIATION_SELECTOR_16 is removed
|
178
|
+
raw_alternate = raw.dup
|
179
|
+
raw_alternate[found_index] = ""
|
180
|
+
append_unicode.call(emoji, raw_alternate)
|
181
|
+
start_pos = found_index + 1
|
182
|
+
end
|
183
|
+
if start_pos > 0
|
184
|
+
# register a variant with all VARIATION_SELECTOR_16 removed
|
185
|
+
append_unicode.call(emoji, raw.gsub(VARIATION_SELECTOR_16, ""))
|
186
|
+
else
|
187
|
+
# register a variant where VARIATION_SELECTOR_16 is added
|
188
|
+
append_unicode.call(emoji, "#{raw}#{VARIATION_SELECTOR_16}")
|
189
|
+
end
|
190
|
+
end
|
191
|
+
raw_emoji.fetch(:tags).each { |tag| emoji.add_tag(dedup.call(tag)) }
|
192
|
+
|
193
|
+
emoji.category = dedup.call(raw_emoji[:category])
|
194
|
+
emoji.description = dedup.call(raw_emoji[:description])
|
195
|
+
emoji.unicode_version = dedup.call(raw_emoji[:unicode_version])
|
196
|
+
emoji.ios_version = dedup.call(raw_emoji[:ios_version])
|
115
197
|
end
|
116
198
|
end
|
117
199
|
end
|
data/lib/emoji/character.rb
CHANGED
data/lib/gemoji.rb
CHANGED
metadata
CHANGED
@@ -1,47 +1,26 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gemoji
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 4.0.0.pre0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- GitHub
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-07-05 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
|
-
description: Character information and metadata for
|
13
|
+
description: Character information and metadata for Unicode emoji.
|
14
14
|
email: support@github.com
|
15
|
-
executables:
|
16
|
-
- gemoji
|
15
|
+
executables: []
|
17
16
|
extensions: []
|
18
17
|
extra_rdoc_files: []
|
19
18
|
files:
|
19
|
+
- LICENSE
|
20
20
|
- README.md
|
21
|
-
- bin/gemoji
|
22
|
-
- db/Category-Emoji.json
|
23
21
|
- db/emoji.json
|
24
|
-
- images/basecamp.png
|
25
|
-
- images/basecampy.png
|
26
|
-
- images/bowtie.png
|
27
|
-
- images/feelsgood.png
|
28
|
-
- images/finnadie.png
|
29
|
-
- images/goberserk.png
|
30
|
-
- images/godmode.png
|
31
|
-
- images/hurtrealbad.png
|
32
|
-
- images/neckbeard.png
|
33
|
-
- images/octocat.png
|
34
|
-
- images/rage1.png
|
35
|
-
- images/rage2.png
|
36
|
-
- images/rage3.png
|
37
|
-
- images/rage4.png
|
38
|
-
- images/shipit.png
|
39
|
-
- images/suspect.png
|
40
|
-
- images/trollface.png
|
41
22
|
- lib/emoji.rb
|
42
23
|
- lib/emoji/character.rb
|
43
|
-
- lib/emoji/cli.rb
|
44
|
-
- lib/emoji/extractor.rb
|
45
24
|
- lib/gemoji.rb
|
46
25
|
homepage: https://github.com/github/gemoji
|
47
26
|
licenses:
|
@@ -58,13 +37,13 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
58
37
|
version: '1.9'
|
59
38
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
60
39
|
requirements:
|
61
|
-
- - "
|
40
|
+
- - ">"
|
62
41
|
- !ruby/object:Gem::Version
|
63
|
-
version:
|
42
|
+
version: 1.3.1
|
64
43
|
requirements: []
|
65
44
|
rubyforge_project:
|
66
45
|
rubygems_version: 2.5.2.3
|
67
46
|
signing_key:
|
68
47
|
specification_version: 4
|
69
|
-
summary:
|
48
|
+
summary: Unicode emoji library
|
70
49
|
test_files: []
|
data/bin/gemoji
DELETED
data/db/Category-Emoji.json
DELETED
@@ -1,71 +0,0 @@
|
|
1
|
-
{
|
2
|
-
"EmojiDataArray" : [
|
3
|
-
{
|
4
|
-
"CVDataTitle" : "EmojiCategory-People",
|
5
|
-
"CVCategoryImage" : "Emoji-HumanImage",
|
6
|
-
"CVCategoryData" : {
|
7
|
-
"CVSkipNullGlyphs" : false,
|
8
|
-
"Data" : "๐,๐,๐,๐,๐,๐
,๐,๐คฃ,โบ๏ธ,๐,๐,๐,๐,๐,๐,๐,๐,๐,๐,๐,๐,๐,๐,๐,๐ค,๐ค,๐ค,๐,๐คก,๐ค ,๐,๐,๐,๐,๐,๐,๐,โน๏ธ,๐ฃ,๐,๐ซ,๐ฉ,๐ค,๐ ,๐ก,๐ถ,๐,๐,๐ฏ,๐ฆ,๐ง,๐ฎ,๐ฒ,๐ต,๐ณ,๐ฑ,๐จ,๐ฐ,๐ข,๐ฅ,๐คค,๐ญ,๐,๐ช,๐ด,๐,๐ค,๐คฅ,๐ฌ,๐ค,๐คข,๐คง,๐ท,๐ค,๐ค,๐,๐ฟ,๐น,๐บ,๐ฉ,๐ป,๐,โ ๏ธ,๐ฝ,๐พ,๐ค,๐,๐บ,๐ธ,๐น,๐ป,๐ผ,๐ฝ,๐,๐ฟ,๐พ,๐,๐,๐,๐,๐ค,๐,๐,๐,โ,๐ค,๐ค,๐ค,โ๏ธ,๐ค,๐,๐,๐,๐,๐,โ๏ธ,โ,๐ค,๐,๐,๐,๐ค,๐ช,๐,โ๏ธ,๐คณ,๐
,๐,๐,๐,๐,๐
,๐,๐,๐ฃ,๐,๐,๐ฃ,๐ค,๐ฅ,๐ถ,๐ฆ,๐ง,๐จ,๐ฉ,๐ฑโโ๏ธ,๐ฑ,๐ด,๐ต,๐ฒ,๐ณโโ๏ธ,๐ณ,๐ฎโโ๏ธ,๐ฎ,๐ทโโ๏ธ,๐ท,๐โโ๏ธ,๐,๐ต๏ธโโ๏ธ,๐ต๏ธ,๐ฉโโ๏ธ,๐จโโ๏ธ,๐ฉโ๐พ,๐จโ๐พ,๐ฉโ๐ณ,๐จโ๐ณ,๐ฉโ๐,๐จโ๐,๐ฉโ๐ค,๐จโ๐ค,๐ฉโ๐ซ,๐จโ๐ซ,๐ฉโ๐ญ,๐จโ๐ญ,๐ฉโ๐ป,๐จโ๐ป,๐ฉโ๐ผ,๐จโ๐ผ,๐ฉโ๐ง,๐จโ๐ง,๐ฉโ๐ฌ,๐จโ๐ฌ,๐ฉโ๐จ,๐จโ๐จ,๐ฉโ๐,๐จโ๐,๐ฉโโ๏ธ,๐จโโ๏ธ,๐ฉโ๐,๐จโ๐,๐ฉโโ๏ธ,๐จโโ๏ธ,๐คถ,๐
,๐ธ,๐คด,๐ฐ,๐คต,๐ผ,๐คฐ,๐โโ๏ธ,๐,๐,๐โโ๏ธ,๐
,๐
โโ๏ธ,๐,๐โโ๏ธ,๐,๐โโ๏ธ,๐คฆโโ๏ธ,๐คฆโโ๏ธ,๐คทโโ๏ธ,๐คทโโ๏ธ,๐,๐โโ๏ธ,๐,๐โโ๏ธ,๐,๐โโ๏ธ,๐,๐โโ๏ธ,๐ด,๐,๐บ,๐ฏ,๐ฏโโ๏ธ,๐ถโโ๏ธ,๐ถ,๐โโ๏ธ,๐,๐ซ,๐ญ,๐ฌ,๐,๐ฉโโค๏ธโ๐ฉ,๐จโโค๏ธโ๐จ,๐,๐ฉโโค๏ธโ๐โ๐ฉ,๐จโโค๏ธโ๐โ๐จ,๐ช,๐จโ๐ฉโ๐ง,๐จโ๐ฉโ๐งโ๐ฆ,๐จโ๐ฉโ๐ฆโ๐ฆ,๐จโ๐ฉโ๐งโ๐ง,๐ฉโ๐ฉโ๐ฆ,๐ฉโ๐ฉโ๐ง,๐ฉโ๐ฉโ๐งโ๐ฆ,๐ฉโ๐ฉโ๐ฆโ๐ฆ,๐ฉโ๐ฉโ๐งโ๐ง,๐จโ๐จโ๐ฆ,๐จโ๐จโ๐ง,๐จโ๐จโ๐งโ๐ฆ,๐จโ๐จโ๐ฆโ๐ฆ,๐จโ๐จโ๐งโ๐ง,๐ฉโ๐ฆ,๐ฉโ๐ง,๐ฉโ๐งโ๐ฆ,๐ฉโ๐ฆโ๐ฆ,๐ฉโ๐งโ๐ง,๐จโ๐ฆ,๐จโ๐ง,๐จโ๐งโ๐ฆ,๐จโ๐ฆโ๐ฆ,๐จโ๐งโ๐ง,๐,๐,๐,๐,๐,๐,๐,๐ ,๐ก,๐ข,๐,๐,๐,๐ฉ,๐,๐,โ,๐,๐,๐,๐,๐ผ,๐,๐ถ,๐,โ๏ธ"
|
9
|
-
}
|
10
|
-
},
|
11
|
-
{
|
12
|
-
"CVDataTitle" : "EmojiCategory-Nature",
|
13
|
-
"CVCategoryImage" : "Emoji-NatureImage",
|
14
|
-
"CVCategoryData" : {
|
15
|
-
"CVSkipNullGlyphs" : false,
|
16
|
-
"Data" : "๐ถ,๐ฑ,๐ญ,๐น,๐ฐ,๐ฆ,๐ป,๐ผ,๐จ,๐ฏ,๐ฆ,๐ฎ,๐ท,๐ฝ,๐ธ,๐ต,๐,๐,๐,๐,๐,๐ง,๐ฆ,๐ค,๐ฃ,๐ฅ,๐ฆ,๐ฆ
,๐ฆ,๐ฆ,๐บ,๐,๐ด,๐ฆ,๐,๐,๐ฆ,๐,๐,๐,๐,๐ท,๐ธ,๐ข,๐,๐ฆ,๐ฆ,๐ฆ,๐ฆ,๐,๐ฆ,๐ ,๐,๐ก,๐ฌ,๐ฆ,๐ณ,๐,๐,๐,๐
,๐,๐,๐,๐ฆ,๐ช,๐ซ,๐,๐ฆ,๐ฆ,๐,๐,๐,๐,๐,๐,๐ฉ,๐,๐,๐ฆ,๐,๐,๐,๐,๐ฟ,๐พ,๐,๐ฒ,๐ต,๐,๐ฒ,๐ณ,๐ด,๐ฑ,๐ฟ,โ๏ธ,๐,๐,๐,๐,๐,๐,๐,๐พ,๐,๐ท,๐น,๐ฅ,๐ป,๐ผ,๐ธ,๐บ,๐,๐,๐,๐,๐,๐,๐,๐,๐,๐,๐,๐,๐,๐,๐,๐,๐,๐ซ,โญ๏ธ,๐,โจ,โก๏ธ,๐ฅ,๐ฅ,โ๏ธ,โ๏ธ,๐ค,โ
๏ธ,๐ฅ,๐ฆ,๐,โ๏ธ,๐ง,โ,๐ฉ,๐จ,โ๏ธ,โ๏ธ,โ๏ธ,๐ฌ,๐จ,๐ช,๐ซ,๐,๐ง,๐ฆ,โ๏ธ"
|
17
|
-
}
|
18
|
-
},
|
19
|
-
{
|
20
|
-
"CVDataTitle" : "EmojiCategory-Foods",
|
21
|
-
"CVCategoryImage" : "Emoji-FoodsImage",
|
22
|
-
"CVCategoryData" : {
|
23
|
-
"CVSkipNullGlyphs" : false,
|
24
|
-
"Data" : "๐,๐,๐,๐,๐,๐,๐,๐,๐,๐,๐,๐,๐,๐ฅ,๐ฅ,๐
,๐,๐ฅ,๐ฅ,๐ฝ,๐ถ,๐ฅ,๐ ,๐ฐ,๐ฅ,๐ฏ,๐ฅ,๐,๐ฅ,๐ง,๐ฅ,๐ณ,๐ฅ,๐ฅ,๐ค,๐,๐,๐,๐ญ,๐,๐,๐ฅ,๐ฎ,๐ฏ,๐ฅ,๐ฅ,๐,๐,๐ฒ,๐ฅ,๐ฃ,๐ฑ,๐,๐,๐,๐,๐ข,๐ก,๐ง,๐จ,๐ฆ,๐ฐ,๐,๐ฎ,๐ญ,๐ฌ,๐ซ,๐ฟ,๐ฉ,๐ช,๐ฅ,๐ผ,โ๏ธ,๐ต,๐ถ,๐บ,๐ป,๐ฅ,๐ท,๐ฅ,๐ธ,๐น,๐พ,๐ฅ,๐ด,๐ฝ"
|
25
|
-
}
|
26
|
-
},
|
27
|
-
{
|
28
|
-
"CVDataTitle" : "EmojiCategory-Activity",
|
29
|
-
"CVCategoryImage" : "Emoji-ActivityImage",
|
30
|
-
"CVCategoryData" : {
|
31
|
-
"CVSkipNullGlyphs" : false,
|
32
|
-
"Data" : "โฝ๏ธ,๐,๐,โพ๏ธ,๐พ,๐,๐,๐ฑ,๐,๐ธ,๐ฅ
,๐,๐,๐,โณ๏ธ,๐น,๐ฃ,๐ฅ,๐ฅ,โธ,๐ฟ,โท,๐,๐๏ธโโ๏ธ,๐๏ธ,๐คบ,๐คผโโ๏ธ,๐คผโโ๏ธ,๐คธโโ๏ธ,๐คธโโ๏ธ,โน๏ธโโ๏ธ,โน๏ธ,๐คพโโ๏ธ,๐คพโโ๏ธ,๐๏ธโโ๏ธ,๐๏ธ,๐โโ๏ธ,๐,๐โโ๏ธ,๐,๐คฝโโ๏ธ,๐คฝโโ๏ธ,๐ฃโโ๏ธ,๐ฃ,๐,๐ดโโ๏ธ,๐ด,๐ตโโ๏ธ,๐ต,๐ฝ,๐
,๐,๐ฅ,๐ฅ,๐ฅ,๐,๐ต,๐,๐ซ,๐,๐ช,๐คนโโ๏ธ,๐คนโโ๏ธ,๐ญ,๐จ,๐ฌ,๐ค,๐ง,๐ผ,๐น,๐ฅ,๐ท,๐บ,๐ธ,๐ป,๐ฒ,๐ฏ,๐ณ,๐ฎ,๐ฐ"
|
33
|
-
}
|
34
|
-
},
|
35
|
-
{
|
36
|
-
"CVDataTitle" : "EmojiCategory-Places",
|
37
|
-
"CVCategoryImage" : "Emoji-PlacesImage",
|
38
|
-
"CVCategoryData" : {
|
39
|
-
"CVSkipNullGlyphs" : false,
|
40
|
-
"Data" : "๐,๐,๐,๐,๐,๐,๐,๐,๐,๐,๐,๐,๐,๐ด,๐ฒ,๐ต,๐,๐จ,๐,๐,๐,๐,๐ก,๐ ,๐,๐,๐,๐,๐,๐,๐
,๐,๐,๐,๐,๐,๐,๐,๐ฉ,โ๏ธ,๐ซ,๐ฌ,๐,๐ฐ,๐บ,๐ถ,โต๏ธ,๐ฅ,๐ค,๐ณ,โด,๐ข,โ๏ธ,๐ง,โฝ๏ธ,๐,๐ฆ,๐ฅ,๐บ,๐ฟ,๐ฝ,โฒ๏ธ,๐ผ,๐ฐ,๐ฏ,๐,๐ก,๐ข,๐ ,โฑ,๐,๐,โฐ,๐,๐ป,๐,๐,๐,โบ๏ธ,๐ค,๐ฃ,๐,๐ญ,๐ ,๐ก,๐,๐,๐ข,๐ฌ,๐ฃ,๐ค,๐ฅ,๐ฆ,๐จ,๐ช,๐ซ,๐ฉ,๐,๐,โช๏ธ,๐,๐,๐,โฉ,๐พ,๐,๐,๐
,๐,๐ ,๐,๐,๐,๐,๐,๐,๐,๐,๐"
|
41
|
-
}
|
42
|
-
},
|
43
|
-
{
|
44
|
-
"CVDataTitle" : "EmojiCategory-Objects",
|
45
|
-
"CVCategoryImage" : "Emoji-ObjectsImage",
|
46
|
-
"CVCategoryData" : {
|
47
|
-
"CVSkipNullGlyphs" : false,
|
48
|
-
"Data" : "โ๏ธ,๐ฑ,๐ฒ,๐ป,โจ๏ธ,๐ฅ,๐จ,๐ฑ,๐ฒ,๐น,๐,๐ฝ,๐พ,๐ฟ,๐,๐ผ,๐ท,๐ธ,๐น,๐ฅ,๐ฝ,๐,๐,โ๏ธ,๐,๐ ,๐บ,๐ป,๐,๐,๐,โฑ,โฒ,โฐ,๐ฐ,โ๏ธ,โณ,๐ก,๐,๐,๐ก,๐ฆ,๐ฏ,๐,๐ข,๐ธ,๐ต,๐ด,๐ถ,๐ท,๐ฐ,๐ณ,๐,โ๏ธ,๐ง,๐จ,โ,๐ ,โ,๐ฉ,โ๏ธ,โ,๐ซ,๐ฃ,๐ช,๐ก,โ๏ธ,๐ก,๐ฌ,โฐ๏ธ,โฑ๏ธ,๐บ,๐ฎ,๐ฟ,๐,โ๏ธ,๐ญ,๐ฌ,๐ณ,๐,๐,๐ก,๐ฝ,๐ฐ,๐ฟ,๐,๐,๐,๐,๐,๐ช,๐,๐,๐,๐ผ,๐,๐,๐,๐,๐,๐,๐,๐,๐,๐ฎ,๐,โ๏ธ,๐ฉ,๐จ,๐ง,๐,๐ฅ,๐ค,๐ฆ,๐ท,๐ช,๐ซ,๐ฌ,๐ญ,๐ฎ,๐ฏ,๐,๐,๐,๐,๐,๐,๐,๐,๐,๐,๐
,๐,๐,๐ณ,๐,๐,๐,๐,๐,๐,๐ฐ,๐,๐,๐,๐,๐,๐,๐,๐,๐,๐,๐,๐,๐,๐,๐,๐,๐,โ๏ธ,๐,๐,โ๏ธ,๐,๐,๐,โ๏ธ,๐,๐,๐,๐,๐,๐"
|
49
|
-
}
|
50
|
-
},
|
51
|
-
{
|
52
|
-
"CVDataTitle" : "EmojiCategory-Symbols",
|
53
|
-
"CVCategoryImage" : "Emoji-SymbolImage",
|
54
|
-
"CVCategoryData" : {
|
55
|
-
"CVSkipNullGlyphs" : false,
|
56
|
-
"Data" : "โค๏ธ,๐,๐,๐,๐,๐ค,๐,โฃ๏ธ,๐,๐,๐,๐,๐,๐,๐,๐,โฎ๏ธ,โ๏ธ,โช๏ธ,๐,โธ๏ธ,โก๏ธ,๐ฏ,๐,โฏ๏ธ,โฆ๏ธ,๐,โ,โ๏ธ,โ๏ธ,โ๏ธ,โ๏ธ,โ๏ธ,โ๏ธ,โ๏ธ,โ๏ธ,โ๏ธ,โ๏ธ,โ๏ธ,โ๏ธ,๐,โ๏ธ,๐,โข๏ธ,โฃ๏ธ,๐ด,๐ณ,๐ถ,๐๏ธ,๐ธ,๐บ,๐ท๏ธ,โด๏ธ,๐,๐ฎ,๐,ใ๏ธ,ใ๏ธ,๐ด,๐ต,๐น,๐ฒ,๐
ฐ๏ธ,๐
ฑ๏ธ,๐,๐,๐
พ๏ธ,๐,โ,โญ๏ธ,๐,โ๏ธ,๐,๐ซ,๐ฏ,๐ข,โจ๏ธ,๐ท,๐ฏ,๐ณ,๐ฑ,๐,๐ต,๐ญ,โ๏ธ,โ,โ,โ,โผ๏ธ,โ๏ธ,๐
,๐,ใฝ๏ธ,โ ๏ธ,๐ธ,๐ฑ,โ๏ธ,๐ฐ,โป๏ธ,โ
,๐ฏ๏ธ,๐น,โ๏ธ,โณ๏ธ,โ,๐,๐ ,โ๏ธ,๐,๐ค,๐ง,๐พ,โฟ๏ธ,๐
ฟ๏ธ,๐ณ,๐๏ธ,๐,๐,๐,๐
,๐น,๐บ,๐ผ,๐ป,๐ฎ,๐ฆ,๐ถ,๐,๐ฃ,โน๏ธ,๐ค,๐ก,๐ ,๐,๐,๐,๐,๐,๐,0๏ธโฃ,1๏ธโฃ,2๏ธโฃ,3๏ธโฃ,4๏ธโฃ,5๏ธโฃ,6๏ธโฃ,7๏ธโฃ,8๏ธโฃ,9๏ธโฃ,๐,๐ข,#๏ธโฃ,*๏ธโฃ,โถ๏ธ,โธ,โฏ,โน,โบ,โญ,โฎ,โฉ,โช,โซ,โฌ,โ๏ธ,๐ผ,๐ฝ,โก๏ธ,โฌ
๏ธ,โฌ๏ธ,โฌ๏ธ,โ๏ธ,โ๏ธ,โ๏ธ,โ๏ธ,โ๏ธ,โ๏ธ,โช๏ธ,โฉ๏ธ,โคด๏ธ,โคต๏ธ,๐,๐,๐,๐,๐,๐ต,๐ถ,โ,โ,โ,โ๏ธ,๐ฒ,๐ฑ,โข๏ธ,ยฉ๏ธ,ยฎ๏ธ,ใฐ๏ธ,โฐ,โฟ,๐,๐,๐,๐,๐,โ๏ธ,โ๏ธ,๐,โช๏ธ,โซ๏ธ,๐ด,๐ต,๐บ,๐ป,๐ธ,๐น,๐ถ,๐ท,๐ณ,๐ฒ,โช๏ธ,โซ๏ธ,โพ๏ธ,โฝ๏ธ,โผ๏ธ,โป๏ธ,โฌ๏ธ,โฌ๏ธ,๐,๐,๐,๐,๐,๐,๐ฃ,๐ข,๐โ๐จ,๐ฌ,๐ญ,๐ฏ,โ ๏ธ,โฃ๏ธ,โฅ๏ธ,โฆ๏ธ,๐,๐ด,๐๏ธ,๐,๐,๐,๐,๐,๐,๐,๐,๐,๐,๐,๐,๐,๐,๐,๐,๐ ,๐ก,๐ข,๐ฃ,๐ค,๐ฅ,๐ฆ,๐ง"
|
57
|
-
}
|
58
|
-
},
|
59
|
-
{
|
60
|
-
"CVDataTitle" : "EmojiCategory-Flags",
|
61
|
-
"CVCategoryImage" : "Emoji-FlagsImage",
|
62
|
-
"CVCategoryData" : {
|
63
|
-
"CVSkipNullGlyphs" : false,
|
64
|
-
"Data" : "๐ณ๏ธ,๐ด,๐,๐ฉ,๐ณ๏ธโ๐,๐ฆ๐ซ,๐ฆ๐ฝ,๐ฆ๐ฑ,๐ฉ๐ฟ,๐ฆ๐ธ,๐ฆ๐ฉ,๐ฆ๐ด,๐ฆ๐ฎ,๐ฆ๐ถ,๐ฆ๐ฌ,๐ฆ๐ท,๐ฆ๐ฒ,๐ฆ๐ผ,๐ฆ๐บ,๐ฆ๐น,๐ฆ๐ฟ,๐ง๐ธ,๐ง๐ญ,๐ง๐ฉ,๐ง๐ง,๐ง๐พ,๐ง๐ช,๐ง๐ฟ,๐ง๐ฏ,๐ง๐ฒ,๐ง๐น,๐ง๐ด,๐ง๐ถ,๐ง๐ฆ,๐ง๐ผ,๐ง๐ท,๐ฎ๐ด,๐ป๐ฌ,๐ง๐ณ,๐ง๐ฌ,๐ง๐ซ,๐ง๐ฎ,๐จ๐ป,๐ฐ๐ญ,๐จ๐ฒ,๐จ๐ฆ,๐ฎ๐จ,๐ฐ๐พ,๐จ๐ซ,๐น๐ฉ,๐จ๐ฑ,๐จ๐ณ,๐จ๐ฝ,๐จ๐จ,๐จ๐ด,๐ฐ๐ฒ,๐จ๐ฌ,๐จ๐ฉ,๐จ๐ฐ,๐จ๐ท,๐จ๐ฎ,๐ญ๐ท,๐จ๐บ,๐จ๐ผ,๐จ๐พ,๐จ๐ฟ,๐ฉ๐ฐ,๐ฉ๐ฏ,๐ฉ๐ฒ,๐ฉ๐ด,๐ช๐จ,๐ช๐ฌ,๐ธ๐ป,๐ฌ๐ถ,๐ช๐ท,๐ช๐ช,๐ช๐น,๐ช๐บ,๐ซ๐ฐ,๐ซ๐ด,๐ซ๐ฏ,๐ซ๐ฎ,๐ซ๐ท,๐ฌ๐ซ,๐ต๐ซ,๐น๐ซ,๐ฌ๐ฆ,๐ฌ๐ฒ,๐ฌ๐ช,๐ฉ๐ช,๐ฌ๐ญ,๐ฌ๐ฎ,๐ฌ๐ท,๐ฌ๐ฑ,๐ฌ๐ฉ,๐ฌ๐ต,๐ฌ๐บ,๐ฌ๐น,๐ฌ๐ฌ,๐ฌ๐ณ,๐ฌ๐ผ,๐ฌ๐พ,๐ญ๐น,๐ญ๐ณ,๐ญ๐ฐ,๐ญ๐บ,๐ฎ๐ธ,๐ฎ๐ณ,๐ฎ๐ฉ,๐ฎ๐ท,๐ฎ๐ถ,๐ฎ๐ช,๐ฎ๐ฒ,๐ฎ๐ฑ,๐ฎ๐น,๐ฏ๐ฒ,๐ฏ๐ต,๐,๐ฏ๐ช,๐ฏ๐ด,๐ฐ๐ฟ,๐ฐ๐ช,๐ฐ๐ฎ,๐ฝ๐ฐ,๐ฐ๐ผ,๐ฐ๐ฌ,๐ฑ๐ฆ,๐ฑ๐ป,๐ฑ๐ง,๐ฑ๐ธ,๐ฑ๐ท,๐ฑ๐พ,๐ฑ๐ฎ,๐ฑ๐น,๐ฑ๐บ,๐ฒ๐ด,๐ฒ๐ฐ,๐ฒ๐ฌ,๐ฒ๐ผ,๐ฒ๐พ,๐ฒ๐ป,๐ฒ๐ฑ,๐ฒ๐น,๐ฒ๐ญ,๐ฒ๐ถ,๐ฒ๐ท,๐ฒ๐บ,๐พ๐น,๐ฒ๐ฝ,๐ซ๐ฒ,๐ฒ๐ฉ,๐ฒ๐จ,๐ฒ๐ณ,๐ฒ๐ช,๐ฒ๐ธ,๐ฒ๐ฆ,๐ฒ๐ฟ,๐ฒ๐ฒ,๐ณ๐ฆ,๐ณ๐ท,๐ณ๐ต,๐ณ๐ฑ,๐ณ๐จ,๐ณ๐ฟ,๐ณ๐ฎ,๐ณ๐ช,๐ณ๐ฌ,๐ณ๐บ,๐ณ๐ซ,๐ฒ๐ต,๐ฐ๐ต,๐ณ๐ด,๐ด๐ฒ,๐ต๐ฐ,๐ต๐ผ,๐ต๐ธ,๐ต๐ฆ,๐ต๐ฌ,๐ต๐พ,๐ต๐ช,๐ต๐ญ,๐ต๐ณ,๐ต๐ฑ,๐ต๐น,๐ต๐ท,๐ถ๐ฆ,๐ท๐ช,๐ท๐ด,๐ท๐บ,๐ท๐ผ,๐ง๐ฑ,๐ธ๐ญ,๐ฐ๐ณ,๐ฑ๐จ,๐ต๐ฒ,๐ป๐จ,๐ผ๐ธ,๐ธ๐ฒ,๐ธ๐น,๐ธ๐ฆ,๐ธ๐ณ,๐ท๐ธ,๐ธ๐จ,๐ธ๐ฑ,๐ธ๐ฌ,๐ธ๐ฝ,๐ธ๐ฐ,๐ธ๐ฎ,๐ธ๐ง,๐ธ๐ด,๐ฟ๐ฆ,๐ฌ๐ธ,๐ฐ๐ท,๐ธ๐ธ,๐ช๐ธ,๐ฑ๐ฐ,๐ธ๐ฉ,๐ธ๐ท,๐ธ๐ฟ,๐ธ๐ช,๐จ๐ญ,๐ธ๐พ,๐น๐ผ,๐น๐ฏ,๐น๐ฟ,๐น๐ญ,๐น๐ฑ,๐น๐ฌ,๐น๐ฐ,๐น๐ด,๐น๐น,๐น๐ณ,๐น๐ท,๐น๐ฒ,๐น๐จ,๐น๐ป,๐บ๐ฌ,๐บ๐ฆ,๐ฆ๐ช,๐ฌ๐ง,๐บ๐ธ,๐ป๐ฎ,๐บ๐พ,๐บ๐ฟ,๐ป๐บ,๐ป๐ฆ,๐ป๐ช,๐ป๐ณ,๐ผ๐ซ,๐ช๐ญ,๐พ๐ช,๐ฟ๐ฒ,๐ฟ๐ผ"
|
65
|
-
}
|
66
|
-
}
|
67
|
-
],
|
68
|
-
"CVViewFontList" : [
|
69
|
-
"AppleColorEmoji"
|
70
|
-
]
|
71
|
-
}
|
data/images/basecamp.png
DELETED
Binary file
|
data/images/basecampy.png
DELETED
Binary file
|
data/images/bowtie.png
DELETED
Binary file
|
data/images/feelsgood.png
DELETED
Binary file
|
data/images/finnadie.png
DELETED
Binary file
|
data/images/goberserk.png
DELETED
Binary file
|
data/images/godmode.png
DELETED
Binary file
|
data/images/hurtrealbad.png
DELETED
Binary file
|
data/images/neckbeard.png
DELETED
Binary file
|
data/images/octocat.png
DELETED
Binary file
|
data/images/rage1.png
DELETED
Binary file
|
data/images/rage2.png
DELETED
Binary file
|
data/images/rage3.png
DELETED
Binary file
|
data/images/rage4.png
DELETED
Binary file
|
data/images/shipit.png
DELETED
Binary file
|
data/images/suspect.png
DELETED
Binary file
|
data/images/trollface.png
DELETED
Binary file
|
data/lib/emoji/cli.rb
DELETED
@@ -1,68 +0,0 @@
|
|
1
|
-
require 'emoji/extractor'
|
2
|
-
require 'fileutils'
|
3
|
-
require 'optparse'
|
4
|
-
|
5
|
-
module Emoji
|
6
|
-
module CLI
|
7
|
-
extend self
|
8
|
-
|
9
|
-
InvalidUsage = Class.new(RuntimeError)
|
10
|
-
|
11
|
-
def dispatch(argv)
|
12
|
-
cmd = argv[0]
|
13
|
-
argv = argv[1..-1]
|
14
|
-
|
15
|
-
case cmd
|
16
|
-
when "extract"
|
17
|
-
public_send(cmd, argv)
|
18
|
-
when "help", "--help", "-h"
|
19
|
-
help
|
20
|
-
else
|
21
|
-
raise InvalidUsage
|
22
|
-
end
|
23
|
-
|
24
|
-
return 0
|
25
|
-
rescue InvalidUsage, OptionParser::InvalidArgument, OptionParser::InvalidOption => err
|
26
|
-
unless err.message == err.class.to_s
|
27
|
-
$stderr.puts err.message
|
28
|
-
$stderr.puts
|
29
|
-
end
|
30
|
-
$stderr.puts usage_text
|
31
|
-
return 1
|
32
|
-
end
|
33
|
-
|
34
|
-
def help
|
35
|
-
puts usage_text
|
36
|
-
end
|
37
|
-
|
38
|
-
VALID_SIZES = [ 20, 32, 40, 48, 64, 96, 160 ]
|
39
|
-
|
40
|
-
def extract(argv)
|
41
|
-
size = 64
|
42
|
-
|
43
|
-
OptionParser.new do |opts|
|
44
|
-
opts.on("--size=#{size}", Integer) do |val|
|
45
|
-
if VALID_SIZES.include?(val)
|
46
|
-
size = val
|
47
|
-
else
|
48
|
-
raise InvalidUsage, "size should be one of: #{VALID_SIZES.join(', ')}"
|
49
|
-
end
|
50
|
-
end
|
51
|
-
end.parse!(argv)
|
52
|
-
|
53
|
-
raise InvalidUsage unless argv.size == 1
|
54
|
-
path = argv[0]
|
55
|
-
|
56
|
-
Emoji::Extractor.new(size, path).extract!
|
57
|
-
Dir["#{Emoji.images_path}/*.png"].each do |png|
|
58
|
-
FileUtils.cp(png, File.join(path, File.basename(png)))
|
59
|
-
end
|
60
|
-
end
|
61
|
-
|
62
|
-
def usage_text
|
63
|
-
<<EOF
|
64
|
-
Usage: gemoji extract <path> [--size=64]
|
65
|
-
EOF
|
66
|
-
end
|
67
|
-
end
|
68
|
-
end
|