Class: DiscourseEmojis::UnicodeEmojiExtractor

Inherits:
Object
  • Object
show all
Defined in:
lib/discourse_emojis/unicode_emoji_extractor.rb

Overview

The UnicodeEmojiExtractor processes HTML files containing emoji data from the Unicode consortium. It extracts emoji images and their skin tones variations from base64-encoded images in the HTML files and saves them to the appropriate directories in the project’s emoji system.

The extractor handles two types of files:

  1. emoji-list.html - Contains base emoji images

  2. emoji-modifier-sequences.html - Contains emoji variations (e.g., skin tones)

Constant Summary collapse

UNICODE_EMOJI_DIR =
"dist/emoji/unicode"
EMOJI_LIST_FILE =
"vendor/emoji-list.html"
EMOJI_MODIFIER_FILE =
"vendor/emoji-modifier-sequences.html"

Instance Method Summary collapse

Constructor Details

#initialize(supported_emojis_path: "./dist/emoji_to_name.json") ⇒ UnicodeEmojiExtractor

Returns a new instance of UnicodeEmojiExtractor.



22
23
24
# File 'lib/discourse_emojis/unicode_emoji_extractor.rb', line 22

def initialize(supported_emojis_path: "./dist/emoji_to_name.json")
  @supported_emojis = JSON.parse(File.read(supported_emojis_path))
end

Instance Method Details

#extract_and_saveObject



26
27
28
29
30
31
32
33
# File 'lib/discourse_emojis/unicode_emoji_extractor.rb', line 26

def extract_and_save
  FileUtils.mkdir_p(UNICODE_EMOJI_DIR)

  base_emojis = parse_base_emojis
  variations = parse_modifier_variations

  save_emojis(base_emojis, variations)
end