Class: Rumoji::Emoji

Inherits:
Object
  • Object
show all
Defined in:
lib/rumoji/emoji.rb,
lib/rumoji/emoji/nature.rb,
lib/rumoji/emoji/people.rb,
lib/rumoji/emoji/places.rb,
lib/rumoji/emoji/objects.rb,
lib/rumoji/emoji/symbols.rb

Constant Summary collapse

ALL =
PEOPLE | NATURE | OBJECTS | PLACES | SYMBOLS
NATURE =
Set[
  self.new("\u{2600}" , [:sunny], "BLACK SUN WITH RAYS"),
  self.new("\u{2614}" , [:umbrella], "UMBRELLA WITH RAIN DROPS"),
  self.new("\u{2601}" , [:cloud]),
  self.new("\u{2744}" , [:snowflake]),
  self.new("\u{26C4}" , [:snowman], "SNOWMAN WITHOUT SNOW"),
  self.new("\u{26A1}" , [:zap], "HIGH VOLTAGE SIGN"),
  self.new("\u{1F300}", [:cyclone]), # "typhoon, hurricane
  self.new("\u{1F301}", [:foggy]),
  self.new("\u{1F30A}", [:ocean], "WATER WAVE"),
  # Animals
  self.new("\u{1F431}", [:cat], "CAT FACE"),
  self.new("\u{1F436}", [:dog], "DOG FACE"),
  self.new("\u{1F42D}", [:mouse], "MOUSE FACE"),
  self.new("\u{1F439}", [:hamster], "HAMSTER FACE"),
  self.new("\u{1F430}", [:rabbit], "RABBIT FACE"),
  self.new("\u{1F43A}", [:wolf], "WOLF FACE"),
  self.new("\u{1F438}", [:frog], "FROG FACE"),
  self.new("\u{1F42F}", [:tiger], "TIGER FACE"),
  self.new("\u{1F428}", [:koala]),
  self.new("\u{1F43B}", [:bear], "BEAR FACE"),
  self.new("\u{1F437}", [:pig], "PIG FACE"),
  self.new("\u{1F43D}", [:pig_nose]),
  self.new("\u{1F42E}", [:cow], "COW FACE"),
  self.new("\u{1F417}", [:boar]),
  self.new("\u{1F435}", [:monkey_face]),
  self.new("\u{1F412}", [:monkey]),
  self.new("\u{1F434}", [:horse], "HORSE FACE"),
  self.new("\u{1F40E}", [:racehorse], "HORSE"),
  self.new("\u{1F42B}", [:camel], "BACTRIAN CAMEL"), # "has two humps"
  self.new("\u{1F411}", [:sheep]),
  self.new("\u{1F418}", [:elephant]),
  self.new("\u{1F43C}", [:panda_face]),
  self.new("\u{1F40D}", [:snake]),
  self.new("\u{1F426}", [:bird]),
  self.new("\u{1F424}", [:baby_chick]),
  self.new("\u{1F425}", [:hatched_chick], "FRONT-FACING BABY CHICK"),
  self.new("\u{1F423}", [:hatching_chick]),
  self.new("\u{1F414}", [:chicken]),
  self.new("\u{1F427}", [:penguin]),
  self.new("\u{1F422}", [:turtle]),
  self.new("\u{1F41B}", [:bug]),
  self.new("\u{1F41D}", [:honeybee]),
  self.new("\u{1F41C}", [:ant]),
  self.new("\u{1F41E}", [:beetle], "LADY BEETLE"), # "ladybird, ladybug, coccinellids"
  self.new("\u{1F40C}", [:snail]),
  self.new("\u{1F419}", [:octopus]),
  self.new("\u{1F420}", [:tropical_fish]),
  self.new("\u{1F41F}", [:fish]),
  self.new("\u{1F433}", [:whale], "SPOUTING WHALE"),
  self.new("\u{1F40B}", [:whale2], "WHALE"),
  self.new("\u{1F42C}", [:dolphin]),
  self.new("\u{1F404}", [:cow2], "COW"),
  self.new("\u{1F40F}", [:ram]),
  self.new("\u{1F400}", [:rat]),
  self.new("\u{1F403}", [:water_buffalo]),
  self.new("\u{1F405}", [:tiger2], "TIGER"),
  self.new("\u{1F407}", [:rabbit2], "RABBIT"),
  self.new("\u{1F409}", [:dragon]),
  self.new("\u{1F410}", [:goat]),
  self.new("\u{1F413}", [:rooster]),
  self.new("\u{1F415}", [:dog2], "DOG"),
  self.new("\u{1F416}", [:pig2], "PIG"),
  self.new("\u{1F401}", [:mouse2], "MOUSE"),
  self.new("\u{1F402}", [:ox]),
  self.new("\u{1F432}", [:dragon_face]),
  self.new("\u{1F421}", [:blowfish]),
  self.new("\u{1F40A}", [:crocodile]),
  self.new("\u{1F42A}", [:dromedary_camel]), # "has a single hump"
  self.new("\u{1F406}", [:leopard]),
  self.new("\u{1F408}", [:cat2], "CAT"),
  self.new("\u{1F429}", [:poodle]),
  self.new("\u{1F43E}", [:paw_prints]),
  # Flowers
  self.new("\u{1F490}", [:bouquet]),
  self.new("\u{1F338}", [:cherry_blossom]),
  self.new("\u{1F337}", [:tulip]),
  self.new("\u{1F340}", [:four_leaf_clover]),
  self.new("\u{1F339}", [:rose]),
  self.new("\u{1F33B}", [:sunflower]),
  self.new("\u{1F33A}", [:hibiscus]),
  self.new("\u{1F341}", [:maple_leaf]),
  self.new("\u{1F343}", [:leaves], "LEAF FLUTTERING IN WIND"),
  self.new("\u{1F342}", [:fallen_leaf]),
  self.new("\u{1F33F}", [:herb]),
  self.new("\u{1F344}", [:mushroom]),
  self.new("\u{1F335}", [:cactus]),
  self.new("\u{1F334}", [:palm_tree]),
  self.new("\u{1F332}", [:evergreen_tree]),
  self.new("\u{1F333}", [:deciduous_tree]),
  self.new("\u{1F330}", [:chestnut]),
  self.new("\u{1F331}", [:seedling]),
  self.new("\u{1F33C}", [:blossum]), # "daisy"
  self.new("\u{1F33E}", [:ear_of_rice]),
  self.new("\u{1F41A}", [:shell], "SPIRAL SHELL"),
  self.new("\u{1F310}", [:globe_with_meridians]), # "used to indicate international input source, world clocks with time zones, etc."
  # Moon
  self.new("\u{1F31E}", [:sun_with_face]),
  self.new("\u{1F31D}", [:full_moon_with_face]),
  self.new("\u{1F31A}", [:new_moon_with_face]),
  self.new("\u{1F311}", [:new_moon], "NEW MOON SYMBOL"),
  self.new("\u{1F312}", [:waxing_crescent_moon], "WAXING CRESCENT MOON SYMBOL"),
  self.new("\u{1F313}", [:first_quarter_moon], "FIRST QUARTER MOON SYMBOL"), # "half moon"
  self.new("\u{1F314}", [:waxing_gibbous_moon], "WAXING GIBBOUS MOON SYMBOL"), # "waxing moon"
  self.new("\u{1F315}", [:full_moon], "FULL MOON SYMBOL"),
  self.new("\u{1F316}", [:waning_gibbous_moon], "WAINING GIBBOUS MOON SYMBOL"),
  self.new("\u{1F317}", [:last_quarter_moon], "LAST QUARTER MOON SYMBOL"),
  self.new("\u{1F318}", [:waning_crescent_moon], "WANING CRESCENT MOON SYMBOL"),
  self.new("\u{1F31C}", [:last_quarter_moon_with_face]),
  self.new("\u{1F31B}", [:first_quarter_moon_with_face]),
  self.new("\u{1F319}", [:moon], "CRESCENT MOON"), # "may indicate either the first or last quarter moon"
  self.new("\u{1F30D}", [:earth_africa], "EARTH GLOBE EUROPE-AFRICA"),
  self.new("\u{1F30E}", [:earth_americas], "EARTH GLOBE AMERICAS"),
  self.new("\u{1F30F}", [:earth_asia], "EARTH GLOBE ASIA-AUSTRALIA"),
  self.new("\u{1F30B}", [:volcano]),
  self.new("\u{1F30C}", [:milky_way]),
  self.new("\u{26C5}" , [:partly_sunny], "SUN BEHIND CLOUD")
]
PEOPLE =
Set[
  self.new("\u{1F604}", [:smile], "SMILING FACE WITH OPEN MOUTH AND SMILING EYES"),
  self.new("\u{1F606}", [:laughing], "SMILING FACE WITH OPEN MOUTH AND TIGHTLY-CLOSED EYES"),
  self.new("\u{1F60A}", [:blush], "SMILING FACE WITH SMILING EYES"),
  self.new("\u{1F603}", [:smiley], "SMILING FACE WITH OPEN MOUTH"),
  self.new("\u{263A}" , [:relaxed], "WHITE SMILING FACE"),
  self.new("\u{1F60F}", [:smirk], "SMIRKING FACE"),
  self.new("\u{1F60D}", [:heart_eyes], "SMILING FACE WITH HEART-SHAPED EYES"),
  self.new("\u{1F618}", [:kissing_heart], "FACE THROWING KISS"),
  self.new("\u{1F61A}", [:kissing_closed_eyes], "KISSING FACE WITH CLOSED EYES"),
  self.new("\u{1F633}", [:flushed], "FLUSHED FACE"),
  self.new("\u{1F625}", [:relieved], "DISAPPOINTED BUT RELIEVED FACE"),
  self.new("\u{1F60C}", [:satisfied], "RELIEVED FACE"),
  self.new("\u{1F601}", [:grin], "GRINNING FACE WITH SMILING EYES"),
  self.new("\u{1F609}", [:wink], "WINKING FACE"),
  self.new("\u{1F61C}", [:wink2, :stuck_out_tongue_winking_eye], "FACE WITH STUCK OUT TONGUE AND WINKING EYE"), # "kidding, not serious"
  self.new("\u{1F61D}", [:stuck_out_tongue_closed_eyes], "FACE WITH STUCK-OUT TONGUE AND TIGHTLY-CLOSED EYES"), # "kidding, not serious"
  self.new("\u{1F600}", [:grinning], "GRINNING FACE"),
  self.new("\u{1F617}", [:kissing], "KISSING FACE"),
  self.new("\u{1F619}", [:kissing_smiling_eyes], "KISSING FACE WITH SMILING EYES"),
  self.new("\u{1F61B}", [:stuck_out_tongue], "FACE WITH STUCK-OUT TONGUE"),
  self.new("\u{1F634}", [:sleeping], "SLEEPING FACE"),
  self.new("\u{1F61F}", [:worried], "WORRIED FACE"),
  self.new("\u{1F626}", [:frowning], "FROWNING FACE WITH OPEN MOUTH"),
  self.new("\u{1F627}", [:anguished], "ANGUISHED FACE"),
  self.new("\u{1F62E}", [:open_mouth], "FACE WITH OPEN MOUTH"),
  self.new("\u{1F62C}", [:grimacing], "GRIMACING FACE"),
  self.new("\u{1F615}", [:confused], "CONFUSED FACE"),
  self.new("\u{1F62F}", [:hushed], "HUSHED FACE"),
  self.new("\u{1F611}", [:expressionless], "EXPRESSIONLESS FACE"),
  self.new("\u{1F612}", [:unamused], "UNAMUSED FACE"),
  self.new("\u{1F605}", [:sweat_smile], "SMILING FACE WITH OPEN MOUTH AND COLD SWEAT"),
  self.new("\u{1F613}", [:sweat], "FACE WITH COLD SWEAT"),
  self.new("\u{1F629}", [:weary], "WEARY FACE"),
  self.new("\u{1F614}", [:pensive], "PENSIVE FACE"),
  self.new("\u{1F61E}", [:dissapointed], "DISAPPOINTED FACE"),
  self.new("\u{1F616}", [:confounded], "CONFOUNDED FACE"),
  self.new("\u{1F628}", [:fearful], "FEARFUL FACE"),
  self.new("\u{1F630}", [:cold_sweat], "FACE WITH OPEN MOUTH AND COLD SWEAT"),
  self.new("\u{1F623}", [:persevere], "PERSEVERING FACE"),
  self.new("\u{1F622}", [:cry], "CRYING FACE"),
  self.new("\u{1F62D}", [:sob], "LOUDLY CRYING FACE"),
  self.new("\u{1F602}", [:joy], "FACE WITH TEARS OF JOY"),
  self.new("\u{1F632}", [:astonished], "ASTONISHED FACE"),
  self.new("\u{1F631}", [:scream], "FACE SCREAMING IN FEAR"),
  self.new("\u{1F62B}", [:tired_face]),
  self.new("\u{1F620}", [:angry], "ANGRY FACE"),
  self.new("\u{1F621}", [:rage], "POUTING FACE"),
  self.new("\u{1F624}", [:triumph], "FACE WITH LOOK OF TRIUMPH"),
  self.new("\u{1F62A}", [:sleepy], "SLEEPY FACE"),
  self.new("\u{1F60B}", [:yum], "FACE SAVOURING DELICIOUS FOOD"),
  self.new("\u{1F637}", [:mask], "FACE WITH MEDICAL MASK"),
  self.new("\u{1F60E}", [:sunglasses], "SMILING FACE WITH SUNGLASSES"),
  self.new("\u{1F635}", [:dizzy_face]),
  self.new("\u{1F47F}", [:imp]),
  self.new("\u{1F608}", [:smiling_imp], "SMILING FACE WITH HORNS"),
  self.new("\u{1F610}", [:neutral_face]),
  self.new("\u{1F636}", [:no_mouth], "FACE WITHOUT MOUTH"),
  self.new("\u{1F607}", [:innocent], "SMILING FACE WITH HALO"),
  self.new("\u{1F47D}", [:alien], "EXTRATERRESTRIAL ALIEN"),
  self.new("\u{1F49B}", [:yellow_heart]),
  self.new("\u{1F499}", [:blue_heart]),
  self.new("\u{1F49C}", [:purple_heart]),
  self.new("\u{2764}" , [:heart], "HEAVY BLACK HEART"),
  self.new("\u{1F49A}", [:green_heart]),
  self.new("\u{1F494}", [:broken_heart]),
  self.new("\u{1F493}", [:heartbeat], "BEATING HEART"),
  self.new("\u{1F497}", [:heartpulse], "GROWING HEART"),
  self.new("\u{1F495}", [:two_hearts]),
  self.new("\u{1F49E}", [:revolving_hearts]),
  self.new("\u{1F498}", [:cupid], "HEART WITH ARROW"),
  self.new("\u{1F496}", [:sparkling_heart]),
  self.new("\u{2728}" , [:sparkles]),
  self.new("\u{2B50}" , [:star], "WHITE MEDIUM STAR"),
  self.new("\u{1F31F}", [:star2], "GLOWING STAR"),
  self.new("\u{1F4AB}", [:dizzy], "DIZZY SYMBOL"), # "circling stars, squeans"
  self.new("\u{1F4A5}", [:boom, :collision], "COLLISION SYMBOL"),
  self.new("\u{1F4A2}", [:anger], "ANGER SYMBOL"),
  self.new("\u{2757}" , [:exclamation], "HEAVY EXCLAMATION MARK SYMBOL"),
  self.new("\u{2753}" , [:question], "BLACK QUESTION MARK ORNAMENT"),
  self.new("\u{2755}" , [:grey_exclamation], "WHITE EXCLAMATION MARK ORNAMENT"),
  self.new("\u{2754}" , [:grey_question], "WHITE QUESTION MARK ORNAMENT"),
  self.new("\u{1F4A4}", [:zzz], "SLEEPING SYMBOL"),
  self.new("\u{1F4A8}", [:dash], "DASH SYMBOL"), # "running dash, briffits"
  self.new("\u{1F4A6}", [:sweat_drops], "SPLASHING SWEAT SYMBOL"), # "plewds"
  self.new("\u{1F3B6}", [:notes], "MULTIPLE MUSICAL NOTES"), # "dancing notes, mood, melody"
  self.new("\u{1F3B5}", [:musical_note]), # "music, being in good mood"
  self.new("\u{1F525}", [:fire], "FIRE"),
  # Poop
  self.new("\u{1F4A9}", [:hankey, :poop, :shit], "PILE OF POO"), # "dog dirt"
  self.new("\u{1F44D}", [:thumbsup, :"+1"], "THUMBS UP SIGN"),
  self.new("\u{1F44E}", [:thumbsdown, :"-1"], "THUMBS DOWN SIGN"),
  self.new("\u{1F44C}", [:ok_hand], "OK HAND SIGN"),
  self.new("\u{1F44A}", [:punch, :facepunch], "FISTED HAND SIGN"), # "punch
  self.new("\u{270A}" , [:fist], "RAISED FIST"),
  self.new("\u{270C}" , [:v], "VICTORY HAND"),
  self.new("\u{1F44B}", [:wave], "WAVING HAND SIGN"),
  self.new("\u{270B}" , [:hand], "RAISED HAND"),
  self.new("\u{1F450}", [:open_hands], "OPEN HANDS SIGN"),
  self.new("\u{261D}" , [:point_up], "WHITE UP POINTING INDEX"),
  self.new("\u{1F447}", [:point_down], "WHITE DOWN POINTING BACKHAND INDEX"),
  self.new("\u{1F448}", [:point_left], "WHITE LEFT POINTING BACKHAND INDEX"),
  self.new("\u{1F449}", [:point_right], "WHITE RIGHT POINTING BACKHAND INDEX"),
  self.new("\u{1F64C}", [:raised_hands], "PERSON RAISING BOTH HANDS IN CELEBRATION"), # "banzai!"
  self.new("\u{1F64F}", [:pray], "PERSON WITH FOLDED HANDS"), # "can indicate sorrow or regret; can indicate pleading"
  self.new("\u{1F446}", [:point_up_2], "WHITE UP POINTING BACKHAND INDEX"),
  self.new("\u{1F44F}", [:clap], "CLAPPING HANDS SIGN"),
  self.new("\u{1F4AA}", [:muscle], "FLEXED BICEPS"), # "strong, muscled"
  self.new("\u{1F6B6}", [:walking], "PEDESTRIAN"),
  self.new("\u{1F3C3}", [:runner, :running]),
  self.new("\u{1F46B}", [:couple], "MAN AND WOMAN HOLDING HANDS"),
  self.new("\u{1F46A}", [:family]),
  self.new("\u{1F46C}", [:two_men_holding_hands]),
  self.new("\u{1F46D}", [:two_women_holding_hands]),
  self.new("\u{1F483}", [:dancer]),
  self.new("\u{1F46F}", [:dancers], "WOMAN WITH BUNNY EARS"),
  self.new("\u{1F646}", [:ok_woman], "FACE WITH OK GESTURE"),
  self.new("\u{1F645}", [:no_good], "FACE WITH NO GOOD GESTURE"),
  self.new("\u{1F481}", [:information_desk_person]),
  self.new("\u{1F64B}", [:raised_hand], "HAPPY PERSON RAISING ONE HAND"),
  self.new("\u{1F470}", [:bride_with_veil]),
  self.new("\u{1F64E}", [:person_with_pouting_face]),
  self.new("\u{1F64D}", [:person_frowning]),
  self.new("\u{1F647}", [:bow], "PERSON BOWING DEEPLY"),
  self.new("\u{1F48F}", [:couplekiss], "KISS"), # "two people kissing"
  self.new("\u{1F491}", [:couple_with_heart]),
  self.new("\u{1F486}", [:massage], "FACE MASSAGE"),
  self.new("\u{1F487}", [:haircut]), # "usually indicates a beauty parlor"
  self.new("\u{1F485}", [:nail_care], "NAIL POLISH"), # "manicure, nail care"
  self.new("\u{1F466}", [:boy]),
  self.new("\u{1F467}", [:girl]),
  self.new("\u{1F469}", [:woman]),
  self.new("\u{1F468}", [:man]),
  self.new("\u{1F476}", [:baby]),
  self.new("\u{1F475}", [:older_woman]),
  self.new("\u{1F474}", [:older_man]),
  self.new("\u{1F471}", [:person_with_blond_hair]),
  self.new("\u{1F472}", [:man_with_gua_pi_mao]),
  self.new("\u{1F473}", [:man_with_turban]),
  self.new("\u{1F477}", [:construction_worker]),
  self.new("\u{1F46E}", [:cop], "POLICE OFFICER"),
  self.new("\u{1F47C}", [:angel], "BABY ANGEL"),
  self.new("\u{1F478}", [:princess]),
  # Cats
  self.new("\u{1F63A}", [:smiley_cat], "SMILING CAT FACE WITH OPEN MOUTH"),
  self.new("\u{1F638}", [:smile_cat], "GRINNING CAT FACE WITH SMILING EYES"),
  self.new("\u{1F63B}", [:heart_eyes_cat], "SMILING CAT FACE WITH HEART-SHAPED EYES"),
  self.new("\u{1F63D}", [:kissing_cat], "KISSING CAT FACE WITH CLOSED EYES"),
  self.new("\u{1F63C}", [:smirk_cat], "CAT FACE WITH WRY SMILE"),
  self.new("\u{1F640}", [:scream_cat], "WEARY CAT FACE"),
  self.new("\u{1F63F}", [:crying_cat_face], "CRYING CAT FACE"),
  self.new("\u{1F639}", [:joy_cat], "CAT FACE WITH TEARS OF JOY"),
  self.new("\u{1F63E}", [:pouting_cat], "POUTING CAT FACE"),
  self.new("\u{1F479}", [:japanese_ogre]),
  self.new("\u{1F47A}", [:japanese_goblin]),
  # Monkeys
  self.new("\u{1F648}", [:see_no_evil], "SEE-NO-EVIL MONKEY"),
  self.new("\u{1F649}", [:hear_no_evil], "HEAR-NO-EVIL MONKEY"),
  self.new("\u{1F64A}", [:speak_no_evil], "SPEAK-NO-EVIL MONKEY"),
  self.new("\u{1F482}", [:guardsman]),
  self.new("\u{1F480}", [:skull]),
  self.new("\u{1F463}", [:feet], "FOOTPRINTS"),
  self.new("\u{1F444}", [:lips], "MOUTH"),
  self.new("\u{1F48B}", [:kiss], "KISS MARK"), # "lips"
  self.new("\u{1F4A7}", [:droplet]), # "represents a drop of sweat or drop of water"
  self.new("\u{1F442}", [:ear]),
  self.new("\u{1F440}", [:eyes]),
  self.new("\u{1F443}", [:nose]),
  self.new("\u{1F445}", [:tongue]),
  self.new("\u{1F48C}", [:love_letter]),
  self.new("\u{1F464}", [:bust_in_silhouette]), # "guest account"
  self.new("\u{1F465}", [:busts_in_silhouette]), # "accounts"
  self.new("\u{1F4AC}", [:speech_balloon]), # "comic book conversation bubble"
  self.new("\u{1F4AD}", [:thought_balloon]),
]
PLACES =
Set[
  self.new("\u{1f6a1}", [:aerial_tramway]),
  self.new("\u{2708}" , [:airplane]),
  self.new("\u{1f691}", [:ambulance]),
  self.new("\u{2693}" , [:anchor]),
  self.new("\u{1f69b}", [:articulated_lorry]),
  self.new("\u{1f3e7}", [:atm]),
  self.new("\u{1f3e6}", [:bank]),
  self.new("\u{1f488}", [:barber]),
  self.new("\u{1f530}", [:beginner]),
  self.new("\u{1f6b2}", [:bike]),
  self.new("\u{1f699}", [:blue_car]),
  self.new("\u{26f5}" , [:boat, :sailboat]),
  self.new("\u{1f309}", [:bridge_at_night]),
  self.new("\u{1f685}", [:bullettrain_front]),
  self.new("\u{1f684}", [:bullettrain_side]),
  self.new("\u{1f68c}", [:bus]),
  self.new("\u{1f68f}", [:busstop]),
  self.new("\u{1f697}", [:car, :red_car]),
  self.new("\u{1f3a0}", [:carousel_horse]),
  self.new("\u{1f3c1}", [:checkered_flag]),
  self.new("\u{26ea}" , [:church]),
  self.new("\u{1f3aa}", [:circus_tent]),
  self.new("\u{1f307}", [:city_sunrise]),
  self.new("\u{1f306}", [:city_sunset]),
  self.new("\u{1f6a7}", [:construction]),
  self.new("\u{1f3ea}", [:convenience_store]),
  self.new("\u{1f38c}", [:crossed_flags]),
  self.new("\u{1f3ec}", [:department_store]),
  self.new("\u{1f3f0}", [:european_castle]),
  self.new("\u{1f3e4}", [:european_post_office]),
  self.new("\u{1f3ed}", [:factory]),
  self.new("\u{1f3a1}", [:ferris_wheel]),
  self.new("\u{1f692}", [:fire_engine]),
  self.new("\u{26f2}" , [:fountain]),
  self.new("\u{26fd}" , [:fuelpump]),
  self.new("\u{1f681}", [:helicopter]),
  self.new("\u{1f3e5}", [:hospital]),
  self.new("\u{1f3e8}", [:hotel]),
  self.new("\u{2668}" , [:hotsprings]),
  self.new("\u{1f3e0}", [:house]),
  self.new("\u{1f3e1}", [:house_with_garden]),
  self.new("\u{1f5fe}", [:japan]),
  self.new("\u{1f3ef}", [:japanese_castle]),
  self.new("\u{1f688}", [:light_rail]),
  self.new("\u{1f3e9}", [:love_hotel]),
  self.new("\u{1f690}", [:minibus]),
  self.new("\u{1f69d}", [:monorail]),
  self.new("\u{1f5fb}", [:mount_fuji]),
  self.new("\u{1f6a0}", [:mountain_cableway]),
  self.new("\u{1f69e}", [:mountain_railway]),
  self.new("\u{1f5ff}", [:moyai]),
  self.new("\u{1f3e2}", [:office]),
  self.new("\u{1f698}", [:oncoming_automobile]),
  self.new("\u{1f68d}", [:oncoming_bus]),
  self.new("\u{1f694}", [:oncoming_police_car]),
  self.new("\u{1f696}", [:oncoming_taxi]),
  self.new("\u{1f3ad}", [:performing_arts]),
  self.new("\u{1f693}", [:police_car]),
  self.new("\u{1f3e3}", [:post_office]),
  self.new("\u{1f683}", [:railway_car, :train]),
  self.new("\u{1f308}", [:rainbow]),
  self.new("\u{1f680}", [:rocket]),
  self.new("\u{1f3a2}", [:roller_coaster]),
  self.new("\u{1f6a8}", [:rotating_light]),
  self.new("\u{1f4cd}", [:round_pushpin]),
  self.new("\u{1f6a3}", [:rowboat]),
  self.new("\u{1f3eb}", [:school]),
  self.new("\u{1f6a2}", [:ship]),
  self.new("\u{1f3b0}", [:slot_machine]),
  self.new("\u{1f6a4}", [:speedboat]),
  self.new("\u{1f303}", [:stars]),
  self.new("\u{1f689}", [:station]),
  self.new("\u{1f5fd}", [:statue_of_liberty]),
  self.new("\u{1f682}", [:steam_locomotive]),
  self.new("\u{1f305}", [:sunrise]),
  self.new("\u{1f304}", [:sunrise_over_mountains]),
  self.new("\u{1f69f}", [:suspension_railway]),
  self.new("\u{1f695}", [:taxi]),
  self.new("\u{26fa}" , [:tent]),
  self.new("\u{1f3ab}", [:ticket]),
  self.new("\u{1f5fc}", [:tokyo_tower]),
  self.new("\u{1f69c}", [:tractor]),
  self.new("\u{1f6a5}", [:traffic_light]),
  self.new("\u{1f686}", [:train2]),
  self.new("\u{1f68a}", [:tram]),
  self.new("\u{1f6a9}", [:triangular_flag_on_post]),
  self.new("\u{1f68e}", [:trolleybus]),
  self.new("\u{1f69a}", [:truck]),
  self.new("\u{1f6a6}", [:vertical_traffic_light]),
  self.new("\u{26a0}" , [:warning]),
  self.new("\u{1f492}", [:wedding]),
  # Regional Indicator Symbols
  self.new("\u{1f1ef}\u{1f1f5}", [:jp], "REGIONAL INDICATOR SYMBOL LETTERS JP"),
  self.new("\u{1f1f0}\u{1f1f7}", [:kr], "REGIONAL INDICATOR SYMBOL LETTERS KR"),
  self.new("\u{1f1e8}\u{1f1f3}", [:cn], "REGIONAL INDICATOR SYMBOL LETTERS CN"),
  self.new("\u{1f1fa}\u{1f1f8}", [:us], "REGIONAL INDICATOR SYMBOL LETTERS US"),
  self.new("\u{1f1eb}\u{1f1f7}", [:fr], "REGIONAL INDICATOR SYMBOL LETTERS FR"),
  self.new("\u{1f1ea}\u{1f1f8}", [:es], "REGIONAL INDICATOR SYMBOL LETTERS ES"),
  self.new("\u{1f1ee}\u{1f1f9}", [:it], "REGIONAL INDICATOR SYMBOL LETTERS IT"),
  self.new("\u{1f1f7}\u{1f1fa}", [:ru], "REGIONAL INDICATOR SYMBOL LETTERS RU"),
  self.new("\u{1f1ec}\u{1f1e7}", [:gb, :uk], "REGIONAL INDICATOR SYMBOL LETTERS GB"),
  self.new("\u{1f1e9}\u{1f1ea}", [:de], "REGIONAL INDICATOR SYMBOL LETTERS DE"),
]
OBJECTS =
Set[
  self.new("\u{1F38D}", [:bamboo], "PINE DECORATION"), # "Japanese new year's door decoration
  self.new("\u{1F49D}", [:gift_heart], "HEART WITH RIBBON"),
  self.new("\u{1F38E}", [:dolls], "JAPANESE DOLLS"), # "Japanese Hinamatsuri or girls' doll festival"
  self.new("\u{1F49D}", [:gift_heart], "HEART WITH RIBBON"),
  self.new("\u{1F392}", [:school_satchel]), # "Japanese school entrance ceremony"
  self.new("\u{1F393}", [:mortar_board], "GRADUATION CAP"), # "graduation ceremony"
  self.new("\u{1F38F}", [:flags], "CARP STREAMER"),
  self.new("\u{1F386}", [:fireworks]),
  self.new("\u{1F387}", [:sparkler], "FIREWORK SPARKLER"),
  self.new("\u{1F390}", [:wind_chime]),
  self.new("\u{1F391}", [:rice_scene], "MOON VIEWING CEREMONY"), # "Japanese Otsukimi harvest celebration"
  self.new("\u{1F383}", [:jack_o_lantern], "JACK-O-LANTERN"), # "Hallowe'en"
  self.new("\u{1F47B}", [:ghost]),
  self.new("\u{1F385}", [:santa], "FATHER CHRISTMAS"), # "Santa Claus"
  self.new("\u{1f3b1}", [:"8ball"]),
  self.new("\u{23f0}" , [:alarm_clock]),
  self.new("\u{1f34e}", [:apple]),
  self.new("\u{1f3a8}", [:art]),
  self.new("\u{1f37c}", [:baby_bottle]),
  self.new("\u{1f388}", [:balloon]),
  self.new("\u{1f34c}", [:banana]),
  self.new("\u{1f4ca}", [:bar_chart]),
  self.new("\u{26be}" , [:baseball]),
  self.new("\u{1f3c0}", [:basketball]),
  self.new("\u{1f6c0}", [:bath]),
  self.new("\u{1f6c1}", [:bathtub]),
  self.new("\u{1f50b}", [:battery]),
  self.new("\u{1f37a}", [:beer]),
  self.new("\u{1f37b}", [:beers]),
  self.new("\u{1f514}", [:bell]),
  self.new("\u{1f371}", [:bento]),
  self.new("\u{1f6b4}", [:bicyclist]),
  self.new("\u{1f459}", [:bikini]),
  self.new("\u{1f382}", [:birthday]),
  self.new("\u{1f0cf}", [:black_joker]),
  self.new("\u{2712}" , [:black_nib]),
  self.new("\u{1f4d8}", [:blue_book]),
  self.new("\u{1f4a3}", [:bomb]),
  self.new("\u{1f516}", [:bookmark]),
  self.new("\u{1f4d1}", [:bookmark_tabs]),
  self.new("\u{1f4da}", [:books]),
  self.new("\u{1f462}", [:boot]),
  self.new("\u{1f3b3}", [:bowling]),
  self.new("\u{1f35e}", [:bread]),
  self.new("\u{1f4bc}", [:briefcase]),
  self.new("\u{1f4a1}", [:bulb]),
  self.new("\u{1f370}", [:cake]),
  self.new("\u{1f4c6}", [:calendar]),
  self.new("\u{1f4f2}", [:calling]),
  self.new("\u{1f4f7}", [:camera]),
  self.new("\u{1f36c}", [:candy]),
  self.new("\u{1f4c7}", [:card_index]),
  self.new("\u{1f4bf}", [:cd]),
  self.new("\u{1f4c9}", [:chart_with_downwards_trend]),
  self.new("\u{1f4c8}", [:chart_with_upwards_trend]),
  self.new("\u{1f352}", [:cherries]),
  self.new("\u{1f36b}", [:chocolate_bar]),
  self.new("\u{1f384}", [:christmas_tree]),
  self.new("\u{1f3ac}", [:clapper]),
  self.new("\u{1f4cb}", [:clipboard]),
  self.new("\u{1f4d5}", [:closed_book]),
  self.new("\u{1f510}", [:closed_lock_with_key]),
  self.new("\u{1f302}", [:closed_umbrella]),
  self.new("\u{2663}" , [:clubs]),
  self.new("\u{1f378}", [:cocktail]),
  self.new("\u{2615}" , [:coffee]),
  self.new("\u{1f4bb}", [:computer]),
  self.new("\u{1f38a}", [:confetti_ball]),
  self.new("\u{1f36a}", [:cookie]),
  self.new("\u{1f33d}", [:corn]),
  self.new("\u{1f4b3}", [:credit_card]),
  self.new("\u{1f451}", [:crown]),
  self.new("\u{1f52e}", [:crystal_ball]),
  self.new("\u{1f35b}", [:curry]),
  self.new("\u{1f36e}", [:custard]),
  self.new("\u{1f361}", [:dango]),
  self.new("\u{1f3af}", [:dart]),
  self.new("\u{1f4c5}", [:date]),
  self.new("\u{2666}" , [:diamonds]),
  self.new("\u{1f4b5}", [:dollar]),
  self.new("\u{1f6aa}", [:door]),
  self.new("\u{1f369}", [:doughnut]),
  self.new("\u{1f457}", [:dress]),
  self.new("\u{1f4c0}", [:dvd]),
  self.new("\u{1f4e7}", [:"e-mail"]),
  self.new("\u{1f373}", [:egg]),
  self.new("\u{1f346}", [:eggplant]),
  self.new("\u{1f50c}", [:electric_plug]),
  self.new("\u{2709}" , [:email, :envelope]),
  self.new("\u{1f4b6}", [:euro]),
  self.new("\u{1f453}", [:eyeglasses]),
  self.new("\u{1f4e0}", [:fax]),
  self.new("\u{1f4c1}", [:file_folder]),
  self.new("\u{1f365}", [:fish_cake]),
  self.new("\u{1f3a3}", [:fishing_pole_and_fish]),
  self.new("\u{1f526}", [:flashlight]),
  self.new("\u{1f4be}", [:floppy_disk]),
  self.new("\u{1f3b4}", [:flower_playing_cards]),
  self.new("\u{1f3c8}", [:football]),
  self.new("\u{1f374}", [:fork_and_knife]),
  self.new("\u{1f364}", [:fried_shrimp]),
  self.new("\u{1f35f}", [:fries]),
  self.new("\u{1f3b2}", [:game_die]),
  self.new("\u{1f48e}", [:gem]),
  self.new("\u{1f381}", [:gift]),
  self.new("\u{26f3}" , [:golf]),
  self.new("\u{1f347}", [:grapes]),
  self.new("\u{1f34f}", [:green_apple]),
  self.new("\u{1f4d7}", [:green_book]),
  self.new("\u{1f3b8}", [:guitar]),
  self.new("\u{1f52b}", [:gun]),
  self.new("\u{1f354}", [:hamburger]),
  self.new("\u{1f528}", [:hammer]),
  self.new("\u{1f45c}", [:handbag]),
  self.new("\u{1f3a7}", [:headphones]),
  self.new("\u{2665}" , [:hearts]),
  self.new("\u{1f506}", [:high_brightness]),
  self.new("\u{1f460}", [:high_heel]),
  self.new("\u{1f52a}", [:hocho]),
  self.new("\u{1f36f}", [:honey_pot]),
  self.new("\u{1f3c7}", [:horse_racing]),
  self.new("\u{231b}" , [:hourglass]),
  self.new("\u{23f3}" , [:hourglass_flowing_sand]),
  self.new("\u{1f368}", [:ice_cream]),
  self.new("\u{1f366}", [:icecream]),
  self.new("\u{1f4e5}", [:inbox_tray]),
  self.new("\u{1f4e8}", [:incoming_envelope]),
  self.new("\u{1f4f1}", [:iphone]),
  self.new("\u{1f456}", [:jeans]),
  self.new("\u{1f511}", [:key]),
  self.new("\u{1f458}", [:kimono]),
  self.new("\u{1f4d2}", [:ledger]),
  self.new("\u{1f34b}", [:lemon]),
  self.new("\u{1f484}", [:lipstick]),
  self.new("\u{1f512}", [:lock]),
  self.new("\u{1f50f}", [:lock_with_ink_pen]),
  self.new("\u{1f36d}", [:lollipop]),
  self.new("\u{27bf}" , [:loop]),
  self.new("\u{1f4e2}", [:loudspeaker]),
  self.new("\u{1f505}", [:low_brightness]),
  self.new("\u{1f50d}", [:mag]),
  self.new("\u{1f50e}", [:mag_right]),
  self.new("\u{1f004}", [:mahjong]),
  self.new("\u{1f4eb}", [:mailbox]),
  self.new("\u{1f4ea}", [:mailbox_closed]),
  self.new("\u{1f4ec}", [:mailbox_with_mail]),
  self.new("\u{1f4ed}", [:mailbox_with_no_mail]),
  self.new("\u{1f45e}", [:mans_shoe, :shoe]),
  self.new("\u{1f356}", [:meat_on_bone]),
  self.new("\u{1f4e3}", [:mega]),
  self.new("\u{1f348}", [:melon]),
  self.new("\u{1f4dd}", [:memo, :pencil]),
  self.new("\u{1f3a4}", [:microphone]),
  self.new("\u{1f52c}", [:microscope]),
  self.new("\u{1f4bd}", [:minidisc]),
  self.new("\u{1f4b8}", [:money_with_wings]),
  self.new("\u{1f4b0}", [:moneybag]),
  self.new("\u{1f6b5}", [:mountain_bicyclist]),
  self.new("\u{1f3a5}", [:movie_camera]),
  self.new("\u{1f3b9}", [:musical_keyboard]),
  self.new("\u{1f3bc}", [:musical_score]),
  self.new("\u{1f507}", [:mute]),
  self.new("\u{1f4db}", [:name_badge]),
  self.new("\u{1f454}", [:necktie]),
  self.new("\u{1f4f0}", [:newspaper]),
  self.new("\u{1f515}", [:no_bell]),
  self.new("\u{1f4d3}", [:notebook]),
  self.new("\u{1f4d4}", [:notebook_with_decorative_cover]),
  self.new("\u{1f529}", [:nut_and_bolt]),
  self.new("\u{1f362}", [:oden]),
  self.new("\u{1f4c2}", [:open_file_folder]),
  self.new("\u{1f4d9}", [:orange_book]),
  self.new("\u{1f4e4}", [:outbox_tray]),
  self.new("\u{1f4c4}", [:page_facing_up]),
  self.new("\u{1f4c3}", [:page_with_curl]),
  self.new("\u{1f4df}", [:pager]),
  self.new("\u{1f4ce}", [:paperclip]),
  self.new("\u{1f351}", [:peach]),
  self.new("\u{1f350}", [:pear]),
  self.new("\u{270f}" , [:pencil2]),
  self.new("\u{260e}" , [:phone, :telephone]),
  self.new("\u{1f48a}", [:pill]),
  self.new("\u{1f34d}", [:pineapple]),
  self.new("\u{1f355}", [:pizza]),
  self.new("\u{1f4ef}", [:postal_horn]),
  self.new("\u{1f4ee}", [:postbox]),
  self.new("\u{1f45d}", [:pouch]),
  self.new("\u{1f357}", [:poultry_leg]),
  self.new("\u{1f4b7}", [:pound]),
  self.new("\u{1f45b}", [:purse]),
  self.new("\u{1f4cc}", [:pushpin]),
  self.new("\u{1f4fb}", [:radio]),
  self.new("\u{1f35c}", [:ramen]),
  self.new("\u{1f380}", [:ribbon]),
  self.new("\u{1f35a}", [:rice]),
  self.new("\u{1f359}", [:rice_ball]),
  self.new("\u{1f358}", [:rice_cracker]),
  self.new("\u{1f48d}", [:ring]),
  self.new("\u{1f3c9}", [:rugby_football]),
  self.new("\u{1f3bd}", [:running_shirt_with_sash]),
  self.new("\u{1f376}", [:sake]),
  self.new("\u{1f461}", [:sandal]),
  self.new("\u{1f4e1}", [:satellite]),
  self.new("\u{1f3b7}", [:saxophone]),
  self.new("\u{2702}" , [:scissors]),
  self.new("\u{1f4dc}", [:scroll]),
  self.new("\u{1f4ba}", [:seat]),
  self.new("\u{1f367}", [:shaved_ice]),
  self.new("\u{1f455}", [:shirt, :tshirt]),
  self.new("\u{1f6bf}", [:shower]),
  self.new("\u{1f3bf}", [:ski]),
  self.new("\u{1f6ac}", [:smoking]),
  self.new("\u{1f3c2}", [:snowboarder]),
  self.new("\u{26bd}" , [:soccer]),
  self.new("\u{1f509}", [:sound]),
  self.new("\u{1f47e}", [:space_invader]),
  self.new("\u{2660}" , [:spades]),
  self.new("\u{1f35d}", [:spaghetti]),
  self.new("\u{1f50a}", [:speaker]),
  self.new("\u{1f372}", [:stew]),
  self.new("\u{1f4cf}", [:straight_ruler]),
  self.new("\u{1f353}", [:strawberry]),
  self.new("\u{1f3c4}", [:surfer]),
  self.new("\u{1f363}", [:sushi]),
  self.new("\u{1f360}", [:sweet_potato]),
  self.new("\u{1f3ca}", [:swimmer]),
  self.new("\u{1f489}", [:syringe]),
  self.new("\u{1f389}", [:tada]),
  self.new("\u{1f38b}", [:tanabata_tree]),
  self.new("\u{1f34a}", [:tangerine]),
  self.new("\u{1f375}", [:tea]),
  self.new("\u{1f4de}", [:telephone_receiver]),
  self.new("\u{1f52d}", [:telescope]),
  self.new("\u{1f3be}", [:tennis]),
  self.new("\u{1f6bd}", [:toilet]),
  self.new("\u{1f345}", [:tomato]),
  self.new("\u{1f3a9}", [:tophat]),
  self.new("\u{1f4d0}", [:triangular_ruler]),
  self.new("\u{1f3c6}", [:trophy]),
  self.new("\u{1f379}", [:tropical_drink]),
  self.new("\u{1f3ba}", [:trumpet]),
  self.new("\u{1f4fa}", [:tv]),
  self.new("\u{1f513}", [:unlock]),
  self.new("\u{1f4fc}", [:vhs]),
  self.new("\u{1f4f9}", [:video_camera]),
  self.new("\u{1f3ae}", [:video_game]),
  self.new("\u{1f3bb}", [:violin]),
  self.new("\u{231a}" , [:watch]),
  self.new("\u{1f349}", [:watermelon]),
  self.new("\u{1f377}", [:wine_glass]),
  self.new("\u{1f45a}", [:womans_clothes]),
  self.new("\u{1f452}", [:womans_hat]),
  self.new("\u{1f527}", [:wrench]),
  self.new("\u{1f4b4}", [:yen])
]
SYMBOLS =
Set[
  self.new("\u{1f4af}", [:"100"]),
  self.new("\u{1f522}", [:"1234"]),
  self.new("\u{1f170}", [:a]),
  self.new("\u{1f18e}", [:ab]),
  self.new("\u{1f524}", [:abc]),
  self.new("\u{1f521}", [:abcd]),
  self.new("\u{1f251}", [:accept]),
  self.new("\u{2652}" , [:aquarius]),
  self.new("\u{2648}" , [:aries]),
  self.new("\u{25c0}" , [:arrow_backward]),
  self.new("\u{23ec}" , [:arrow_double_down]),
  self.new("\u{23eb}" , [:arrow_double_up]),
  self.new("\u{2b07}" , [:arrow_down]),
  self.new("\u{1f53d}", [:arrow_down_small]),
  self.new("\u{25b6}" , [:arrow_forward]),
  self.new("\u{2935}" , [:arrow_heading_down]),
  self.new("\u{2934}" , [:arrow_heading_up]),
  self.new("\u{2b05}" , [:arrow_left]),
  self.new("\u{2199}" , [:arrow_lower_left]),
  self.new("\u{2198}" , [:arrow_lower_right]),
  self.new("\u{27a1}" , [:arrow_right]),
  self.new("\u{21aa}" , [:arrow_right_hook]),
  self.new("\u{2b06}" , [:arrow_up]),
  self.new("\u{2195}" , [:arrow_up_down]),
  self.new("\u{1f53c}", [:arrow_up_small]),
  self.new("\u{2196}" , [:arrow_upper_left]),
  self.new("\u{2197}" , [:arrow_upper_right]),
  self.new("\u{1f503}", [:arrows_clockwise]),
  self.new("\u{1f504}", [:arrows_counterclockwise]),
  self.new("\u{1f171}", [:b]),
  self.new("\u{1f6bc}", [:baby_symbol]),
  self.new("\u{1f6c4}", [:baggage_claim]),
  self.new("\u{2611}" , [:ballot_box_with_check]),
  self.new("\u{203c}" , [:bangbang]),
  self.new("\u{26ab}" , [:black_circle]),
  self.new("\u{1f532}", [:black_square_button]),
  self.new("\u{264b}" , [:cancer]),
  self.new("\u{1f520}", [:capital_abcd]),
  self.new("\u{2651}" , [:capricorn]),
  self.new("\u{1f4b9}", [:chart]),
  self.new("\u{1f6b8}", [:children_crossing]),
  self.new("\u{1f3a6}", [:cinema]),
  self.new("\u{1f191}", [:cl]),
  self.new("\u{1f550}", [:clock1]),
  self.new("\u{1f559}", [:clock10]),
  self.new("\u{1f565}", [:clock1030]),
  self.new("\u{1f55a}", [:clock11]),
  self.new("\u{1f566}", [:clock1130]),
  self.new("\u{1f55b}", [:clock12]),
  self.new("\u{1f567}", [:clock1230]),
  self.new("\u{1f55c}", [:clock130]),
  self.new("\u{1f551}", [:clock2]),
  self.new("\u{1f55d}", [:clock230]),
  self.new("\u{1f552}", [:clock3]),
  self.new("\u{1f55e}", [:clock330]),
  self.new("\u{1f553}", [:clock4]),
  self.new("\u{1f55f}", [:clock430]),
  self.new("\u{1f554}", [:clock5]),
  self.new("\u{1f560}", [:clock530]),
  self.new("\u{1f555}", [:clock6]),
  self.new("\u{1f561}", [:clock630]),
  self.new("\u{1f556}", [:clock7]),
  self.new("\u{1f562}", [:clock730]),
  self.new("\u{1f557}", [:clock8]),
  self.new("\u{1f563}", [:clock830]),
  self.new("\u{1f558}", [:clock9]),
  self.new("\u{1f564}", [:clock930]),
  self.new("\u{3297}" , [:congratulations]),
  self.new("\u{1f192}", [:cool]),
  self.new("\u{00a9}" , [:copyright]),
  self.new("\u{27b0}" , [:curly_loop]),
  self.new("\u{1f4b1}", [:currency_exchange]),
  self.new("\u{1f6c3}", [:customs]),
  self.new("\u{1f4a0}", [:diamond_shape_with_a_dot_inside]),
  self.new("\u{1f6af}", [:do_not_litter]),
  self.new("\u{0038}" , [:eight]),
  self.new("\u{2734}" , [:eight_pointed_black_star]),
  self.new("\u{2733}" , [:eight_spoked_asterisk]),
  self.new("\u{1f51a}", [:end]),
  self.new("\u{23e9}" , [:fast_forward]),
  self.new("\u{0035}" , [:five]),
  self.new("\u{0034}" , [:four]),
  self.new("\u{1f193}", [:free]),
  self.new("\u{264a}" , [:gemini]),
  self.new("\u{0023}" , [:hash]),
  self.new("\u{1f49f}", [:heart_decoration]),
  self.new("\u{2714}" , [:heavy_check_mark]),
  self.new("\u{2797}" , [:heavy_division_sign]),
  self.new("\u{1f4b2}", [:heavy_dollar_sign]),
  self.new("\u{2796}" , [:heavy_minus_sign]),
  self.new("\u{2716}" , [:heavy_multiplication_x]),
  self.new("\u{2795}" , [:heavy_plus_sign]),
  self.new("\u{1f194}", [:id]),
  self.new("\u{1f250}", [:ideograph_advantage]),
  self.new("\u{2139}" , [:information_source]),
  self.new("\u{2049}" , [:interrobang]),
  self.new("\u{1f51f}", [:keycap_ten]),
  self.new("\u{1f201}", [:koko]),
  self.new("\u{1f535}", [:large_blue_circle]),
  self.new("\u{1f537}", [:large_blue_diamond]),
  self.new("\u{1f536}", [:large_orange_diamond]),
  self.new("\u{1f6c5}", [:left_luggage]),
  self.new("\u{2194}" , [:left_right_arrow]),
  self.new("\u{21a9}" , [:leftwards_arrow_with_hook]),
  self.new("\u{264c}" , [:leo]),
  self.new("\u{264e}" , [:libra]),
  self.new("\u{1f517}", [:link]),
  self.new("\u{24c2}" , [:m]),
  self.new("\u{1f6b9}", [:mens]),
  self.new("\u{1f687}", [:metro]),
  self.new("\u{1f4f4}", [:mobile_phone_off]),
  self.new("\u{274e}" , [:negative_squared_cross_mark]),
  self.new("\u{1f195}", [:new]),
  self.new("\u{1f196}", [:ng]),
  self.new("\u{0039}" , [:nine]),
  self.new("\u{1f6b3}", [:no_bicycles]),
  self.new("\u{26d4}" , [:no_entry]),
  self.new("\u{1f6ab}", [:no_entry_sign]),
  self.new("\u{1f4f5}", [:no_mobile_phones]),
  self.new("\u{1f6b7}", [:no_pedestrians]),
  self.new("\u{1f6ad}", [:no_smoking]),
  self.new("\u{1f6b1}", [:"non-potable_water"]),
  self.new("\u{2b55}" , [:o]),
  self.new("\u{1f17e}", [:o2]),
  self.new("\u{1f197}", [:ok]),
  self.new("\u{1f51b}", [:on]),
  self.new("\u{0031}" , [:one]),
  self.new("\u{26ce}" , [:ophiuchus]),
  self.new("\u{1f17f}", [:parking]),
  self.new("\u{303d}" , [:part_alternation_mark]),
  self.new("\u{1f6c2}", [:passport_control]),
  self.new("\u{2653}" , [:pisces]),
  self.new("\u{1f6b0}", [:potable_water]),
  self.new("\u{1f6ae}", [:put_litter_in_its_place]),
  self.new("\u{1f518}", [:radio_button]),
  self.new("\u{267b}" , [:recycle]),
  self.new("\u{1f534}", [:red_circle]),
  self.new("\u{00ae}" , [:registered]),
  self.new("\u{1f501}", [:repeat]),
  self.new("\u{1f502}", [:repeat_one]),
  self.new("\u{1f6bb}", [:restroom]),
  self.new("\u{23ea}" , [:rewind]),
  self.new("\u{1f202}", [:sa]),
  self.new("\u{2650}" , [:sagittarius]),
  self.new("\u{264f}" , [:scorpius]),
  self.new("\u{3299}" , [:secret]),
  self.new("\u{0037}" , [:seven]),
  self.new("\u{1f4f6}", [:signal_strength]),
  self.new("\u{0036}" , [:six]),
  self.new("\u{1f52f}", [:six_pointed_star]),
  self.new("\u{1f539}", [:small_blue_diamond]),
  self.new("\u{1f538}", [:small_orange_diamond]),
  self.new("\u{1f53a}", [:small_red_triangle]),
  self.new("\u{1f53b}", [:small_red_triangle_down]),
  self.new("\u{1f51c}", [:soon]),
  self.new("\u{1f198}", [:sos]),
  self.new("\u{1f523}", [:symbols]),
  self.new("\u{2649}" , [:taurus]),
  self.new("\u{0033}" , [:three]),
  self.new("\u{2122}" , [:tm]),
  self.new("\u{1f51d}", [:top]),
  self.new("\u{1f531}", [:trident]),
  self.new("\u{1f500}", [:twisted_rightwards_arrows]),
  self.new("\u{0032}" , [:two]),
  self.new("\u{1f239}", [:u5272]),
  self.new("\u{1f234}", [:u5408]),
  self.new("\u{1f23a}", [:u55b6]),
  self.new("\u{1f22f}", [:u6307]),
  self.new("\u{1f237}", [:u6708]),
  self.new("\u{1f236}", [:u6709]),
  self.new("\u{1f235}", [:u6e80]),
  self.new("\u{1f21a}", [:u7121]),
  self.new("\u{1f238}", [:u7533]),
  self.new("\u{1f232}", [:u7981]),
  self.new("\u{1f233}", [:u7a7a]),
  self.new("\u{1f51e}", [:underage]),
  self.new("\u{1f199}", [:up]),
  self.new("\u{1f4f3}", [:vibration_mode]),
  self.new("\u{264d}" , [:virgo]),
  self.new("\u{1f19a}", [:vs]),
  self.new("\u{3030}" , [:wavy_dash]),
  self.new("\u{1f6be}", [:wc]),
  self.new("\u{267f}" , [:wheelchair]),
  self.new("\u{2705}" , [:white_check_mark]),
  self.new("\u{26aa}" , [:white_circle]),
  self.new("\u{1f4ae}", [:white_flower]),
  self.new("\u{1f533}", [:white_square_button]),
  self.new("\u{1f6ba}", [:womens]),
  self.new("\u{274c}" , [:x]),
  self.new("\u{0030}" , [:zero])
]

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(string, symbols, name = nil) ⇒ Emoji

Returns a new instance of Emoji.


7
8
9
10
11
# File 'lib/rumoji/emoji.rb', line 7

def initialize(string, symbols, name = nil)
  @codepoints = string.codepoints
  @cheat_codes = [symbols].flatten
  @name = name || @cheat_codes.first.to_s.upcase.gsub("_", " ")
end

Instance Attribute Details

#nameObject (readonly)

Returns the value of attribute name


5
6
7
# File 'lib/rumoji/emoji.rb', line 5

def name
  @name
end

Class Method Details

.find(symbol) ⇒ Object


45
46
47
# File 'lib/rumoji/emoji.rb', line 45

def self.find(symbol)
  ALL.find {|emoji| emoji.include? symbol }
end

.find_by_codepoint(codepoint) ⇒ Object


53
54
55
# File 'lib/rumoji/emoji.rb', line 53

def self.find_by_codepoint(codepoint)
  ALL.find {|emoji| emoji.hex == codepoint.to_s(16).upcase }
end

.find_by_string(string) ⇒ Object


49
50
51
# File 'lib/rumoji/emoji.rb', line 49

def self.find_by_string(string)
  ALL.find {|emoji| emoji.to_s == string }
end

Instance Method Details

#codeObject


17
18
19
# File 'lib/rumoji/emoji.rb', line 17

def code
  ":#{symbol}:"
end

#hashObject


29
30
31
# File 'lib/rumoji/emoji.rb', line 29

def hash
  code.hash
end

#hexObject


33
34
35
# File 'lib/rumoji/emoji.rb', line 33

def hex
  @codepoints.map{|point| point.to_s(16).upcase }.join("-")
end

#include?(symbol) ⇒ Boolean

Returns:

  • (Boolean)

21
22
23
# File 'lib/rumoji/emoji.rb', line 21

def include?(symbol)
  @cheat_codes.include? symbol.to_sym
end

#symbolObject


13
14
15
# File 'lib/rumoji/emoji.rb', line 13

def symbol
  @cheat_codes.first
end

#to_sObject


25
26
27
# File 'lib/rumoji/emoji.rb', line 25

def to_s
  @codepoints.to_a.pack("U*")
end