diff options
| -rw-r--r-- | Changelog | 4 | ||||
| -rwxr-xr-x | bin/efa | 9 | ||||
| -rw-r--r-- | lib/Travel/Routing/DE/VRR.pm | 4 | 
3 files changed, 14 insertions, 3 deletions
| @@ -1,3 +1,7 @@ +git HEAD + +    * Improve error message for unparsable (or missing) route data +  Travel::Routing::DE::VRR 2.04 - Tue Jan 07 2014      * efa: Handle UTF8 in place/stop input @@ -65,7 +65,7 @@ sub handle_efa_exception {  		exit 2;  	}  	if ( $e->isa('Travel::Routing::DE::VRR::Exception::NoData') ) { -		printf STDERR ( 'Error: %s', $e->description ); +		printf STDERR ( "Error: %s\n", $e->description );  		exit 3;  	}  	if ( $e->isa('Travel::Routing::DE::VRR::Exception::Ambiguous') ) { @@ -432,6 +432,13 @@ This script requires perl 5.10 (or higher) with the following modules:  =head1 BUGS AND LIMITATIONS +The EFA backend is not able to calculate "two-way" routes, i.e. from -> via -> +to routes with from == to. If from and to are the same stop, it doesn't even +try to calculate a route ("we recommend walking instead"), if they are close to +each other it may or may not work.  Workaround: Request from -> via using the +normal four-argument efa invocation, read the time, use efa -t time via via to +to to request via -> to. +  None known.  =head1 AUTHOR diff --git a/lib/Travel/Routing/DE/VRR.pm b/lib/Travel/Routing/DE/VRR.pm index 665d5bc..c7193e1 100644 --- a/lib/Travel/Routing/DE/VRR.pm +++ b/lib/Travel/Routing/DE/VRR.pm @@ -26,7 +26,7 @@ use Exception::Class (  	},  	'Travel::Routing::DE::VRR::Exception::NoData' => {  		isa         => 'Travel::Routing::DE::VRR::Exception', -		description => 'got no data to parse', +		description => 'backend returned no parsable route',  	},  	'Travel::Routing::DE::VRR::Exception::Ambiguous' => {  		isa         => 'Travel::Routing::DE::VRR::Exception', @@ -590,7 +590,7 @@ sub parse {  		$self->parse_part($part);  	} -	if ( @{ $self->{routes} } == 0 ) { +	if ( not defined $self->{routes} or @{ $self->{routes} } == 0 ) {  		Travel::Routing::DE::VRR::Exception::NoData->throw();  	} | 
