Sha256: 54535b828643c956f6e9c2fb0e2ec91e1fdc275d4c44054cdc5e643936f76e30

Contents?: true

Size: 953 Bytes

Versions: 4

Compression:

Stored size: 953 Bytes

Contents

module Gumdrop::Util

  class Pager
    attr_reader :all, :pages, :base_url, :current_page, :page_sets

    def initialize(articles, base_path="/page", page_size=5)
      @all= articles
      @page_size= page_size
      @base_path= base_path
      @page_sets= @all.in_groups_of(page_size, false)
      @pages= []
      @current_page=1
      @page_sets.each do |art_ary|
        @pages << HashObject.from({
          items: art_ary,
          page: @current_page,
          uri: "#{base_path}/#{current_page}",
          pager: self
        })
        @current_page += 1
      end
      @current_page= nil
    end

    def length
      @pages.length
    end

    def first
      @pages.first
    end

    def last
      @pages.last
    end

    def each
      @current_page=1
      @pages.each do |page_set|
        yield page_set
        @current_page += 1
      end
      @current_page= nil
    end

    def [](key)
      @pages[key]
    end
  end

end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
gumdrop-1.0.3 lib/gumdrop/util/pager.rb
gumdrop-1.0.2 lib/gumdrop/util/pager.rb
gumdrop-1.0.1 lib/gumdrop/util/pager.rb
gumdrop-1.0.0 lib/gumdrop/util/pager.rb