Module: Seek::Sorting
- Included in:
- Seek
- Defined in:
- lib/seek/sorting.rb
Instance Attribute Summary collapse
-
#default_sort_by ⇒ Object
Returns a String or nil.
- #default_sort_direction ⇒ Object
-
#sort_by ⇒ Object
Returns a String or nil.
- #sort_direction ⇒ Object
- #valid_sort_bys ⇒ Object
Instance Method Summary collapse
-
#order ⇒ Object
Useful for queries that require the format “first_name desc” (such as SQL or lucene).
-
#sortable? ⇒ Boolean
Returns true if sort_by and sort_direction are present.
Instance Attribute Details
#default_sort_by ⇒ Object
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_direction ⇒ Object
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_by ⇒ Object
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_direction ⇒ Object
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_bys ⇒ Object
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
#order ⇒ Object
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.
8 9 10 |
# File 'lib/seek/sorting.rb', line 8 def sortable? !!order end |