Sledge::Plugin::Paginate

初めて?!Sledgeプラグイン書いてみた。
普通CDBIとかDBICでページングさせるけど、
データとってきた後にあれこれデータいじくって
それをページングさせたいとき用。
CDBIDBICのデータでなくてもページングかんたーんにできる予定。


package Sledge::Plugin::Paginate;
use strict;
use warnings;
our $VERSION = '0.01';

use Data::Page;
our $REQUEST_PARAM = 'page';

sub import {
my $self = shift;
my $pkg = caller;

no strict 'refs';
*{"$pkg\::paginate"} = sub {
my ($self , %args) = @_;

my $pager = Data::Page->new(
scalar(@{$args{data}}),
$args{paging_num},
$self->r->param($REQUEST_PARAM) || 0,
);

$self->tmpl->param(
$args{page_name} => [ $pager->splice($args{data}) ],
pager => $pager,
);
};
}

1;
__END__
=head1 NAME

Sledge::Plugin::Paginate - data paginate plugin for Sledge

=head1 VERSION

This documentation refers to Sledge::Plugin::Paginate version 0.01

=head1 SYNOPSIS

package Your::Pages;
use Sledge::Plugin::Paginate;
our $PAGE = 20;

sub dispatch_index {
my $self = shift;

my @users = $self->user;

$self->paginate(
paging_num => $PAGE,
page_name => 'user',
data => \@users,
);
}

=head1 DESCRIPTION

This Plugin provide to Sledge for data paginate.

=head1 AUTHOR

Atsushi Kobayashi,

This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.

=head1 SEE ALSO

L

=cut