class DatatablesServer::ActiveRecordRepository
Attributes
columns[R]
data[R]
options[R]
Public Class Methods
new(data, columns, options)
click to toggle source
# File lib/datatables_server/active_record_repository.rb, line 3 def initialize(data, columns, options) @data = data @columns = columns @options = options end
Public Instance Methods
count_all()
click to toggle source
# File lib/datatables_server/active_record_repository.rb, line 9 def count_all data.count end
count_filtered()
click to toggle source
# File lib/datatables_server/active_record_repository.rb, line 13 def count_filtered filtered_data.count end
paginated_data()
click to toggle source
# File lib/datatables_server/active_record_repository.rb, line 17 def paginated_data ordered_data.limit(options.page_size).offset(options.page_start) end
Private Instance Methods
conditions()
click to toggle source
# File lib/datatables_server/active_record_repository.rb, line 34 def conditions columns.join(' LIKE :search OR ') << ' LIKE :search' end
filtered_data()
click to toggle source
# File lib/datatables_server/active_record_repository.rb, line 29 def filtered_data return data if options.search_term.empty? data.where(conditions, search: "%#{options.search_term}%") end
ordered_data()
click to toggle source
# File lib/datatables_server/active_record_repository.rb, line 25 def ordered_data filtered_data.order("#{options.sort_column} #{options.sort_direction}") end