File: Chunk.pm

package info (click to toggle)
libdata-page-pageset-perl 1.02-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 88 kB
  • sloc: perl: 167; makefile: 2
file content (40 lines) | stat: -rw-r--r-- 804 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package Data::Page::Pageset::Chunk;
use Carp;
use strict;
use base 'Class::Accessor::Fast';
use overload
	'""'     => sub { shift->as_string };

__PACKAGE__->mk_accessors( qw( first last pages is_current ) );

our $VERSION = sprintf "%d.%02d", q$Revision: 1.2 $ =~ /: (\d+)\.(\d+)/;

sub new {
	my $class = shift;
	my @array = @_;

	my $self = bless {}, $class;
	$self->first( $array[0] );
	$self->last( $array[-1] );
	$self->pages( $#array + 1 );
	$self->is_current(0);

	return $self;
}

sub middle {
	my $self = shift;
	my $pages = $self->pages;
	$pages++ if $pages % 2;
	return $self->first + $pages / 2;
}

sub as_string {
	my $self = shift;
	my $sep = shift || '-';
	my $string = ( $self->first == $self->last )
		? $self->first
		: join ("$sep", $self->first, $self->last );
	return $string;
}
1;