diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-02-18 13:34:06 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-02-18 13:34:06 +0300 |
commit | 859a6fb938bb9ee2a317c46dfa4fcc1af49608f0 (patch) | |
tree | d7f2700abe6b4ffcb2dcfc80631b2d87d0609239 /spec/support/helpers/sorting_helper.rb | |
parent | 446d496a6d000c73a304be52587cd9bbc7493136 (diff) |
Add latest changes from gitlab-org/gitlab@13-9-stable-eev13.9.0-rc42
Diffstat (limited to 'spec/support/helpers/sorting_helper.rb')
-rw-r--r-- | spec/support/helpers/sorting_helper.rb | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/spec/support/helpers/sorting_helper.rb b/spec/support/helpers/sorting_helper.rb index 3801d25fb63..f19f8c12928 100644 --- a/spec/support/helpers/sorting_helper.rb +++ b/spec/support/helpers/sorting_helper.rb @@ -17,4 +17,35 @@ module SortingHelper click_link value end end + + def nils_last(value) + NilsLast.new(value) + end + + class NilsLast + include Comparable + + attr_reader :value + delegate :==, :eql?, :hash, to: :value + + def initialize(value) + @value = value + @reverse = false + end + + def <=>(other) + return unless other.is_a?(self.class) + return 0 if value.nil? && other.value.nil? + return 1 if value.nil? + return -1 if other.value.nil? + + int = value <=> other.value + @reverse ? -int : int + end + + def -@ + @reverse = true + self + end + end end |