diff options
author | Sean McGivern <sean@mcgivern.me.uk> | 2016-11-08 18:29:56 +0300 |
---|---|---|
committer | Sean McGivern <sean@mcgivern.me.uk> | 2016-11-08 18:29:56 +0300 |
commit | 0108387053ac78bb2354511950fb5847a033e5d5 (patch) | |
tree | 15ad870c3b0adc2fac5ec18562b580c5afffc6ae /lib | |
parent | 358e8141cdcef5b4fae6554a89576c7837e102d6 (diff) | |
parent | 869696bca3d8ff72e2dbaa96744eb7a7d560f0cf (diff) |
Merge branch 'faster_project_search' into 'master'
Faster search inside Project
See merge request !7353
Diffstat (limited to 'lib')
-rw-r--r-- | lib/gitlab/project_search_results.rb | 30 |
1 files changed, 12 insertions, 18 deletions
diff --git a/lib/gitlab/project_search_results.rb b/lib/gitlab/project_search_results.rb index 24733435a5a..b8326a64b22 100644 --- a/lib/gitlab/project_search_results.rb +++ b/lib/gitlab/project_search_results.rb @@ -5,11 +5,7 @@ module Gitlab def initialize(current_user, project, query, repository_ref = nil) @current_user = current_user @project = project - @repository_ref = if repository_ref.present? - repository_ref - else - nil - end + @repository_ref = repository_ref.presence @query = query end @@ -47,33 +43,31 @@ module Gitlab private def blobs - if project.empty_repo? || query.blank? - [] - else - project.repository.search_files(query, repository_ref) - end + @blobs ||= project.repository.search_files(query, repository_ref) end def wiki_blobs - if project.wiki_enabled? && query.present? - project_wiki = ProjectWiki.new(project) + @wiki_blobs ||= begin + if project.wiki_enabled? && query.present? + project_wiki = ProjectWiki.new(project) - unless project_wiki.empty? - project_wiki.search_files(query) + unless project_wiki.empty? + project_wiki.search_files(query) + else + [] + end else [] end - else - [] end end def notes - project.notes.user.search(query, as_user: @current_user).order('updated_at DESC') + @notes ||= project.notes.user.search(query, as_user: @current_user).order('updated_at DESC') end def commits - project.repository.find_commits_by_message(query) + @commits ||= project.repository.find_commits_by_message(query) end def project_ids_relation |