Module: FlexibleDatatables::EnumerableSorter

Defined in:
lib/flexible_datatables/sorters/enumerable_sorter.rb

Class Method Summary collapse

Class Method Details

.sort(opts = {}) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
# File 'lib/flexible_datatables/sorters/enumerable_sorter.rb', line 3

def self.sort(opts = {})
  order     = opts.fetch(:order)
  sort_dir = order['0'].fetch(:dir) == 'desc' ? 'desc' : 'asc'
  sort_col = order['0'].fetch(:column).to_i
  records   = opts.fetch(:records, [])

  sorted_records = records.sort_by do |row|
    row[sort_col]
  end
  sorted_records.reverse if sort_dir == 'desc'
  sorted_records
end