NAME
Data::Paginator - Pagination with Moose
SYNOPSIS
use Data::Paginator;
my $pager = Data::Paginator->new(
current_page => 1,
entries_per_page => 10
total_entries => 100,
);
print "First page: ".$page->first_page."\n";
print "Last page: ".$page->last_page."\n";
print "First entry on page: ".$page->first."\n";
print "Last entry on page: ".$page->last."\n";
DESCRIPTION
This is yet another pagination module. It only exists because none of the other pager modules are written using Moose. Sometimes there is a Moose feature – MooseX::Storage, in my case – that you need. It's a pain when you can't use it with an existing module. This module aims to be completely compatible with the venerable Data::Page. In fact, it's a pretty blatant copy of Data::Page, lifting code from some of it's methods.
SETS
This module provides behavior compatible with Data::PageSet, allowing you to break your pagination into sets. For example, if you have a large number of pages to show and would like to allow the user to 'jump' X pages at a time, you can set the pages_per_set
attribute to X and populate the links in your pagination control with the values from previous_set
and next_set
.
ATTRIBUTES
current_page
The current page. Defaults to 1. If you set this value to to a page number lesser than or greater than the range of the pager, then 1 or the last_page will be returned instead. It is safe to pass this numbers like -1000 or 1000 when there are only 3 pages.
entries_per_page
The number of entries per page, required at instantiation.
last_page
Returns the number of the last page. Lazily computed, so do not set.
pages_per_set
If you have a large number of pages to show and would like to allow the user to 'jump' X pages at a time, you can set the pages_per_set
attribute to X and populate the links in your pagination control with the values from previous_set
and next_set
.
total_entries
The total number of entries this pager is covering. Required at instantiation.
METHODS
entries_on_this_page
Returns the number of entries on this page.
first
Returns the number of the first entry on the current page.
first_page
Always returns 1.
first_set
Returns 1 if this Paginator has pages_per_set. Otherwise returns undef.
last
Returns the number of the last entry on the current page.
last_set
Returns the number of the last set if this Paginator has pages_per_set. Otherwise returns undef.
next_page
Returns the page number of the next page if one exists, otherwise returns false.
next_set
Returns the number of the next set or undefined if there is no next.
page_for ($count)
Returns the page number that the $count item appears on. Returns undef if $count is outside the bounds of this Paginator.
previous_page
Returns the page number of the previous page if one exists, otherwise returns undef.
previous_set
Returns the set number of the previous set or undefined if there is no previous set.
set_for $page
Returns the set number of the specified page. Returns undef if the page exceeds the bounds of the Paginator.
skip
This method is useful paging through data in a database using SQL LIMIT clauses. It is simply $page->first - 1:
splice
Takes in an arrayref and returns only the valies which are on the current page.
AUTHOR
Cory G Watson, <gphat at cpan.org>
ACKNOWLEDGEMENTS
Léon Brocard and his work on Data::Page.
COPYRIGHT & LICENSE
Copyright 2009 Cory G Watson.
This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.
See http://dev.perl.org/licenses/ for more information.
1 POD Error
The following errors were encountered while parsing the POD:
- Around line 246:
Non-ASCII character seen before =encoding in '–'. Assuming UTF-8