emojimmy 0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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