tangled
alpha
login
or
join now
mackuba.eu
/
lycan
35
fork
atom
Don't forget to lycansubscribe
35
fork
atom
overview
issues
1
pulls
pipelines
extracted query parsing to a new class
mackuba.eu
6 months ago
a1d928a4
35430974
+9
-4
2 changed files
expand all
collapse all
unified
split
app
query_parser.rb
server.rb
+6
app/query_parser.rb
···
1
1
+
class QueryParser
2
2
+
def parse_terms(query)
3
3
+
query = query.strip.gsub('%', "\\%")
4
4
+
query.split(/ +/)
5
5
+
end
6
6
+
end
+3
-4
app/server.rb
···
7
7
require 'sinatra/base'
8
8
9
9
require_relative 'init'
10
10
-
require_relative 'models/like'
11
10
require_relative 'models/user'
11
11
+
require_relative 'query_parser'
12
12
13
13
class Server < Sinatra::Application
14
14
class PKeyCache
···
108
108
return json_error('MissingParameter', 'Missing "collection" parameter')
109
109
end
110
110
111
111
-
query = params[:query].gsub('%', "\\%")
112
112
-
words = query.strip.split(/ +/)
111
111
+
terms = QueryParser.new.parse_terms(params[:query])
113
112
114
113
collection = case params[:collection]
115
114
when 'likes' then user.likes
···
122
121
items = collection
123
122
.joins(:post)
124
123
.includes(:post => :user)
125
125
-
.matching_terms(words)
124
124
+
.matching_terms(terms)
126
125
.reverse_chronologically
127
126
.after_cursor(params[:cursor])
128
127
.limit(PAGE_LIMIT)