module PassionView::Sortable
Attributes
sort_column[RW]
sort_direction[RW]
Public Class Methods
new(items, options = {})
click to toggle source
Calls superclass method
# File lib/passion_view/sortable.rb, line 8 def initialize(items, options = {}) super sort = options.delete(:sort) || {} sort_with(sort[:sort], sort[:direction]) end
Public Instance Methods
default_sort_column()
click to toggle source
# File lib/passion_view/sortable.rb, line 31 def default_sort_column resource_class.primary_key end
default_sort_direction()
click to toggle source
# File lib/passion_view/sortable.rb, line 35 def default_sort_direction sort_directions_available.first end
items()
click to toggle source
Calls superclass method
# File lib/passion_view/sortable.rb, line 15 def items super.order(order_arel[sort_column].send(sort_direction)) end
order_arel()
click to toggle source
# File lib/passion_view/sortable.rb, line 51 def order_arel table = resource_class.arel_table pk = default_sort_column { pk => table[pk.to_sym] } end
sort_by_path(column, direction = default_sort_direction)
click to toggle source
# File lib/passion_view/sortable.rb, line 39 def sort_by_path(column, direction = default_sort_direction) sortable_path(sortable_params(column, direction)) end
sort_column_available?(name)
click to toggle source
# File lib/passion_view/sortable.rb, line 23 def sort_column_available?(name) sort_columns_available.include?(name.to_s) end
sort_columns_available()
click to toggle source
# File lib/passion_view/sortable.rb, line 19 def sort_columns_available order_arel.keys end
sort_directions_available()
click to toggle source
# File lib/passion_view/sortable.rb, line 27 def sort_directions_available %w(asc desc) end
sort_with(column, direction)
click to toggle source
# File lib/passion_view/sortable.rb, line 70 def sort_with(column, direction) self.sort_column = column || default_sort_column self.sort_column = default_sort_column unless sort_columns_available.include?(sort_column) self.sort_direction = direction || default_sort_direction self.sort_direction = default_sort_direction unless %w(asc desc).include?(sort_direction) end
sortable_params(column = nil, direction = nil)
click to toggle source
# File lib/passion_view/sortable.rb, line 58 def sortable_params(column = nil, direction = nil) params = {} column ||= sort_column direction ||= sort_direction params[:sort] = column params[:direction] = direction params end
sortable_path(options)
click to toggle source
# File lib/passion_view/sortable.rb, line 43 def sortable_path(options) resource_path(url_options.merge(options)) end
url_options()
click to toggle source
Calls superclass method
PassionView::Pathable#url_options
# File lib/passion_view/sortable.rb, line 47 def url_options super.merge(sortable_params) end