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