Sha256: d3003ced45d5f9c9c2120ec7ad0bf8f6bc0b0f2320fdcd3744df5579a33bfe7a
Contents?: true
Size: 790 Bytes
Versions: 9
Compression:
Stored size: 790 Bytes
Contents
# frozen_string_literal: true require "active_support/concern" module Decidim # Common logic to paginate resources module Paginable extend ActiveSupport::Concern OPTIONS = [25, 50, 100].freeze included do helper_method :per_page, :page_offset helper Decidim::PaginateHelper def paginate(resources) resources.page(params[:page]).per(per_page) end def per_page if OPTIONS.include?(params[:per_page]) params[:per_page].to_i elsif params[:per_page] sorted = OPTIONS.sort params[:per_page].to_i.clamp(sorted.first, sorted.last) else OPTIONS.first end end def page_offset [params[:page].to_i - 1, 0].max * per_page end end end end
Version data entries
9 entries across 9 versions & 1 rubygems