2018-12-05 23:21:45 +05:30
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2016-09-29 09:46:39 +05:30
|
|
|
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
|