Don't forget to lycansubscribe

extracted query parsing to a new class

Changed files
+9 -4
app
+6
app/query_parser.rb
···
··· 1 + class QueryParser 2 + def parse_terms(query) 3 + query = query.strip.gsub('%', "\\%") 4 + query.split(/ +/) 5 + end 6 + end
+3 -4
app/server.rb
··· 7 require 'sinatra/base' 8 9 require_relative 'init' 10 - require_relative 'models/like' 11 require_relative 'models/user' 12 13 class Server < Sinatra::Application 14 class PKeyCache ··· 108 return json_error('MissingParameter', 'Missing "collection" parameter') 109 end 110 111 - query = params[:query].gsub('%', "\\%") 112 - words = query.strip.split(/ +/) 113 114 collection = case params[:collection] 115 when 'likes' then user.likes ··· 122 items = collection 123 .joins(:post) 124 .includes(:post => :user) 125 - .matching_terms(words) 126 .reverse_chronologically 127 .after_cursor(params[:cursor]) 128 .limit(PAGE_LIMIT)
··· 7 require 'sinatra/base' 8 9 require_relative 'init' 10 require_relative 'models/user' 11 + require_relative 'query_parser' 12 13 class Server < Sinatra::Application 14 class PKeyCache ··· 108 return json_error('MissingParameter', 'Missing "collection" parameter') 109 end 110 111 + terms = QueryParser.new.parse_terms(params[:query]) 112 113 collection = case params[:collection] 114 when 'likes' then user.likes ··· 121 items = collection 122 .joins(:post) 123 .includes(:post => :user) 124 + .matching_terms(terms) 125 .reverse_chronologically 126 .after_cursor(params[:cursor]) 127 .limit(PAGE_LIMIT)