emojimmy 0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: c98273697d88126f8b5e4c7eab080ffe7da2d4b6
4
+ data.tar.gz: dd302c23d485e6f963f19d5f1d0114a044a6e404
5
+ SHA512:
6
+ metadata.gz: df29c9cda1078629248d5f72b1cf1367c0215d47a0dc52decddf69c480e451a51351f57a4cbf45cc7439d49f7946916728c20952124ef7e3ebe02dbe01731c5f
7
+ data.tar.gz: 9cafb78e4d067bcd4d19caa4b8dc8e657d2523411fc325884264782d6d6da1bfef2a201e6ecd397d5551103fecc7466f35c584e05464d9e0fdec4761dafbb85f
data/.gitignore ADDED
@@ -0,0 +1,17 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
data/.travis.yml ADDED
@@ -0,0 +1,11 @@
1
+ language: ruby
2
+
3
+ rvm:
4
+ - 2.0.0
5
+ - 1.9.3
6
+
7
+ gemfile:
8
+ - gemfiles/Gemfile.activerecord-4.0
9
+ - gemfiles/Gemfile.activerecord-3.2.x
10
+
11
+ script: "echo 'DO IT' && bundle exec rake spec"
data/Gemfile ADDED
@@ -0,0 +1,2 @@
1
+ source 'https://rubygems.org'
2
+ gemspec
data/LICENSE.md ADDED
@@ -0,0 +1,26 @@
1
+ Copyright (c) 2013, Mirego
2
+ All rights reserved.
3
+
4
+ Redistribution and use in source and binary forms, with or without
5
+ modification, are permitted provided that the following conditions are met:
6
+
7
+ - Redistributions of source code must retain the above copyright notice,
8
+ this list of conditions and the following disclaimer.
9
+ - Redistributions in binary form must reproduce the above copyright notice,
10
+ this list of conditions and the following disclaimer in the documentation
11
+ and/or other materials provided with the distribution.
12
+ - Neither the name of the Mirego nor the names of its contributors may
13
+ be used to endorse or promote products derived from this software without
14
+ specific prior written permission.
15
+
16
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
20
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
23
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
24
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
25
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
26
+ POSSIBILITY OF SUCH DAMAGE.
data/README.md ADDED
@@ -0,0 +1,57 @@
1
+ # Emojimmy
2
+
3
+ Emojimmy makes it possible to store emoji characters in ActiveRecord datastores that don’t support *4-Byte UTF-8 Unicode* (`utf8mb4`) encoding.
4
+
5
+ ---
6
+
7
+ ## Installation
8
+
9
+ Add this line to your application's Gemfile:
10
+
11
+ ```ruby
12
+ gem 'emojimmy'
13
+ ```
14
+
15
+ ### Usage
16
+
17
+ First, you must enable Emojimmy in an initializer (when your application boots):
18
+
19
+ ```ruby
20
+ # config/initializers/emojimmy.rb
21
+ Emojimmy.initialize!
22
+ ```
23
+
24
+ Then, you can edit your models to specify which fields will be storing emoji characters:
25
+
26
+ ```ruby
27
+ # app/models/comment.rb
28
+ class Comment < ActiveRecord::Base
29
+ stores_emoji_characters in: [:body]
30
+ end
31
+ ```
32
+
33
+ Your model will now be able to store emoji characters in its `body` column.
34
+
35
+ ```ruby
36
+ # Create a comment with an emoji
37
+ @comment = Comment.create(body: "Hello! \xF0\x9F\x98\x81")
38
+
39
+ # Our comment has been saved in the database
40
+ @comment.persisted? # => true
41
+
42
+ # Magic! Our body contains the emoji!
43
+ @comment.body # => "Hello! \xF0\x9F\x98\x81"
44
+
45
+ # The real magic… how emoji are actually stored
46
+ @comment.read_attribute(:body) # => "Hello! {U+1F601}"
47
+ ```
48
+
49
+ ## License
50
+
51
+ `Emojimmy` is © 2013 [Mirego](http://www.mirego.com) and may be freely distributed under the [New BSD license](http://opensource.org/licenses/BSD-3-Clause). See the [`LICENSE.md`](https://github.com/mirego/emojimmy/blob/master/LICENSE.md) file.
52
+
53
+ ## About Mirego
54
+
55
+ Mirego is a team of passionate people who believe that work is a place where you can innovate and have fun. We proudly build mobile applications for [iPhone](http://mirego.com/en/iphone-app-development/ "iPhone application development"), [iPad](http://mirego.com/en/ipad-app-development/ "iPad application development"), [Android](http://mirego.com/en/android-app-development/ "Android application development"), [Blackberry](http://mirego.com/en/blackberry-app-development/ "Blackberry application development"), [Windows Phone](http://mirego.com/en/windows-phone-app-development/ "Windows Phone application development") and [Windows 8](http://mirego.com/en/windows-8-app-development/ "Windows 8 application development") in beautiful Quebec City.
56
+
57
+ We also love [open-source software](http://open.mirego.com/) and we try to extract as much code as possible from our projects to give back to the community.
data/Rakefile ADDED
@@ -0,0 +1,11 @@
1
+ require 'bundler'
2
+ require 'rake'
3
+ require 'bundler/gem_tasks'
4
+ require 'rspec/core/rake_task'
5
+
6
+ task default: :spec
7
+
8
+ desc 'Run all specs'
9
+ RSpec::Core::RakeTask.new(:spec) do |task|
10
+ task.pattern = 'spec/**/*_spec.rb'
11
+ end
data/data/emoji.txt ADDED
@@ -0,0 +1,842 @@
1
+ U+1F601 \xF0\x9F\x98\x81
2
+ U+1F602 \xF0\x9F\x98\x82
3
+ U+1F603 \xF0\x9F\x98\x83
4
+ U+1F604 \xF0\x9F\x98\x84
5
+ U+1F605 \xF0\x9F\x98\x85
6
+ U+1F606 \xF0\x9F\x98\x86
7
+ U+1F609 \xF0\x9F\x98\x89
8
+ U+1F60A \xF0\x9F\x98\x8A
9
+ U+1F60B \xF0\x9F\x98\x8B
10
+ U+1F60C \xF0\x9F\x98\x8C
11
+ U+1F60D \xF0\x9F\x98\x8D
12
+ U+1F60F \xF0\x9F\x98\x8F
13
+ U+1F612 \xF0\x9F\x98\x92
14
+ U+1F613 \xF0\x9F\x98\x93
15
+ U+1F614 \xF0\x9F\x98\x94
16
+ U+1F616 \xF0\x9F\x98\x96
17
+ U+1F618 \xF0\x9F\x98\x98
18
+ U+1F61A \xF0\x9F\x98\x9A
19
+ U+1F61C \xF0\x9F\x98\x9C
20
+ U+1F61D \xF0\x9F\x98\x9D
21
+ U+1F61E \xF0\x9F\x98\x9E
22
+ U+1F620 \xF0\x9F\x98\xA0
23
+ U+1F621 \xF0\x9F\x98\xA1
24
+ U+1F622 \xF0\x9F\x98\xA2
25
+ U+1F623 \xF0\x9F\x98\xA3
26
+ U+1F624 \xF0\x9F\x98\xA4
27
+ U+1F625 \xF0\x9F\x98\xA5
28
+ U+1F628 \xF0\x9F\x98\xA8
29
+ U+1F629 \xF0\x9F\x98\xA9
30
+ U+1F62A \xF0\x9F\x98\xAA
31
+ U+1F62B \xF0\x9F\x98\xAB
32
+ U+1F62D \xF0\x9F\x98\xAD
33
+ U+1F630 \xF0\x9F\x98\xB0
34
+ U+1F631 \xF0\x9F\x98\xB1
35
+ U+1F632 \xF0\x9F\x98\xB2
36
+ U+1F633 \xF0\x9F\x98\xB3
37
+ U+1F635 \xF0\x9F\x98\xB5
38
+ U+1F637 \xF0\x9F\x98\xB7
39
+ U+1F638 \xF0\x9F\x98\xB8
40
+ U+1F639 \xF0\x9F\x98\xB9
41
+ U+1F63A \xF0\x9F\x98\xBA
42
+ U+1F63B \xF0\x9F\x98\xBB
43
+ U+1F63C \xF0\x9F\x98\xBC
44
+ U+1F63D \xF0\x9F\x98\xBD
45
+ U+1F63E \xF0\x9F\x98\xBE
46
+ U+1F63F \xF0\x9F\x98\xBF
47
+ U+1F640 \xF0\x9F\x99\x80
48
+ U+1F645 \xF0\x9F\x99\x85
49
+ U+1F646 \xF0\x9F\x99\x86
50
+ U+1F647 \xF0\x9F\x99\x87
51
+ U+1F648 \xF0\x9F\x99\x88
52
+ U+1F649 \xF0\x9F\x99\x89
53
+ U+1F64A \xF0\x9F\x99\x8A
54
+ U+1F64B \xF0\x9F\x99\x8B
55
+ U+1F64C \xF0\x9F\x99\x8C
56
+ U+1F64D \xF0\x9F\x99\x8D
57
+ U+1F64E \xF0\x9F\x99\x8E
58
+ U+1F64F \xF0\x9F\x99\x8F
59
+ U+2702 \xE2\x9C\x82
60
+ U+2705 \xE2\x9C\x85
61
+ U+2708 \xE2\x9C\x88
62
+ U+2709 \xE2\x9C\x89
63
+ U+270A \xE2\x9C\x8A
64
+ U+270B \xE2\x9C\x8B
65
+ U+270C \xE2\x9C\x8C
66
+ U+270F \xE2\x9C\x8F
67
+ U+2712 \xE2\x9C\x92
68
+ U+2714 \xE2\x9C\x94
69
+ U+2716 \xE2\x9C\x96
70
+ U+2728 \xE2\x9C\xA8
71
+ U+2733 \xE2\x9C\xB3
72
+ U+2734 \xE2\x9C\xB4
73
+ U+2744 \xE2\x9D\x84
74
+ U+2747 \xE2\x9D\x87
75
+ U+274C \xE2\x9D\x8C
76
+ U+274E \xE2\x9D\x8E
77
+ U+2753 \xE2\x9D\x93
78
+ U+2754 \xE2\x9D\x94
79
+ U+2755 \xE2\x9D\x95
80
+ U+2757 \xE2\x9D\x97
81
+ U+2764 \xE2\x9D\xA4
82
+ U+2795 \xE2\x9E\x95
83
+ U+2796 \xE2\x9E\x96
84
+ U+2797 \xE2\x9E\x97
85
+ U+27A1 \xE2\x9E\xA1
86
+ U+27B0 \xE2\x9E\xB0
87
+ U+1F680 \xF0\x9F\x9A\x80
88
+ U+1F683 \xF0\x9F\x9A\x83
89
+ U+1F684 \xF0\x9F\x9A\x84
90
+ U+1F685 \xF0\x9F\x9A\x85
91
+ U+1F687 \xF0\x9F\x9A\x87
92
+ U+1F689 \xF0\x9F\x9A\x89
93
+ U+1F68C \xF0\x9F\x9A\x8C
94
+ U+1F68F \xF0\x9F\x9A\x8F
95
+ U+1F691 \xF0\x9F\x9A\x91
96
+ U+1F692 \xF0\x9F\x9A\x92
97
+ U+1F693 \xF0\x9F\x9A\x93
98
+ U+1F695 \xF0\x9F\x9A\x95
99
+ U+1F697 \xF0\x9F\x9A\x97
100
+ U+1F699 \xF0\x9F\x9A\x99
101
+ U+1F69A \xF0\x9F\x9A\x9A
102
+ U+1F6A2 \xF0\x9F\x9A\xA2
103
+ U+1F6A4 \xF0\x9F\x9A\xA4
104
+ U+1F6A5 \xF0\x9F\x9A\xA5
105
+ U+1F6A7 \xF0\x9F\x9A\xA7
106
+ U+1F6A8 \xF0\x9F\x9A\xA8
107
+ U+1F6A9 \xF0\x9F\x9A\xA9
108
+ U+1F6AA \xF0\x9F\x9A\xAA
109
+ U+1F6AB \xF0\x9F\x9A\xAB
110
+ U+1F6AC \xF0\x9F\x9A\xAC
111
+ U+1F6AD \xF0\x9F\x9A\xAD
112
+ U+1F6B2 \xF0\x9F\x9A\xB2
113
+ U+1F6B6 \xF0\x9F\x9A\xB6
114
+ U+1F6B9 \xF0\x9F\x9A\xB9
115
+ U+1F6BA \xF0\x9F\x9A\xBA
116
+ U+1F6BB \xF0\x9F\x9A\xBB
117
+ U+1F6BC \xF0\x9F\x9A\xBC
118
+ U+1F6BD \xF0\x9F\x9A\xBD
119
+ U+1F6BE \xF0\x9F\x9A\xBE
120
+ U+1F6C0 \xF0\x9F\x9B\x80
121
+ U+24C2 \xE2\x93\x82
122
+ U+1F170 \xF0\x9F\x85\xB0
123
+ U+1F171 \xF0\x9F\x85\xB1
124
+ U+1F17E \xF0\x9F\x85\xBE
125
+ U+1F17F \xF0\x9F\x85\xBF
126
+ U+1F18E \xF0\x9F\x86\x8E
127
+ U+1F191 \xF0\x9F\x86\x91
128
+ U+1F192 \xF0\x9F\x86\x92
129
+ U+1F193 \xF0\x9F\x86\x93
130
+ U+1F194 \xF0\x9F\x86\x94
131
+ U+1F195 \xF0\x9F\x86\x95
132
+ U+1F196 \xF0\x9F\x86\x96
133
+ U+1F197 \xF0\x9F\x86\x97
134
+ U+1F198 \xF0\x9F\x86\x98
135
+ U+1F199 \xF0\x9F\x86\x99
136
+ U+1F19A \xF0\x9F\x86\x9A
137
+ U+1F1E9 U+1F1EA \xF0\x9F\x87\xA9\xF0\x9F\x87\xAA
138
+ U+1F1EC U+1F1E7 \xF0\x9F\x87\xAC\xF0\x9F\x87\xA7
139
+ U+1F1E8 U+1F1F3 \xF0\x9F\x87\xA8\xF0\x9F\x87\xB3
140
+ U+1F1EF U+1F1F5 \xF0\x9F\x87\xAF\xF0\x9F\x87\xB5
141
+ U+1F1F0 U+1F1F7 \xF0\x9F\x87\xB0\xF0\x9F\x87\xB7
142
+ U+1F1EB U+1F1F7 \xF0\x9F\x87\xAB\xF0\x9F\x87\xB7
143
+ U+1F1EA U+1F1F8 \xF0\x9F\x87\xAA\xF0\x9F\x87\xB8
144
+ U+1F1EE U+1F1F9 \xF0\x9F\x87\xAE\xF0\x9F\x87\xB9
145
+ U+1F1FA U+1F1F8 \xF0\x9F\x87\xBA\xF0\x9F\x87\xB8
146
+ U+1F1F7 U+1F1FA \xF0\x9F\x87\xB7\xF0\x9F\x87\xBA
147
+ U+1F201 \xF0\x9F\x88\x81
148
+ U+1F202 \xF0\x9F\x88\x82
149
+ U+1F21A \xF0\x9F\x88\x9A
150
+ U+1F22F \xF0\x9F\x88\xAF
151
+ U+1F232 \xF0\x9F\x88\xB2
152
+ U+1F233 \xF0\x9F\x88\xB3
153
+ U+1F234 \xF0\x9F\x88\xB4
154
+ U+1F235 \xF0\x9F\x88\xB5
155
+ U+1F236 \xF0\x9F\x88\xB6
156
+ U+1F237 \xF0\x9F\x88\xB7
157
+ U+1F238 \xF0\x9F\x88\xB8
158
+ U+1F239 \xF0\x9F\x88\xB9
159
+ U+1F23A \xF0\x9F\x88\xBA
160
+ U+1F250 \xF0\x9F\x89\x90
161
+ U+1F251 \xF0\x9F\x89\x91
162
+ U+00A9 \xC2\xA9
163
+ U+00AE \xC2\xAE
164
+ U+203C \xE2\x80\xBC
165
+ U+2049 \xE2\x81\x89
166
+ U+0038 U+20E3 \x38\xE2\x83\xA3
167
+ U+0039 U+20E3 \x39\xE2\x83\xA3
168
+ U+0037 U+20E3 \x37\xE2\x83\xA3
169
+ U+0036 U+20E3 \x36\xE2\x83\xA3
170
+ U+0031 U+20E3 \x31\xE2\x83\xA3
171
+ U+0030 U+20E3 \x30\xE2\x83\xA3
172
+ U+0032 U+20E3 \x32\xE2\x83\xA3
173
+ U+0033 U+20E3 \x33\xE2\x83\xA3
174
+ U+0035 U+20E3 \x35\xE2\x83\xA3
175
+ U+0034 U+20E3 \x34\xE2\x83\xA3
176
+ U+0023 U+20E3 \x23\xE2\x83\xA3
177
+ U+2122 \xE2\x84\xA2
178
+ U+2139 \xE2\x84\xB9
179
+ U+2194 \xE2\x86\x94
180
+ U+2195 \xE2\x86\x95
181
+ U+2196 \xE2\x86\x96
182
+ U+2197 \xE2\x86\x97
183
+ U+2198 \xE2\x86\x98
184
+ U+2199 \xE2\x86\x99
185
+ U+21A9 \xE2\x86\xA9
186
+ U+21AA \xE2\x86\xAA
187
+ U+231A \xE2\x8C\x9A
188
+ U+231B \xE2\x8C\x9B
189
+ U+23E9 \xE2\x8F\xA9
190
+ U+23EA \xE2\x8F\xAA
191
+ U+23EB \xE2\x8F\xAB
192
+ U+23EC \xE2\x8F\xAC
193
+ U+23F0 \xE2\x8F\xB0
194
+ U+23F3 \xE2\x8F\xB3
195
+ U+25AA \xE2\x96\xAA
196
+ U+25AB \xE2\x96\xAB
197
+ U+25B6 \xE2\x96\xB6
198
+ U+25C0 \xE2\x97\x80
199
+ U+25FB \xE2\x97\xBB
200
+ U+25FC \xE2\x97\xBC
201
+ U+25FD \xE2\x97\xBD
202
+ U+25FE \xE2\x97\xBE
203
+ U+2600 \xE2\x98\x80
204
+ U+2601 \xE2\x98\x81
205
+ U+260E \xE2\x98\x8E
206
+ U+2611 \xE2\x98\x91
207
+ U+2614 \xE2\x98\x94
208
+ U+2615 \xE2\x98\x95
209
+ U+261D \xE2\x98\x9D
210
+ U+263A \xE2\x98\xBA
211
+ U+2648 \xE2\x99\x88
212
+ U+2649 \xE2\x99\x89
213
+ U+264A \xE2\x99\x8A
214
+ U+264B \xE2\x99\x8B
215
+ U+264C \xE2\x99\x8C
216
+ U+264D \xE2\x99\x8D
217
+ U+264E \xE2\x99\x8E
218
+ U+264F \xE2\x99\x8F
219
+ U+2650 \xE2\x99\x90
220
+ U+2651 \xE2\x99\x91
221
+ U+2652 \xE2\x99\x92
222
+ U+2653 \xE2\x99\x93
223
+ U+2660 \xE2\x99\xA0
224
+ U+2663 \xE2\x99\xA3
225
+ U+2665 \xE2\x99\xA5
226
+ U+2666 \xE2\x99\xA6
227
+ U+2668 \xE2\x99\xA8
228
+ U+267B \xE2\x99\xBB
229
+ U+267F \xE2\x99\xBF
230
+ U+2693 \xE2\x9A\x93
231
+ U+26A0 \xE2\x9A\xA0
232
+ U+26A1 \xE2\x9A\xA1
233
+ U+26AA \xE2\x9A\xAA
234
+ U+26AB \xE2\x9A\xAB
235
+ U+26BD \xE2\x9A\xBD
236
+ U+26BE \xE2\x9A\xBE
237
+ U+26C4 \xE2\x9B\x84
238
+ U+26C5 \xE2\x9B\x85
239
+ U+26CE \xE2\x9B\x8E
240
+ U+26D4 \xE2\x9B\x94
241
+ U+26EA \xE2\x9B\xAA
242
+ U+26F2 \xE2\x9B\xB2
243
+ U+26F3 \xE2\x9B\xB3
244
+ U+26F5 \xE2\x9B\xB5
245
+ U+26FA \xE2\x9B\xBA
246
+ U+26FD \xE2\x9B\xBD
247
+ U+2934 \xE2\xA4\xB4
248
+ U+2935 \xE2\xA4\xB5
249
+ U+2B05 \xE2\xAC\x85
250
+ U+2B06 \xE2\xAC\x86
251
+ U+2B07 \xE2\xAC\x87
252
+ U+2B1B \xE2\xAC\x9B
253
+ U+2B1C \xE2\xAC\x9C
254
+ U+2B50 \xE2\xAD\x90
255
+ U+2B55 \xE2\xAD\x95
256
+ U+3030 \xE3\x80\xB0
257
+ U+303D \xE3\x80\xBD
258
+ U+3297 \xE3\x8A\x97
259
+ U+3299 \xE3\x8A\x99
260
+ U+1F004 \xF0\x9F\x80\x84
261
+ U+1F0CF \xF0\x9F\x83\x8F
262
+ U+1F300 \xF0\x9F\x8C\x80
263
+ U+1F301 \xF0\x9F\x8C\x81
264
+ U+1F302 \xF0\x9F\x8C\x82
265
+ U+1F303 \xF0\x9F\x8C\x83
266
+ U+1F304 \xF0\x9F\x8C\x84
267
+ U+1F305 \xF0\x9F\x8C\x85
268
+ U+1F306 \xF0\x9F\x8C\x86
269
+ U+1F307 \xF0\x9F\x8C\x87
270
+ U+1F308 \xF0\x9F\x8C\x88
271
+ U+1F309 \xF0\x9F\x8C\x89
272
+ U+1F30A \xF0\x9F\x8C\x8A
273
+ U+1F30B \xF0\x9F\x8C\x8B
274
+ U+1F30C \xF0\x9F\x8C\x8C
275
+ U+1F30F \xF0\x9F\x8C\x8F
276
+ U+1F311 \xF0\x9F\x8C\x91
277
+ U+1F313 \xF0\x9F\x8C\x93
278
+ U+1F314 \xF0\x9F\x8C\x94
279
+ U+1F315 \xF0\x9F\x8C\x95
280
+ U+1F319 \xF0\x9F\x8C\x99
281
+ U+1F31B \xF0\x9F\x8C\x9B
282
+ U+1F31F \xF0\x9F\x8C\x9F
283
+ U+1F320 \xF0\x9F\x8C\xA0
284
+ U+1F330 \xF0\x9F\x8C\xB0
285
+ U+1F331 \xF0\x9F\x8C\xB1
286
+ U+1F334 \xF0\x9F\x8C\xB4
287
+ U+1F335 \xF0\x9F\x8C\xB5
288
+ U+1F337 \xF0\x9F\x8C\xB7
289
+ U+1F338 \xF0\x9F\x8C\xB8
290
+ U+1F339 \xF0\x9F\x8C\xB9
291
+ U+1F33A \xF0\x9F\x8C\xBA
292
+ U+1F33B \xF0\x9F\x8C\xBB
293
+ U+1F33C \xF0\x9F\x8C\xBC
294
+ U+1F33D \xF0\x9F\x8C\xBD
295
+ U+1F33E \xF0\x9F\x8C\xBE
296
+ U+1F33F \xF0\x9F\x8C\xBF
297
+ U+1F340 \xF0\x9F\x8D\x80
298
+ U+1F341 \xF0\x9F\x8D\x81
299
+ U+1F342 \xF0\x9F\x8D\x82
300
+ U+1F343 \xF0\x9F\x8D\x83
301
+ U+1F344 \xF0\x9F\x8D\x84
302
+ U+1F345 \xF0\x9F\x8D\x85
303
+ U+1F346 \xF0\x9F\x8D\x86
304
+ U+1F347 \xF0\x9F\x8D\x87
305
+ U+1F348 \xF0\x9F\x8D\x88
306
+ U+1F349 \xF0\x9F\x8D\x89
307
+ U+1F34A \xF0\x9F\x8D\x8A
308
+ U+1F34C \xF0\x9F\x8D\x8C
309
+ U+1F34D \xF0\x9F\x8D\x8D
310
+ U+1F34E \xF0\x9F\x8D\x8E
311
+ U+1F34F \xF0\x9F\x8D\x8F
312
+ U+1F351 \xF0\x9F\x8D\x91
313
+ U+1F352 \xF0\x9F\x8D\x92
314
+ U+1F353 \xF0\x9F\x8D\x93
315
+ U+1F354 \xF0\x9F\x8D\x94
316
+ U+1F355 \xF0\x9F\x8D\x95
317
+ U+1F356 \xF0\x9F\x8D\x96
318
+ U+1F357 \xF0\x9F\x8D\x97
319
+ U+1F358 \xF0\x9F\x8D\x98
320
+ U+1F359 \xF0\x9F\x8D\x99
321
+ U+1F35A \xF0\x9F\x8D\x9A
322
+ U+1F35B \xF0\x9F\x8D\x9B
323
+ U+1F35C \xF0\x9F\x8D\x9C
324
+ U+1F35D \xF0\x9F\x8D\x9D
325
+ U+1F35E \xF0\x9F\x8D\x9E
326
+ U+1F35F \xF0\x9F\x8D\x9F
327
+ U+1F360 \xF0\x9F\x8D\xA0
328
+ U+1F361 \xF0\x9F\x8D\xA1
329
+ U+1F362 \xF0\x9F\x8D\xA2
330
+ U+1F363 \xF0\x9F\x8D\xA3
331
+ U+1F364 \xF0\x9F\x8D\xA4
332
+ U+1F365 \xF0\x9F\x8D\xA5
333
+ U+1F366 \xF0\x9F\x8D\xA6
334
+ U+1F367 \xF0\x9F\x8D\xA7
335
+ U+1F368 \xF0\x9F\x8D\xA8
336
+ U+1F369 \xF0\x9F\x8D\xA9
337
+ U+1F36A \xF0\x9F\x8D\xAA
338
+ U+1F36B \xF0\x9F\x8D\xAB
339
+ U+1F36C \xF0\x9F\x8D\xAC
340
+ U+1F36D \xF0\x9F\x8D\xAD
341
+ U+1F36E \xF0\x9F\x8D\xAE
342
+ U+1F36F \xF0\x9F\x8D\xAF
343
+ U+1F370 \xF0\x9F\x8D\xB0
344
+ U+1F371 \xF0\x9F\x8D\xB1
345
+ U+1F372 \xF0\x9F\x8D\xB2
346
+ U+1F373 \xF0\x9F\x8D\xB3
347
+ U+1F374 \xF0\x9F\x8D\xB4
348
+ U+1F375 \xF0\x9F\x8D\xB5
349
+ U+1F376 \xF0\x9F\x8D\xB6
350
+ U+1F377 \xF0\x9F\x8D\xB7
351
+ U+1F378 \xF0\x9F\x8D\xB8
352
+ U+1F379 \xF0\x9F\x8D\xB9
353
+ U+1F37A \xF0\x9F\x8D\xBA
354
+ U+1F37B \xF0\x9F\x8D\xBB
355
+ U+1F380 \xF0\x9F\x8E\x80
356
+ U+1F381 \xF0\x9F\x8E\x81
357
+ U+1F382 \xF0\x9F\x8E\x82
358
+ U+1F383 \xF0\x9F\x8E\x83
359
+ U+1F384 \xF0\x9F\x8E\x84
360
+ U+1F385 \xF0\x9F\x8E\x85
361
+ U+1F386 \xF0\x9F\x8E\x86
362
+ U+1F387 \xF0\x9F\x8E\x87
363
+ U+1F388 \xF0\x9F\x8E\x88
364
+ U+1F389 \xF0\x9F\x8E\x89
365
+ U+1F38A \xF0\x9F\x8E\x8A
366
+ U+1F38B \xF0\x9F\x8E\x8B
367
+ U+1F38C \xF0\x9F\x8E\x8C
368
+ U+1F38D \xF0\x9F\x8E\x8D
369
+ U+1F38E \xF0\x9F\x8E\x8E
370
+ U+1F38F \xF0\x9F\x8E\x8F
371
+ U+1F390 \xF0\x9F\x8E\x90
372
+ U+1F391 \xF0\x9F\x8E\x91
373
+ U+1F392 \xF0\x9F\x8E\x92
374
+ U+1F393 \xF0\x9F\x8E\x93
375
+ U+1F3A0 \xF0\x9F\x8E\xA0
376
+ U+1F3A1 \xF0\x9F\x8E\xA1
377
+ U+1F3A2 \xF0\x9F\x8E\xA2
378
+ U+1F3A3 \xF0\x9F\x8E\xA3
379
+ U+1F3A4 \xF0\x9F\x8E\xA4
380
+ U+1F3A5 \xF0\x9F\x8E\xA5
381
+ U+1F3A6 \xF0\x9F\x8E\xA6
382
+ U+1F3A7 \xF0\x9F\x8E\xA7
383
+ U+1F3A8 \xF0\x9F\x8E\xA8
384
+ U+1F3A9 \xF0\x9F\x8E\xA9
385
+ U+1F3AA \xF0\x9F\x8E\xAA
386
+ U+1F3AB \xF0\x9F\x8E\xAB
387
+ U+1F3AC \xF0\x9F\x8E\xAC
388
+ U+1F3AD \xF0\x9F\x8E\xAD
389
+ U+1F3AE \xF0\x9F\x8E\xAE
390
+ U+1F3AF \xF0\x9F\x8E\xAF
391
+ U+1F3B0 \xF0\x9F\x8E\xB0
392
+ U+1F3B1 \xF0\x9F\x8E\xB1
393
+ U+1F3B2 \xF0\x9F\x8E\xB2
394
+ U+1F3B3 \xF0\x9F\x8E\xB3
395
+ U+1F3B4 \xF0\x9F\x8E\xB4
396
+ U+1F3B5 \xF0\x9F\x8E\xB5
397
+ U+1F3B6 \xF0\x9F\x8E\xB6
398
+ U+1F3B7 \xF0\x9F\x8E\xB7
399
+ U+1F3B8 \xF0\x9F\x8E\xB8
400
+ U+1F3B9 \xF0\x9F\x8E\xB9
401
+ U+1F3BA \xF0\x9F\x8E\xBA
402
+ U+1F3BB \xF0\x9F\x8E\xBB
403
+ U+1F3BC \xF0\x9F\x8E\xBC
404
+ U+1F3BD \xF0\x9F\x8E\xBD
405
+ U+1F3BE \xF0\x9F\x8E\xBE
406
+ U+1F3BF \xF0\x9F\x8E\xBF
407
+ U+1F3C0 \xF0\x9F\x8F\x80
408
+ U+1F3C1 \xF0\x9F\x8F\x81
409
+ U+1F3C2 \xF0\x9F\x8F\x82
410
+ U+1F3C3 \xF0\x9F\x8F\x83
411
+ U+1F3C4 \xF0\x9F\x8F\x84
412
+ U+1F3C6 \xF0\x9F\x8F\x86
413
+ U+1F3C8 \xF0\x9F\x8F\x88
414
+ U+1F3CA \xF0\x9F\x8F\x8A
415
+ U+1F3E0 \xF0\x9F\x8F\xA0
416
+ U+1F3E1 \xF0\x9F\x8F\xA1
417
+ U+1F3E2 \xF0\x9F\x8F\xA2
418
+ U+1F3E3 \xF0\x9F\x8F\xA3
419
+ U+1F3E5 \xF0\x9F\x8F\xA5
420
+ U+1F3E6 \xF0\x9F\x8F\xA6
421
+ U+1F3E7 \xF0\x9F\x8F\xA7
422
+ U+1F3E8 \xF0\x9F\x8F\xA8
423
+ U+1F3E9 \xF0\x9F\x8F\xA9
424
+ U+1F3EA \xF0\x9F\x8F\xAA
425
+ U+1F3EB \xF0\x9F\x8F\xAB
426
+ U+1F3EC \xF0\x9F\x8F\xAC
427
+ U+1F3ED \xF0\x9F\x8F\xAD
428
+ U+1F3EE \xF0\x9F\x8F\xAE
429
+ U+1F3EF \xF0\x9F\x8F\xAF
430
+ U+1F3F0 \xF0\x9F\x8F\xB0
431
+ U+1F40C \xF0\x9F\x90\x8C
432
+ U+1F40D \xF0\x9F\x90\x8D
433
+ U+1F40E \xF0\x9F\x90\x8E
434
+ U+1F411 \xF0\x9F\x90\x91
435
+ U+1F412 \xF0\x9F\x90\x92
436
+ U+1F414 \xF0\x9F\x90\x94
437
+ U+1F417 \xF0\x9F\x90\x97
438
+ U+1F418 \xF0\x9F\x90\x98
439
+ U+1F419 \xF0\x9F\x90\x99
440
+ U+1F41A \xF0\x9F\x90\x9A
441
+ U+1F41B \xF0\x9F\x90\x9B
442
+ U+1F41C \xF0\x9F\x90\x9C
443
+ U+1F41D \xF0\x9F\x90\x9D
444
+ U+1F41E \xF0\x9F\x90\x9E
445
+ U+1F41F \xF0\x9F\x90\x9F
446
+ U+1F420 \xF0\x9F\x90\xA0
447
+ U+1F421 \xF0\x9F\x90\xA1
448
+ U+1F422 \xF0\x9F\x90\xA2
449
+ U+1F423 \xF0\x9F\x90\xA3
450
+ U+1F424 \xF0\x9F\x90\xA4
451
+ U+1F425 \xF0\x9F\x90\xA5
452
+ U+1F426 \xF0\x9F\x90\xA6
453
+ U+1F427 \xF0\x9F\x90\xA7
454
+ U+1F428 \xF0\x9F\x90\xA8
455
+ U+1F429 \xF0\x9F\x90\xA9
456
+ U+1F42B \xF0\x9F\x90\xAB
457
+ U+1F42C \xF0\x9F\x90\xAC
458
+ U+1F42D \xF0\x9F\x90\xAD
459
+ U+1F42E \xF0\x9F\x90\xAE
460
+ U+1F42F \xF0\x9F\x90\xAF
461
+ U+1F430 \xF0\x9F\x90\xB0
462
+ U+1F431 \xF0\x9F\x90\xB1
463
+ U+1F432 \xF0\x9F\x90\xB2
464
+ U+1F433 \xF0\x9F\x90\xB3
465
+ U+1F434 \xF0\x9F\x90\xB4
466
+ U+1F435 \xF0\x9F\x90\xB5
467
+ U+1F436 \xF0\x9F\x90\xB6
468
+ U+1F437 \xF0\x9F\x90\xB7
469
+ U+1F438 \xF0\x9F\x90\xB8
470
+ U+1F439 \xF0\x9F\x90\xB9
471
+ U+1F43A \xF0\x9F\x90\xBA
472
+ U+1F43B \xF0\x9F\x90\xBB
473
+ U+1F43C \xF0\x9F\x90\xBC
474
+ U+1F43D \xF0\x9F\x90\xBD
475
+ U+1F43E \xF0\x9F\x90\xBE
476
+ U+1F440 \xF0\x9F\x91\x80
477
+ U+1F442 \xF0\x9F\x91\x82
478
+ U+1F443 \xF0\x9F\x91\x83
479
+ U+1F444 \xF0\x9F\x91\x84
480
+ U+1F445 \xF0\x9F\x91\x85
481
+ U+1F446 \xF0\x9F\x91\x86
482
+ U+1F447 \xF0\x9F\x91\x87
483
+ U+1F448 \xF0\x9F\x91\x88
484
+ U+1F449 \xF0\x9F\x91\x89
485
+ U+1F44A \xF0\x9F\x91\x8A
486
+ U+1F44B \xF0\x9F\x91\x8B
487
+ U+1F44C \xF0\x9F\x91\x8C
488
+ U+1F44D \xF0\x9F\x91\x8D
489
+ U+1F44E \xF0\x9F\x91\x8E
490
+ U+1F44F \xF0\x9F\x91\x8F
491
+ U+1F450 \xF0\x9F\x91\x90
492
+ U+1F451 \xF0\x9F\x91\x91
493
+ U+1F452 \xF0\x9F\x91\x92
494
+ U+1F453 \xF0\x9F\x91\x93
495
+ U+1F454 \xF0\x9F\x91\x94
496
+ U+1F455 \xF0\x9F\x91\x95
497
+ U+1F456 \xF0\x9F\x91\x96
498
+ U+1F457 \xF0\x9F\x91\x97
499
+ U+1F458 \xF0\x9F\x91\x98
500
+ U+1F459 \xF0\x9F\x91\x99
501
+ U+1F45A \xF0\x9F\x91\x9A
502
+ U+1F45B \xF0\x9F\x91\x9B
503
+ U+1F45C \xF0\x9F\x91\x9C
504
+ U+1F45D \xF0\x9F\x91\x9D
505
+ U+1F45E \xF0\x9F\x91\x9E
506
+ U+1F45F \xF0\x9F\x91\x9F
507
+ U+1F460 \xF0\x9F\x91\xA0
508
+ U+1F461 \xF0\x9F\x91\xA1
509
+ U+1F462 \xF0\x9F\x91\xA2
510
+ U+1F463 \xF0\x9F\x91\xA3
511
+ U+1F464 \xF0\x9F\x91\xA4
512
+ U+1F466 \xF0\x9F\x91\xA6
513
+ U+1F467 \xF0\x9F\x91\xA7
514
+ U+1F468 \xF0\x9F\x91\xA8
515
+ U+1F469 \xF0\x9F\x91\xA9
516
+ U+1F46A \xF0\x9F\x91\xAA
517
+ U+1F46B \xF0\x9F\x91\xAB
518
+ U+1F46E \xF0\x9F\x91\xAE
519
+ U+1F46F \xF0\x9F\x91\xAF
520
+ U+1F470 \xF0\x9F\x91\xB0
521
+ U+1F471 \xF0\x9F\x91\xB1
522
+ U+1F472 \xF0\x9F\x91\xB2
523
+ U+1F473 \xF0\x9F\x91\xB3
524
+ U+1F474 \xF0\x9F\x91\xB4
525
+ U+1F475 \xF0\x9F\x91\xB5
526
+ U+1F476 \xF0\x9F\x91\xB6
527
+ U+1F477 \xF0\x9F\x91\xB7
528
+ U+1F478 \xF0\x9F\x91\xB8
529
+ U+1F479 \xF0\x9F\x91\xB9
530
+ U+1F47A \xF0\x9F\x91\xBA
531
+ U+1F47B \xF0\x9F\x91\xBB
532
+ U+1F47C \xF0\x9F\x91\xBC
533
+ U+1F47D \xF0\x9F\x91\xBD
534
+ U+1F47E \xF0\x9F\x91\xBE
535
+ U+1F47F \xF0\x9F\x91\xBF
536
+ U+1F480 \xF0\x9F\x92\x80
537
+ U+1F481 \xF0\x9F\x92\x81
538
+ U+1F482 \xF0\x9F\x92\x82
539
+ U+1F483 \xF0\x9F\x92\x83
540
+ U+1F484 \xF0\x9F\x92\x84
541
+ U+1F485 \xF0\x9F\x92\x85
542
+ U+1F486 \xF0\x9F\x92\x86
543
+ U+1F487 \xF0\x9F\x92\x87
544
+ U+1F488 \xF0\x9F\x92\x88
545
+ U+1F489 \xF0\x9F\x92\x89
546
+ U+1F48A \xF0\x9F\x92\x8A
547
+ U+1F48B \xF0\x9F\x92\x8B
548
+ U+1F48C \xF0\x9F\x92\x8C
549
+ U+1F48D \xF0\x9F\x92\x8D
550
+ U+1F48E \xF0\x9F\x92\x8E
551
+ U+1F48F \xF0\x9F\x92\x8F
552
+ U+1F490 \xF0\x9F\x92\x90
553
+ U+1F491 \xF0\x9F\x92\x91
554
+ U+1F492 \xF0\x9F\x92\x92
555
+ U+1F493 \xF0\x9F\x92\x93
556
+ U+1F494 \xF0\x9F\x92\x94
557
+ U+1F495 \xF0\x9F\x92\x95
558
+ U+1F496 \xF0\x9F\x92\x96
559
+ U+1F497 \xF0\x9F\x92\x97
560
+ U+1F498 \xF0\x9F\x92\x98
561
+ U+1F499 \xF0\x9F\x92\x99
562
+ U+1F49A \xF0\x9F\x92\x9A
563
+ U+1F49B \xF0\x9F\x92\x9B
564
+ U+1F49C \xF0\x9F\x92\x9C
565
+ U+1F49D \xF0\x9F\x92\x9D
566
+ U+1F49E \xF0\x9F\x92\x9E
567
+ U+1F49F \xF0\x9F\x92\x9F
568
+ U+1F4A0 \xF0\x9F\x92\xA0
569
+ U+1F4A1 \xF0\x9F\x92\xA1
570
+ U+1F4A2 \xF0\x9F\x92\xA2
571
+ U+1F4A3 \xF0\x9F\x92\xA3
572
+ U+1F4A4 \xF0\x9F\x92\xA4
573
+ U+1F4A5 \xF0\x9F\x92\xA5
574
+ U+1F4A6 \xF0\x9F\x92\xA6
575
+ U+1F4A7 \xF0\x9F\x92\xA7
576
+ U+1F4A8 \xF0\x9F\x92\xA8
577
+ U+1F4A9 \xF0\x9F\x92\xA9
578
+ U+1F4AA \xF0\x9F\x92\xAA
579
+ U+1F4AB \xF0\x9F\x92\xAB
580
+ U+1F4AC \xF0\x9F\x92\xAC
581
+ U+1F4AE \xF0\x9F\x92\xAE
582
+ U+1F4AF \xF0\x9F\x92\xAF
583
+ U+1F4B0 \xF0\x9F\x92\xB0
584
+ U+1F4B1 \xF0\x9F\x92\xB1
585
+ U+1F4B2 \xF0\x9F\x92\xB2
586
+ U+1F4B3 \xF0\x9F\x92\xB3
587
+ U+1F4B4 \xF0\x9F\x92\xB4
588
+ U+1F4B5 \xF0\x9F\x92\xB5
589
+ U+1F4B8 \xF0\x9F\x92\xB8
590
+ U+1F4B9 \xF0\x9F\x92\xB9
591
+ U+1F4BA \xF0\x9F\x92\xBA
592
+ U+1F4BB \xF0\x9F\x92\xBB
593
+ U+1F4BC \xF0\x9F\x92\xBC
594
+ U+1F4BD \xF0\x9F\x92\xBD
595
+ U+1F4BE \xF0\x9F\x92\xBE
596
+ U+1F4BF \xF0\x9F\x92\xBF
597
+ U+1F4C0 \xF0\x9F\x93\x80
598
+ U+1F4C1 \xF0\x9F\x93\x81
599
+ U+1F4C2 \xF0\x9F\x93\x82
600
+ U+1F4C3 \xF0\x9F\x93\x83
601
+ U+1F4C4 \xF0\x9F\x93\x84
602
+ U+1F4C5 \xF0\x9F\x93\x85
603
+ U+1F4C6 \xF0\x9F\x93\x86
604
+ U+1F4C7 \xF0\x9F\x93\x87
605
+ U+1F4C8 \xF0\x9F\x93\x88
606
+ U+1F4C9 \xF0\x9F\x93\x89
607
+ U+1F4CA \xF0\x9F\x93\x8A
608
+ U+1F4CB \xF0\x9F\x93\x8B
609
+ U+1F4CC \xF0\x9F\x93\x8C
610
+ U+1F4CD \xF0\x9F\x93\x8D
611
+ U+1F4CE \xF0\x9F\x93\x8E
612
+ U+1F4CF \xF0\x9F\x93\x8F
613
+ U+1F4D0 \xF0\x9F\x93\x90
614
+ U+1F4D1 \xF0\x9F\x93\x91
615
+ U+1F4D2 \xF0\x9F\x93\x92
616
+ U+1F4D3 \xF0\x9F\x93\x93
617
+ U+1F4D4 \xF0\x9F\x93\x94
618
+ U+1F4D5 \xF0\x9F\x93\x95
619
+ U+1F4D6 \xF0\x9F\x93\x96
620
+ U+1F4D7 \xF0\x9F\x93\x97
621
+ U+1F4D8 \xF0\x9F\x93\x98
622
+ U+1F4D9 \xF0\x9F\x93\x99
623
+ U+1F4DA \xF0\x9F\x93\x9A
624
+ U+1F4DB \xF0\x9F\x93\x9B
625
+ U+1F4DC \xF0\x9F\x93\x9C
626
+ U+1F4DD \xF0\x9F\x93\x9D
627
+ U+1F4DE \xF0\x9F\x93\x9E
628
+ U+1F4DF \xF0\x9F\x93\x9F
629
+ U+1F4E0 \xF0\x9F\x93\xA0
630
+ U+1F4E1 \xF0\x9F\x93\xA1
631
+ U+1F4E2 \xF0\x9F\x93\xA2
632
+ U+1F4E3 \xF0\x9F\x93\xA3
633
+ U+1F4E4 \xF0\x9F\x93\xA4
634
+ U+1F4E5 \xF0\x9F\x93\xA5
635
+ U+1F4E6 \xF0\x9F\x93\xA6
636
+ U+1F4E7 \xF0\x9F\x93\xA7
637
+ U+1F4E8 \xF0\x9F\x93\xA8
638
+ U+1F4E9 \xF0\x9F\x93\xA9
639
+ U+1F4EA \xF0\x9F\x93\xAA
640
+ U+1F4EB \xF0\x9F\x93\xAB
641
+ U+1F4EE \xF0\x9F\x93\xAE
642
+ U+1F4F0 \xF0\x9F\x93\xB0
643
+ U+1F4F1 \xF0\x9F\x93\xB1
644
+ U+1F4F2 \xF0\x9F\x93\xB2
645
+ U+1F4F3 \xF0\x9F\x93\xB3
646
+ U+1F4F4 \xF0\x9F\x93\xB4
647
+ U+1F4F6 \xF0\x9F\x93\xB6
648
+ U+1F4F7 \xF0\x9F\x93\xB7
649
+ U+1F4F9 \xF0\x9F\x93\xB9
650
+ U+1F4FA \xF0\x9F\x93\xBA
651
+ U+1F4FB \xF0\x9F\x93\xBB
652
+ U+1F4FC \xF0\x9F\x93\xBC
653
+ U+1F503 \xF0\x9F\x94\x83
654
+ U+1F50A \xF0\x9F\x94\x8A
655
+ U+1F50B \xF0\x9F\x94\x8B
656
+ U+1F50C \xF0\x9F\x94\x8C
657
+ U+1F50D \xF0\x9F\x94\x8D
658
+ U+1F50E \xF0\x9F\x94\x8E
659
+ U+1F50F \xF0\x9F\x94\x8F
660
+ U+1F510 \xF0\x9F\x94\x90
661
+ U+1F511 \xF0\x9F\x94\x91
662
+ U+1F512 \xF0\x9F\x94\x92
663
+ U+1F513 \xF0\x9F\x94\x93
664
+ U+1F514 \xF0\x9F\x94\x94
665
+ U+1F516 \xF0\x9F\x94\x96
666
+ U+1F517 \xF0\x9F\x94\x97
667
+ U+1F518 \xF0\x9F\x94\x98
668
+ U+1F519 \xF0\x9F\x94\x99
669
+ U+1F51A \xF0\x9F\x94\x9A
670
+ U+1F51B \xF0\x9F\x94\x9B
671
+ U+1F51C \xF0\x9F\x94\x9C
672
+ U+1F51D \xF0\x9F\x94\x9D
673
+ U+1F51E \xF0\x9F\x94\x9E
674
+ U+1F51F \xF0\x9F\x94\x9F
675
+ U+1F520 \xF0\x9F\x94\xA0
676
+ U+1F521 \xF0\x9F\x94\xA1
677
+ U+1F522 \xF0\x9F\x94\xA2
678
+ U+1F523 \xF0\x9F\x94\xA3
679
+ U+1F524 \xF0\x9F\x94\xA4
680
+ U+1F525 \xF0\x9F\x94\xA5
681
+ U+1F526 \xF0\x9F\x94\xA6
682
+ U+1F527 \xF0\x9F\x94\xA7
683
+ U+1F528 \xF0\x9F\x94\xA8
684
+ U+1F529 \xF0\x9F\x94\xA9
685
+ U+1F52A \xF0\x9F\x94\xAA
686
+ U+1F52B \xF0\x9F\x94\xAB
687
+ U+1F52E \xF0\x9F\x94\xAE
688
+ U+1F52F \xF0\x9F\x94\xAF
689
+ U+1F530 \xF0\x9F\x94\xB0
690
+ U+1F531 \xF0\x9F\x94\xB1
691
+ U+1F532 \xF0\x9F\x94\xB2
692
+ U+1F533 \xF0\x9F\x94\xB3
693
+ U+1F534 \xF0\x9F\x94\xB4
694
+ U+1F535 \xF0\x9F\x94\xB5
695
+ U+1F536 \xF0\x9F\x94\xB6
696
+ U+1F537 \xF0\x9F\x94\xB7
697
+ U+1F538 \xF0\x9F\x94\xB8
698
+ U+1F539 \xF0\x9F\x94\xB9
699
+ U+1F53A \xF0\x9F\x94\xBA
700
+ U+1F53B \xF0\x9F\x94\xBB
701
+ U+1F53C \xF0\x9F\x94\xBC
702
+ U+1F53D \xF0\x9F\x94\xBD
703
+ U+1F550 \xF0\x9F\x95\x90
704
+ U+1F551 \xF0\x9F\x95\x91
705
+ U+1F552 \xF0\x9F\x95\x92
706
+ U+1F553 \xF0\x9F\x95\x93
707
+ U+1F554 \xF0\x9F\x95\x94
708
+ U+1F555 \xF0\x9F\x95\x95
709
+ U+1F556 \xF0\x9F\x95\x96
710
+ U+1F557 \xF0\x9F\x95\x97
711
+ U+1F558 \xF0\x9F\x95\x98
712
+ U+1F559 \xF0\x9F\x95\x99
713
+ U+1F55A \xF0\x9F\x95\x9A
714
+ U+1F55B \xF0\x9F\x95\x9B
715
+ U+1F5FB \xF0\x9F\x97\xBB
716
+ U+1F5FC \xF0\x9F\x97\xBC
717
+ U+1F5FD \xF0\x9F\x97\xBD
718
+ U+1F5FE \xF0\x9F\x97\xBE
719
+ U+1F5FF \xF0\x9F\x97\xBF
720
+ U+1F600 \xF0\x9F\x98\x80
721
+ U+1F607 \xF0\x9F\x98\x87
722
+ U+1F608 \xF0\x9F\x98\x88
723
+ U+1F60E \xF0\x9F\x98\x8E
724
+ U+1F610 \xF0\x9F\x98\x90
725
+ U+1F611 \xF0\x9F\x98\x91
726
+ U+1F615 \xF0\x9F\x98\x95
727
+ U+1F617 \xF0\x9F\x98\x97
728
+ U+1F619 \xF0\x9F\x98\x99
729
+ U+1F61B \xF0\x9F\x98\x9B
730
+ U+1F61F \xF0\x9F\x98\x9F
731
+ U+1F626 \xF0\x9F\x98\xA6
732
+ U+1F627 \xF0\x9F\x98\xA7
733
+ U+1F62C \xF0\x9F\x98\xAC
734
+ U+1F62E \xF0\x9F\x98\xAE
735
+ U+1F62F \xF0\x9F\x98\xAF
736
+ U+1F634 \xF0\x9F\x98\xB4
737
+ U+1F636 \xF0\x9F\x98\xB6
738
+ U+1F681 \xF0\x9F\x9A\x81
739
+ U+1F682 \xF0\x9F\x9A\x82
740
+ U+1F686 \xF0\x9F\x9A\x86
741
+ U+1F688 \xF0\x9F\x9A\x88
742
+ U+1F68A \xF0\x9F\x9A\x8A
743
+ U+1F68D \xF0\x9F\x9A\x8D
744
+ U+1F68E \xF0\x9F\x9A\x8E
745
+ U+1F690 \xF0\x9F\x9A\x90
746
+ U+1F694 \xF0\x9F\x9A\x94
747
+ U+1F696 \xF0\x9F\x9A\x96
748
+ U+1F698 \xF0\x9F\x9A\x98
749
+ U+1F69B \xF0\x9F\x9A\x9B
750
+ U+1F69C \xF0\x9F\x9A\x9C
751
+ U+1F69D \xF0\x9F\x9A\x9D
752
+ U+1F69E \xF0\x9F\x9A\x9E
753
+ U+1F69F \xF0\x9F\x9A\x9F
754
+ U+1F6A0 \xF0\x9F\x9A\xA0
755
+ U+1F6A1 \xF0\x9F\x9A\xA1
756
+ U+1F6A3 \xF0\x9F\x9A\xA3
757
+ U+1F6A6 \xF0\x9F\x9A\xA6
758
+ U+1F6AE \xF0\x9F\x9A\xAE
759
+ U+1F6AF \xF0\x9F\x9A\xAF
760
+ U+1F6B0 \xF0\x9F\x9A\xB0
761
+ U+1F6B1 \xF0\x9F\x9A\xB1
762
+ U+1F6B3 \xF0\x9F\x9A\xB3
763
+ U+1F6B4 \xF0\x9F\x9A\xB4
764
+ U+1F6B5 \xF0\x9F\x9A\xB5
765
+ U+1F6B7 \xF0\x9F\x9A\xB7
766
+ U+1F6B8 \xF0\x9F\x9A\xB8
767
+ U+1F6BF \xF0\x9F\x9A\xBF
768
+ U+1F6C1 \xF0\x9F\x9B\x81
769
+ U+1F6C2 \xF0\x9F\x9B\x82
770
+ U+1F6C3 \xF0\x9F\x9B\x83
771
+ U+1F6C4 \xF0\x9F\x9B\x84
772
+ U+1F6C5 \xF0\x9F\x9B\x85
773
+ U+1F30D \xF0\x9F\x8C\x8D
774
+ U+1F30E \xF0\x9F\x8C\x8E
775
+ U+1F310 \xF0\x9F\x8C\x90
776
+ U+1F312 \xF0\x9F\x8C\x92
777
+ U+1F316 \xF0\x9F\x8C\x96
778
+ U+1F317 \xF0\x9F\x8C\x97
779
+ U+1F318 \xF0\x9F\x8C\x98
780
+ U+1F31A \xF0\x9F\x8C\x9A
781
+ U+1F31C \xF0\x9F\x8C\x9C
782
+ U+1F31D \xF0\x9F\x8C\x9D
783
+ U+1F31E \xF0\x9F\x8C\x9E
784
+ U+1F332 \xF0\x9F\x8C\xB2
785
+ U+1F333 \xF0\x9F\x8C\xB3
786
+ U+1F34B \xF0\x9F\x8D\x8B
787
+ U+1F350 \xF0\x9F\x8D\x90
788
+ U+1F37C \xF0\x9F\x8D\xBC
789
+ U+1F3C7 \xF0\x9F\x8F\x87
790
+ U+1F3C9 \xF0\x9F\x8F\x89
791
+ U+1F3E4 \xF0\x9F\x8F\xA4
792
+ U+1F400 \xF0\x9F\x90\x80
793
+ U+1F401 \xF0\x9F\x90\x81
794
+ U+1F402 \xF0\x9F\x90\x82
795
+ U+1F403 \xF0\x9F\x90\x83
796
+ U+1F404 \xF0\x9F\x90\x84
797
+ U+1F405 \xF0\x9F\x90\x85
798
+ U+1F406 \xF0\x9F\x90\x86
799
+ U+1F407 \xF0\x9F\x90\x87
800
+ U+1F408 \xF0\x9F\x90\x88
801
+ U+1F409 \xF0\x9F\x90\x89
802
+ U+1F40A \xF0\x9F\x90\x8A
803
+ U+1F40B \xF0\x9F\x90\x8B
804
+ U+1F40F \xF0\x9F\x90\x8F
805
+ U+1F410 \xF0\x9F\x90\x90
806
+ U+1F413 \xF0\x9F\x90\x93
807
+ U+1F415 \xF0\x9F\x90\x95
808
+ U+1F416 \xF0\x9F\x90\x96
809
+ U+1F42A \xF0\x9F\x90\xAA
810
+ U+1F465 \xF0\x9F\x91\xA5
811
+ U+1F46C \xF0\x9F\x91\xAC
812
+ U+1F46D \xF0\x9F\x91\xAD
813
+ U+1F4AD \xF0\x9F\x92\xAD
814
+ U+1F4B6 \xF0\x9F\x92\xB6
815
+ U+1F4B7 \xF0\x9F\x92\xB7
816
+ U+1F4EC \xF0\x9F\x93\xAC
817
+ U+1F4ED \xF0\x9F\x93\xAD
818
+ U+1F4EF \xF0\x9F\x93\xAF
819
+ U+1F4F5 \xF0\x9F\x93\xB5
820
+ U+1F500 \xF0\x9F\x94\x80
821
+ U+1F501 \xF0\x9F\x94\x81
822
+ U+1F502 \xF0\x9F\x94\x82
823
+ U+1F504 \xF0\x9F\x94\x84
824
+ U+1F505 \xF0\x9F\x94\x85
825
+ U+1F506 \xF0\x9F\x94\x86
826
+ U+1F507 \xF0\x9F\x94\x87
827
+ U+1F509 \xF0\x9F\x94\x89
828
+ U+1F515 \xF0\x9F\x94\x95
829
+ U+1F52C \xF0\x9F\x94\xAC
830
+ U+1F52D \xF0\x9F\x94\xAD
831
+ U+1F55C \xF0\x9F\x95\x9C
832
+ U+1F55D \xF0\x9F\x95\x9D
833
+ U+1F55E \xF0\x9F\x95\x9E
834
+ U+1F55F \xF0\x9F\x95\x9F
835
+ U+1F560 \xF0\x9F\x95\xA0
836
+ U+1F561 \xF0\x9F\x95\xA1
837
+ U+1F562 \xF0\x9F\x95\xA2
838
+ U+1F563 \xF0\x9F\x95\xA3
839
+ U+1F564 \xF0\x9F\x95\xA4
840
+ U+1F565 \xF0\x9F\x95\xA5
841
+ U+1F566 \xF0\x9F\x95\xA6
842
+ U+1F567 \xF0\x9F\x95\xA7
data/emojimmy.gemspec ADDED
@@ -0,0 +1,25 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'emojimmy/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = 'emojimmy'
8
+ spec.version = Emojimmy::VERSION
9
+ spec.authors = ['Rémi Prévost']
10
+ spec.email = ['rprevost@mirego.com']
11
+ spec.description = 'Emojimmy makes it possible to store emoji characters in datastore that don’t support 4-Byte UTF-8 Unicode encoding.'
12
+ spec.summary = spec.description
13
+ spec.homepage = 'http://open.mirego.com/emojimmy'
14
+ spec.license = 'BSD 3-Clause'
15
+
16
+ spec.files = `git ls-files`.split($/)
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ['lib']
20
+
21
+ spec.add_development_dependency 'bundler'
22
+ spec.add_development_dependency 'rake'
23
+ spec.add_development_dependency 'rspec'
24
+ spec.add_development_dependency 'coveralls'
25
+ end
@@ -0,0 +1,5 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec path: '../'
4
+
5
+ gem 'activerecord', '~> 3.2.0'
@@ -0,0 +1,5 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec path: '../'
4
+
5
+ gem 'activerecord', '~> 4.0.0'
@@ -0,0 +1,3 @@
1
+ module Emojimmy
2
+ VERSION = '0.1'
3
+ end
data/lib/emojimmy.rb ADDED
@@ -0,0 +1,37 @@
1
+ require 'emojimmy/version'
2
+
3
+ module Emojimmy
4
+ # Load emoji data from config/emoji.txt and build the `text_to_emoji`
5
+ # and `emoji_to_text` hash tables
6
+ def self.initialize!
7
+ emoji = File.read(File.expand_path('../../data/emoji.txt', __FILE__)).each_line.to_a
8
+
9
+ @text_to_emoji = emoji.inject({}) do |memo, item|
10
+ item = item.chomp.split("\t")
11
+ memo.merge "{#{item[0]}}" => eval('"' + item[1] + '"')
12
+ end
13
+
14
+ @emoji_to_text = emoji.inject({}) do |memo, item|
15
+ item = item.chomp.split("\t")
16
+ memo.merge eval('"' + item[1] + '"') => "{#{item[0]}}"
17
+ end
18
+ end
19
+
20
+ # Loop through all emoji and replace them with
21
+ # their matching text equivalent
22
+ def self.emoji_to_text(content)
23
+ @emoji_to_text.each_pair do |emoji, text|
24
+ content = content.gsub(emoji, text)
25
+ end
26
+
27
+ content
28
+ end
29
+
30
+ # Loop through each {U+...} part in the string and
31
+ # convert it to the matching emoji
32
+ def self.text_to_emoji(content)
33
+ content.gsub /({U\+[^}]+})/ do |data|
34
+ @text_to_emoji[data]
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,21 @@
1
+ require 'spec_helper'
2
+
3
+ describe Emojimmy do
4
+ describe :text_to_emoji do
5
+ let(:stored_comment) { 'Hello {U+1F601}{U+1F601} you {U+1F608} {U+1F438}!' }
6
+ let(:returned_comment) { 'Hello 😁😁 you 😈 🐸!' }
7
+
8
+ specify do
9
+ expect(Emojimmy.text_to_emoji(stored_comment)).to eql returned_comment
10
+ end
11
+ end
12
+
13
+ describe :emoji_to_text do
14
+ let(:received_comment) { 'Hello 😁😁 you 😈 🐸!' }
15
+ let(:stored_comment) { 'Hello {U+1F601}{U+1F601} you {U+1F608} {U+1F438}!' }
16
+
17
+ specify do
18
+ expect(Emojimmy.emoji_to_text(received_comment)).to eql stored_comment
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,13 @@
1
+ $:.unshift File.expand_path('../lib', __FILE__)
2
+
3
+ require 'coveralls'
4
+ Coveralls.wear!
5
+
6
+ require 'rspec'
7
+ require 'emojimmy'
8
+
9
+ RSpec.configure do |config|
10
+ config.before :suite do
11
+ Emojimmy.initialize!
12
+ end
13
+ end
metadata ADDED
@@ -0,0 +1,118 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: emojimmy
3
+ version: !ruby/object:Gem::Version
4
+ version: '0.1'
5
+ platform: ruby
6
+ authors:
7
+ - Rémi Prévost
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-10-26 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: coveralls
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ description: Emojimmy makes it possible to store emoji characters in datastore that
70
+ don’t support 4-Byte UTF-8 Unicode encoding.
71
+ email:
72
+ - rprevost@mirego.com
73
+ executables: []
74
+ extensions: []
75
+ extra_rdoc_files: []
76
+ files:
77
+ - .gitignore
78
+ - .travis.yml
79
+ - Gemfile
80
+ - LICENSE.md
81
+ - README.md
82
+ - Rakefile
83
+ - data/emoji.txt
84
+ - emojimmy.gemspec
85
+ - gemfiles/Gemfile.activerecord-3.2.x
86
+ - gemfiles/Gemfile.activerecord-4.0
87
+ - lib/emojimmy.rb
88
+ - lib/emojimmy/version.rb
89
+ - spec/emojimmy_spec.rb
90
+ - spec/spec_helper.rb
91
+ homepage: http://open.mirego.com/emojimmy
92
+ licenses:
93
+ - BSD 3-Clause
94
+ metadata: {}
95
+ post_install_message:
96
+ rdoc_options: []
97
+ require_paths:
98
+ - lib
99
+ required_ruby_version: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - '>='
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ required_rubygems_version: !ruby/object:Gem::Requirement
105
+ requirements:
106
+ - - '>='
107
+ - !ruby/object:Gem::Version
108
+ version: '0'
109
+ requirements: []
110
+ rubyforge_project:
111
+ rubygems_version: 2.1.0
112
+ signing_key:
113
+ specification_version: 4
114
+ summary: Emojimmy makes it possible to store emoji characters in datastore that don’t
115
+ support 4-Byte UTF-8 Unicode encoding.
116
+ test_files:
117
+ - spec/emojimmy_spec.rb
118
+ - spec/spec_helper.rb