lib/emoji_data.rb in emoji_data-0.1.0.rc1 vs lib/emoji_data.rb in emoji_data-0.1.0.rc2

- old
+ new

@@ -62,15 +62,14 @@ def self.find_by_unified(cp) EMOJICHAR_UNIFIED_MAP[cp.upcase] end + FBS_REGEXP = Regexp.new("(?:#{EmojiData.chars({include_variants: true}).join("|")})") def self.find_by_str(str) - str.extend EmojiData::StringUtils - - matches = EMOJI_CHARS.select { |ec| str.include_any? ec.chars } - matches.sort_by { |mc| str.index_first(mc.chars) } + matches = str.scan(FBS_REGEXP) + matches.map { |m| EmojiData.find_by_unified(EmojiData.char_to_unified(m)) } end def self.find_by_name(name) self.find_by_value(:name, name.upcase) end @@ -80,21 +79,8 @@ end protected def self.find_by_value(field,value) self.all.select { |char| char.send(field).include? value } - end - - module StringUtils - def include_any?(charstr) - charstr.any? { |char| self.include? char } - end - - def index_first(charstr) - charstr.each do |char| - return self.index(char) if !self.index(char).nil? - end - nil - end end end