module EmojiSub

Constants

EMOJI_MAPPING_YAML
GEM_ROOT
VERSION

Public Class Methods

definitions() click to toggle source
# File lib/emoji_sub/definitions.rb, line 5
def definitions
  @emoji_definitions ||= YAML.load(File.read(EMOJI_MAPPING_YAML))
end
emoji_sub(text, additional_mappings = {}) click to toggle source
# File lib/emoji_sub/emoji_sub.rb, line 3
def emoji_sub(text, additional_mappings = {})
  known_emoji = definitions.merge(additional_mappings)

  discovered_emoji = text.scan(/:([\w\d\-\_]+):/).flatten.map(&:to_sym).uniq
  found = discovered_emoji.each_with_object({}) do |emoji, found|
    found[emoji] = known_emoji.fetch(emoji,nil)
  end.compact

  found.each do |shortcode, unicode|
    text.gsub!(/:#{shortcode}:/, Array(unicode).map { |u| "&#x#{u}" }.join(''))
  end
  
  text
end

Private Instance Methods

definitions() click to toggle source
# File lib/emoji_sub/definitions.rb, line 5
def definitions
  @emoji_definitions ||= YAML.load(File.read(EMOJI_MAPPING_YAML))
end
emoji_sub(text, additional_mappings = {}) click to toggle source
# File lib/emoji_sub/emoji_sub.rb, line 3
def emoji_sub(text, additional_mappings = {})
  known_emoji = definitions.merge(additional_mappings)

  discovered_emoji = text.scan(/:([\w\d\-\_]+):/).flatten.map(&:to_sym).uniq
  found = discovered_emoji.each_with_object({}) do |emoji, found|
    found[emoji] = known_emoji.fetch(emoji,nil)
  end.compact

  found.each do |shortcode, unicode|
    text.gsub!(/:#{shortcode}:/, Array(unicode).map { |u| "&#x#{u}" }.join(''))
  end
  
  text
end