diff options
author | Mario de la Ossa <mariodelaossa@gmail.com> | 2018-06-06 18:14:10 -0600 |
---|---|---|
committer | Mario de la Ossa <mariodelaossa@gmail.com> | 2018-06-19 09:30:09 -0600 |
commit | 7357209f91ae4c0b504f47e36220bd04a0e2feca (patch) | |
tree | 60311ff038dc68f9afd6ac00bac65f389a443ca6 /lib/gitlab/search/parsed_query.rb | |
parent | 60b102be3d0d40cd36141cfcea0aecff2f115a06 (diff) | |
download | gitlab-ce-7357209f91ae4c0b504f47e36220bd04a0e2feca.tar.gz |
Implement filtering by filename on code searchce-5024-filename-search
Diffstat (limited to 'lib/gitlab/search/parsed_query.rb')
-rw-r--r-- | lib/gitlab/search/parsed_query.rb | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/lib/gitlab/search/parsed_query.rb b/lib/gitlab/search/parsed_query.rb new file mode 100644 index 00000000000..23595f23f01 --- /dev/null +++ b/lib/gitlab/search/parsed_query.rb @@ -0,0 +1,23 @@ +module Gitlab + module Search + class ParsedQuery + attr_reader :term, :filters + + def initialize(term, filters) + @term = term + @filters = filters + end + + def filter_results(results) + filters = @filters.reject { |filter| filter[:matcher].nil? } + return unless filters + + results.select do |result| + filters.all? do |filter| + filter[:matcher].call(filter, result) + end + end + end + end + end +end |