Module: Seek::Sorting

Included in:
Seek
Defined in:
lib/seek/sorting.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#default_sort_byObject

Returns a String or nil.



40
41
42
43
# File 'lib/seek/sorting.rb', line 40

def default_sort_by
  result = @default_sort_by.to_s.downcase
  valid_sort_bys.include?(result) ? result : valid_sort_bys.first
end

#default_sort_directionObject



45
46
47
48
# File 'lib/seek/sorting.rb', line 45

def default_sort_direction
  result = @default_sort_direction.to_s.downcase
  valid_sort_directions.include?(result) ? result : valid_sort_directions.first
end

#sort_byObject

Returns a String or nil.



14
15
16
17
18
# File 'lib/seek/sorting.rb', line 14

def sort_by
  result = @sort_by.to_s.downcase
  return result if !result.empty? && (valid_sort_bys.empty? || valid_sort_bys.include?(result))
  default_sort_by
end

#sort_directionObject



20
21
22
23
# File 'lib/seek/sorting.rb', line 20

def sort_direction
  result = @sort_direction.to_s.downcase
  valid_sort_directions.include?(result) ? result : default_sort_direction
end

#valid_sort_bysObject



34
35
36
# File 'lib/seek/sorting.rb', line 34

def valid_sort_bys
  Array(@valid_sort_bys).map(&:to_s).map(&:downcase)
end

Instance Method Details

#orderObject

Useful for queries that require the format “first_name desc” (such as SQL or lucene)

Returns a String or nil



29
30
31
32
# File 'lib/seek/sorting.rb', line 29

def order
  return if sort_by.to_s.empty?
  [sort_by, sort_direction].join(' ')
end

#sortable?Boolean

Returns true if sort_by and sort_direction are present.

Returns:

  • (Boolean)


8
9
10
# File 'lib/seek/sorting.rb', line 8

def sortable?
  !!order
end