diff options
author | Francisco Javier López <fjlopez@gitlab.com> | 2018-06-04 11:41:37 +0000 |
---|---|---|
committer | Douwe Maan <douwe@gitlab.com> | 2018-06-04 11:41:37 +0000 |
commit | 7350eb1fa83662d4aaa7541acb387b3742ba9788 (patch) | |
tree | 881a23cd8807f2247707c875bc1be1502ff04ace /lib/gitlab/file_finder.rb | |
parent | 0b4f9ff4068af6776b495d9332aeecf58e48786f (diff) | |
download | gitlab-ce-7350eb1fa83662d4aaa7541acb387b3742ba9788.tar.gz |
Add ability to search wiki titles
Diffstat (limited to 'lib/gitlab/file_finder.rb')
-rw-r--r-- | lib/gitlab/file_finder.rb | 26 |
1 files changed, 19 insertions, 7 deletions
diff --git a/lib/gitlab/file_finder.rb b/lib/gitlab/file_finder.rb index 8c082c0c336..f42088f980e 100644 --- a/lib/gitlab/file_finder.rb +++ b/lib/gitlab/file_finder.rb @@ -32,17 +32,13 @@ module Gitlab end def find_by_filename(query, except: []) - filenames = repository.search_files_by_name(query, ref).first(BATCH_SIZE) - filenames.delete_if { |filename| except.include?(filename) } unless except.empty? + filenames = search_filenames(query, except) - blob_refs = filenames.map { |filename| [ref, filename] } - blobs = Gitlab::Git::Blob.batch(repository, blob_refs, blob_size_limit: 1024) - - blobs.map do |blob| + blobs(filenames).map do |blob| Gitlab::SearchResults::FoundBlob.new( id: blob.id, filename: blob.path, - basename: File.basename(blob.path), + basename: File.basename(blob.path, File.extname(blob.path)), ref: ref, startline: 1, data: blob.data, @@ -50,5 +46,21 @@ module Gitlab ) end end + + def search_filenames(query, except) + filenames = repository.search_files_by_name(query, ref).first(BATCH_SIZE) + + filenames.delete_if { |filename| except.include?(filename) } unless except.empty? + + filenames + end + + def blob_refs(filenames) + filenames.map { |filename| [ref, filename] } + end + + def blobs(filenames) + Gitlab::Git::Blob.batch(repository, blob_refs(filenames), blob_size_limit: 1024) + end end end |