class VaderSentimentRuby::EmojiDescriber

Replaces emoji characters with their descriptions

Public Class Methods

new(text, emoji_dictionary) click to toggle source

@param [String] text Original text @param [Hash] emoji_dictionary Emoji dictionary with emojis as keys

# File lib/vader_sentiment_ruby/emojis_describer.rb, line 8
def initialize(text, emoji_dictionary)
  @text_array = text.split('')
  @emoji_dictionary = emoji_dictionary
  @text_no_emoji = ''
  @prev_space = true
end

Public Instance Methods

call() click to toggle source

@return [String] Text with emojis replaced with descriptions

# File lib/vader_sentiment_ruby/emojis_describer.rb, line 16
def call
  @text_array.each do |character|
    if @emoji_dictionary.keys.include?(character)
      replace_emoji_with_description(character)
    else
      handle_simple_character(character)
    end
  end

  @text_no_emoji
end

Private Instance Methods

handle_simple_character(character) click to toggle source
# File lib/vader_sentiment_ruby/emojis_describer.rb, line 36
def handle_simple_character(character)
  @text_no_emoji += character
  @prev_space = character == ' '
end
replace_emoji_with_description(emoji) click to toggle source
# File lib/vader_sentiment_ruby/emojis_describer.rb, line 30
def replace_emoji_with_description(emoji)
  @text_no_emoji += ' ' unless @prev_space
  @text_no_emoji += @emoji_dictionary[emoji]
  @prev_space = false
end