Sha256: fa10ddd8277e9943f13eb125a5ee803e79c2cabcec88b25d7fddd4c833796a76
Contents?: true
Size: 790 Bytes
Versions: 4
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 = [20, 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
4 entries across 4 versions & 1 rubygems