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,432 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ # emoji4unicode と TypeCast絵文字アイコン名との対応表
4
+
5
+ # Rack::Ketai::Carrier::General::EmoticonFilter::EMOJIID_TO_TYPECAST_EMOTICONS[0x000]
6
+ # => ["sun"]
7
+ # Rack::Ketai::Carrier::General::EmoticonFilter::EMOJIID_TO_TYPECAST_EMOTICONS[0x00F]
8
+ # => ["sun", "cloud"] (晴れときどきくもり = 晴れ+くもり)
9
+
10
+ module Rack
11
+ module Ketai
12
+ module Carrier
13
+ class General
14
+ class EmoticonFilter
15
+ EMOJIID_TO_TYPECAST_EMOTICONS = {
16
+ 0xB83 => ["enter"],
17
+ 0x7EE => ["yacht"],
18
+ 0xE12 => ["by-d"],
19
+ 0x4DC => ["moneybag"],
20
+ 0x830 => ["three"],
21
+ 0x000 => ["sun"],
22
+ 0x042 => ["maple"],
23
+ 0x7EF => ["car"],
24
+ 0xE13 => ["d-point"],
25
+ 0x4DD => ["dollar"],
26
+ 0xB84 => ["clear"],
27
+ 0x831 => ["four"],
28
+ 0x001 => ["cloud"],
29
+ 0x7F0 => ["run"],
30
+ 0xE14 => ["appli01"],
31
+ 0xB85 => ["search"],
32
+ 0x832 => ["five"],
33
+ 0xB44 => ["fullmoon"],
34
+ 0x002 => ["rain"],
35
+ 0xE15 => ["appli02"],
36
+ 0xB86 => ["key"],
37
+ 0x833 => ["six"],
38
+ 0x003 => ["snow"],
39
+ 0x4E0 => ["dollar"],
40
+ 0xB04 => ["sign01"],
41
+ 0xB87 => ["key"],
42
+ 0x834 => ["seven"],
43
+ 0x522 => ["pocketbell"],
44
+ 0x004 => ["thunder"],
45
+ 0xB05 => ["sign02"],
46
+ 0x835 => ["eight"],
47
+ 0x523 => ["telephone"],
48
+ 0x005 => ["typhoon"],
49
+ 0x1D0 => ["dog"],
50
+ 0x359 => ["sad"],
51
+ 0x4E2 => ["yen"],
52
+ 0xB06 => ["sign03"],
53
+ 0x836 => ["nine"],
54
+ 0x524 => ["telephone"],
55
+ 0xB48 => ["ban"],
56
+ 0x006 => ["mist"],
57
+ 0x7F5 => ["gasstation"],
58
+ 0x35A => ["angry"],
59
+ 0x4E3 => ["dollar"],
60
+ 0xB07 => ["sign04"],
61
+ 0xB8A => ["key"],
62
+ 0x190 => ["eye"],
63
+ 0x837 => ["zero"],
64
+ 0x525 => ["mobilephone"],
65
+ 0x007 => ["sprinkle"],
66
+ 0x7F6 => ["parking"],
67
+ 0xB08 => ["sign05"],
68
+ 0x191 => ["ear"],
69
+ 0x526 => ["phoneto"],
70
+ 0x008 => ["night"],
71
+ 0x7F7 => ["signaler"],
72
+ 0x980 => ["restaurant"],
73
+ 0x527 => ["memo"],
74
+ 0x009 => ["sun"],
75
+ 0x981 => ["cafe"],
76
+ 0xB8D => ["search"],
77
+ 0x528 => ["faxto"],
78
+ 0x00A => ["sun"],
79
+ 0x193 => ["kissmark"],
80
+ 0x982 => ["bar"],
81
+ 0xB0B => ["sign01"],
82
+ 0x529 => ["mail"],
83
+ 0x194 => ["bleah"],
84
+ 0x7FA => ["spa"],
85
+ 0x983 => ["beer"],
86
+ 0xB0C => ["heart01"],
87
+ 0x52A => ["mailto"],
88
+ 0x00C => ["sun"],
89
+ 0x195 => ["rouge"],
90
+ 0x984 => ["japanesetea"],
91
+ 0xB0D => ["heart02"],
92
+ 0xB90 => ["key"],
93
+ 0x04E => ["clover"],
94
+ 0x52B => ["mailto"],
95
+ 0x985 => ["bottle"],
96
+ 0xB0E => ["heart03"],
97
+ 0xB91 => ["recycle"],
98
+ 0x04F => ["cherry"],
99
+ 0x1D8 => ["dog"],
100
+ 0x7FC => ["carouselpony"],
101
+ 0x320 => ["angry"],
102
+ 0x52C => ["postoffice"],
103
+ 0x986 => ["wine"],
104
+ 0xB0F => ["heart04"],
105
+ 0xB92 => ["mail"],
106
+ 0x050 => ["banana"],
107
+ 0x1D9 => ["fish"],
108
+ 0x321 => ["sad"],
109
+ 0x52D => ["postoffice"],
110
+ 0x00F => ["sun","cloud"],
111
+ 0x198 => ["hairsalon"],
112
+ 0x987 => ["beer"],
113
+ 0xB10 => ["heart01"],
114
+ 0xB93 => ["rock"],
115
+ 0x051 => ["apple"],
116
+ 0x322 => ["wobbly"],
117
+ 0x52E => ["postoffice"],
118
+ 0x010 => ["night"],
119
+ 0x988 => ["bar"],
120
+ 0xB11 => ["heart02"],
121
+ 0xB94 => ["scissors"],
122
+ 0x1DB => ["foot"],
123
+ 0x7FF => ["fish"],
124
+ 0x323 => ["despair"],
125
+ 0x011 => ["newmoon"],
126
+ 0x19A => ["shadow"],
127
+ 0xB12 => ["heart01"],
128
+ 0xB95 => ["paper"],
129
+ 0x800 => ["karaoke"],
130
+ 0x012 => ["moon1"],
131
+ 0x19B => ["happy01"],
132
+ 0x324 => ["wobbly"],
133
+ 0x4EF => ["camera"],
134
+ 0xB13 => ["heart01"],
135
+ 0xB96 => ["punch"],
136
+ 0x1DD => ["chick"],
137
+ 0x801 => ["movie"],
138
+ 0xB55 => ["cute"],
139
+ 0x013 => ["moon2"],
140
+ 0x19C => ["happy01"],
141
+ 0x325 => ["coldsweats02"],
142
+ 0x4F0 => ["bag"],
143
+ 0xB14 => ["heart01"],
144
+ 0xB97 => ["good"],
145
+ 0x802 => ["movie"],
146
+ 0xB56 => ["flair"],
147
+ 0x014 => ["moon3"],
148
+ 0x19D => ["happy01"],
149
+ 0x326 => ["gawk"],
150
+ 0x4F1 => ["pouch"],
151
+ 0xB15 => ["heart01"],
152
+ 0x803 => ["music"],
153
+ 0x4B0 => ["house"],
154
+ 0xB57 => ["annoy"],
155
+ 0x015 => ["fullmoon"],
156
+ 0x19E => ["happy01"],
157
+ 0x327 => ["lovely"],
158
+ 0x4F2 => ["bell"],
159
+ 0xB16 => ["heart01"],
160
+ 0x1E0 => ["pig"],
161
+ 0x804 => ["art"],
162
+ 0x4B1 => ["house"],
163
+ 0xB58 => ["bomb"],
164
+ 0x016 => ["moon2"],
165
+ 0x328 => ["smile"],
166
+ 0x4F3 => ["door"],
167
+ 0xB17 => ["heart01"],
168
+ 0x805 => ["drama"],
169
+ 0x4B2 => ["building"],
170
+ 0x535 => ["present"],
171
+ 0xB59 => ["sleepy"],
172
+ 0x329 => ["bleah"],
173
+ 0xB18 => ["heart02"],
174
+ 0x806 => ["event"],
175
+ 0x4B3 => ["postoffice"],
176
+ 0x536 => ["pen"],
177
+ 0xB5A => ["impact"],
178
+ 0x018 => ["soon"],
179
+ 0x32A => ["bleah"],
180
+ 0xB19 => ["cute"],
181
+ 0x807 => ["ticket"],
182
+ 0x4B4 => ["hospital"],
183
+ 0x537 => ["chair"],
184
+ 0xB5B => ["sweat01"],
185
+ 0x019 => ["true"],
186
+ 0x32B => ["delicious"],
187
+ 0xB1A => ["heart"],
188
+ 0xB9D => ["paper"],
189
+ 0x05B => ["apple"],
190
+ 0x808 => ["slate"],
191
+ 0x4B5 => ["bank"],
192
+ 0x538 => ["pc"],
193
+ 0xB5C => ["sweat02"],
194
+ 0x01A => ["end"],
195
+ 0x32C => ["lovely"],
196
+ 0xB1B => ["spade"],
197
+ 0x539 => ["pencil"],
198
+ 0xB5D => ["dash"],
199
+ 0x01B => ["sandclock"],
200
+ 0x32D => ["lovely"],
201
+ 0x4B6 => ["atm"],
202
+ 0xB1C => ["diamond"],
203
+ 0xB9F => ["ok"],
204
+ 0x80A => ["game"],
205
+ 0x53A => ["clip"],
206
+ 0x01C => ["sandclock"],
207
+ 0x4B7 => ["hotel"],
208
+ 0xB1D => ["club"],
209
+ 0xBA0 => ["down"],
210
+ 0x4F9 => ["movie"],
211
+ 0x53B => ["bag"],
212
+ 0x01D => ["watch"],
213
+ 0x32F => ["happy02"],
214
+ 0x4B8 => ["hotel","heart04"],
215
+ 0xB1E => ["smoking"],
216
+ 0xBA1 => ["paper"],
217
+ 0xB60 => ["shine"],
218
+ 0x01E => ["clock"],
219
+ 0x330 => ["happy01"],
220
+ 0x4B9 => ["24hours"],
221
+ 0x4FB => ["flair"],
222
+ 0xB1F => ["nosmoking"],
223
+ 0xB61 => ["cute"],
224
+ 0x01F => ["clock"],
225
+ 0x331 => ["coldsweats01"],
226
+ 0x4BA => ["school"],
227
+ 0xBA3 => ["newmoon"],
228
+ 0xB20 => ["wheelchair"],
229
+ 0x020 => ["clock"],
230
+ 0x332 => ["happy02"],
231
+ 0x53E => ["hairsalon"],
232
+ 0xB62 => ["cute"],
233
+ 0x4FD => ["sign05"],
234
+ 0xB21 => ["free"],
235
+ 0x333 => ["smile"],
236
+ 0xB63 => ["newmoon"],
237
+ 0x021 => ["clock"],
238
+ 0xB22 => ["flag"],
239
+ 0x334 => ["happy02"],
240
+ 0x540 => ["memo"],
241
+ 0xB64 => ["newmoon"],
242
+ 0x022 => ["clock"],
243
+ 0x4FF => ["book"],
244
+ 0xB23 => ["danger"],
245
+ 0x7D0 => ["sports"],
246
+ 0x335 => ["happy01"],
247
+ 0x541 => ["memo"],
248
+ 0xB65 => ["newmoon"],
249
+ 0x023 => ["clock"],
250
+ 0x500 => ["book"],
251
+ 0x7D1 => ["baseball"],
252
+ 0x336 => ["happy01"],
253
+ 0xB66 => ["newmoon"],
254
+ 0x024 => ["clock"],
255
+ 0x813 => ["note"],
256
+ 0x501 => ["book"],
257
+ 0x7D2 => ["golf"],
258
+ 0x337 => ["happy01"],
259
+ 0xB67 => ["newmoon"],
260
+ 0x025 => ["clock"],
261
+ 0x814 => ["notes"],
262
+ 0x502 => ["book"],
263
+ 0xB26 => ["ng"],
264
+ 0x7D3 => ["tennis"],
265
+ 0x338 => ["happy01"],
266
+ 0x4C1 => ["ship"],
267
+ 0x026 => ["clock"],
268
+ 0x503 => ["book"],
269
+ 0xB27 => ["ok"],
270
+ 0x7D4 => ["soccer"],
271
+ 0x339 => ["weep"],
272
+ 0x4C2 => ["bottle"],
273
+ 0x545 => ["book"],
274
+ 0x027 => ["clock"],
275
+ 0xB28 => ["ng"],
276
+ 0x7D5 => ["ski"],
277
+ 0x33A => ["crying"],
278
+ 0x4C3 => ["fuji"],
279
+ 0x546 => ["book"],
280
+ 0x028 => ["clock"],
281
+ 0x505 => ["spa"],
282
+ 0xB29 => ["copyright"],
283
+ 0x7D6 => ["basketball"],
284
+ 0x33B => ["shock"],
285
+ 0x547 => ["book"],
286
+ 0x029 => ["clock"],
287
+ 0x506 => ["toilet"],
288
+ 0xB2A => ["tm"],
289
+ 0x7D7 => ["motorsports"],
290
+ 0x33C => ["bearing"],
291
+ 0x960 => ["fastfood"],
292
+ 0x548 => ["memo"],
293
+ 0x02A => ["clock"],
294
+ 0x507 => ["toilet"],
295
+ 0xB2B => ["secret"],
296
+ 0x7D8 => ["snowboard"],
297
+ 0x33D => ["pout"],
298
+ 0x961 => ["riceball"],
299
+ 0x02B => ["aries"],
300
+ 0x81A => ["notes"],
301
+ 0x508 => ["toilet"],
302
+ 0xB2C => ["recycle"],
303
+ 0x7D9 => ["run"],
304
+ 0x33E => ["confident"],
305
+ 0x962 => ["cake"],
306
+ 0x02C => ["taurus"],
307
+ 0xB2D => ["r-mark"],
308
+ 0x33F => ["sad"],
309
+ 0x963 => ["noodle"],
310
+ 0x02D => ["gemini"],
311
+ 0x7DA => ["snowboard"],
312
+ 0x81C => ["tv"],
313
+ 0xB2E => ["ban"],
314
+ 0x340 => ["think"],
315
+ 0x964 => ["bread"],
316
+ 0x4C9 => ["wrench"],
317
+ 0x02E => ["cancer"],
318
+ 0x1B7 => ["dog"],
319
+ 0xB2F => ["empty"],
320
+ 0x81D => ["cd"],
321
+ 0x341 => ["shock"],
322
+ 0x54D => ["book"],
323
+ 0x02F => ["leo"],
324
+ 0x1B8 => ["cat"],
325
+ 0x7DC => ["horse"],
326
+ 0xB30 => ["pass"],
327
+ 0x81E => ["cd"],
328
+ 0x342 => ["sleepy"],
329
+ 0x030 => ["virgo"],
330
+ 0x1B9 => ["snail"],
331
+ 0xB31 => ["full"],
332
+ 0x343 => ["catface"],
333
+ 0x4CC => ["shoe"],
334
+ 0xAF0 => ["upwardright"],
335
+ 0x54F => ["book"],
336
+ 0x031 => ["libra"],
337
+ 0x1BA => ["chick"],
338
+ 0x344 => ["coldsweats02"],
339
+ 0x4CD => ["shoe"],
340
+ 0xAF1 => ["downwardright"],
341
+ 0x032 => ["scorpius"],
342
+ 0x1BB => ["chick"],
343
+ 0x7DF => ["train"],
344
+ 0x50F => ["ribbon"],
345
+ 0x4CE => ["eyeglass"],
346
+ 0xAF2 => ["upwardleft"],
347
+ 0x033 => ["sagittarius"],
348
+ 0x1BC => ["penguin"],
349
+ 0x7E0 => ["subway"],
350
+ 0x345 => ["coldsweats02"],
351
+ 0x510 => ["present"],
352
+ 0x96A => ["noodle"],
353
+ 0x4CF => ["t-shirt"],
354
+ 0xAF3 => ["downwardleft"],
355
+ 0x552 => ["memo"],
356
+ 0x034 => ["capricornus"],
357
+ 0x1BD => ["fish"],
358
+ 0x7E1 => ["subway"],
359
+ 0x346 => ["bearing"],
360
+ 0x511 => ["birthday"],
361
+ 0x823 => ["kissmark"],
362
+ 0x4D0 => ["denim"],
363
+ 0xAF4 => ["up"],
364
+ 0x553 => ["foot"],
365
+ 0xB77 => ["shine"],
366
+ 0x035 => ["aquarius"],
367
+ 0x1BE => ["horse"],
368
+ 0x7E2 => ["bullettrain"],
369
+ 0x347 => ["wink"],
370
+ 0x512 => ["xmas"],
371
+ 0xB36 => ["new"],
372
+ 0x824 => ["loveletter"],
373
+ 0x4D1 => ["crown"],
374
+ 0xAF5 => ["down"],
375
+ 0x036 => ["pisces"],
376
+ 0x1BF => ["pig"],
377
+ 0x7E3 => ["bullettrain"],
378
+ 0x348 => ["happy01"],
379
+ 0x825 => ["ring"],
380
+ 0x4D2 => ["crown"],
381
+ 0xAF6 => ["leftright"],
382
+ 0x7E4 => ["car"],
383
+ 0x349 => ["smile"],
384
+ 0x826 => ["ring"],
385
+ 0x34A => ["happy02"],
386
+ 0xAF7 => ["updown"],
387
+ 0x038 => ["wave"],
388
+ 0x7E5 => ["rvcar"],
389
+ 0x827 => ["kissmark"],
390
+ 0x34B => ["lovely"],
391
+ 0x7E6 => ["bus"],
392
+ 0x34C => ["lovely"],
393
+ 0x829 => ["heart02"],
394
+ 0x34D => ["weep"],
395
+ 0x7E8 => ["ship"],
396
+ 0x4D6 => ["boutique"],
397
+ 0x03B => ["night"],
398
+ 0x4D7 => ["boutique"],
399
+ 0x34E => ["pout"],
400
+ 0x7E9 => ["airplane"],
401
+ 0x03C => ["clover"],
402
+ 0x82B => ["freedial"],
403
+ 0x973 => ["typhoon"],
404
+ 0x34F => ["smile"],
405
+ 0x7EA => ["yacht"],
406
+ 0x03D => ["tulip"],
407
+ 0x82C => ["sharp"],
408
+ 0x350 => ["sad"],
409
+ 0x7EB => ["bicycle"],
410
+ 0x03E => ["bud"],
411
+ 0x82D => ["mobaq"],
412
+ 0x351 => ["ng"],
413
+ 0x1C8 => ["chick"],
414
+ 0xB81 => ["id"],
415
+ 0x03F => ["maple"],
416
+ 0xE10 => ["info01"],
417
+ 0x82E => ["one"],
418
+ 0x4DB => ["t-shirt"],
419
+ 0x352 => ["ok"],
420
+ 0x1C9 => ["fish"],
421
+ 0xB82 => ["key"],
422
+ 0x040 => ["cherryblossom"],
423
+ 0xE11 => ["info02"],
424
+ 0x82F => ["two"],
425
+ }
426
+
427
+ end
428
+ end
429
+ end
430
+ end
431
+ end
432
+