rack-ketai 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (44) hide show
  1. data/.gitignore +1 -0
  2. data/MIT-LICENSE +21 -0
  3. data/README.rdoc +122 -0
  4. data/VERSION +1 -0
  5. data/lib/rack/ketai/carrier/abstract.rb +263 -0
  6. data/lib/rack/ketai/carrier/au.rb +153 -0
  7. data/lib/rack/ketai/carrier/cidrs/au.rb +32 -0
  8. data/lib/rack/ketai/carrier/cidrs/docomo.rb +14 -0
  9. data/lib/rack/ketai/carrier/cidrs/softbank.rb +10 -0
  10. data/lib/rack/ketai/carrier/docomo.rb +157 -0
  11. data/lib/rack/ketai/carrier/emoji/ausjisstrtoemojiid.rb +1391 -0
  12. data/lib/rack/ketai/carrier/emoji/docomosjisstrtoemojiid.rb +759 -0
  13. data/lib/rack/ketai/carrier/emoji/emojidata.rb +836 -0
  14. data/lib/rack/ketai/carrier/emoji/emojiidtotypecast.rb +432 -0
  15. data/lib/rack/ketai/carrier/emoji/softbankutf8strtoemojiid.rb +1119 -0
  16. data/lib/rack/ketai/carrier/emoji/softbankwebcodetoutf8str.rb +499 -0
  17. data/lib/rack/ketai/carrier/general.rb +75 -0
  18. data/lib/rack/ketai/carrier/iphone.rb +16 -0
  19. data/lib/rack/ketai/carrier/softbank.rb +144 -0
  20. data/lib/rack/ketai/carrier/specs/au.rb +1 -0
  21. data/lib/rack/ketai/carrier/specs/docomo.rb +1 -0
  22. data/lib/rack/ketai/carrier/specs/softbank.rb +1 -0
  23. data/lib/rack/ketai/carrier.rb +18 -0
  24. data/lib/rack/ketai/display.rb +16 -0
  25. data/lib/rack/ketai/middleware.rb +36 -0
  26. data/lib/rack/ketai.rb +12 -0
  27. data/spec/spec_helper.rb +11 -0
  28. data/spec/unit/au_filter_spec.rb +96 -0
  29. data/spec/unit/au_spec.rb +240 -0
  30. data/spec/unit/carrier_spec.rb +30 -0
  31. data/spec/unit/display_spec.rb +25 -0
  32. data/spec/unit/docomo_filter_spec.rb +106 -0
  33. data/spec/unit/docomo_spec.rb +344 -0
  34. data/spec/unit/emoticon_filter_spec.rb +91 -0
  35. data/spec/unit/filter_spec.rb +38 -0
  36. data/spec/unit/iphone_spec.rb +16 -0
  37. data/spec/unit/middleware_spec.rb +38 -0
  38. data/spec/unit/softbank_filter_spec.rb +133 -0
  39. data/spec/unit/softbank_spec.rb +200 -0
  40. data/spec/unit/valid_addr_spec.rb +86 -0
  41. data/test/spec_runner.rb +29 -0
  42. data/tools/generate_emoji_dic.rb +434 -0
  43. data/tools/update_speclist.rb +87 -0
  44. metadata +138 -0
@@ -0,0 +1,1119 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ # Softbank-UTF8バイナリとemoji4unicodeのIDとのマッピング
4
+
5
+ # format("0x%03X", Rack::Ketai::Carrier::Softbank::Filter::EMOJI_TO_EMOJIID[[0xE001].pack('U*')])
6
+ # => "0x19B" (男の子: Unicode E001)
7
+ # format("0x%03X", Rack::Ketai::Carrier::Softbank::Filter::EMOJI_TO_EMOJIID[[0xE04A, 0xE049].pack('U*')])
8
+ # => "0x00F" (晴れときどきくもり = 晴れ+くもり : U+E04A+U+E049)
9
+
10
+ module Rack
11
+ module Ketai
12
+ module Carrier
13
+ class Softbank
14
+ class Filter
15
+ EMOJI_TO_EMOJIID = {
16
+ "" => 0xB0E,
17
+ "" => 0x820,
18
+ "" => 0xB9A,
19
+ "" => 0xB69,
20
+ "" => 0x51C,
21
+ "" => 0xB0C,
22
+ "" => 0x81F,
23
+ "" => 0xB99,
24
+ "" => 0xB57,
25
+ "" => 0x51B,
26
+ "" => 0x4B8,
27
+ "" => 0x01F,
28
+ "" => 0x82A,
29
+ "" => 0x1B1,
30
+ "" => 0xB9C,
31
+ "" => 0xB0B,
32
+ "" => 0x01E,
33
+ "" => 0x81C,
34
+ "" => 0xB9B,
35
+ "" => 0xB0A,
36
+ "" => 0x007,
37
+ "" => 0x805,
38
+ "" => 0x971,
39
+ "" => 0x021,
40
+ "" => 0x964,
41
+ "" => 0x80B,
42
+ "" => 0xAF9,
43
+ "" => 0x331,
44
+ "" => 0x804,
45
+ "" => 0x038,
46
+ "" => 0x984,
47
+ "" => 0x020,
48
+ "" => 0x81B,
49
+ "" => 0xAF8,
50
+ "" => 0x4BE,
51
+ "" => 0x023,
52
+ "" => 0x967,
53
+ "" => 0x4E0,
54
+ "" => 0xAFB,
55
+ "" => 0x1C6,
56
+ "" => 0x4BD,
57
+ "" => 0x022,
58
+ "" => 0x966,
59
+ "" => 0xB32,
60
+ "" => 0xAFA,
61
+ "" => 0x51D,
62
+ "" => 0x345,
63
+ "" => 0x802,
64
+ "" => 0x025,
65
+ "" => 0x969,
66
+ "" => 0x7DB,
67
+ "" => 0xAF2,
68
+ "" => 0x005,
69
+ "" => 0x4BF,
70
+ "" => 0x024,
71
+ "" => 0x968,
72
+ "" => 0x80C,
73
+ "" => 0xAF0,
74
+ "" => 0x51E,
75
+ "" => 0x321,
76
+ "" => 0x4C4,
77
+ "" => 0x96B,
78
+ "" => 0x027,
79
+ "" => 0x80D,
80
+ "" => 0xAF3,
81
+ "" => 0x51F,
82
+ "" => 0x343,
83
+ "" => 0x4C0,
84
+ "" => 0x049,
85
+ "" => 0x96A,
86
+ "" => 0x026,
87
+ "" => 0x7D7,
88
+ "" => 0xAF1,
89
+ "" => 0x347,
90
+ "" => 0x4E5,
91
+ "" => 0x043,
92
+ "" => 0x029,
93
+ "" => 0x96C,
94
+ "" => 0x7EE,
95
+ "" => 0xAFD,
96
+ "" => 0x824,
97
+ "" => 0x328,
98
+ "" => 0x4C5,
99
+ "" => 0x028,
100
+ "" => 0x017,
101
+ "" => 0xAFC,
102
+ "" => 0x963,
103
+ "" => 0x7DC,
104
+ "" => 0x527,
105
+ "" => 0x33F,
106
+ "" => 0x4E7,
107
+ "" => 0x96D,
108
+ "" => 0x00A,
109
+ "" => 0xAFF,
110
+ "" => 0x4D2,
111
+ "" => 0xB26,
112
+ "" => 0x324,
113
+ "" => 0x4E6,
114
+ "" => 0x040,
115
+ "" => 0xAFE,
116
+ "" => 0x961,
117
+ "" => 0x513,
118
+ "" => 0x7EB,
119
+ "" => 0x045,
120
+ "" => 0x194,
121
+ "" => 0x4E9,
122
+ "" => 0x02B,
123
+ "" => 0x05B,
124
+ "" => 0x008,
125
+ "" => 0x512,
126
+ "" => 0xB34,
127
+ "" => 0x4D3,
128
+ "" => 0x342,
129
+ "" => 0x4E8,
130
+ "" => 0x041,
131
+ "" => 0x96E,
132
+ "" => 0x00C,
133
+ "" => 0x4F7,
134
+ "" => 0xB33,
135
+ "" => 0x04D,
136
+ "" => 0x33B,
137
+ "" => 0x4EB,
138
+ "" => 0x053,
139
+ "" => 0x02D,
140
+ "" => 0x826,
141
+ "" => 0x509,
142
+ "" => 0x03D,
143
+ "" => 0x332,
144
+ "" => 0x4EA,
145
+ "" => 0x052,
146
+ "" => 0x02C,
147
+ "" => 0x00D,
148
+ "" => 0x825,
149
+ "" => 0xB35,
150
+ "" => 0x047,
151
+ "" => 0x32F,
152
+ "" => 0x4ED,
153
+ "" => 0x7F0,
154
+ "" => 0x055,
155
+ "" => 0x02F,
156
+ "" => 0x4BB,
157
+ "" => 0x004,
158
+ "" => 0x828,
159
+ "" => 0x32E,
160
+ "" => 0x4EC,
161
+ "" => 0x054,
162
+ "" => 0x4B0,
163
+ "" => 0x02E,
164
+ "" => 0xB59,
165
+ "" => 0x508,
166
+ "" => 0x325,
167
+ "" => 0x1A4,
168
+ "" => 0xB24,
169
+ "" => 0x031,
170
+ "" => 0x511,
171
+ "" => 0x7EC,
172
+ "" => 0x505,
173
+ "" => 0x048,
174
+ "" => 0x326,
175
+ "" => 0x4EE,
176
+ "" => 0x4C1,
177
+ "" => 0x056,
178
+ "" => 0x4B2,
179
+ "" => 0x030,
180
+ "" => 0x4D6,
181
+ "" => 0x33A,
182
+ "" => 0x1A6,
183
+ "" => 0xB61,
184
+ "" => 0x4C2,
185
+ "" => 0x033,
186
+ "" => 0x970,
187
+ "" => 0x4C3,
188
+ "" => 0x821,
189
+ "" => 0x322,
190
+ "" => 0x1A5,
191
+ "" => 0xB19,
192
+ "" => 0x803,
193
+ "" => 0x032,
194
+ "" => 0x96F,
195
+ "" => 0x7F5,
196
+ "" => 0x507,
197
+ "" => 0x339,
198
+ "" => 0x1A8,
199
+ "" => 0x52C,
200
+ "" => 0xB25,
201
+ "" => 0xB43,
202
+ "" => 0x035,
203
+ "" => 0xE1C,
204
+ "" => 0x514,
205
+ "" => 0x987,
206
+ "" => 0x334,
207
+ "" => 0x1A7,
208
+ "" => 0xB62,
209
+ "" => 0x034,
210
+ "" => 0x800,
211
+ "" => 0x52F,
212
+ "" => 0x044,
213
+ "" => 0x338,
214
+ "" => 0x1AA,
215
+ "" => 0x529,
216
+ "" => 0x50A,
217
+ "" => 0x037,
218
+ "" => 0xB82,
219
+ "" => 0xB87,
220
+ "" => 0x336,
221
+ "" => 0x1A9,
222
+ "" => 0x52E,
223
+ "" => 0xB1F,
224
+ "" => 0xB1E,
225
+ "" => 0x036,
226
+ "" => 0x813,
227
+ "" => 0xB86,
228
+ "" => 0x838,
229
+ "" => 0x4C6,
230
+ "" => 0x329,
231
+ "" => 0xB58,
232
+ "" => 0x32D,
233
+ "" => 0x965,
234
+ "" => 0x816,
235
+ "" => 0xB27,
236
+ "" => 0x1AB,
237
+ "" => 0x526,
238
+ "" => 0xB20,
239
+ "" => 0x516,
240
+ "" => 0x33D,
241
+ "" => 0x00B,
242
+ "" => 0x815,
243
+ "" => 0xB42,
244
+ "" => 0x1B6,
245
+ "" => 0x19B,
246
+ "" => 0x341,
247
+ "" => 0xB1C,
248
+ "" => 0x53E,
249
+ "" => 0x190,
250
+ "" => 0x980,
251
+ "" => 0x4DE,
252
+ "" => 0xB2D,
253
+ "" => 0x1B5,
254
+ "" => 0x327,
255
+ "" => 0xB1A,
256
+ "" => 0x517,
257
+ "" => 0x32C,
258
+ "" => 0x818,
259
+ "" => 0x500,
260
+ "" => 0xB29,
261
+ "" => 0x1C8,
262
+ "" => 0x823,
263
+ "" => 0x1C4,
264
+ "" => 0xB1D,
265
+ "" => 0xB2B,
266
+ "" => 0x191,
267
+ "" => 0x981,
268
+ "" => 0x83A,
269
+ "" => 0x531,
270
+ "" => 0x1C7,
271
+ "" => 0x19C,
272
+ "" => 0x344,
273
+ "" => 0xB1B,
274
+ "" => 0x50F,
275
+ "" => 0x192,
276
+ "" => 0x982,
277
+ "" => 0x839,
278
+ "" => 0x4DF,
279
+ "" => 0x82B,
280
+ "" => 0x19E,
281
+ "" => 0x1BF,
282
+ "" => 0x530,
283
+ "" => 0x35B,
284
+ "" => 0x1BA,
285
+ "" => 0x983,
286
+ "" => 0x4B5,
287
+ "" => 0x1B4,
288
+ "" => 0x82C,
289
+ "" => 0x19D,
290
+ "" => 0x1C5,
291
+ "" => 0x53C,
292
+ "" => 0x193,
293
+ "" => 0x1C9,
294
+ "" => 0x962,
295
+ "" => 0xB5E,
296
+ "" => 0xB23,
297
+ "" => 0x4CC,
298
+ "" => 0x7ED,
299
+ "" => 0xB37,
300
+ "" => 0x4D5,
301
+ "" => 0xB9E,
302
+ "" => 0x1CB,
303
+ "" => 0x001,
304
+ "" => 0x7F6,
305
+ "" => 0xE78,
306
+ "" => 0x4CF,
307
+ "" => 0x1B0,
308
+ "" => 0xB36,
309
+ "" => 0x4D4,
310
+ "" => 0xB9D,
311
+ "" => 0x1CA,
312
+ "" => 0x003,
313
+ "" => 0x7F7,
314
+ "" => 0xE77,
315
+ "" => 0xB56,
316
+ "" => 0xB39,
317
+ "" => 0x4D8,
318
+ "" => 0xBA0,
319
+ "" => 0x1CD,
320
+ "" => 0x523,
321
+ "" => 0x002,
322
+ "" => 0x506,
323
+ "" => 0xE7A,
324
+ "" => 0x4D1,
325
+ "" => 0xB38,
326
+ "" => 0x4D7,
327
+ "" => 0xB9F,
328
+ "" => 0x1CC,
329
+ "" => 0x4EF,
330
+ "" => 0x7E7,
331
+ "" => 0xE79,
332
+ "" => 0x000,
333
+ "" => 0x827,
334
+ "" => 0xB3B,
335
+ "" => 0x196,
336
+ "" => 0x351,
337
+ "" => 0x1CF,
338
+ "" => 0x528,
339
+ "" => 0x4B3,
340
+ "" => 0xE7C,
341
+ "" => 0x009,
342
+ "" => 0x04E,
343
+ "" => 0xB3A,
344
+ "" => 0x195,
345
+ "" => 0xBA1,
346
+ "" => 0x1CE,
347
+ "" => 0x525,
348
+ "" => 0x1A1,
349
+ "" => 0xE7B,
350
+ "" => 0x012,
351
+ "" => 0x4F5,
352
+ "" => 0xB63,
353
+ "" => 0x198,
354
+ "" => 0x829,
355
+ "" => 0x1D1,
356
+ "" => 0xB96,
357
+ "" => 0x4B4,
358
+ "" => 0x1B8,
359
+ "" => 0x510,
360
+ "" => 0xB3C,
361
+ "" => 0x197,
362
+ "" => 0x352,
363
+ "" => 0x1D0,
364
+ "" => 0x538,
365
+ "" => 0x4B6,
366
+ "" => 0xE7D,
367
+ "" => 0x1AF,
368
+ "" => 0xB67,
369
+ "" => 0x4D9,
370
+ "" => 0x358,
371
+ "" => 0x1D3,
372
+ "" => 0xB98,
373
+ "" => 0x7D9,
374
+ "" => 0x4BA,
375
+ "" => 0x1C1,
376
+ "" => 0xBA3,
377
+ "" => 0x199,
378
+ "" => 0x353,
379
+ "" => 0x1D2,
380
+ "" => 0xB97,
381
+ "" => 0xB85,
382
+ "" => 0x1C0,
383
+ "" => 0x4B9,
384
+ "" => 0x82F,
385
+ "" => 0x4F0,
386
+ "" => 0x1A2,
387
+ "" => 0x1D5,
388
+ "" => 0xB94,
389
+ "" => 0x515,
390
+ "" => 0x1C2,
391
+ "" => 0x7E6,
392
+ "" => 0x82E,
393
+ "" => 0x4DA,
394
+ "" => 0x1A0,
395
+ "" => 0x1D4,
396
+ "" => 0xB93,
397
+ "" => 0x4CA,
398
+ "" => 0x1B7,
399
+ "" => 0x4B7,
400
+ "" => 0x042,
401
+ "" => 0x831,
402
+ "" => 0x4F2,
403
+ "" => 0x7DD,
404
+ "" => 0x1D7,
405
+ "" => 0x7D5,
406
+ "" => 0x1BC,
407
+ "" => 0x03F,
408
+ "" => 0x830,
409
+ "" => 0x808,
410
+ "" => 0x7D6,
411
+ "" => 0x1D6,
412
+ "" => 0x357,
413
+ "" => 0x1C3,
414
+ "" => 0x7EF,
415
+ "" => 0x833,
416
+ "" => 0xB10,
417
+ "" => 0x7DE,
418
+ "" => 0x50C,
419
+ "" => 0x7D3,
420
+ "" => 0x1AE,
421
+ "" => 0x330,
422
+ "" => 0x832,
423
+ "" => 0x814,
424
+ "" => 0x80E,
425
+ "" => 0x50B,
426
+ "" => 0x7D2,
427
+ "" => 0x1B2,
428
+ "" => 0x335,
429
+ "" => 0x835,
430
+ "" => 0xB12,
431
+ "" => 0x7F1,
432
+ "" => 0x50E,
433
+ "" => 0x7DA,
434
+ "" => 0x4F6,
435
+ "" => 0x320,
436
+ "" => 0x834,
437
+ "" => 0xB11,
438
+ "" => 0x7E5,
439
+ "" => 0x50D,
440
+ "" => 0x7D1,
441
+ "" => 0x1B3,
442
+ "" => 0x323,
443
+ "" => 0x837,
444
+ "" => 0xB14,
445
+ "" => 0x7F3,
446
+ "" => 0xB2A,
447
+ "" => 0x1BD,
448
+ "" => 0x537,
449
+ "" => 0x836,
450
+ "" => 0xB13,
451
+ "" => 0x7F2,
452
+ "" => 0x553,
453
+ "" => 0x7D4,
454
+ "" => 0x53B,
455
+ "" => 0x4F4,
456
+ "" => 0x7FE,
457
+ "" => 0xE71,
458
+ "" => 0x7E4,
459
+ "" => 0x4BC,
460
+ "" => 0xB3E,
461
+ "" => 0xB16,
462
+ "" => 0x7F4,
463
+ "" => 0xE70,
464
+ "" => 0x1BE,
465
+ "" => 0x960,
466
+ "" => 0xB3D,
467
+ "" => 0xB15,
468
+ "" => 0x7E2,
469
+ "" => 0xE73,
470
+ "" => 0x7E9,
471
+ "" => 0x7FA,
472
+ "" => 0xB81,
473
+ "" => 0xB68,
474
+ "" => 0x00F,
475
+ "" => 0x7E0,
476
+ "" => 0xE72,
477
+ "" => 0x7EA,
478
+ "" => 0x7FB,
479
+ "" => 0xB3F,
480
+ "" => 0xB60,
481
+ "" => 0xB17,
482
+ "" => 0xE75,
483
+ "" => 0x7E3,
484
+ "" => 0x807,
485
+ "" => 0xB2F,
486
+ "" => 0xB5B,
487
+ "" => 0x7FD,
488
+ "" => 0x518,
489
+ "" => 0xE74,
490
+ "" => 0x7DF,
491
+ "" => 0xB31,
492
+ "" => 0xB5D,
493
+ "" => 0xB04,
494
+ "" => 0x81E,
495
+ "" => 0xB41,
496
+ "" => 0xB45,
497
+ "" => 0x51A,
498
+ "" => 0xE76,
499
+ "" => 0xB09,
500
+ "" => 0x81D,
501
+ "" => 0xB40,
502
+ "" => 0xB44,
503
+ "" => 0x519,
504
+ }
505
+
506
+ # 単にEMOJI_TO_EMOJIID#index を使うと、
507
+ # 1つの絵文字が複数のIDに割り当てられている(DoCoMo SJIS-F97A など)場合
508
+ # 見つからなくなる
509
+ # 逆にEMOJIID_TO_EMOJIだけだと複数絵文字の組み合わせによるものがめんどくさい(たぶん)
510
+ EMOJIID_TO_EMOJI = {
511
+ 0x041 => "",
512
+ 0x7EE => "",
513
+ 0x1CA => "",
514
+ 0x353 => "",
515
+ 0x830 => "",
516
+ 0x000 => "",
517
+ 0x51E => "",
518
+ 0xB42 => "",
519
+ 0x042 => "",
520
+ 0x7EF => "",
521
+ 0x1CB => "",
522
+ 0x4DD => "",
523
+ 0x831 => "",
524
+ 0x001 => "",
525
+ 0x51F => "",
526
+ 0xB43 => "",
527
+ 0x043 => "",
528
+ 0x7F0 => "",
529
+ 0x1CC => "",
530
+ 0x4DE => "",
531
+ 0xB85 => "",
532
+ 0x832 => "",
533
+ 0x002 => "",
534
+ 0xB44 => "",
535
+ 0x044 => "",
536
+ 0x7F1 => "",
537
+ 0x1CD => "",
538
+ 0x4DF => "",
539
+ 0xB86 => "",
540
+ 0x833 => "",
541
+ 0x003 => "",
542
+ 0xB45 => "",
543
+ 0x045 => "",
544
+ 0x7F2 => "",
545
+ 0x1CE => "",
546
+ 0x357 => "",
547
+ 0x4E0 => "",
548
+ 0xB04 => "",
549
+ 0xB87 => "",
550
+ 0x834 => "",
551
+ 0x004 => "",
552
+ 0xB46 => "",
553
+ 0x046 => "",
554
+ 0x7F3 => "",
555
+ 0x1CF => "",
556
+ 0x358 => "",
557
+ 0x835 => "",
558
+ 0x005 => "",
559
+ 0x523 => "",
560
+ 0x047 => "",
561
+ 0x7F4 => "",
562
+ 0x1D0 => "",
563
+ 0x359 => "",
564
+ 0x836 => "",
565
+ 0x524 => "",
566
+ 0x048 => "",
567
+ 0x7F5 => "",
568
+ 0xB8A => "",
569
+ 0x1D1 => "",
570
+ 0x35A => "",
571
+ 0x4E3 => "",
572
+ 0x837 => "",
573
+ 0x007 => "",
574
+ 0x190 => "",
575
+ 0x525 => "",
576
+ 0x049 => "",
577
+ 0x7F6 => "",
578
+ 0x1D2 => "",
579
+ 0x35B => "",
580
+ 0x838 => "",
581
+ 0x008 => "",
582
+ 0x191 => "",
583
+ 0x526 => "",
584
+ 0x980 => "",
585
+ 0x7F7 => "",
586
+ 0x1D3 => "",
587
+ 0x4E5 => "",
588
+ 0xB09 => "",
589
+ 0x839 => "",
590
+ 0x009 => "",
591
+ 0x527 => "",
592
+ 0x192 => "",
593
+ 0x981 => "",
594
+ 0x7F8 => "",
595
+ 0xB8D => "",
596
+ 0x1D4 => "",
597
+ 0xE1C => "",
598
+ 0x4E6 => "",
599
+ 0xB0A => "",
600
+ 0x83A => "",
601
+ 0x00A => "",
602
+ 0x528 => "",
603
+ 0x193 => "",
604
+ 0x982 => "",
605
+ 0x7F9 => "",
606
+ 0xB8E => "",
607
+ 0x4E7 => "",
608
+ 0xB0B => "",
609
+ 0x1D5 => "",
610
+ 0x00B => "",
611
+ 0x529 => "",
612
+ 0x194 => "",
613
+ 0x983 => "",
614
+ 0x7FA => "",
615
+ 0x4E8 => "",
616
+ 0xB0C => "",
617
+ 0x04D => "",
618
+ 0x1D6 => "",
619
+ 0x00C => "",
620
+ 0x52A => "",
621
+ 0x195 => "",
622
+ 0x984 => "",
623
+ 0x7FB => "",
624
+ 0xB90 => "",
625
+ 0x4E9 => "",
626
+ 0xB0D => "",
627
+ 0x04E => "",
628
+ 0x1D7 => "",
629
+ 0x00D => "",
630
+ 0x52B => "",
631
+ 0x196 => "",
632
+ 0x985 => "",
633
+ 0x4EA => "",
634
+ 0xB0E => "",
635
+ 0x1D8 => "",
636
+ 0x320 => "",
637
+ 0x52C => "",
638
+ 0x197 => "",
639
+ 0x986 => "",
640
+ 0x7FD => "",
641
+ 0xB92 => "",
642
+ 0x4EB => "",
643
+ 0xB0F => "",
644
+ 0x1D9 => "",
645
+ 0x00F => "",
646
+ 0x321 => "",
647
+ 0x52D => "",
648
+ 0x198 => "",
649
+ 0x051 => "",
650
+ 0x987 => "",
651
+ 0x7FE => "",
652
+ 0xB93 => "",
653
+ 0x4EC => "",
654
+ 0xB10 => "",
655
+ 0x010 => "",
656
+ 0x322 => "",
657
+ 0x52E => "",
658
+ 0x199 => "",
659
+ 0x052 => "",
660
+ 0x988 => "",
661
+ 0x7FF => "",
662
+ 0xB94 => "",
663
+ 0x4ED => "",
664
+ 0xB11 => "",
665
+ 0x1DB => "",
666
+ 0x323 => "",
667
+ 0x52F => "",
668
+ 0xB53 => "",
669
+ 0x053 => "",
670
+ 0xB95 => "",
671
+ 0x4EE => "",
672
+ 0xB12 => "",
673
+ 0x800 => "",
674
+ 0x012 => "",
675
+ 0x530 => "",
676
+ 0x19B => "",
677
+ 0x324 => "",
678
+ 0x054 => "",
679
+ 0xB96 => "",
680
+ 0x4EF => "",
681
+ 0xB13 => "",
682
+ 0x1DD => "",
683
+ 0x801 => "",
684
+ 0x013 => "",
685
+ 0x531 => "",
686
+ 0x19C => "",
687
+ 0x325 => "",
688
+ 0x055 => "",
689
+ 0xB97 => "",
690
+ 0x4F0 => "",
691
+ 0xB14 => "",
692
+ 0x802 => "",
693
+ 0x014 => "",
694
+ 0xB56 => "",
695
+ 0x19D => "",
696
+ 0x326 => "",
697
+ 0x056 => "",
698
+ 0xB98 => "",
699
+ 0xB15 => "",
700
+ 0x803 => "",
701
+ 0x4B0 => "",
702
+ 0xB57 => "",
703
+ 0x19E => "",
704
+ 0x327 => "",
705
+ 0xB99 => "",
706
+ 0x4F2 => "",
707
+ 0xB16 => "",
708
+ 0x1E0 => "",
709
+ 0x804 => "",
710
+ 0x4B1 => "",
711
+ 0x016 => "",
712
+ 0xB58 => "",
713
+ 0x328 => "",
714
+ 0xB9A => "",
715
+ 0xB17 => "",
716
+ 0x805 => "",
717
+ 0x4B2 => "",
718
+ 0x017 => "",
719
+ 0x535 => "",
720
+ 0xB59 => "",
721
+ 0x1A0 => "",
722
+ 0x329 => "",
723
+ 0xB9B => "",
724
+ 0x4F4 => "",
725
+ 0xB18 => "",
726
+ 0x4B3 => "",
727
+ 0x1A1 => "",
728
+ 0x32A => "",
729
+ 0xB9C => "",
730
+ 0x4F5 => "",
731
+ 0xB19 => "",
732
+ 0x807 => "",
733
+ 0x4B4 => "",
734
+ 0x537 => "",
735
+ 0xB5B => "",
736
+ 0x1A2 => "",
737
+ 0x32B => "",
738
+ 0xB9D => "",
739
+ 0x808 => "",
740
+ 0x4F6 => "",
741
+ 0xB1A => "",
742
+ 0x05B => "",
743
+ 0x4B5 => "",
744
+ 0x538 => "",
745
+ 0xB5C => "",
746
+ 0x32C => "",
747
+ 0xB9E => "",
748
+ 0x809 => "",
749
+ 0x4F7 => "",
750
+ 0xB1B => "",
751
+ 0x539 => "",
752
+ 0xB5D => "",
753
+ 0x1A4 => "",
754
+ 0x32D => "",
755
+ 0x4B6 => "",
756
+ 0xB9F => "",
757
+ 0x4F8 => "",
758
+ 0xB1C => "",
759
+ 0xB5E => "",
760
+ 0x1A5 => "",
761
+ 0xE70 => "",
762
+ 0x32E => "",
763
+ 0x4B7 => "",
764
+ 0x80B => "",
765
+ 0xB1D => "",
766
+ 0xBA0 => "",
767
+ 0x4F9 => "",
768
+ 0x53B => "",
769
+ 0xB5F => "",
770
+ 0x1A6 => "",
771
+ 0xE71 => "",
772
+ 0x32F => "",
773
+ 0x4B8 => "",
774
+ 0x80C => "",
775
+ 0xB1E => "",
776
+ 0xBA1 => "",
777
+ 0x01E => "",
778
+ 0xB60 => "",
779
+ 0x1A7 => "",
780
+ 0xE72 => "",
781
+ 0x330 => "",
782
+ 0x4B9 => "",
783
+ 0x53C => "",
784
+ 0x80D => "",
785
+ 0xB1F => "",
786
+ 0x01F => "",
787
+ 0xB61 => "",
788
+ 0x1A8 => "",
789
+ 0xE73 => "",
790
+ 0x331 => "",
791
+ 0x4BA => "",
792
+ 0x53D => "",
793
+ 0x80E => "",
794
+ 0xBA3 => "",
795
+ 0xB20 => "",
796
+ 0x020 => "",
797
+ 0x1A9 => "",
798
+ 0xE74 => "",
799
+ 0x332 => "",
800
+ 0x4BB => "",
801
+ 0x53E => "",
802
+ 0xB62 => "",
803
+ 0x021 => "",
804
+ 0x1AA => "",
805
+ 0xE75 => "",
806
+ 0x333 => "",
807
+ 0x4BC => "",
808
+ 0xB63 => "",
809
+ 0x022 => "",
810
+ 0x1AB => "",
811
+ 0xE76 => "",
812
+ 0x334 => "",
813
+ 0x4BD => "",
814
+ 0x540 => "",
815
+ 0xB64 => "",
816
+ 0x4FF => "",
817
+ 0xB23 => "",
818
+ 0x023 => "",
819
+ 0xE77 => "",
820
+ 0x335 => "",
821
+ 0x4BE => "",
822
+ 0x541 => "",
823
+ 0xB65 => "",
824
+ 0x500 => "",
825
+ 0xB24 => "",
826
+ 0x024 => "",
827
+ 0x7D1 => "",
828
+ 0xE78 => "",
829
+ 0x336 => "",
830
+ 0x4BF => "",
831
+ 0xB66 => "",
832
+ 0x813 => "",
833
+ 0x501 => "",
834
+ 0xB25 => "",
835
+ 0x025 => "",
836
+ 0x1AE => "",
837
+ 0x7D2 => "",
838
+ 0xE79 => "",
839
+ 0x337 => "",
840
+ 0x4C0 => "",
841
+ 0xB67 => "",
842
+ 0x814 => "",
843
+ 0x502 => "",
844
+ 0xB26 => "",
845
+ 0x026 => "",
846
+ 0x1AF => "",
847
+ 0x7D3 => "",
848
+ 0xE7A => "",
849
+ 0x338 => "",
850
+ 0x4C1 => "",
851
+ 0xB68 => "",
852
+ 0x815 => "",
853
+ 0x503 => "",
854
+ 0xB27 => "",
855
+ 0x027 => "",
856
+ 0x1B0 => "",
857
+ 0x7D4 => "",
858
+ 0xE7B => "",
859
+ 0x339 => "",
860
+ 0x4C2 => "",
861
+ 0x545 => "",
862
+ 0xB69 => "",
863
+ 0x816 => "",
864
+ 0x028 => "",
865
+ 0x1B1 => "",
866
+ 0x7D5 => "",
867
+ 0xE7C => "",
868
+ 0x33A => "",
869
+ 0x4C3 => "",
870
+ 0x546 => "",
871
+ 0x505 => "",
872
+ 0xB29 => "",
873
+ 0x029 => "",
874
+ 0x1B2 => "",
875
+ 0x7D6 => "",
876
+ 0xE7D => "",
877
+ 0x33B => "",
878
+ 0x4C4 => "",
879
+ 0x547 => "",
880
+ 0xB6B => "",
881
+ 0x818 => "",
882
+ 0x506 => "",
883
+ 0xB2A => "",
884
+ 0x02A => "",
885
+ 0x960 => "",
886
+ 0x7D7 => "",
887
+ 0x33C => "",
888
+ 0x4C5 => "",
889
+ 0x548 => "",
890
+ 0xB6C => "",
891
+ 0x1B3 => "",
892
+ 0x507 => "",
893
+ 0xB2B => "",
894
+ 0x02B => "",
895
+ 0x961 => "",
896
+ 0x33D => "",
897
+ 0x4C6 => "",
898
+ 0xB6D => "",
899
+ 0x1B4 => "",
900
+ 0x81A => "",
901
+ 0x508 => "",
902
+ 0x02C => "",
903
+ 0x962 => "",
904
+ 0x7D9 => "",
905
+ 0x33E => "",
906
+ 0x54A => "",
907
+ 0xB6E => "",
908
+ 0x1B5 => "",
909
+ 0x81B => "",
910
+ 0x509 => "",
911
+ 0xB2D => "",
912
+ 0x02D => "",
913
+ 0x963 => "",
914
+ 0x7DA => "",
915
+ 0x33F => "",
916
+ 0x54B => "",
917
+ 0xB6F => "",
918
+ 0x1B6 => "",
919
+ 0x81C => "",
920
+ 0x50A => "",
921
+ 0x02E => "",
922
+ 0x964 => "",
923
+ 0x7DB => "",
924
+ 0x340 => "",
925
+ 0xB70 => "",
926
+ 0x1B7 => "",
927
+ 0x81D => "",
928
+ 0x50B => "",
929
+ 0xB2F => "",
930
+ 0x02F => "",
931
+ 0x965 => "",
932
+ 0x7DC => "",
933
+ 0x341 => "",
934
+ 0x4CA => "",
935
+ 0x54D => "",
936
+ 0xB71 => "",
937
+ 0x1B8 => "",
938
+ 0x81E => "",
939
+ 0x50C => "",
940
+ 0x030 => "",
941
+ 0x966 => "",
942
+ 0x7DD => "",
943
+ 0x342 => "",
944
+ 0xB72 => "",
945
+ 0x81F => "",
946
+ 0x50D => "",
947
+ 0xB31 => "",
948
+ 0x031 => "",
949
+ 0x967 => "",
950
+ 0x7DE => "",
951
+ 0x343 => "",
952
+ 0x4CC => "",
953
+ 0xAF0 => "",
954
+ 0x54F => "",
955
+ 0xB73 => "",
956
+ 0x1BA => "",
957
+ 0x820 => "",
958
+ 0x50E => "",
959
+ 0xB32 => "",
960
+ 0x032 => "",
961
+ 0x968 => "",
962
+ 0x7DF => "",
963
+ 0x344 => "",
964
+ 0x4CD => "",
965
+ 0xAF1 => "",
966
+ 0xB74 => "",
967
+ 0x1BB => "",
968
+ 0x821 => "",
969
+ 0x50F => "",
970
+ 0xB33 => "",
971
+ 0x033 => "",
972
+ 0x969 => "",
973
+ 0xAF2 => "",
974
+ 0xB75 => "",
975
+ 0x1BC => "",
976
+ 0x7E0 => "",
977
+ 0x345 => "",
978
+ 0x510 => "",
979
+ 0xB34 => "",
980
+ 0x034 => "",
981
+ 0x96A => "",
982
+ 0x4CF => "",
983
+ 0xAF3 => "",
984
+ 0x552 => "",
985
+ 0xB76 => "",
986
+ 0x1BD => "",
987
+ 0x7E1 => "",
988
+ 0x346 => "",
989
+ 0x823 => "",
990
+ 0x511 => "",
991
+ 0xB35 => "",
992
+ 0x035 => "",
993
+ 0x96B => "",
994
+ 0xAF4 => "",
995
+ 0x553 => "",
996
+ 0xB77 => "",
997
+ 0x1BE => "",
998
+ 0x7E2 => "",
999
+ 0x347 => "",
1000
+ 0x824 => "",
1001
+ 0x512 => "",
1002
+ 0xB36 => "",
1003
+ 0x036 => "",
1004
+ 0x96C => "",
1005
+ 0x7E3 => "",
1006
+ 0x4D1 => "",
1007
+ 0xAF5 => "",
1008
+ 0x1BF => "",
1009
+ 0x348 => "",
1010
+ 0x825 => "",
1011
+ 0x513 => "",
1012
+ 0xB37 => "",
1013
+ 0x037 => "",
1014
+ 0x96D => "",
1015
+ 0x7E4 => "",
1016
+ 0x4D2 => "",
1017
+ 0x1C0 => "",
1018
+ 0x349 => "",
1019
+ 0x826 => "",
1020
+ 0x514 => "",
1021
+ 0xB38 => "",
1022
+ 0x038 => "",
1023
+ 0x96E => "",
1024
+ 0x7E5 => "",
1025
+ 0x4D3 => "",
1026
+ 0x1C1 => "",
1027
+ 0x34A => "",
1028
+ 0x827 => "",
1029
+ 0x515 => "",
1030
+ 0xB39 => "",
1031
+ 0x96F => "",
1032
+ 0x7E6 => "",
1033
+ 0x4D4 => "",
1034
+ 0xAF8 => "",
1035
+ 0x1C2 => "",
1036
+ 0x34B => "",
1037
+ 0x828 => "",
1038
+ 0x516 => "",
1039
+ 0xB3A => "",
1040
+ 0x970 => "",
1041
+ 0x7E7 => "",
1042
+ 0x4D5 => "",
1043
+ 0xAF9 => "",
1044
+ 0x1C3 => "",
1045
+ 0x34C => "",
1046
+ 0x829 => "",
1047
+ 0x517 => "",
1048
+ 0xB3B => "",
1049
+ 0x03B => "",
1050
+ 0x971 => "",
1051
+ 0x7E8 => "",
1052
+ 0x4D6 => "",
1053
+ 0xAFA => "",
1054
+ 0x1C4 => "",
1055
+ 0x34D => "",
1056
+ 0x82A => "",
1057
+ 0x518 => "",
1058
+ 0xB3C => "",
1059
+ 0x03C => "",
1060
+ 0x7E9 => "",
1061
+ 0xAFB => "",
1062
+ 0x1C5 => "",
1063
+ 0x34E => "",
1064
+ 0x4D7 => "",
1065
+ 0x82B => "",
1066
+ 0x519 => "",
1067
+ 0xB3D => "",
1068
+ 0x03D => "",
1069
+ 0x7EA => "",
1070
+ 0xAFC => "",
1071
+ 0x1C6 => "",
1072
+ 0x34F => "",
1073
+ 0x4D8 => "",
1074
+ 0x82C => "",
1075
+ 0xB3E => "",
1076
+ 0x51A => "",
1077
+ 0x03E => "",
1078
+ 0x7EB => "",
1079
+ 0xAFD => "",
1080
+ 0x1C7 => "",
1081
+ 0x350 => "",
1082
+ 0x4D9 => "",
1083
+ 0xB3F => "",
1084
+ 0x51B => "",
1085
+ 0x03F => "",
1086
+ 0x7EC => "",
1087
+ 0xB81 => "",
1088
+ 0x1C8 => "",
1089
+ 0x351 => "",
1090
+ 0x4DA => "",
1091
+ 0xAFE => "",
1092
+ 0x82E => "",
1093
+ 0xB40 => "",
1094
+ 0x51C => "",
1095
+ 0x040 => "",
1096
+ 0x7ED => "",
1097
+ 0xB82 => "",
1098
+ 0x1C9 => "",
1099
+ 0x352 => "",
1100
+ 0x4DB => "",
1101
+ 0xAFF => "",
1102
+ 0x82F => "",
1103
+ 0x51D => "",
1104
+ 0xB41 => "",
1105
+ }
1106
+
1107
+ # 1.8系、1.9系 互換性維持のため
1108
+ if RUBY_VERSION >= '1.9.0'
1109
+ def EMOJI_TO_EMOJIID.index(val)
1110
+ key(val)
1111
+ end
1112
+ end
1113
+
1114
+ end
1115
+ end
1116
+ end
1117
+ end
1118
+ end
1119
+