class ActiveAdmin::OrderClause
Attributes
active_admin_config[R]
field[R]
order[R]
Public Class Methods
new(active_admin_config, clause)
click to toggle source
# File lib/active_admin/order_clause.rb, line 5 def initialize(active_admin_config, clause) clause =~ /^([\w\_\.]+)(->'\w+')?_(desc|asc)$/ @column = $1 @op = $2 @order = $3 @active_admin_config = active_admin_config @field = [@column, @op].compact.join end
Public Instance Methods
apply(chain)
click to toggle source
# File lib/active_admin/order_clause.rb, line 18 def apply(chain) chain.reorder(Arel.sql sql) end
sql()
click to toggle source
# File lib/active_admin/order_clause.rb, line 35 def sql custom_sql || to_sql end
table()
click to toggle source
# File lib/active_admin/order_clause.rb, line 26 def table active_admin_config.resource_column_names.include?(@column) ? active_admin_config.resource_table_name : nil end
table_column()
click to toggle source
# File lib/active_admin/order_clause.rb, line 30 def table_column (@column =~ /\./) ? @column : [table, active_admin_config.resource_quoted_column_name(@column)].compact.join(".") end
to_sql()
click to toggle source
# File lib/active_admin/order_clause.rb, line 22 def to_sql [table_column, @op, ' ', @order].compact.join end
valid?()
click to toggle source
# File lib/active_admin/order_clause.rb, line 14 def valid? @field.present? && @order.present? end
Protected Instance Methods
custom_sql()
click to toggle source
# File lib/active_admin/order_clause.rb, line 41 def custom_sql if active_admin_config.ordering[@column].present? active_admin_config.ordering[@column].call(self) end end