The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

WWW::Ruler - a helper for building rulers for visual presentation (in WWW applictions for example)

SYNOPSIS

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.

DESCRIPTION

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

CONSTRUCTOR

    $ruler = WWW::Ruler->new( page_size => $page_size, ruler_size => 15 );
    $ruler = WWW::Ruler->new;

You can construct object with and without options.

OPTIONS

These options can be passed in "new" and "cut_off" methods. Options in "cut_off" method redefine constructor's options.

page_size

Number. How many do you have items in one page?

ruler_size

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.

page_number

A current number of page for which this ruler to be builded. It starts from 1.

amount

An amount of items in whole array.

METHODS

new( %opts )

The constructor. The %opts are optional. Any options can be redefined in "cut_off" method.

cut_off ( %opts )

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

Returns an instance of WWW::Ruler::Piece object. You can test a validation of piece bounds by "outside" in WWW::Ruler::Piece method.

AUTHOR

This module has been written by Perlover <perlover@perlover.com>

LICENSE

This module is free software and is published under the same terms as Perl itself.