debian-mirror-gitlab/lib/gitlab/issuable_sorter.rb

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

32 lines
855 B
Ruby
Raw Normal View History

2018-12-13 13:39:08 +05:30
# frozen_string_literal: true
2017-08-17 22:00:37 +05:30
module Gitlab
module IssuableSorter
class << self
def sort(project, issuables, &sort_key)
grouped_items = issuables.group_by do |issuable|
if issuable.project.id == project.id
:project_ref
2021-11-18 22:05:49 +05:30
elsif issuable.project.namespace_id == project.namespace_id
2017-08-17 22:00:37 +05:30
:namespace_ref
else
:full_ref
end
end
natural_sort_issuables(grouped_items[:project_ref], project) +
natural_sort_issuables(grouped_items[:namespace_ref], project) +
natural_sort_issuables(grouped_items[:full_ref], project)
end
private
def natural_sort_issuables(issuables, project)
VersionSorter.sort(issuables || []) do |issuable|
issuable.to_reference(project)
end
end
end
end
end