gemoji 4.0.0.rc2 → 4.0.0

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 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: []