From 6b2932cd9b7df92ec8a35326fa861fa4291f0fb4 Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Fri, 9 Oct 2015 18:26:41 +0200 Subject: use Stop.pm for stop data instead of arrayrefs --- lib/Travel/Status/DE/URA/Stop.pm | 114 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 lib/Travel/Status/DE/URA/Stop.pm (limited to 'lib/Travel/Status/DE/URA/Stop.pm') diff --git a/lib/Travel/Status/DE/URA/Stop.pm b/lib/Travel/Status/DE/URA/Stop.pm new file mode 100644 index 0000000..73543c8 --- /dev/null +++ b/lib/Travel/Status/DE/URA/Stop.pm @@ -0,0 +1,114 @@ +package Travel::Status::DE::URA::Stop; + +use strict; +use warnings; +use 5.010; + +use parent 'Class::Accessor'; + +our $VERSION = '0.04'; + +Travel::Status::DE::URA::Stop->mk_ro_accessors(qw(datetime name)); + +sub new { + my ( $obj, %conf ) = @_; + + my $ref = \%conf; + + return bless( $ref, $obj ); +} + +sub date { + my ($self) = @_; + + return $self->{datetime}->strftime('%d.%m.%Y'); +} + +sub time { + my ($self) = @_; + + return $self->{datetime}->strftime('%H:%M:%S'); +} + +sub TO_JSON { + my ($self) = @_; + + return { %{$self} }; +} + +1; + +__END__ + +=head1 NAME + +Travel::Status::DE::URA::Stop - Information about a stop + +=head1 SYNOPSIS + + for my $stop ($departure->route_post) { + printf( + "%s %s\n", + $stop->time, $stop->name + ); + } + +=head1 VERSION + +version 0.04 + +=head1 DESCRIPTION + +Travel::Status::DE::URA::Stop describes a single stop of a departure's route. + +=head1 METHODS + +=head2 ACCESSORS + +=over + +=item $stop->datetime + +DateTime object holding the arrival/departure date and time. + +=item $stop->date + +Arrival/departure date in dd.mm.YYYY format. + +=item $stop->time + +Arrival/departure time in HH:MM:SS format. + +=item $stop->name + +Stop name. + +=back + +=head1 DIAGNOSTICS + +None. + +=head1 DEPENDENCIES + +=over + +=item Class::Accessor(3pm) + +=back + +=head1 BUGS AND LIMITATIONS + +Unknown. + +=head1 SEE ALSO + +Travel::Status::DE::URA(3pm). + +=head1 AUTHOR + +Copyright (C) 2015 by Daniel Friesel Ederf@finalrewind.orgE + +=head1 LICENSE + +This module is licensed under the same terms as Perl itself. -- cgit v1.2.3