Sha256: 48fce2379c02817c36433f5df22c34761c52be38b38232292d42117878b4410c

Contents?: true

Size: 721 Bytes

Versions: 2

Compression:

Stored size: 721 Bytes

Contents

# frozen_string_literal: true

module Pagination
  extend ActiveSupport::Concern
  include Pagy::Backend

  protected

  included do
    def paginate(relation)
      options = {page: page, items: items, outset: params[:outset]}
      options[:count] = params[:count] if params[:count].to_i.positive?

      pagy_info, records = pagy relation, options
      [pagy_repsonse(pagy_info), records]
    end
  end

  private

  def pagy_repsonse(pagy)
    pagy.instance_values.except Settings.pagy.instances.vars
  end

  def page
    @page ||= params[:page].to_i < 1 ? Settings.pagy.page_default : params[:page]
  end

  def items
    @items ||= params[:items].to_i < 1 ? Settings.pagy.items_default : params[:items]
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
n_base_rails-0.1.2 lib/controllers/concerns/pagination.rb
n_base_rails-0.1.1 lib/controllers/concerns/pagination.rb