Sha256: 016a78a409151f88041ba1e4940a5be562f35f6c126ce83ae09fe2fc69b2f816

Contents?: true

Size: 679 Bytes

Versions: 1

Compression:

Stored size: 679 Bytes

Contents

require 'geared_pagination/portion'

module GearedPagination
  class Page
    attr_reader :number, :collection

    def initialize(number, from:)
      @number, @collection = number, from
      @portion = GearedPagination::Portion.new(page_number: number, per_page: from.ratios)
    end

    def records
      @records ||= @portion.from(collection.records)
    end


    def used?
      records.load.any?
    end

    def empty?
      records.load.none?
    end


    def first?
      number == 1
    end

    def only?
      collection.page_count == 1
    end

    def last?
      number == collection.page_count
    end


    def next_number
      number + 1
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
geared_pagination-0.1 lib/geared_pagination/page.rb