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 52
|
# 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
|