logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Data::Paginator - Pagination with Moose

Acknowledgements

       LΓ©on Brocard and his work on Data::Page.

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.

   next_set
       Returns the number of the next set or undefined if there is no next.

   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".

   previous_set
       Returns the set number of the previous set or undefined if there is no previous set.

   total_entries
       The total number of entries this pager is covering.  Required at instantiation.

   first
       Returns the number of the first entry on the current page.

   first_page
       Always returns 1.

Author

       Cory G Watson <gphat@cpan.org>

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.

Methods

entries_on_this_page
       Returns the number of entries on this page.

   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.

   next_page
       Returns the page number of the next page if one exists, otherwise returns false.

   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.

   set_for$page
       Returns the set number of the specified page.  Returns undef if the page exceeds the bounds of the
       Paginator.

   splice
       Takes in an arrayref and returns only the values which are on the current page.

Name

       Data::Paginator - Pagination with Moose

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".

Synopsis

           use Data::Paginator;

           my $pager = Data::Paginator->new(
               current_page => 1,
               entries_per_page => 10,
               total_entries => 100,
           );

           print "First page: ".$pager->first_page."\n";
           print "Last page: ".$pager->last_page."\n";
           print "First entry on page: ".$pager->first."\n";
           print "Last entry on page: ".$pager->last."\n";

Version

       version 0.08

See Also