Method: IndexedSearch::Query.split_into_words

Defined in:
lib/indexed_search/query.rb

.split_into_words(txt) ⇒ Object

split a string or array of strings into an array of individual word strings, ignoring any blank data used equally well by parsing a simple search query, and by parsing data for indexing



43
44
45
46
47
48
49
50
51
# File 'lib/indexed_search/query.rb', line 43

def self.split_into_words(txt)
  if txt.blank?
    []
  elsif txt.class == Array
    txt.collect { |a| a.blank? ? [] : UnicodeUtils.casefold(a).scan(word_match_regex) }.flatten
  else
    UnicodeUtils.casefold(txt).scan(word_match_regex)
  end.collect { |w| w[0...IndexedSearch::Word.max_length] }
end