gemoji 4.0.0.rc3 → 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: 0b0257a5762bde06a3a54fa8a2083a67fb229e54e13b99828479b038897ff2a6
4
- data.tar.gz: a777bcc952cb34978973ffbfd1cb9beb770f45c77da45bf1e8761ca1ded0fc3e
3
+ metadata.gz: a1929f8b725c8de093755d34ce7789d2c233fa423eacc17106556ccdb6f9a86d
4
+ data.tar.gz: 006ea3db40448da6d341cd4db422a237f2a6db2354ac855c35f9def24bf19373
5
5
  SHA512:
6
- metadata.gz: 3f3cbf5b4d7717f2e3d28ec281bdf1e2b346fe1ea35948b998e0e4834777a5b008b321ba11eb6536d046a721a3f6114c195805d6ea3f1acc1f2d5690ed20c7a6
7
- data.tar.gz: 0a75a7faa75475b130a9fa9a28566280087c5a2ec13d6f161185dfab32b62c8b4109e9a64ab40c004d80c2a900d252d98e11f87eafa48c8246cdeb5833e33233
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,19 @@
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
+ }
490
556
  , {
491
557
  "emoji": "😶‍🌫️"
492
558
  , "description": "face in clouds"
@@ -763,7 +829,7 @@
763
829
  }
764
830
  , {
765
831
  "emoji": "😵"
766
- , "description": "knocked-out face"
832
+ , "description": "face with crossed-out eyes"
767
833
  , "category": "Smileys & Emotion"
768
834
  , "aliases": [
769
835
  "dizzy_face"
@@ -888,6 +954,19 @@
888
954
  , "unicode_version": "6.1"
889
955
  , "ios_version": "6.0"
890
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
+ }
891
970
  , {
892
971
  "emoji": "😟"
893
972
  , "description": "worried face"
@@ -994,6 +1073,20 @@
994
1073
  , "unicode_version": "11.0"
995
1074
  , "ios_version": "12.1"
996
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
+ }
997
1090
  , {
998
1091
  "emoji": "😦"
999
1092
  , "description": "frowning face with open mouth"
@@ -2104,6 +2197,58 @@
2104
2197
  , "ios_version": "8.3"
2105
2198
  , "skin_tones": true
2106
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
+ }
2107
2252
  , {
2108
2253
  "emoji": "👌"
2109
2254
  , "description": "OK hand"
@@ -2173,6 +2318,19 @@
2173
2318
  , "ios_version": "10.2"
2174
2319
  , "skin_tones": true
2175
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
+ }
2176
2334
  , {
2177
2335
  "emoji": "🤟"
2178
2336
  , "description": "love-you gesture"
@@ -2291,6 +2449,19 @@
2291
2449
  , "ios_version": "6.0"
2292
2450
  , "skin_tones": true
2293
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
+ }
2294
2465
  , {
2295
2466
  "emoji": "👍"
2296
2467
  , "description": "thumbs up"
@@ -2409,6 +2580,20 @@
2409
2580
  , "ios_version": "6.0"
2410
2581
  , "skin_tones": true
2411
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
+ }
2412
2597
  , {
2413
2598
  "emoji": "👐"
2414
2599
  , "description": "open hands"
@@ -2447,6 +2632,7 @@
2447
2632
  ]
2448
2633
  , "unicode_version": "9.0"
2449
2634
  , "ios_version": "10.2"
2635
+ , "skin_tones": true
2450
2636
  }
2451
2637
  , {
2452
2638
  "emoji": "🙏"
@@ -2728,6 +2914,18 @@
2728
2914
  , "unicode_version": "6.0"
2729
2915
  , "ios_version": "6.0"
2730
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
+ }
2731
2929
  , {
2732
2930
  "emoji": "👶"
2733
2931
  , "description": "baby"
@@ -4344,6 +4542,19 @@
4344
4542
  , "ios_version": "10.0"
4345
4543
  , "skin_tones": true
4346
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
+ }
4347
4558
  , {
4348
4559
  "emoji": "🤴"
4349
4560
  , "description": "prince"
@@ -4537,6 +4748,32 @@
4537
4748
  , "ios_version": "10.2"
4538
4749
  , "skin_tones": true
4539
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
+ }
4540
4777
  , {
4541
4778
  "emoji": "🤱"
4542
4779
  , "description": "breast-feeding"
@@ -4992,6 +5229,18 @@
4992
5229
  , "unicode_version": "11.0"
4993
5230
  , "ios_version": "12.1"
4994
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
+ }
4995
5244
  , {
4996
5245
  "emoji": "💆"
4997
5246
  , "description": "person getting massage"
@@ -6167,7 +6416,7 @@
6167
6416
  ]
6168
6417
  , "unicode_version": "12.0"
6169
6418
  , "ios_version": "13.0"
6170
- , "skin_tones": true
6419
+ , "skin_tones": false
6171
6420
  }
6172
6421
  , {
6173
6422
  "emoji": "👭"
@@ -7927,6 +8176,18 @@
7927
8176
  , "unicode_version": "6.0"
7928
8177
  , "ios_version": "6.0"
7929
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
+ }
7930
8191
  , {
7931
8192
  "emoji": "🐌"
7932
8193
  , "description": "snail"
@@ -8162,6 +8423,18 @@
8162
8423
  , "unicode_version": "6.0"
8163
8424
  , "ios_version": "6.0"
8164
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
+ }
8165
8438
  , {
8166
8439
  "emoji": "🏵️"
8167
8440
  , "description": "rosette"
@@ -8411,6 +8684,30 @@
8411
8684
  , "unicode_version": "6.0"
8412
8685
  , "ios_version": "6.0"
8413
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
+ }
8414
8711
  , {
8415
8712
  "emoji": "🍇"
8416
8713
  , "description": "grapes"
@@ -8815,6 +9112,18 @@
8815
9112
  , "unicode_version": "9.0"
8816
9113
  , "ios_version": "10.2"
8817
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
+ }
8818
9127
  , {
8819
9128
  "emoji": "🌰"
8820
9129
  , "description": "chestnut"
@@ -9864,6 +10173,18 @@
9864
10173
  , "unicode_version": "9.0"
9865
10174
  , "ios_version": "10.2"
9866
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
+ }
9867
10188
  , {
9868
10189
  "emoji": "🥤"
9869
10190
  , "description": "cup with straw"
@@ -9990,6 +10311,18 @@
9990
10311
  , "unicode_version": "6.0"
9991
10312
  , "ios_version": "6.0"
9992
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
+ }
9993
10326
  , {
9994
10327
  "emoji": "🏺"
9995
10328
  , "description": "amphora"
@@ -10751,6 +11084,18 @@
10751
11084
  , "unicode_version": "6.0"
10752
11085
  , "ios_version": "6.0"
10753
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
+ }
10754
11099
  , {
10755
11100
  "emoji": "🎡"
10756
11101
  , "description": "ferris wheel"
@@ -11332,6 +11677,18 @@
11332
11677
  , "unicode_version": "5.2"
11333
11678
  , "ios_version": "6.0"
11334
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
+ }
11335
11692
  , {
11336
11693
  "emoji": "🚨"
11337
11694
  , "description": "police car light"
@@ -11409,6 +11766,19 @@
11409
11766
  , "unicode_version": "4.1"
11410
11767
  , "ios_version": "6.0"
11411
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
+ }
11412
11782
  , {
11413
11783
  "emoji": "⛵"
11414
11784
  , "description": "sailboat"
@@ -13408,6 +13778,18 @@
13408
13778
  , "unicode_version": "11.0"
13409
13779
  , "ios_version": "12.1"
13410
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
+ }
13411
13793
  , {
13412
13794
  "emoji": "🎮"
13413
13795
  , "description": "video game"
@@ -13497,6 +13879,20 @@
13497
13879
  , "unicode_version": "13.0"
13498
13880
  , "ios_version": "14.0"
13499
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
+ }
13500
13896
  , {
13501
13897
  "emoji": "🪆"
13502
13898
  , "description": "nesting dolls"
@@ -14695,6 +15091,18 @@
14695
15091
  , "unicode_version": "6.0"
14696
15092
  , "ios_version": "6.0"
14697
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
+ }
14698
15106
  , {
14699
15107
  "emoji": "🔌"
14700
15108
  , "description": "electric plug"
@@ -16442,6 +16850,18 @@
16442
16850
  , "unicode_version": "12.0"
16443
16851
  , "ios_version": "13.0"
16444
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
+ }
16445
16865
  , {
16446
16866
  "emoji": "🩺"
16447
16867
  , "description": "stethoscope"
@@ -16454,6 +16874,18 @@
16454
16874
  , "unicode_version": "12.0"
16455
16875
  , "ios_version": "13.0"
16456
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
+ }
16457
16889
  , {
16458
16890
  "emoji": "🚪"
16459
16891
  , "description": "door"
@@ -16697,6 +17129,18 @@
16697
17129
  , "unicode_version": "11.0"
16698
17130
  , "ios_version": "12.1"
16699
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
+ }
16700
17144
  , {
16701
17145
  "emoji": "🪥"
16702
17146
  , "description": "toothbrush"
@@ -16820,6 +17264,18 @@
16820
17264
  , "unicode_version": "13.0"
16821
17265
  , "ios_version": "14.0"
16822
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
+ }
16823
17279
  , {
16824
17280
  "emoji": "🏧"
16825
17281
  , "description": "ATM sign"
@@ -18074,6 +18530,18 @@
18074
18530
  , "unicode_version": "6.0"
18075
18531
  , "ios_version": "6.0"
18076
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
+ }
18077
18545
  , {
18078
18546
  "emoji": "♾️"
18079
18547
  , "description": "infinity"
@@ -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.rc3
4
+ version: 4.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - GitHub
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-07-26 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
@@ -37,11 +37,11 @@ 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.3
44
+ rubygems_version: 3.3.7
45
45
  signing_key:
46
46
  specification_version: 4
47
47
  summary: Unicode emoji library