module ActionCrud::Pagination
Public Instance Methods
set_per_page(limit)
click to toggle source
# File lib/action_crud/pagination.rb, line 14 def set_per_page(limit) self.per_page = limit.to_i end
Private Instance Methods
paginate(records)
click to toggle source
# File lib/action_crud/pagination.rb, line 31 def paginate(records) if records.respond_to? :paginate records.paginate(pagination_params.select { |k, _v| k.in? [:page, :per_page] }) else records end end
pagination_meta(records)
click to toggle source
# File lib/action_crud/pagination.rb, line 39 def pagination_meta(records) { current_page: pagination_params.fetch(:page, 1).to_i, next_page: records.try(:next_page), previous_page: records.try(:previous_page), total_pages: records.try(:total_pages), total_entries: records.try(:total_entries) } end
pagination_params()
click to toggle source
# File lib/action_crud/pagination.rb, line 21 def pagination_params @pagination_params ||= params.permit(:page, :per_page).to_h.deep_symbolize_keys end
set_pagination_params()
click to toggle source
# File lib/action_crud/pagination.rb, line 25 def set_pagination_params pagination = pagination_params[:page].is_a?(Hash) ? pagination_params[:page] : {} pagination_params[:page] = pagination[:number] || pagination_params.fetch(:page, 1) pagination_params[:per_page] = pagination[:size] || pagination_params.fetch(:per_page, per_page) end