diff options
author | Daniel Friesel <derf@finalrewind.org> | 2019-01-02 18:31:58 +0100 |
---|---|---|
committer | Daniel Friesel <derf@finalrewind.org> | 2019-01-02 18:31:58 +0100 |
commit | 221291b9c46863755aa2da03edd10922e37e3e0d (patch) | |
tree | 72ed831d167fa33ca11d7b96f2f19408d0dc9777 /lib/Travel/Status/DE/DBWagenreihung.pm | |
parent | 377d54ef0a064ce24feab05cdbb0733f9967b84d (diff) |
add train type-specific data (e.g. phone/quiet areas)
Diffstat (limited to 'lib/Travel/Status/DE/DBWagenreihung.pm')
-rw-r--r-- | lib/Travel/Status/DE/DBWagenreihung.pm | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/lib/Travel/Status/DE/DBWagenreihung.pm b/lib/Travel/Status/DE/DBWagenreihung.pm index 962211a..0bc7ae6 100644 --- a/lib/Travel/Status/DE/DBWagenreihung.pm +++ b/lib/Travel/Status/DE/DBWagenreihung.pm @@ -158,6 +158,10 @@ sub train_no { sub train_subtype { my ($self) = @_; + if ( exists $self->{train_subtype} ) { + return $self->{train_subtype}; + } + my @wagons = $self->wagons; my %ml = ( @@ -210,7 +214,8 @@ sub train_subtype { return undef; } - return $likelihood[0]; + $self->{train_subtype} = $likelihood[0]; + return $self->{train_subtype}; } sub wagons { @@ -241,6 +246,17 @@ sub wagons { @{ $self->{wagons} } = sort { $a->{position}->{start_percent} <=> $b->{position}->{start_percent} } @{ $self->{wagons} }; + + # ->train_subtype calls ->wagons, so this call must not be made before + # $self->{wagons} has beet set. + my $tt = $self->train_subtype; + + if ($tt) { + for my $wagon ( @{ $self->{wagons} } ) { + $wagon->set_traintype($tt); + } + } + return @{ $self->{wagons} // [] }; } |