module Godmin::Resources::ResourceService::Ordering
Public Instance Methods
apply_order(order_param, resources)
click to toggle source
# File lib/godmin/resources/resource_service/ordering.rb, line 7 def apply_order(order_param, resources) if order_param.present? && order_column_method?(order_column(order_param)) send("order_by_#{order_column(order_param)}", resources, order_direction(order_param)) elsif order_param.present? && order_column_column?(order_column(order_param)) resources.order("#{resource_class.table_name}.#{order_column(order_param)} #{order_direction(order_param)}") else resources end end
orderable_column?(column)
click to toggle source
# File lib/godmin/resources/resource_service/ordering.rb, line 17 def orderable_column?(column) order_column_method?(column) || order_column_column?(column) end
Protected Instance Methods
order_column(order_param)
click to toggle source
# File lib/godmin/resources/resource_service/ordering.rb, line 31 def order_column(order_param) order_param.rpartition("_").first end
order_column_column?(column)
click to toggle source
# File lib/godmin/resources/resource_service/ordering.rb, line 27 def order_column_column?(column) resource_class.column_names.include?(column) end
order_column_method?(column)
click to toggle source
# File lib/godmin/resources/resource_service/ordering.rb, line 23 def order_column_method?(column) respond_to?("order_by_#{column}") end
order_direction(order_param)
click to toggle source
# File lib/godmin/resources/resource_service/ordering.rb, line 35 def order_direction(order_param) order_param.rpartition("_").last == "asc" ? "asc" : "desc" end