WWW::Ruler - a helper for building rulers for visual presentation (in WWW applictions for example)
Now this module is beta. Not all documentation is finished yet.
use WWW::Ruler; my $ruler = WWW::Ruler->new( page_size => $page_size, ruler_size => 15 ); # $page_number - a number of current page # $array_length - a dimension of array of data my $piece = $ruler->cut_off( page_number => $page_number, amount => $array_length ); # Detail in manual WWW::Ruler::Piece(3) $piece->outside; # true if piece are located outside of array of data. You can test before next methods $ruler_array = $piece->ruler; # An array of ruler items for drawing $start_index = $piece->start; # A start index of array (a base is zero) for cutting $end_index = $piece->end; # An end index of array (a base is zero) for cutting $size = $piece->size; # A size (dimension) of piece of current page.
This class will help to make a ruler with a following layouts and calculate start and end indices. Ruler can look like these examples:
[ << ] [ 1 ] [ ... ] [ 4 ] [ 5 ] ( 6 ) [ 7 ] [ 8 ] [ ... ] [ 999 ] [ >> ]
[ 1 ] [ 4 ] [ 5 ] ( 6 ) [ 7 ] [ 8 ] [ ... ] [ 999 ] [ >> ]
[ << ] [ 1 ] [ ... ] [ 4 ] [ 5 ] ( 6 ) [ 7 ] [ 8 ] [ >> ]
Here ( 1 ) and ( 6 ) are "current" pages. A [ << ], [ >> ] and [ DIGIT ] - linked buttons for other pages for example. And the [ ... ] is an ellipse figure of span between page numbers (not linked).
$ruler = WWW::Ruler->new( page_size => $page_size, ruler_size => 15 ); $ruler = WWW::Ruler->new;
You can construct object with and without options.
Number. How many do you have items in one page?
A desired maximum number of buttons (not included button [<<], [>>] and [...]). It is only desired amount! Please notice that real items in ruler can be up 3-4 items! It option will be improved in next versions.
A current number of page for which this ruler to be builded. It starts from 1.
An amount of items in whole array.
The constructor. The %opts are optional. Any options can be redefined in "cut_off" method.
This method makes virtual cut off of array and contructs array of ruler items. Any options passed into this method redefine options of constructor (to see "SYNOPSIS").
This module has been written by Perlover <email@example.com>
This module is free software and is published under the same terms as Perl itself.