class AjaxDatatablesRails::Datatable::SimpleOrder

Constants

DIRECTIONS
DIRECTION_ASC
DIRECTION_DESC

Public Class Methods

new(datatable, options = {}) click to toggle source
# File lib/ajax-datatables-rails/datatable/simple_order.rb, line 11
def initialize(datatable, options = {})
  @datatable  = datatable
  @options    = options
  @adapter    = datatable.db_adapter
  @nulls_last = datatable.nulls_last
end

Public Instance Methods

column() click to toggle source
# File lib/ajax-datatables-rails/datatable/simple_order.rb, line 22
def column
  @datatable.column_by(:index, column_index)
end
direction() click to toggle source
# File lib/ajax-datatables-rails/datatable/simple_order.rb, line 26
def direction
  DIRECTIONS.find { |dir| dir == column_direction } || DIRECTION_ASC
end
query(sort_column) click to toggle source
# File lib/ajax-datatables-rails/datatable/simple_order.rb, line 18
def query(sort_column)
  [sort_column, direction, nulls_last_sql].compact.join(' ')
end

Private Instance Methods

column_direction() click to toggle source
# File lib/ajax-datatables-rails/datatable/simple_order.rb, line 36
def column_direction
  @options[:dir].upcase
end
column_index() click to toggle source
# File lib/ajax-datatables-rails/datatable/simple_order.rb, line 32
def column_index
  @options[:column]
end
nulls_last_sql() click to toggle source
# File lib/ajax-datatables-rails/datatable/simple_order.rb, line 44
def nulls_last_sql
  return unless sort_nulls_last?

  case @adapter
  when :pg, :postgresql, :postgres, :oracle
    'NULLS LAST'
  when :mysql, :mysql2, :sqlite, :sqlite3
    'IS NULL'
  else
    raise "unsupported database adapter: #{@adapter}"
  end
end
sort_nulls_last?() click to toggle source
# File lib/ajax-datatables-rails/datatable/simple_order.rb, line 40
def sort_nulls_last?
  column.nulls_last? || @nulls_last == true
end