summaryrefslogtreecommitdiff
path: root/lib/Travel/Status/DE/DBWagenreihung
diff options
context:
space:
mode:
authorDaniel Friesel <derf@finalrewind.org>2018-11-25 19:49:43 +0100
committerDaniel Friesel <derf@finalrewind.org>2018-11-25 19:49:43 +0100
commita6fab60716a8aba9030d60bc821545e7c41f1a46 (patch)
tree5dac9881d6e66ed7ef062cb955f81209d78031f3 /lib/Travel/Status/DE/DBWagenreihung
parent481d3f9c20b7d4239b3b09499bec2c63e31bae93 (diff)
add locomotive/powercar flag and positions
Diffstat (limited to 'lib/Travel/Status/DE/DBWagenreihung')
-rw-r--r--lib/Travel/Status/DE/DBWagenreihung/Wagon.pm31
1 files changed, 23 insertions, 8 deletions
diff --git a/lib/Travel/Status/DE/DBWagenreihung/Wagon.pm b/lib/Travel/Status/DE/DBWagenreihung/Wagon.pm
index a29d42a..0cda4f3 100644
--- a/lib/Travel/Status/DE/DBWagenreihung/Wagon.pm
+++ b/lib/Travel/Status/DE/DBWagenreihung/Wagon.pm
@@ -11,32 +11,47 @@ use Carp qw(cluck);
our $VERSION = '0.00';
Travel::Status::DE::DBWagenreihung::Wagon->mk_ro_accessors(
- qw(class_type has_bistro number section)
+ qw(class_type has_bistro is_locomotive is_powercar number section)
);
sub new {
my ( $obj, %opt ) = @_;
- my $ref = \%opt;
+ my $ref = {};
$ref->{class_type} = 0;
$ref->{has_bistro} = 0;
- $ref->{number} = $ref->{wagenordnungsnummer};
- $ref->{section} = $ref->{fahrzeugsektor};
+ $ref->{is_locomotive} = 0;
+ $ref->{is_powercar} = 0;
+ $ref->{number} = $opt{wagenordnungsnummer};
+ $ref->{section} = $opt{fahrzeugsektor};
- if ($ref->{kategorie} =~ m{SPEISEWAGEN}) {
+ if ($opt{kategorie} =~ m{SPEISEWAGEN}) {
$ref->{has_bistro} = 1;
}
+ elsif ($opt{kategorie} eq 'LOK') {
+ $ref->{is_locomotive} = 1;
+ }
+ elsif ($opt{kategorie} eq 'TRIEBKOPF') {
+ $ref->{is_powercar} = 1;
+ }
- if ($ref->{fahrzeugtyp} =~ m{^AB}) {
+ if ($opt{fahrzeugtyp} =~ m{AB}) {
$ref->{class_type} = 12;
}
- elsif ($ref->{fahrzeugtyp} =~ m{^A}) {
+ elsif ($opt{fahrzeugtyp} =~ m{A}) {
$ref->{class_type} = 1;
}
- elsif ($ref->{fahrzeugtyp} =~ m{^B|^WR}) {
+ elsif ($opt{fahrzeugtyp} =~ m{B|WR}) {
$ref->{class_type} = 2;
}
+ my $pos = $opt{positionamhalt};
+
+ $ref->{position}{start_percent} = $pos->{startprozent};
+ $ref->{position}{end_percent} = $pos->{endeprozent};
+ $ref->{position}{start_meters} = $pos->{startmeter};
+ $ref->{position}{end_meters} = $pos->{endemeter};
+
return bless( $ref, $obj );
}