class ActiveAdmin::OrderClause

Attributes

field[R]
order[R]

Public Class Methods

new(clause) click to toggle source
# File lib/active_admin/order_clause.rb, line 5
def initialize(clause)
  clause =~ /^([\w\_\.]+)(->'\w+')?_(desc|asc)$/
  @column = $1
  @op = $2
  @order = $3

  @field = [@column, @op].compact.join
end

Public Instance Methods

to_sql(active_admin_config) click to toggle source
# File lib/active_admin/order_clause.rb, line 18
def to_sql(active_admin_config)
  table = active_admin_config.resource_column_names.include?(@column) ? active_admin_config.resource_table_name : nil
  table_column = (@column =~ /\./) ? @column :
    [table, active_admin_config.resource_quoted_column_name(@column)].compact.join(".")

  [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