diff options
author | Daniel Friesel <derf@finalrewind.org> | 2022-10-29 10:44:55 +0200 |
---|---|---|
committer | Daniel Friesel <derf@finalrewind.org> | 2022-10-29 10:44:55 +0200 |
commit | 5b9aa75d735b4ad27ea099cb8589360b62c31980 (patch) | |
tree | 5d97ea717f7b5f5825663fbe463131ed2ab5c8fc | |
parent | 7ed6a265b747a275c24dce2797445d9c789124f2 (diff) |
Journey: add class accessor
-rw-r--r-- | lib/Travel/Status/DE/HAFAS/Journey.pm | 11 | ||||
-rwxr-xr-x | t/20-db.t | 5 |
2 files changed, 14 insertions, 2 deletions
diff --git a/lib/Travel/Status/DE/HAFAS/Journey.pm b/lib/Travel/Status/DE/HAFAS/Journey.pm index fba55cd..796afc5 100644 --- a/lib/Travel/Status/DE/HAFAS/Journey.pm +++ b/lib/Travel/Status/DE/HAFAS/Journey.pm @@ -16,7 +16,7 @@ Travel::Status::DE::HAFAS::Journey->mk_ro_accessors( qw(datetime sched_datetime rt_datetime is_cancelled is_partially_cancelled platform sched_platform rt_platform operator - id name type type_long number line load delay + id name type type_long class number line load delay route_end route_start origin destination direction) ); @@ -86,6 +86,8 @@ sub new { } } + my $class = $product->{cls}; + my @stops; for my $stop ( @{ $journey->{stopL} // [] } ) { my $loc = $locL[ $stop->{locX} ]; @@ -169,6 +171,7 @@ sub new { line => $line_no, type => $cat, type_long => $catlong, + class => $class, operator => $operator, direction => $direction, is_cancelled => $is_cancelled, @@ -379,6 +382,12 @@ or "STR" for tram / StraE<szlig>enbahn. Returns the long type of this journey, e.g. "S-Bahn" or "Regional-Express". +=item $journey->class + +Returns an integer identifying the the mode of transport class. +Semantics depend on backend, e.g. "1" and "2" for long-distance trains and +"4" and "8" for region trains. + =item $journey->line Returns the line identifier, or undef if it is unknown. @@ -7,7 +7,7 @@ use utf8; use File::Slurp qw(read_file); use JSON; -use Test::More tests => 46; +use Test::More tests => 49; use Travel::Status::DE::HAFAS; @@ -47,6 +47,7 @@ ok( !$results[0]->is_changed_platform, 'result 0: platform not changed' ); is( $results[0]->name, 'Bus 300', 'result 0: name' ); is( $results[0]->type, 'Bus', 'result 0: type' ); is( $results[0]->type_long, 'Bus', 'result 0: type_long' ); +is( $results[0]->class, 32, 'result 0: class' ); is( $results[0]->line, '300', 'result 0: line' ); is( $results[0]->number, '50833', 'result 0: number' ); @@ -77,6 +78,7 @@ ok( !$results[2]->is_changed_platform, 'result 2: platform not changed' ); is( $results[2]->name, 'U 8', 'result 2: name' ); is( $results[2]->type, 'U', 'result 2: type' ); is( $results[2]->type_long, 'U-Bahn', 'result 2: type_long' ); +is( $results[2]->class, 128, 'result 2: class' ); is( $results[2]->line, '8', 'result 2: line' ); is( $results[2]->number, '20024', 'result 2: number' ); @@ -107,6 +109,7 @@ ok( !$results[3]->is_changed_platform, 'result 3: platform not changed' ); is( $results[3]->name, 'S 3', 'result 3: name' ); is( $results[3]->type, 'S', 'result 3: type' ); is( $results[3]->type_long, 'S-Bahn', 'result 3: type_long' ); +is( $results[0]->class, 32, 'result 3: class' ); is( $results[3]->line, '3', 'result 3: line' ); is( $results[3]->number, '3122', 'result 3: number' ); |