lib/mongoid-haystack/util.rb in mongoid-haystack-1.2.0 vs lib/mongoid-haystack/util.rb in mongoid-haystack-1.2.1
- old
+ new
@@ -58,18 +58,23 @@
config.connect_to('mongoid-haystack')
end
end
def words_for(*args)
- string = args.flatten.compact.join(' ').scan(/\w+/).join(' ')
+ string = args.join(' ')
+ string.gsub!(/_+/, '-')
+ string.gsub!(/[^\w]/, ' ')
+
words = []
+
UnicodeUtils.each_word(string) do |word|
word = UnicodeUtils.nfkd(word.strip)
word.gsub!(/\A(?:[^\w]|_|\s)+/, '') # leading punctuation/spaces
word.gsub!(/(?:[^\w]|_|\s+)+\Z/, '') # trailing punctuation/spaces
next if word.empty?
words.push(word)
end
+
words
end
def stems_for(*args, &block)
Stemming.stem(*args, &block)