summaryrefslogtreecommitdiff
path: root/app/finders/tags_finder.rb
diff options
context:
space:
mode:
authortiagonbotelho <tiagonbotelho@hotmail.com>2016-08-31 12:35:23 +0100
committertiagonbotelho <tiagonbotelho@hotmail.com>2016-08-31 19:16:47 +0100
commit97b69862ad50936ad0700b23c485a38b637469a7 (patch)
tree5a5ecf4da4105b7c7b2f1da96d65594ab7704ac6 /app/finders/tags_finder.rb
parent6c9c33f43e489d9e225bc64342c7d7d0a558b1e7 (diff)
downloadgitlab-ce-97b69862ad50936ad0700b23c485a38b637469a7.tar.gz
add specs for tags findertag-name-filter
Diffstat (limited to 'app/finders/tags_finder.rb')
-rw-r--r--app/finders/tags_finder.rb29
1 files changed, 29 insertions, 0 deletions
diff --git a/app/finders/tags_finder.rb b/app/finders/tags_finder.rb
new file mode 100644
index 00000000000..b474f0805dc
--- /dev/null
+++ b/app/finders/tags_finder.rb
@@ -0,0 +1,29 @@
+class TagsFinder
+ def initialize(repository, params)
+ @repository = repository
+ @params = params
+ end
+
+ def execute
+ tags = @repository.tags_sorted_by(sort)
+ filter_by_name(tags)
+ end
+
+ private
+
+ def sort
+ @params[:sort].presence
+ end
+
+ def search
+ @params[:search].presence
+ end
+
+ def filter_by_name(tags)
+ if search
+ tags.select { |tag| tag.name.include?(search) }
+ else
+ tags
+ end
+ end
+end