Sha256: 3a4bf639fcd8f1f7cf0d9656e7807a8459d0ff120e1ada7945691f7c812e1cf7
Contents?: true
Size: 1.62 KB
Versions: 1
Compression:
Stored size: 1.62 KB
Contents
# frozen_string_literal: true module AjaxDatatablesRails module Datatable class Datatable attr_reader :datatable, :options def initialize(datatable) @datatable = datatable @options = datatable.params end # ----------------- ORDER METHODS -------------------- def orderable? options[:order].present? end def orders @orders ||= get_param(:order).map do |_, order_options| SimpleOrder.new(self, order_options) end end def order_by(how, what) orders.find { |simple_order| simple_order.send(how) == what } end # ----------------- SEARCH METHODS -------------------- def searchable? options[:search].present? && options[:search][:value].present? end def search @search ||= SimpleSearch.new(options[:search]) end # ----------------- COLUMN METHODS -------------------- def columns @columns ||= get_param(:columns).map do |index, column_options| Column.new(datatable, index, column_options) end end def column_by(how, what) columns.find { |simple_column| simple_column.send(how) == what } end # ----------------- OPTIONS METHODS -------------------- def paginate? per_page != -1 end def per_page options.fetch(:length, 10).to_i end def offset options.fetch(:start, 0).to_i end def page (offset / per_page) + 1 end def get_param(param) options[param].to_unsafe_h.with_indifferent_access end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
ajax-datatables-rails-1.0.0 | lib/ajax-datatables-rails/datatable/datatable.rb |