/usr/local/CPAN/HTML-FormFu/HTML/FormFu/Exception/Input.pm
package HTML::FormFu::Exception::Input;
use Moose;
extends 'HTML::FormFu::Exception';
use HTML::FormFu::Util qw( literal );
has processor => ( is => 'rw', traits => ['Chained'] );
has forced => ( is => 'rw', traits => ['Chained'] );
sub name {
my ($self) = @_;
return $self->parent->name;
}
sub class {
my ( $self, $class ) = @_;
if ( @_ > 1 ) {
return $self->{class} = $class;
}
return $self->{class} if defined $self->{class};
my %string = (
f => defined $self->form->id ? $self->form->id : '',
n => defined $self->name ? $self->name : '',
t => defined $self->type ? lc( $self->type ) : '',
s => $self->stage,
);
$string{t} =~ s/::/_/g;
$string{t} =~ s/\+//;
my $error_class = $self->parent->auto_error_class;
$error_class =~ s/%([fnts])/$string{$1}/g;
return $self->{class} = $error_class;
}
sub message {
my ( $self, $message ) = @_;
if ( @_ > 1 ) {
return $self->{message} = $message;
}
return $self->{message} if defined $self->{message};
return $self->processor->message if defined $self->processor->message;
my %string = (
f => defined $self->form->id ? $self->form->id : '',
n => defined $self->name ? $self->name : '',
t => defined $self->type ? lc( $self->type ) : '',
s => $self->stage,
);
$string{t} =~ s/::/_/g;
$string{t} =~ s/\+//;
my $error_message = $self->parent->auto_error_message;
$error_message =~ s/%([fnts])/$string{$1}/g;
$error_message = $self->form->localize( $error_message,
$self->processor->localize_args );
return $self->{message} = $error_message;
}
sub type {
my ($self) = @_;
return $self->processor->type;
}
sub clone {
my ($self) = @_;
my %new = %$self;
return bless \%new, ref $self;
}
__PACKAGE__->meta->make_immutable;
1;