From 26deb42e6fca8206c437eb3223429ac0fec84fc2 Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Mon, 23 May 2011 15:10:24 +0200 Subject: More descriptive accessor names in Net::Travel::DE::VRR::Route::Part --- Build.PL | 1 - bin/efa | 4 +- lib/Net/Travel/DE/VRR.pm | 43 ++++--------------- lib/Net/Travel/DE/VRR/Route.pm | 33 +++++++++++++-- lib/Net/Travel/DE/VRR/Route/Part.pm | 83 ++++++++++++++++++++++++++++++++++++- t/02-synopsis.t | 13 ------ 6 files changed, 123 insertions(+), 54 deletions(-) delete mode 100644 t/02-synopsis.t diff --git a/Build.PL b/Build.PL index d3a7e1c..dfb4a93 100644 --- a/Build.PL +++ b/Build.PL @@ -10,7 +10,6 @@ my %opts = ( 'Test::Compile' => 0, 'Test::Pod' => 0, 'Test::Command' => 0, - 'Test::Synopsis' => 0, }, module_name => 'Net::Travel::DE::VRR', license => 'unrestricted', diff --git a/bin/efa b/bin/efa index f257532..dcfca12 100755 --- a/bin/efa +++ b/bin/efa @@ -115,8 +115,8 @@ for my $i ( 0 .. $#routes ) { printf( "%-5s ab %-30s %-20s %s\n%-5s an %-30s\n\n", $c->get( - qw(dep_time dep_stop train_line train_dest arr_time - arr_stop) + qw(departure_time departure_stop train_line + train_destination arrival_time arrival_stop) ), ); } diff --git a/lib/Net/Travel/DE/VRR.pm b/lib/Net/Travel/DE/VRR.pm index 7948194..8f1b506 100644 --- a/lib/Net/Travel/DE/VRR.pm +++ b/lib/Net/Travel/DE/VRR.pm @@ -360,16 +360,16 @@ sub parse_pretty { push( @{ $hash->{extra} }, $extra ); } - $hash->{dep_time} = $con->[0]; + $hash->{departure_time} = $con->[0]; # always "ab" $con->[1]; - $hash->{dep_stop} = $con->[2]; - $hash->{train_line} = $con->[3]; - $hash->{arr_time} = $con->[4]; + $hash->{departure_stop} = $con->[2]; + $hash->{train_line} = $con->[3]; + $hash->{arrival_time} = $con->[4]; - # always "an" $con->[5]; - $hash->{arr_stop} = $con->[6]; - $hash->{train_dest} = $con->[7]; + # always "an" $con->[5]; + $hash->{arrival_stop} = $con->[6]; + $hash->{train_destination} = $con->[7]; push( @elements, $hash ); } @@ -605,33 +605,8 @@ returns a true value on success. =item $efa->routes() -Returns an array of connection elements. Each connection element is an -arrayref of connection part, and each connecton part is a hash containing the -following elements: - -=over - -=item * dep_time - -Departure time as a string in HH:MM format - -=item * dep_stop - -Departure stop, e.g. "Essen HBf" - -=item * train_line - -Name of the train line, e.g. "S-Bahn S6" - -=item * arr_time - -Arrival time as a string in HH:MM format - -=item * arr_stop - -Arrival stop, e.g. "Berlin HBf" - -=back +Returns a list of Net::Travel::DE::VRR::Route(3pm) elements. Each one contains +one method of getting from start to stop. =back diff --git a/lib/Net/Travel/DE/VRR/Route.pm b/lib/Net/Travel/DE/VRR/Route.pm index 1b71097..7089120 100644 --- a/lib/Net/Travel/DE/VRR/Route.pm +++ b/lib/Net/Travel/DE/VRR/Route.pm @@ -39,30 +39,57 @@ Net::Travel::DE::VRR::Route - Single route (connection) between two points =head1 SYNOPSIS + for my $route ( $efa->routes() ) { + for my $part ( $route->parts() ) { + # $part is a Net::Travel::DE::VRR::Route::Part object + } + } + =head1 VERSION version 1.3 =head1 DESCRIPTION +Net::Travel::DE::VRR::Route describes a single method of getting from one +point to another. It holds a bunch of Net::Travel::DE::VRR::Route::Part(3pm) +objects describing the parts of the route in detail. Each part depends on the +previous one. + +You usually want to acces it via C<< $efa->routes() >>. + =head1 METHODS =over +=item my $route = Net::Travel::DE::VRR::Route->new(I<@parts>) + +Creates a new Net::Travel::DE::VRR::Route elements consisting of I, +which are Net::Travel::DE::VRR::Route::Part elements. + +=item $route->parts() + +Returns a list of Net::Travel::DE::VRR::Route::Part(3pm) elements describing +the actual route. + =back =head1 DIAGNOSTICS +None. + =head1 DEPENDENCIES -=over - -=back +None. =head1 BUGS AND LIMITATIONS +None known. + =head1 SEE ALSO +Net::Travel::DE::VRR(3pm), Net::Travel::DE::VRR::Route::Part(3pm). + =head1 AUTHOR Copyright (C) 2011 by Daniel Friesel Ederf@finalrewind.orgE diff --git a/lib/Net/Travel/DE/VRR/Route/Part.pm b/lib/Net/Travel/DE/VRR/Route/Part.pm index d512fbb..a85e96c 100644 --- a/lib/Net/Travel/DE/VRR/Route/Part.pm +++ b/lib/Net/Travel/DE/VRR/Route/Part.pm @@ -9,7 +9,9 @@ use parent 'Class::Accessor'; our $VERSION = '1.3'; Net::Travel::DE::VRR::Route::Part->mk_ro_accessors( - qw(arr_stop arr_time dep_stop dep_time train_line train_dest)); + qw(arrival_stop arrival_time departure_stop departure_time train_line + train_destination) +); sub new { my ( $obj, %conf ) = @_; @@ -36,30 +38,109 @@ points, without interchanges =head1 SYNOPSIS + for my $part ( $route->parts() ) { + + if ( $part->extra() ) { + say join( "\n", $part->extra() ); + } + + printf( + "%s at %s -> %s at %s, via %s to %s", + $part->departure_time, $part->departure_stop, + $part->arrival_time, $part->arrival_stop, + $part->train_line, $part->train_destination, + ); + } + =head1 VERSION version 0.3 =head1 DESCRIPTION +B holds one specific connection (without +interchanges) between two points. It specifies the start/stop point and time, +the train line and its destination, and optional additional data. + +It is usually obtained by a call to Net::Travel::DE::VRR::Route(3pm)'s +B method. + =head1 METHODS =over +=item $part = Net::Travel::DE::VRR::Route::Part->new(I<%data>) + +Creates a new Net::Travel::DE::VRR::Route::Part object. I consists of: + +=over + +=item B => I:I + +Arrival time + +=item B => I + +Arrival stop (city plus station / address) + +=item B => I + +Departure time + +=item B => I + +Departure stop (city plus station / address) + +=item B => I + +Destination of the train connecting the stops + +=item B => I + +The train's line name. + +=item B => B<[> [ I, [ I [ I<...> ] ] ] B<]> + +Additional information about this connection. Array-ref of newline-terminated +strings. + +=back + +=item $part->get(I) + +Returns the value of I (B, B etc., see +B). + +Each of these I also has an accessor. So C<< $part->departure_time() >> +is the same as C<< $part->get('departure_time') >>. + +=item $part->extra() + +Returns a list of additional information about this route part, if provided. +Returns an empty list otherwise. + =back =head1 DIAGNOSTICS +None. + =head1 DEPENDENCIES =over +=item * Class::Accessor(3pm) + =back =head1 BUGS AND LIMITATIONS +None known. + =head1 SEE ALSO +Net::Travel::DE::VRR(3pm). + =head1 AUTHOR Copyright (C) 2011 by Daniel Friesel Ederf@finalrewind.orgE diff --git a/t/02-synopsis.t b/t/02-synopsis.t deleted file mode 100644 index fb2b63f..0000000 --- a/t/02-synopsis.t +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env perl -use strict; -use warnings; - -use Test::More; - -eval "use Test::Synopsis"; - -if ($@) { - plan skip_all => 'Test::Synopsis required for testing'; -} - -all_synopsis_ok(); -- cgit v1.2.3