class Mincer::Processors::Sorting::Processor
Public Class Methods
new(mincer)
click to toggle source
# File lib/mincer/processors/sorting/processor.rb, line 5 def initialize(mincer) @mincer, @args, @relation = mincer, mincer.args, mincer.relation end
Public Instance Methods
apply()
click to toggle source
# File lib/mincer/processors/sorting/processor.rb, line 9 def apply sorting_sting = sort_string if sorting_sting.present? @mincer.sort_attribute = (sort_attr || default_sort).to_s @mincer.sort_order = (order_attr || default_order).to_s @mincer.default_sorting = sort_attr.blank? && order_attr.blank? @relation.order(sorting_sting) else @relation end end
default_order()
click to toggle source
# File lib/mincer/processors/sorting/processor.rb, line 45 def default_order @mincer.try(:default_sort_order) end
default_sort()
click to toggle source
# File lib/mincer/processors/sorting/processor.rb, line 37 def default_sort @mincer.try(:default_sort_attribute) end
order()
click to toggle source
# File lib/mincer/processors/sorting/processor.rb, line 41 def order @args[::Mincer.config.sorting.order_param_name] end
order_attr()
click to toggle source
# File lib/mincer/processors/sorting/processor.rb, line 29 def order_attr (%w{asc desc}.include?(order.try(:downcase)) && order) end
sort()
click to toggle source
# File lib/mincer/processors/sorting/processor.rb, line 33 def sort @args[::Mincer.config.sorting.sort_param_name] end
sort_attr()
click to toggle source
# File lib/mincer/processors/sorting/processor.rb, line 25 def sort_attr (@mincer.send(:allowed_sort_attributes).include?(sort) && sort) end
sort_string()
click to toggle source
# File lib/mincer/processors/sorting/processor.rb, line 21 def sort_string [(sort_attr || default_sort), (order_attr || default_order)].compact.uniq.join(' ') end