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