From 91a31f674b366d4e86a6bfae12c0922c396a7df1 Mon Sep 17 00:00:00 2001
From: Daniel Friesel <derf@finalrewind.org>
Date: Wed, 13 Jul 2011 14:13:15 +0200
Subject: DeutscheBahn/Result: Add delay accessor, remove info_raw

---
 lib/Travel/Status/DE/DeutscheBahn/Result.pm | 27 ++++++++++++++++++++-------
 1 file changed, 20 insertions(+), 7 deletions(-)

(limited to 'lib/Travel/Status/DE')

diff --git a/lib/Travel/Status/DE/DeutscheBahn/Result.pm b/lib/Travel/Status/DE/DeutscheBahn/Result.pm
index 5c2e9e1..79cf5d4 100644
--- a/lib/Travel/Status/DE/DeutscheBahn/Result.pm
+++ b/lib/Travel/Status/DE/DeutscheBahn/Result.pm
@@ -38,6 +38,21 @@ sub info {
 	return $info;
 }
 
+sub delay {
+	my ($self) = @_;
+
+	my $info = $self->info_raw;
+
+	if ( $info =~ m{ p.nktlich }ox ) {
+		return 0;
+	}
+	if ( $info =~ m{ ca[.] \s (?<delay> \d+ ) \s Minuten \s sp.ter }ox ) {
+		return $+{delay};
+	}
+
+	return;
+}
+
 sub origin {
 	my ($self) = @_;
 
@@ -156,16 +171,14 @@ either the train's destination or its origin station.
 
 Convenience aliases for $result->route_end.
 
-=item $result->info
+=item $result->delay
 
-Returns additional information, for instance in case the train is delayed. May
-be an empty string if no (useful) information is available.
+Returns the train's delay in steps of 5 minutes, or undef if it is unknown.
 
-=item $result->info_raw
+=item $result->info
 
-Returns the raw info string. B<info> only tells you about delays, platform
-changes and such, B<info_raw> also explicitly states wether a train is on time
-or no information is available.
+Returns additional information, for instance the reason why the train is
+delayed. May be an empty string if no (useful) information is available.
 
 =item $result->platform
 
-- 
cgit v1.2.3