package CGI::Widget::Series;
use lib '../';
use CGI::Widget;
use vars qw(@ISA $VERSION);
use strict;
use overload '""' => \&html;
@ISA = qw(CGI::Widget);
$VERSION = '1.01';
sub _init {
my $self = shift;
#clean out leading -'s;
my @t = @_;
for(my $i = 0; $i < @t; $i+=2){ $t[$i] =~ s/^-//; }
my %param = @t;
$param{break} ||= 0;
$param{linebreak} ||= 0;
foreach my $i (qw(length render break linebreak)){
defined $param{$i} ? $self->$i($param{$i}) : die "$i undefined in $0 : $!";
}
return 1;
}
sub html {
my ($self,@args) = @_;
$self = __PACKAGE__->new(@args) unless ref $self;
my $return = '';
for my $i (1..$self->length){
$return .= $self->render->($i);
$return .= $self->linebreak ? '
' : '';
$return .= $self->break ? "\n" : '';
}
return $return;
}
sub length {
my($self,$val) = @_;
return $self->{length} unless defined $val;
$self->{length} = $val;
}
sub render {
my($self,$val) = @_;
return $self->{render} unless defined $val;
$self->{render} = $val;
}
sub break {
my($self,$val) = @_;
return $self->{break} unless defined $val;
$self->{break} = $val;
}
sub linebreak {
my($self,$val) = @_;
return $self->{linebreak} unless defined $val;
$self->{linebreak} = $val;
}
1;
__END__
# Below is stub documentation for your module. You better edit it!
=head1 NAME
CGI::Widget::Series - Class for making CGI series forms
=head1 SYNOPSIS
use CGI::Widget::Series;
my $series = CGI::Widget::Series->new(
-length => 10,
-linebreak => 1,
);
print $series; #prints