blob: f19f8c129287fa853dec61ab5b2524090c0e9a88 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
# frozen_string_literal: true
# Helper allows you to sort items
#
# Params
# value - value for sorting
#
# Usage:
# include SortingHelper
#
# sorting_by('Oldest updated')
#
module SortingHelper
def sorting_by(value)
find('.filter-dropdown-container button.dropdown-menu-toggle').click
page.within('.content ul.dropdown-menu.dropdown-menu-right li') do
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
|