.\" Automatically generated by Pod::Man 2.28 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Data::Paginator 3pm" .TH Data::Paginator 3pm "2014-11-01" "perl v5.20.2" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Data::Paginator \- Pagination with Moose .SH "VERSION" .IX Header "VERSION" version 0.08 .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& use Data::Paginator; \& \& my $pager = Data::Paginator\->new( \& current_page => 1, \& entries_per_page => 10, \& total_entries => 100, \& ); \& \& print "First page: ".$pager\->first_page."\en"; \& print "Last page: ".$pager\->last_page."\en"; \& print "First entry on page: ".$pager\->first."\en"; \& print "Last entry on page: ".$pager\->last."\en"; .Ve .SH "DESCRIPTION" .IX Header "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 X MooseX::Storage, in my case X 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. .SH "SETS" .IX Header "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 \f(CW\*(C`pages_per_set\*(C'\fR attribute to X and populate the links in your pagination control with the values from \f(CW\*(C`previous_set\*(C'\fR and \f(CW\*(C`next_set\*(C'\fR. .SH "ATTRIBUTES" .IX Header "ATTRIBUTES" .SS "current_page" .IX Subsection "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. .SS "entries_per_page" .IX Subsection "entries_per_page" The number of entries per page, required at instantiation. .SS "last_page" .IX Subsection "last_page" Returns the number of the last page. Lazily computed, so do not set. .SS "next_set" .IX Subsection "next_set" Returns the number of the next set or undefined if there is no next. .SS "pages_per_set" .IX Subsection "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 \f(CW\*(C`pages_per_set\*(C'\fR attribute to X and populate the links in your pagination control with the values from \&\f(CW\*(C`previous_set\*(C'\fR and \f(CW\*(C`next_set\*(C'\fR. .SS "previous_set" .IX Subsection "previous_set" Returns the set number of the previous set or undefined if there is no previous set. .SS "total_entries" .IX Subsection "total_entries" The total number of entries this pager is covering. Required at instantiation. .SS "first" .IX Subsection "first" Returns the number of the first entry on the current page. .SS "first_page" .IX Subsection "first_page" Always returns 1. .SH "METHODS" .IX Header "METHODS" .SS "entries_on_this_page" .IX Subsection "entries_on_this_page" Returns the number of entries on this page. .SS "first_set" .IX Subsection "first_set" Returns 1 if this Paginator has pages_per_set. Otherwise returns undef. .SS "last" .IX Subsection "last" Returns the number of the last entry on the current page. .SS "next_page" .IX Subsection "next_page" Returns the page number of the next page if one exists, otherwise returns false. .SS "page_for ($count)" .IX Subsection "page_for ($count)" Returns the page number that the \f(CW$count\fR item appears on. Returns undef if \&\f(CW$count\fR is outside the bounds of this Paginator. .SS "previous_page" .IX Subsection "previous_page" Returns the page number of the previous page if one exists, otherwise returns undef. .ie n .SS "set_for $page" .el .SS "set_for \f(CW$page\fP" .IX Subsection "set_for $page" Returns the set number of the specified page. Returns undef if the page exceeds the bounds of the Paginator. .SS "splice" .IX Subsection "splice" Takes in an arrayref and returns only the values which are on the current page. .SH "ACKNOWLEDGEMENTS" .IX Header "ACKNOWLEDGEMENTS" Le\*'on Brocard and his work on Data::Page. .SH "AUTHOR" .IX Header "AUTHOR" Cory G Watson .SH "COPYRIGHT AND LICENSE" .IX Header "COPYRIGHT AND LICENSE" This software is copyright (c) 2014 by Cory G Watson. .PP This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.