+1
-1
app/models/searchable.rb
+1
-1
app/models/searchable.rb
+14
-3
app/query_parser.rb
+14
-3
app/query_parser.rb
···
1
1
class QueryParser
2
-
def parse_terms(query)
3
-
query = query.strip.gsub('%', "\\%")
4
-
query.split(/ +/)
2
+
attr_reader :terms
3
+
4
+
def initialize(query)
5
+
@terms = []
6
+
query = query.strip
7
+
8
+
while match = query.match(/".+?"/)
9
+
range = match.begin(0)...match.end(0)
10
+
phrase = query[range][1..-2].strip
11
+
query[range] = ' '
12
+
@terms << phrase
13
+
end
14
+
15
+
@terms += query.split(/ +/)
5
16
end
6
17
end
+1
-1
app/server.rb
+1
-1
app/server.rb