Skip to content
veelengaPublic

About

💚 Emoji for Crystal

Topics

Resources

Stars

53 stars

Watchers

3 watching

Forks

Latest commit

 

History

69 Commits

Folders and files

Repository files navigation

emoji.cr

Crystal CI

Emoji library for Crystal. Inspired by Emoji for Python

Installation

As a dependency in shard.yml:

dependencies:
  emoji:
    github: veelenga/emoji.cr
    branch: master

Usage

require "emoji"

puts Emoji.emojize("I :heart: :beer: and :football:")

Will print the following in console:

Also it is possible to remove all emoji from the string:

str = Emoji.emojize("Girl on :fire:")
Emoji.sanitize(str) #=> "Girl on "

Sanitizing is based on Emoji regex. There are two options available:

  • :simple emoji regex (default)
  • :generated emoji regex

Simple regex uses unicode ranges to find emojis and may give some incorrect results. Generated regex is quite big, but works correctly in 100% cases. However, it is much slower than a simple regex.

If you need more accuracy sanitizing emojis and don't care about performance, just use generated one:

Emoji.sanitize(str, regex: :generated)

Regex

require "emoji"

string = "String which contains all kinds of emoji:

- Singleton Emoji: (💎)
- Textual singleton Emoji with Emoji variation: (▶️)
- Emoji with skin tone modifier: (🖐🏼)
- Region flag: (🇺🇦)
- Sub-Region flag: (🏴󠁧󠁢󠁳󠁣󠁴󠁿)
- Keycap sequence: (7️⃣)
- Sequence using ZWJ (zero width joiner): (👨‍👩‍👧‍👦)

"

string.scan(Emoji::GENERATED_EMOJI_REGEX) do |m|
  puts "`#{m[0]}` - #{m[0].size} code points"
end
`💎` - 1 code points
`▶️` - 2 code points
`🖐🏼` - 2 code points
`🇺🇦` - 2 code points
`🏴󠁧󠁢󠁳󠁣󠁴󠁿` - 7 code points
`7️⃣` - 3 code points
`👨‍👩‍👧‍👦` - 7 code points

Binary

You may also compile and use emojize binary that just prints to console emojized string:

crystal build bin/emojize
./emojize It will boom: :boom:

Resources

Contributing

  1. Fork it ( https://github.com/veelenga/emoji.cr/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

About

💚 Emoji for Crystal

Topics

Resources

Stars

53 stars

Watchers

3 watching

Forks

Releases

Packages

Used by

Contributors

Languages