module SearchObject::Plugin::Sorting
Public Class Methods
included(base)
click to toggle source
# File lib/search_object/plugin/sorting.rb, line 6 def self.included(base) base.extend ClassMethods base.instance_eval do option :sort do |scope, _| scope.order sort_attribute => sort_direction end end end
Public Instance Methods
reverted_sort_direction()
click to toggle source
# File lib/search_object/plugin/sorting.rb, line 40 def reverted_sort_direction sort_direction == 'desc' ? 'asc' : 'desc' end
sort?(attribute)
click to toggle source
# File lib/search_object/plugin/sorting.rb, line 15 def sort?(attribute) attribute == sort || sort.to_s.starts_with?("#{attribute} ") end
sort_attribute()
click to toggle source
# File lib/search_object/plugin/sorting.rb, line 19 def sort_attribute @sort_attribute ||= Helper.ensure_included sort.to_s.split(' ', 2).first, self.class.sort_attributes end
sort_direction()
click to toggle source
# File lib/search_object/plugin/sorting.rb, line 23 def sort_direction @sort_direction ||= Helper.ensure_included sort.to_s.split(' ', 2).last, %w[desc asc] end
sort_direction_for(attribute)
click to toggle source
# File lib/search_object/plugin/sorting.rb, line 27 def sort_direction_for(attribute) if sort_attribute == attribute.to_s reverted_sort_direction else 'desc' end end
sort_params_for(attribute, options = {})
click to toggle source
# File lib/search_object/plugin/sorting.rb, line 35 def sort_params_for(attribute, options = {}) options['sort'] = "#{attribute} #{sort_direction_for(attribute)}" params options end