class TanukiEmoji::Db::Gemojione
Gemojione
Emoji database
Constants
- DATA_FILE
Attributes
data_file[R]
Public Class Methods
data_file()
click to toggle source
# File lib/tanuki_emoji/db/gemojione.rb, line 11 def self.data_file File.expand_path(File.join(__dir__, '../../../', DATA_FILE)) end
new(index:, data_file: self.class.data_file)
click to toggle source
# File lib/tanuki_emoji/db/gemojione.rb, line 17 def initialize(index:, data_file: self.class.data_file) @data_file = data_file @index = index end
Public Instance Methods
load!()
click to toggle source
# File lib/tanuki_emoji/db/gemojione.rb, line 22 def load! db = File.open(data_file, 'r:UTF-8') do |file| JSON.parse(file.read, symbolize_names: true) end db.each do |emoji_name, emoji_data| emoji = Character.new(emoji_name.to_s, codepoints: emoji_data[:moji], alpha_code: emoji_data[:shortname], description: emoji_data[:name], category: emoji_data[:category]) emoji_data[:unicode_alternates].each do |unicode_alternates| codepoints = unicode_hex_to_codepoint(unicode_alternates) emoji.add_codepoints(codepoints) end emoji_data[:aliases].each do |alpha_code| emoji.add_alias(alpha_code) end @index.add(emoji) end end
Private Instance Methods
unicode_hex_to_codepoint(unicode)
click to toggle source
# File lib/tanuki_emoji/db/gemojione.rb, line 50 def unicode_hex_to_codepoint(unicode) unicode.split('-').map { |i| i.to_i(16) }.pack('U*') end