diff options
author | Daniel Friesel <derf@derf.homelinux.org> | 2010-08-14 05:18:31 +0200 |
---|---|---|
committer | Daniel Friesel <derf@derf.homelinux.org> | 2010-08-14 05:18:31 +0200 |
commit | 8bfee41e214b015fe6eb8ef0c185859f5b6401a7 (patch) | |
tree | 58f70a47fbf6134f5b95a389a3a1f83033fb4464 /lib/WWW/Efa/Error/Ambiguous.pm | |
parent | fec4f0d857fb35a7c6cd35a51694671651b23df7 (diff) |
Add remaining error classes, sort of
Diffstat (limited to 'lib/WWW/Efa/Error/Ambiguous.pm')
-rw-r--r-- | lib/WWW/Efa/Error/Ambiguous.pm | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/lib/WWW/Efa/Error/Ambiguous.pm b/lib/WWW/Efa/Error/Ambiguous.pm new file mode 100644 index 0000000..e738a63 --- /dev/null +++ b/lib/WWW/Efa/Error/Ambiguous.pm @@ -0,0 +1,69 @@ +package WWW::Efa::Error::Ambiguous; + +=head1 NAME + +WWW::Efa::Error::Ambiguous - WWW::Efa error, ambiguous to/from/via input + +=head1 SYNOPSIS + + use WWW::Efa::Error::Ambiguous; + + my $error = WWW::Efa::Error::Ambiguous->new( + 'name_origin', 'Bredeney', 'Bredeney Friedhof' + ); + + die $error->as_string(); + # WWW::Efa error: ambiguous input for name_origin: + # Bredeney + # Bredeney Friedhof + +=head1 DESCRIPTION + +Class for all WWW::Efa-internal errors occuring during initialization. Usually +caused by missing or invalid setup arguments. + +=cut + +use strict; +use warnings; +use 5.010; + +use base 'Exporter'; + +our @EXPORT_OK = qw{}; +our @ISA = ('WWW::Efa::Error'); + +sub new { + my ($obj, $key, @possible) = @_; + my $ref = {}; + + $ref->{'key'} = $key; + $ref->{'possible'} = \@possible; + + return bless($ref, $obj); +} + +=head1 METHODS + +=head2 $error->as_string() + +Return the error as string, can directly be displayed to the user + +=cut + +sub as_string { + my ($self) = @_; + + my $ret = sprintf( + "WWW::Efa error: ambiguous input for %s:\n", + $self->{'key'}, + ); + + foreach my $value (@{$self->{'possible'}}) { + $ret .= "\t$value\n"; + } + + return $ret; +} + +1; |