gemoji 4.0.0.rc2 → 4.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 96d6f09fe1af426bf19e76db104682edf244c58c0094ae26ea3dfbe65fecc1bb
4
- data.tar.gz: aceb91526f4bbebace1610a085b7b71c0f417d94bf8957c1566f92adc6add804
3
+ metadata.gz: a1929f8b725c8de093755d34ce7789d2c233fa423eacc17106556ccdb6f9a86d
4
+ data.tar.gz: 006ea3db40448da6d341cd4db422a237f2a6db2354ac855c35f9def24bf19373
5
5
  SHA512:
6
- metadata.gz: 20086a4757d52c6db3b9b265461c67fe7990886e9ea95381d05cc077d16c9046aa0890eec703baf58d9c2a424a7418611d2d427916c3badab7ffcbe08d4b480d
7
- data.tar.gz: 3cd91bc804395ccedc2a5625e832ba889059b225b0f7a9bffa0b60064d691de09f61ec080435093dc529548f48abf0bc372a3d29447aa0bf929b6e1ee0947b2a
6
+ metadata.gz: 9c374781d116236985a5e03ed4b57130e7f510cbe53d16c5e7b1367f36761d781d30c18b98f0a0a6dcf3ffeae5e8fa0cab73516d28fc8525e1534c62c3d4539c
7
+ data.tar.gz: cd05f53994a620bacd116bd2fa9a22d08b5bd44d149d0f35ff8903cede2c3dc53ef1ca57776d4a5f659ce45d034b781c83cbd71d79b0c072357a869bb29f9f7a
data/db/emoji.json CHANGED
@@ -135,6 +135,20 @@
135
135
  , "unicode_version": "8.0"
136
136
  , "ios_version": "9.1"
137
137
  }
138
+ , {
139
+ "emoji": "🫠"
140
+ , "description": "melting face"
141
+ , "category": "Smileys & Emotion"
142
+ , "aliases": [
143
+ "melting_face"
144
+ ]
145
+ , "tags": [
146
+ "sarcasm"
147
+ , "dread"
148
+ ]
149
+ , "unicode_version": "14.0"
150
+ , "ios_version": "15.4"
151
+ }
138
152
  , {
139
153
  "emoji": "😉"
140
154
  , "description": "winking face"
@@ -371,7 +385,7 @@
371
385
  }
372
386
  , {
373
387
  "emoji": "🤗"
374
- , "description": "hugging face"
388
+ , "description": "smiling face with open hands"
375
389
  , "category": "Smileys & Emotion"
376
390
  , "aliases": [
377
391
  "hugs"
@@ -395,6 +409,32 @@
395
409
  , "unicode_version": "11.0"
396
410
  , "ios_version": "12.1"
397
411
  }
412
+ , {
413
+ "emoji": "🫢"
414
+ , "description": "face with open eyes and hand over mouth"
415
+ , "category": "Smileys & Emotion"
416
+ , "aliases": [
417
+ "face_with_open_eyes_and_hand_over_mouth"
418
+ ]
419
+ , "tags": [
420
+ "gasp"
421
+ , "shock"
422
+ ]
423
+ , "unicode_version": "14.0"
424
+ , "ios_version": "15.4"
425
+ }
426
+ , {
427
+ "emoji": "🫣"
428
+ , "description": "face with peeking eye"
429
+ , "category": "Smileys & Emotion"
430
+ , "aliases": [
431
+ "face_with_peeking_eye"
432
+ ]
433
+ , "tags": [
434
+ ]
435
+ , "unicode_version": "14.0"
436
+ , "ios_version": "15.4"
437
+ }
398
438
  , {
399
439
  "emoji": "🤫"
400
440
  , "description": "shushing face"
@@ -421,6 +461,19 @@
421
461
  , "unicode_version": "8.0"
422
462
  , "ios_version": "9.1"
423
463
  }
464
+ , {
465
+ "emoji": "🫡"
466
+ , "description": "saluting face"
467
+ , "category": "Smileys & Emotion"
468
+ , "aliases": [
469
+ "saluting_face"
470
+ ]
471
+ , "tags": [
472
+ "respect"
473
+ ]
474
+ , "unicode_version": "14.0"
475
+ , "ios_version": "15.4"
476
+ }
424
477
  , {
425
478
  "emoji": "🤐"
426
479
  , "description": "zipper-mouth face"
@@ -487,6 +540,31 @@
487
540
  , "unicode_version": "6.0"
488
541
  , "ios_version": "6.0"
489
542
  }
543
+ , {
544
+ "emoji": "🫥"
545
+ , "description": "dotted line face"
546
+ , "category": "Smileys & Emotion"
547
+ , "aliases": [
548
+ "dotted_line_face"
549
+ ]
550
+ , "tags": [
551
+ "invisible"
552
+ ]
553
+ , "unicode_version": "14.0"
554
+ , "ios_version": "15.4"
555
+ }
556
+ , {
557
+ "emoji": "😶‍🌫️"
558
+ , "description": "face in clouds"
559
+ , "category": "Smileys & Emotion"
560
+ , "aliases": [
561
+ "face_in_clouds"
562
+ ]
563
+ , "tags": [
564
+ ]
565
+ , "unicode_version": "13.1"
566
+ , "ios_version": "14.0"
567
+ }
490
568
  , {
491
569
  "emoji": "😏"
492
570
  , "description": "smirking face"
@@ -537,6 +615,18 @@
537
615
  , "unicode_version": "6.1"
538
616
  , "ios_version": "6.0"
539
617
  }
618
+ , {
619
+ "emoji": "😮‍💨"
620
+ , "description": "face exhaling"
621
+ , "category": "Smileys & Emotion"
622
+ , "aliases": [
623
+ "face_exhaling"
624
+ ]
625
+ , "tags": [
626
+ ]
627
+ , "unicode_version": "13.1"
628
+ , "ios_version": "14.0"
629
+ }
540
630
  , {
541
631
  "emoji": "🤥"
542
632
  , "description": "lying face"
@@ -739,7 +829,7 @@
739
829
  }
740
830
  , {
741
831
  "emoji": "😵"
742
- , "description": "dizzy face"
832
+ , "description": "face with crossed-out eyes"
743
833
  , "category": "Smileys & Emotion"
744
834
  , "aliases": [
745
835
  "dizzy_face"
@@ -749,6 +839,18 @@
749
839
  , "unicode_version": "6.0"
750
840
  , "ios_version": "6.0"
751
841
  }
842
+ , {
843
+ "emoji": "😵‍💫"
844
+ , "description": "face with spiral eyes"
845
+ , "category": "Smileys & Emotion"
846
+ , "aliases": [
847
+ "face_with_spiral_eyes"
848
+ ]
849
+ , "tags": [
850
+ ]
851
+ , "unicode_version": "13.1"
852
+ , "ios_version": "14.0"
853
+ }
752
854
  , {
753
855
  "emoji": "🤯"
754
856
  , "description": "exploding head"
@@ -852,6 +954,19 @@
852
954
  , "unicode_version": "6.1"
853
955
  , "ios_version": "6.0"
854
956
  }
957
+ , {
958
+ "emoji": "🫤"
959
+ , "description": "face with diagonal mouth"
960
+ , "category": "Smileys & Emotion"
961
+ , "aliases": [
962
+ "face_with_diagonal_mouth"
963
+ ]
964
+ , "tags": [
965
+ "confused"
966
+ ]
967
+ , "unicode_version": "14.0"
968
+ , "ios_version": "15.4"
969
+ }
855
970
  , {
856
971
  "emoji": "😟"
857
972
  , "description": "worried face"
@@ -958,6 +1073,20 @@
958
1073
  , "unicode_version": "11.0"
959
1074
  , "ios_version": "12.1"
960
1075
  }
1076
+ , {
1077
+ "emoji": "🥹"
1078
+ , "description": "face holding back tears"
1079
+ , "category": "Smileys & Emotion"
1080
+ , "aliases": [
1081
+ "face_holding_back_tears"
1082
+ ]
1083
+ , "tags": [
1084
+ "tears"
1085
+ , "gratitude"
1086
+ ]
1087
+ , "unicode_version": "14.0"
1088
+ , "ios_version": "15.4"
1089
+ }
961
1090
  , {
962
1091
  "emoji": "😦"
963
1092
  , "description": "frowning face with open mouth"
@@ -1681,6 +1810,30 @@
1681
1810
  , "unicode_version": "6.0"
1682
1811
  , "ios_version": "6.0"
1683
1812
  }
1813
+ , {
1814
+ "emoji": "❤️‍🔥"
1815
+ , "description": "heart on fire"
1816
+ , "category": "Smileys & Emotion"
1817
+ , "aliases": [
1818
+ "heart_on_fire"
1819
+ ]
1820
+ , "tags": [
1821
+ ]
1822
+ , "unicode_version": "13.1"
1823
+ , "ios_version": "14.0"
1824
+ }
1825
+ , {
1826
+ "emoji": "❤️‍🩹"
1827
+ , "description": "mending heart"
1828
+ , "category": "Smileys & Emotion"
1829
+ , "aliases": [
1830
+ "mending_heart"
1831
+ ]
1832
+ , "tags": [
1833
+ ]
1834
+ , "unicode_version": "13.1"
1835
+ , "ios_version": "14.0"
1836
+ }
1684
1837
  , {
1685
1838
  "emoji": "❤️"
1686
1839
  , "description": "red heart"
@@ -2044,6 +2197,58 @@
2044
2197
  , "ios_version": "8.3"
2045
2198
  , "skin_tones": true
2046
2199
  }
2200
+ , {
2201
+ "emoji": "🫱"
2202
+ , "description": "rightwards hand"
2203
+ , "category": "People & Body"
2204
+ , "aliases": [
2205
+ "rightwards_hand"
2206
+ ]
2207
+ , "tags": [
2208
+ ]
2209
+ , "unicode_version": "14.0"
2210
+ , "ios_version": "15.4"
2211
+ , "skin_tones": true
2212
+ }
2213
+ , {
2214
+ "emoji": "🫲"
2215
+ , "description": "leftwards hand"
2216
+ , "category": "People & Body"
2217
+ , "aliases": [
2218
+ "leftwards_hand"
2219
+ ]
2220
+ , "tags": [
2221
+ ]
2222
+ , "unicode_version": "14.0"
2223
+ , "ios_version": "15.4"
2224
+ , "skin_tones": true
2225
+ }
2226
+ , {
2227
+ "emoji": "🫳"
2228
+ , "description": "palm down hand"
2229
+ , "category": "People & Body"
2230
+ , "aliases": [
2231
+ "palm_down_hand"
2232
+ ]
2233
+ , "tags": [
2234
+ ]
2235
+ , "unicode_version": "14.0"
2236
+ , "ios_version": "15.4"
2237
+ , "skin_tones": true
2238
+ }
2239
+ , {
2240
+ "emoji": "🫴"
2241
+ , "description": "palm up hand"
2242
+ , "category": "People & Body"
2243
+ , "aliases": [
2244
+ "palm_up_hand"
2245
+ ]
2246
+ , "tags": [
2247
+ ]
2248
+ , "unicode_version": "14.0"
2249
+ , "ios_version": "15.4"
2250
+ , "skin_tones": true
2251
+ }
2047
2252
  , {
2048
2253
  "emoji": "👌"
2049
2254
  , "description": "OK hand"
@@ -2113,6 +2318,19 @@
2113
2318
  , "ios_version": "10.2"
2114
2319
  , "skin_tones": true
2115
2320
  }
2321
+ , {
2322
+ "emoji": "🫰"
2323
+ , "description": "hand with index finger and thumb crossed"
2324
+ , "category": "People & Body"
2325
+ , "aliases": [
2326
+ "hand_with_index_finger_and_thumb_crossed"
2327
+ ]
2328
+ , "tags": [
2329
+ ]
2330
+ , "unicode_version": "14.0"
2331
+ , "ios_version": "15.4"
2332
+ , "skin_tones": true
2333
+ }
2116
2334
  , {
2117
2335
  "emoji": "🤟"
2118
2336
  , "description": "love-you gesture"
@@ -2231,6 +2449,19 @@
2231
2449
  , "ios_version": "6.0"
2232
2450
  , "skin_tones": true
2233
2451
  }
2452
+ , {
2453
+ "emoji": "🫵"
2454
+ , "description": "index pointing at the viewer"
2455
+ , "category": "People & Body"
2456
+ , "aliases": [
2457
+ "index_pointing_at_the_viewer"
2458
+ ]
2459
+ , "tags": [
2460
+ ]
2461
+ , "unicode_version": "14.0"
2462
+ , "ios_version": "15.4"
2463
+ , "skin_tones": true
2464
+ }
2234
2465
  , {
2235
2466
  "emoji": "👍"
2236
2467
  , "description": "thumbs up"
@@ -2349,6 +2580,20 @@
2349
2580
  , "ios_version": "6.0"
2350
2581
  , "skin_tones": true
2351
2582
  }
2583
+ , {
2584
+ "emoji": "🫶"
2585
+ , "description": "heart hands"
2586
+ , "category": "People & Body"
2587
+ , "aliases": [
2588
+ "heart_hands"
2589
+ ]
2590
+ , "tags": [
2591
+ "love"
2592
+ ]
2593
+ , "unicode_version": "14.0"
2594
+ , "ios_version": "15.4"
2595
+ , "skin_tones": true
2596
+ }
2352
2597
  , {
2353
2598
  "emoji": "👐"
2354
2599
  , "description": "open hands"
@@ -2387,6 +2632,7 @@
2387
2632
  ]
2388
2633
  , "unicode_version": "9.0"
2389
2634
  , "ios_version": "10.2"
2635
+ , "skin_tones": true
2390
2636
  }
2391
2637
  , {
2392
2638
  "emoji": "🙏"
@@ -2668,6 +2914,18 @@
2668
2914
  , "unicode_version": "6.0"
2669
2915
  , "ios_version": "6.0"
2670
2916
  }
2917
+ , {
2918
+ "emoji": "🫦"
2919
+ , "description": "biting lip"
2920
+ , "category": "People & Body"
2921
+ , "aliases": [
2922
+ "biting_lip"
2923
+ ]
2924
+ , "tags": [
2925
+ ]
2926
+ , "unicode_version": "14.0"
2927
+ , "ios_version": "15.4"
2928
+ }
2671
2929
  , {
2672
2930
  "emoji": "👶"
2673
2931
  , "description": "baby"
@@ -2768,7 +3026,7 @@
2768
3026
  }
2769
3027
  , {
2770
3028
  "emoji": "🧔"
2771
- , "description": "man: beard"
3029
+ , "description": "person: beard"
2772
3030
  , "category": "People & Body"
2773
3031
  , "aliases": [
2774
3032
  "bearded_person"
@@ -2779,6 +3037,32 @@
2779
3037
  , "ios_version": "12.1"
2780
3038
  , "skin_tones": true
2781
3039
  }
3040
+ , {
3041
+ "emoji": "🧔‍♂️"
3042
+ , "description": "man: beard"
3043
+ , "category": "People & Body"
3044
+ , "aliases": [
3045
+ "man_beard"
3046
+ ]
3047
+ , "tags": [
3048
+ ]
3049
+ , "unicode_version": "13.1"
3050
+ , "ios_version": "14.0"
3051
+ , "skin_tones": true
3052
+ }
3053
+ , {
3054
+ "emoji": "🧔‍♀️"
3055
+ , "description": "woman: beard"
3056
+ , "category": "People & Body"
3057
+ , "aliases": [
3058
+ "woman_beard"
3059
+ ]
3060
+ , "tags": [
3061
+ ]
3062
+ , "unicode_version": "13.1"
3063
+ , "ios_version": "14.0"
3064
+ , "skin_tones": true
3065
+ }
2782
3066
  , {
2783
3067
  "emoji": "👨‍🦰"
2784
3068
  , "description": "man: red hair"
@@ -4258,6 +4542,19 @@
4258
4542
  , "ios_version": "10.0"
4259
4543
  , "skin_tones": true
4260
4544
  }
4545
+ , {
4546
+ "emoji": "🫅"
4547
+ , "description": "person with crown"
4548
+ , "category": "People & Body"
4549
+ , "aliases": [
4550
+ "person_with_crown"
4551
+ ]
4552
+ , "tags": [
4553
+ ]
4554
+ , "unicode_version": "14.0"
4555
+ , "ios_version": "15.4"
4556
+ , "skin_tones": true
4557
+ }
4261
4558
  , {
4262
4559
  "emoji": "🤴"
4263
4560
  , "description": "prince"
@@ -4429,8 +4726,8 @@
4429
4726
  , "description": "woman with veil"
4430
4727
  , "category": "People & Body"
4431
4728
  , "aliases": [
4432
- "woman_with_veil",
4433
- "bride_with_veil"
4729
+ "woman_with_veil"
4730
+ , "bride_with_veil"
4434
4731
  ]
4435
4732
  , "tags": [
4436
4733
  ]
@@ -4451,6 +4748,32 @@
4451
4748
  , "ios_version": "10.2"
4452
4749
  , "skin_tones": true
4453
4750
  }
4751
+ , {
4752
+ "emoji": "🫃"
4753
+ , "description": "pregnant man"
4754
+ , "category": "People & Body"
4755
+ , "aliases": [
4756
+ "pregnant_man"
4757
+ ]
4758
+ , "tags": [
4759
+ ]
4760
+ , "unicode_version": "14.0"
4761
+ , "ios_version": "15.4"
4762
+ , "skin_tones": true
4763
+ }
4764
+ , {
4765
+ "emoji": "🫄"
4766
+ , "description": "pregnant person"
4767
+ , "category": "People & Body"
4768
+ , "aliases": [
4769
+ "pregnant_person"
4770
+ ]
4771
+ , "tags": [
4772
+ ]
4773
+ , "unicode_version": "14.0"
4774
+ , "ios_version": "15.4"
4775
+ , "skin_tones": true
4776
+ }
4454
4777
  , {
4455
4778
  "emoji": "🤱"
4456
4779
  , "description": "breast-feeding"
@@ -4906,6 +5229,18 @@
4906
5229
  , "unicode_version": "11.0"
4907
5230
  , "ios_version": "12.1"
4908
5231
  }
5232
+ , {
5233
+ "emoji": "🧌"
5234
+ , "description": "troll"
5235
+ , "category": "People & Body"
5236
+ , "aliases": [
5237
+ "troll"
5238
+ ]
5239
+ , "tags": [
5240
+ ]
5241
+ , "unicode_version": "14.0"
5242
+ , "ios_version": "15.4"
5243
+ }
4909
5244
  , {
4910
5245
  "emoji": "💆"
4911
5246
  , "description": "person getting massage"
@@ -6081,7 +6416,7 @@
6081
6416
  ]
6082
6417
  , "unicode_version": "12.0"
6083
6418
  , "ios_version": "13.0"
6084
- , "skin_tones": true
6419
+ , "skin_tones": false
6085
6420
  }
6086
6421
  , {
6087
6422
  "emoji": "👭"
@@ -6138,6 +6473,7 @@
6138
6473
  ]
6139
6474
  , "unicode_version": "6.0"
6140
6475
  , "ios_version": "6.0"
6476
+ , "skin_tones": true
6141
6477
  }
6142
6478
  , {
6143
6479
  "emoji": "👩‍❤️‍💋‍👨"
@@ -6150,6 +6486,7 @@
6150
6486
  ]
6151
6487
  , "unicode_version": "11.0"
6152
6488
  , "ios_version": "12.1"
6489
+ , "skin_tones": true
6153
6490
  }
6154
6491
  , {
6155
6492
  "emoji": "👨‍❤️‍💋‍👨"
@@ -6162,6 +6499,7 @@
6162
6499
  ]
6163
6500
  , "unicode_version": "6.0"
6164
6501
  , "ios_version": "8.3"
6502
+ , "skin_tones": true
6165
6503
  }
6166
6504
  , {
6167
6505
  "emoji": "👩‍❤️‍💋‍👩"
@@ -6174,6 +6512,7 @@
6174
6512
  ]
6175
6513
  , "unicode_version": "6.0"
6176
6514
  , "ios_version": "8.3"
6515
+ , "skin_tones": true
6177
6516
  }
6178
6517
  , {
6179
6518
  "emoji": "💑"
@@ -6186,6 +6525,7 @@
6186
6525
  ]
6187
6526
  , "unicode_version": "6.0"
6188
6527
  , "ios_version": "6.0"
6528
+ , "skin_tones": true
6189
6529
  }
6190
6530
  , {
6191
6531
  "emoji": "👩‍❤️‍👨"
@@ -6198,6 +6538,7 @@
6198
6538
  ]
6199
6539
  , "unicode_version": "11.0"
6200
6540
  , "ios_version": "12.1"
6541
+ , "skin_tones": true
6201
6542
  }
6202
6543
  , {
6203
6544
  "emoji": "👨‍❤️‍👨"
@@ -6210,6 +6551,7 @@
6210
6551
  ]
6211
6552
  , "unicode_version": "6.0"
6212
6553
  , "ios_version": "8.3"
6554
+ , "skin_tones": true
6213
6555
  }
6214
6556
  , {
6215
6557
  "emoji": "👩‍❤️‍👩"
@@ -6222,6 +6564,7 @@
6222
6564
  ]
6223
6565
  , "unicode_version": "6.0"
6224
6566
  , "ios_version": "8.3"
6567
+ , "skin_tones": true
6225
6568
  }
6226
6569
  , {
6227
6570
  "emoji": "👪"
@@ -7833,6 +8176,18 @@
7833
8176
  , "unicode_version": "6.0"
7834
8177
  , "ios_version": "6.0"
7835
8178
  }
8179
+ , {
8180
+ "emoji": "🪸"
8181
+ , "description": "coral"
8182
+ , "category": "Animals & Nature"
8183
+ , "aliases": [
8184
+ "coral"
8185
+ ]
8186
+ , "tags": [
8187
+ ]
8188
+ , "unicode_version": "14.0"
8189
+ , "ios_version": "15.4"
8190
+ }
7836
8191
  , {
7837
8192
  "emoji": "🐌"
7838
8193
  , "description": "snail"
@@ -8068,6 +8423,18 @@
8068
8423
  , "unicode_version": "6.0"
8069
8424
  , "ios_version": "6.0"
8070
8425
  }
8426
+ , {
8427
+ "emoji": "🪷"
8428
+ , "description": "lotus"
8429
+ , "category": "Animals & Nature"
8430
+ , "aliases": [
8431
+ "lotus"
8432
+ ]
8433
+ , "tags": [
8434
+ ]
8435
+ , "unicode_version": "14.0"
8436
+ , "ios_version": "15.4"
8437
+ }
8071
8438
  , {
8072
8439
  "emoji": "🏵️"
8073
8440
  , "description": "rosette"
@@ -8317,6 +8684,30 @@
8317
8684
  , "unicode_version": "6.0"
8318
8685
  , "ios_version": "6.0"
8319
8686
  }
8687
+ , {
8688
+ "emoji": "🪹"
8689
+ , "description": "empty nest"
8690
+ , "category": "Animals & Nature"
8691
+ , "aliases": [
8692
+ "empty_nest"
8693
+ ]
8694
+ , "tags": [
8695
+ ]
8696
+ , "unicode_version": "14.0"
8697
+ , "ios_version": "15.4"
8698
+ }
8699
+ , {
8700
+ "emoji": "🪺"
8701
+ , "description": "nest with eggs"
8702
+ , "category": "Animals & Nature"
8703
+ , "aliases": [
8704
+ "nest_with_eggs"
8705
+ ]
8706
+ , "tags": [
8707
+ ]
8708
+ , "unicode_version": "14.0"
8709
+ , "ios_version": "15.4"
8710
+ }
8320
8711
  , {
8321
8712
  "emoji": "🍇"
8322
8713
  , "description": "grapes"
@@ -8721,6 +9112,18 @@
8721
9112
  , "unicode_version": "9.0"
8722
9113
  , "ios_version": "10.2"
8723
9114
  }
9115
+ , {
9116
+ "emoji": "🫘"
9117
+ , "description": "beans"
9118
+ , "category": "Food & Drink"
9119
+ , "aliases": [
9120
+ "beans"
9121
+ ]
9122
+ , "tags": [
9123
+ ]
9124
+ , "unicode_version": "14.0"
9125
+ , "ios_version": "15.4"
9126
+ }
8724
9127
  , {
8725
9128
  "emoji": "🌰"
8726
9129
  , "description": "chestnut"
@@ -9770,6 +10173,18 @@
9770
10173
  , "unicode_version": "9.0"
9771
10174
  , "ios_version": "10.2"
9772
10175
  }
10176
+ , {
10177
+ "emoji": "🫗"
10178
+ , "description": "pouring liquid"
10179
+ , "category": "Food & Drink"
10180
+ , "aliases": [
10181
+ "pouring_liquid"
10182
+ ]
10183
+ , "tags": [
10184
+ ]
10185
+ , "unicode_version": "14.0"
10186
+ , "ios_version": "15.4"
10187
+ }
9773
10188
  , {
9774
10189
  "emoji": "🥤"
9775
10190
  , "description": "cup with straw"
@@ -9896,6 +10311,18 @@
9896
10311
  , "unicode_version": "6.0"
9897
10312
  , "ios_version": "6.0"
9898
10313
  }
10314
+ , {
10315
+ "emoji": "🫙"
10316
+ , "description": "jar"
10317
+ , "category": "Food & Drink"
10318
+ , "aliases": [
10319
+ "jar"
10320
+ ]
10321
+ , "tags": [
10322
+ ]
10323
+ , "unicode_version": "14.0"
10324
+ , "ios_version": "15.4"
10325
+ }
9899
10326
  , {
9900
10327
  "emoji": "🏺"
9901
10328
  , "description": "amphora"
@@ -10657,6 +11084,18 @@
10657
11084
  , "unicode_version": "6.0"
10658
11085
  , "ios_version": "6.0"
10659
11086
  }
11087
+ , {
11088
+ "emoji": "🛝"
11089
+ , "description": "playground slide"
11090
+ , "category": "Travel & Places"
11091
+ , "aliases": [
11092
+ "playground_slide"
11093
+ ]
11094
+ , "tags": [
11095
+ ]
11096
+ , "unicode_version": "14.0"
11097
+ , "ios_version": "15.4"
11098
+ }
10660
11099
  , {
10661
11100
  "emoji": "🎡"
10662
11101
  , "description": "ferris wheel"
@@ -11238,6 +11677,18 @@
11238
11677
  , "unicode_version": "5.2"
11239
11678
  , "ios_version": "6.0"
11240
11679
  }
11680
+ , {
11681
+ "emoji": "🛞"
11682
+ , "description": "wheel"
11683
+ , "category": "Travel & Places"
11684
+ , "aliases": [
11685
+ "wheel"
11686
+ ]
11687
+ , "tags": [
11688
+ ]
11689
+ , "unicode_version": "14.0"
11690
+ , "ios_version": "15.4"
11691
+ }
11241
11692
  , {
11242
11693
  "emoji": "🚨"
11243
11694
  , "description": "police car light"
@@ -11315,6 +11766,19 @@
11315
11766
  , "unicode_version": "4.1"
11316
11767
  , "ios_version": "6.0"
11317
11768
  }
11769
+ , {
11770
+ "emoji": "🛟"
11771
+ , "description": "ring buoy"
11772
+ , "category": "Travel & Places"
11773
+ , "aliases": [
11774
+ "ring_buoy"
11775
+ ]
11776
+ , "tags": [
11777
+ "life preserver"
11778
+ ]
11779
+ , "unicode_version": "14.0"
11780
+ , "ios_version": "15.4"
11781
+ }
11318
11782
  , {
11319
11783
  "emoji": "⛵"
11320
11784
  , "description": "sailboat"
@@ -13228,7 +13692,7 @@
13228
13692
  }
13229
13693
  , {
13230
13694
  "emoji": "🎯"
13231
- , "description": "direct hit"
13695
+ , "description": "bullseye"
13232
13696
  , "category": "Activities"
13233
13697
  , "aliases": [
13234
13698
  "dart"
@@ -13314,6 +13778,18 @@
13314
13778
  , "unicode_version": "11.0"
13315
13779
  , "ios_version": "12.1"
13316
13780
  }
13781
+ , {
13782
+ "emoji": "🪬"
13783
+ , "description": "hamsa"
13784
+ , "category": "Activities"
13785
+ , "aliases": [
13786
+ "hamsa"
13787
+ ]
13788
+ , "tags": [
13789
+ ]
13790
+ , "unicode_version": "14.0"
13791
+ , "ios_version": "15.4"
13792
+ }
13317
13793
  , {
13318
13794
  "emoji": "🎮"
13319
13795
  , "description": "video game"
@@ -13396,13 +13872,27 @@
13396
13872
  , "description": "piñata"
13397
13873
  , "category": "Activities"
13398
13874
  , "aliases": [
13399
- "pi_ata"
13875
+ "pinata"
13400
13876
  ]
13401
13877
  , "tags": [
13402
13878
  ]
13403
13879
  , "unicode_version": "13.0"
13404
13880
  , "ios_version": "14.0"
13405
13881
  }
13882
+ , {
13883
+ "emoji": "🪩"
13884
+ , "description": "mirror ball"
13885
+ , "category": "Activities"
13886
+ , "aliases": [
13887
+ "mirror_ball"
13888
+ ]
13889
+ , "tags": [
13890
+ "disco"
13891
+ , "party"
13892
+ ]
13893
+ , "unicode_version": "14.0"
13894
+ , "ios_version": "15.4"
13895
+ }
13406
13896
  , {
13407
13897
  "emoji": "🪆"
13408
13898
  , "description": "nesting dolls"
@@ -14601,6 +15091,18 @@
14601
15091
  , "unicode_version": "6.0"
14602
15092
  , "ios_version": "6.0"
14603
15093
  }
15094
+ , {
15095
+ "emoji": "🪫"
15096
+ , "description": "low battery"
15097
+ , "category": "Objects"
15098
+ , "aliases": [
15099
+ "low_battery"
15100
+ ]
15101
+ , "tags": [
15102
+ ]
15103
+ , "unicode_version": "14.0"
15104
+ , "ios_version": "15.4"
15105
+ }
14604
15106
  , {
14605
15107
  "emoji": "🔌"
14606
15108
  , "description": "electric plug"
@@ -15291,11 +15793,11 @@
15291
15793
  , "description": "envelope"
15292
15794
  , "category": "Objects"
15293
15795
  , "aliases": [
15294
- "email"
15295
- , "envelope"
15796
+ "envelope"
15296
15797
  ]
15297
15798
  , "tags": [
15298
15799
  "letter"
15800
+ , "email"
15299
15801
  ]
15300
15802
  , "unicode_version": ""
15301
15803
  , "ios_version": "6.0"
@@ -15305,7 +15807,8 @@
15305
15807
  , "description": "e-mail"
15306
15808
  , "category": "Objects"
15307
15809
  , "aliases": [
15308
- "e-mail"
15810
+ "email"
15811
+ , "e-mail"
15309
15812
  ]
15310
15813
  , "tags": [
15311
15814
  ]
@@ -15988,7 +16491,7 @@
15988
16491
  }
15989
16492
  , {
15990
16493
  "emoji": "🔫"
15991
- , "description": "pistol"
16494
+ , "description": "water pistol"
15992
16495
  , "category": "Objects"
15993
16496
  , "aliases": [
15994
16497
  "gun"
@@ -16347,6 +16850,18 @@
16347
16850
  , "unicode_version": "12.0"
16348
16851
  , "ios_version": "13.0"
16349
16852
  }
16853
+ , {
16854
+ "emoji": "🩼"
16855
+ , "description": "crutch"
16856
+ , "category": "Objects"
16857
+ , "aliases": [
16858
+ "crutch"
16859
+ ]
16860
+ , "tags": [
16861
+ ]
16862
+ , "unicode_version": "14.0"
16863
+ , "ios_version": "15.4"
16864
+ }
16350
16865
  , {
16351
16866
  "emoji": "🩺"
16352
16867
  , "description": "stethoscope"
@@ -16359,6 +16874,18 @@
16359
16874
  , "unicode_version": "12.0"
16360
16875
  , "ios_version": "13.0"
16361
16876
  }
16877
+ , {
16878
+ "emoji": "🩻"
16879
+ , "description": "x-ray"
16880
+ , "category": "Objects"
16881
+ , "aliases": [
16882
+ "x_ray"
16883
+ ]
16884
+ , "tags": [
16885
+ ]
16886
+ , "unicode_version": "14.0"
16887
+ , "ios_version": "15.4"
16888
+ }
16362
16889
  , {
16363
16890
  "emoji": "🚪"
16364
16891
  , "description": "door"
@@ -16602,6 +17129,18 @@
16602
17129
  , "unicode_version": "11.0"
16603
17130
  , "ios_version": "12.1"
16604
17131
  }
17132
+ , {
17133
+ "emoji": "🫧"
17134
+ , "description": "bubbles"
17135
+ , "category": "Objects"
17136
+ , "aliases": [
17137
+ "bubbles"
17138
+ ]
17139
+ , "tags": [
17140
+ ]
17141
+ , "unicode_version": "14.0"
17142
+ , "ios_version": "15.4"
17143
+ }
16605
17144
  , {
16606
17145
  "emoji": "🪥"
16607
17146
  , "description": "toothbrush"
@@ -16725,6 +17264,18 @@
16725
17264
  , "unicode_version": "13.0"
16726
17265
  , "ios_version": "14.0"
16727
17266
  }
17267
+ , {
17268
+ "emoji": "🪪"
17269
+ , "description": "identification card"
17270
+ , "category": "Objects"
17271
+ , "aliases": [
17272
+ "identification_card"
17273
+ ]
17274
+ , "tags": [
17275
+ ]
17276
+ , "unicode_version": "14.0"
17277
+ , "ios_version": "15.4"
17278
+ }
16728
17279
  , {
16729
17280
  "emoji": "🏧"
16730
17281
  , "description": "ATM sign"
@@ -17979,6 +18530,18 @@
17979
18530
  , "unicode_version": "6.0"
17980
18531
  , "ios_version": "6.0"
17981
18532
  }
18533
+ , {
18534
+ "emoji": "🟰"
18535
+ , "description": "heavy equals sign"
18536
+ , "category": "Symbols"
18537
+ , "aliases": [
18538
+ "heavy_equals_sign"
18539
+ ]
18540
+ , "tags": [
18541
+ ]
18542
+ , "unicode_version": "14.0"
18543
+ , "ios_version": "15.4"
18544
+ }
17982
18545
  , {
17983
18546
  "emoji": "♾️"
17984
18547
  , "description": "infinity"
@@ -18017,7 +18580,7 @@
18017
18580
  }
18018
18581
  , {
18019
18582
  "emoji": "❓"
18020
- , "description": "question mark"
18583
+ , "description": "red question mark"
18021
18584
  , "category": "Symbols"
18022
18585
  , "aliases": [
18023
18586
  "question"
@@ -18054,7 +18617,7 @@
18054
18617
  }
18055
18618
  , {
18056
18619
  "emoji": "❗"
18057
- , "description": "exclamation mark"
18620
+ , "description": "red exclamation mark"
18058
18621
  , "category": "Symbols"
18059
18622
  , "aliases": [
18060
18623
  "exclamation"
@@ -11,6 +11,11 @@ module Emoji
11
11
  # True if the emoji is not a standard Emoji character.
12
12
  def custom?() !raw end
13
13
 
14
+ # True if the emoji supports Fitzpatrick scale skin tone modifiers
15
+ def skin_tones?() @skin_tones end
16
+
17
+ attr_writer :skin_tones
18
+
14
19
  # A list of names uniquely referring to this emoji.
15
20
  attr_reader :aliases
16
21
 
@@ -38,6 +43,21 @@ module Emoji
38
43
  # Raw Unicode string for an emoji. Nil if emoji is non-standard.
39
44
  def raw() unicode_aliases.first end
40
45
 
46
+ # Raw Unicode strings for each skin tone variant of this emoji.
47
+ def raw_skin_tone_variants
48
+ return [] if custom? || !skin_tones?
49
+ raw_normalized = raw.sub("\u{fe0f}", "") # strip VARIATION_SELECTOR_16
50
+ idx = raw_normalized.index("\u{200d}") # detect zero-width joiner
51
+ SKIN_TONES.map do |modifier|
52
+ if idx
53
+ # insert modifier before zero-width joiner
54
+ raw_normalized[...idx] + modifier + raw_normalized[idx..]
55
+ else
56
+ raw_normalized + modifier
57
+ end
58
+ end
59
+ end
60
+
41
61
  def add_unicode_alias(str)
42
62
  unicode_aliases << str
43
63
  end
@@ -54,6 +74,7 @@ module Emoji
54
74
  @aliases = Array(name)
55
75
  @unicode_aliases = []
56
76
  @tags = []
77
+ @skin_tones = false
57
78
  end
58
79
 
59
80
  def inspect
@@ -76,6 +97,16 @@ module Emoji
76
97
  end
77
98
 
78
99
  private
100
+
101
+ SKIN_TONES = [
102
+ "\u{1F3FB}", # light skin tone
103
+ "\u{1F3FC}", # medium-light skin tone
104
+ "\u{1F3FD}", # medium skin tone
105
+ "\u{1F3FE}", # medium-dark skin tone
106
+ "\u{1F3FF}", # dark skin tone
107
+ ]
108
+
109
+ private_constant :SKIN_TONES
79
110
 
80
111
  def default_image_filename
81
112
  if custom?
data/lib/emoji.rb CHANGED
@@ -51,11 +51,12 @@ module Emoji
51
51
 
52
52
  # Public: Find an emoji by its unicode character. Return nil if missing.
53
53
  def find_by_unicode(unicode)
54
- unicodes_index[unicode]
54
+ unicodes_index[unicode] || unicodes_index[unicode.sub(SKIN_TONE_RE, "")]
55
55
  end
56
56
 
57
57
  private
58
58
  VARIATION_SELECTOR_16 = "\u{fe0f}".freeze
59
+ SKIN_TONE_RE = /[\u{1F3FB}-\u{1F3FF}]/
59
60
 
60
61
  # Characters which must have VARIATION_SELECTOR_16 to render as color emoji:
61
62
  TEXT_GLYPHS = [
@@ -70,7 +71,7 @@ module Emoji
70
71
  "\u{3030}", # wavy dash
71
72
  ].freeze
72
73
 
73
- private_constant :VARIATION_SELECTOR_16, :TEXT_GLYPHS
74
+ private_constant :VARIATION_SELECTOR_16, :TEXT_GLYPHS, :SKIN_TONE_RE
74
75
 
75
76
  def parse_data_file
76
77
  data = File.open(data_file, 'r:UTF-8') do |file|
@@ -118,6 +119,7 @@ module Emoji
118
119
  emoji.description = dedup.call(raw_emoji[:description])
119
120
  emoji.unicode_version = dedup.call(raw_emoji[:unicode_version])
120
121
  emoji.ios_version = dedup.call(raw_emoji[:ios_version])
122
+ emoji.skin_tones = raw_emoji.fetch(:skin_tones, false)
121
123
  end
122
124
  end
123
125
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gemoji
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.0.rc2
4
+ version: 4.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - GitHub
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-01-31 00:00:00.000000000 Z
11
+ date: 2022-11-16 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Character information and metadata for Unicode emoji.
14
14
  email: support@github.com
@@ -26,7 +26,7 @@ homepage: https://github.com/github/gemoji
26
26
  licenses:
27
27
  - MIT
28
28
  metadata: {}
29
- post_install_message:
29
+ post_install_message:
30
30
  rdoc_options: []
31
31
  require_paths:
32
32
  - lib
@@ -37,12 +37,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
37
37
  version: '1.9'
38
38
  required_rubygems_version: !ruby/object:Gem::Requirement
39
39
  requirements:
40
- - - ">"
40
+ - - ">="
41
41
  - !ruby/object:Gem::Version
42
- version: 1.3.1
42
+ version: '0'
43
43
  requirements: []
44
- rubygems_version: 3.0.6
45
- signing_key:
44
+ rubygems_version: 3.3.7
45
+ signing_key:
46
46
  specification_version: 4
47
47
  summary: Unicode emoji library
48
48
  test_files: []