From eccf8ca2b1d6625a2d17d12ab2f0dbc5d49fac75 Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Thu, 16 Jan 2014 14:57:00 +0100 Subject: Move EFA logic to ::EFA, just set URL in ::VRR --- lib/Travel/Routing/DE/EFA/Route.pm | 121 +++++++++++++++++++++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 lib/Travel/Routing/DE/EFA/Route.pm (limited to 'lib/Travel/Routing/DE/EFA/Route.pm') diff --git a/lib/Travel/Routing/DE/EFA/Route.pm b/lib/Travel/Routing/DE/EFA/Route.pm new file mode 100644 index 0000000..11fbacd --- /dev/null +++ b/lib/Travel/Routing/DE/EFA/Route.pm @@ -0,0 +1,121 @@ +package Travel::Routing::DE::EFA::Route; + +use strict; +use warnings; +use 5.010; + +use parent 'Class::Accessor'; + +use Travel::Routing::DE::EFA::Route::Part; + +our $VERSION = '2.04'; + +Travel::Routing::DE::EFA::Route->mk_ro_accessors( + qw(duration ticket_text ticket_type fare_adult fare_child vehicle_time)); + +sub new { + my ( $obj, $info, @parts ) = @_; + + my $ref = $info; + + for my $part (@parts) { + push( + @{ $ref->{parts} }, + Travel::Routing::DE::EFA::Route::Part->new( %{$part} ) + ); + } + + return bless( $ref, $obj ); +} + +sub parts { + my ($self) = @_; + + return @{ $self->{parts} }; +} + +1; + +__END__ + +=head1 NAME + +Travel::Routing::DE::EFA::Route - Single route (connection) between two points + +=head1 SYNOPSIS + + for my $route ( $efa->routes ) { + for my $part ( $route->parts ) { + # $part is a Travel::Routing::DE::EFA::Route::Part object + } + } + +=head1 VERSION + +version 2.04 + +=head1 DESCRIPTION + +Travel::Routing::DE::EFA::Route describes a single method of getting from one +point to another. It holds a bunch of Travel::Routing::DE::EFA::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 + +=head2 ACCESSORS + +=over + +=item $route->duration + +route duration as string in HH:MM format + +=item $route->parts + +Returns a list of Travel::Routing::DE::EFA::Route::Part(3pm) elements describing +the actual route + +=item $route->ticket_type + +Type of the required ticket for this route, if available (empty string otherwise) + +=item $route->fare_adult + +ticket price for an adult in EUR + +=item $route->fare_child + +ticket price for a child in EUR + +=item $route->vehicle_time + +on-vehicle time (excluding waiting time) of the route in minutes + +=back + +=head1 DIAGNOSTICS + +None. + +=head1 DEPENDENCIES + +None. + +=head1 BUGS AND LIMITATIONS + +None known. + +=head1 SEE ALSO + +Travel::Routing::DE::EFA(3pm), Travel::Routing::DE::EFA::Route::Part(3pm). + +=head1 AUTHOR + +Copyright (C) 2011-2014 by Daniel Friesel Ederf@finalrewind.orgE + +=head1 LICENSE + + 0. You just DO WHAT THE FUCK YOU WANT TO. -- cgit v1.2.3