summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/Travel/Status/DE/DBWagenreihung.pm23
1 files changed, 11 insertions, 12 deletions
diff --git a/lib/Travel/Status/DE/DBWagenreihung.pm b/lib/Travel/Status/DE/DBWagenreihung.pm
index 5308961..0a750b5 100644
--- a/lib/Travel/Status/DE/DBWagenreihung.pm
+++ b/lib/Travel/Status/DE/DBWagenreihung.pm
@@ -89,18 +89,7 @@ sub error {
sub direction {
my ($self) = @_;
- my @wagons = $self->wagons;
-
- if ( not @wagons ) {
- return undef;
- }
-
- if ( $wagons[0]->{position}{start_percent}
- > $wagons[-1]{position}{start_percent} )
- {
- return 0;
- }
- return 100;
+ return $self->{direction};
}
sub sections {
@@ -142,6 +131,16 @@ sub wagons {
);
}
}
+ if ( @{ $self->{wagons} } > 1 ) {
+ if ( $self->{wagons}[0]->{position}{start_percent}
+ > $self->{wagons}[-1]->{position}{start_percent} )
+ {
+ $self->{direction} = 100;
+ }
+ else {
+ $self->{direction} = 0;
+ }
+ }
@{ $self->{wagons} } = sort {
$a->{position}->{start_percent} <=> $b->{position}->{start_percent}
} @{ $self->{wagons} };