Class: MongoidExt::Filter::Parser

Inherits:
Object
  • Object
show all
Defined in:
lib/mongoid_ext/filter/parser.rb

Instance Method Summary collapse

Constructor Details

#initialize(stemmer) ⇒ Parser

Returns a new instance of Parser.



4
5
6
# File 'lib/mongoid_ext/filter/parser.rb', line 4

def initialize(stemmer)
  @stemmer = stemmer
end

Instance Method Details

#parse(query) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/mongoid_ext/filter/parser.rb', line 8

def parse(query)
  query, quotes = parse_quoted_text(query)
  query, ops = parse_operators(query)
  query.gsub!(/\s+/, ' ')
  query.gsub!(/\?|\!|\:|\)|\(/, "")

  words = Set.new(query.downcase.split(/\s+/))

  stemmed = stem(words)
  tokens = words + stemmed

  {:query => query,
   :words => words,
   :stemmed => stemmed,
   :operators => ops,
   :tokens => tokens,
   :quotes => quotes}
end