Commit a292fc5b authored by Birte Kristina Friesel's avatar Birte Kristina Friesel
Browse files

add origin/destination accessors, support wings in orig/dest/train no

parent 6436acb5
Loading
Loading
Loading
Loading
+7 −3
Original line number Diff line number Diff line
@@ -71,9 +71,13 @@ my $wr = Travel::Status::DE::DBWagenreihung->new(
);

printf(
	"%s %s (%s) in %s Gleis %s\n\n",
	$wr->train_type, $wr->train_no, $wr->train_subtype // '-',
	$wr->station_name, $wr->platform
	"%s: %s → %s  (%s)\n%s Gleis %s\n\n",
	join( ' / ', map { $wr->train_type . ' ' . $_ } $wr->train_numbers ),
	join( ' / ', $wr->origins ),
	join( ' / ', $wr->destinations ),
	$wr->train_subtype // 'IC?',
	$wr->station_name,
	$wr->platform
);

for my $section ( $wr->sections ) {
+61 −0
Original line number Diff line number Diff line
@@ -8,6 +8,7 @@ our $VERSION = '0.00';

use Carp qw(cluck confess);
use JSON;
use List::Util qw(uniq);
use LWP::UserAgent;
use Travel::Status::DE::DBWagenreihung::Section;
use Travel::Status::DE::DBWagenreihung::Wagon;
@@ -92,6 +93,46 @@ sub direction {
	return $self->{direction};
}

sub origins {
	my ($self) = @_;

	if ( exists $self->{origins} ) {
		return @{ $self->{origins} };
	}

	my @origins;

	for my $group ( @{ $self->{data}{istformation}{allFahrzeuggruppe} } ) {
		push( @origins, $group->{startbetriebsstellename} );
	}

	@origins = uniq @origins;

	$self->{origins} = \@origins;

	return @origins;
}

sub destinations {
	my ($self) = @_;

	if ( exists $self->{destinations} ) {
		return @{ $self->{destinations} };
	}

	my @destinations;

	for my $group ( @{ $self->{data}{istformation}{allFahrzeuggruppe} } ) {
		push( @destinations, $group->{zielbetriebsstellename} );
	}

	@destinations = uniq @destinations;

	$self->{destinations} = \@destinations;

	return @destinations;
}

sub platform {
	my ($self) = @_;

@@ -149,6 +190,26 @@ sub train_type {
	return $self->{data}{istformation}{zuggattung};
}

sub train_numbers {
	my ($self) = @_;

	if ( exists $self->{train_numbers} ) {
		return @{ $self->{train_numbers} };
	}

	my @numbers;

	for my $group ( @{ $self->{data}{istformation}{allFahrzeuggruppe} } ) {
		push( @numbers, $group->{verkehrlichezugnummer} );
	}

	@numbers = uniq @numbers;

	$self->{train_numbers} = \@numbers;

	return @numbers;
}

sub train_no {
	my ($self) = @_;