summaryrefslogtreecommitdiff
path: root/lib/Travel/Status/DE/EFA/Line.pm
diff options
context:
space:
mode:
authorDaniel Friesel <derf@finalrewind.org>2013-12-20 11:19:24 +0100
committerDaniel Friesel <derf@finalrewind.org>2013-12-20 11:19:24 +0100
commitd64f9834b068d85293d7d42277d99c67163cb176 (patch)
tree4b3e42ee45851350de36f51ab4fc3ee10f15a555 /lib/Travel/Status/DE/EFA/Line.pm
parente976f7f8fb11ff20486645c198f7e4d7eafb653b (diff)
Move EFA logic to ::EFA, just set URL in ::VRR
Diffstat (limited to 'lib/Travel/Status/DE/EFA/Line.pm')
-rw-r--r--lib/Travel/Status/DE/EFA/Line.pm137
1 files changed, 137 insertions, 0 deletions
diff --git a/lib/Travel/Status/DE/EFA/Line.pm b/lib/Travel/Status/DE/EFA/Line.pm
new file mode 100644
index 0000000..8a22fe8
--- /dev/null
+++ b/lib/Travel/Status/DE/EFA/Line.pm
@@ -0,0 +1,137 @@
+package Travel::Status::DE::EFA::Line;
+
+use strict;
+use warnings;
+use 5.010;
+
+use parent 'Class::Accessor';
+
+our $VERSION = '1.05';
+
+Travel::Status::DE::EFA::Line->mk_ro_accessors(
+ qw(direction name operator route type valid));
+
+sub new {
+ my ( $obj, %conf ) = @_;
+
+ my $ref = \%conf;
+
+ return bless( $ref, $obj );
+}
+
+sub TO_JSON {
+ my ($self) = @_;
+
+ return { %{$self} };
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Travel::Status::DE::EFA::Line - Information about a line departing at the
+requested station
+
+=head1 SYNOPSIS
+
+ for my $line ($status->lines) {
+ printf(
+ "line %s -> %s\nRoute: %s\nType %s, operator %s\nValid: %s\n\n",
+ $line->name, $line->direction, $line->route,
+ $line->type, $line->operator, $line->valid
+ );
+ }
+
+=head1 VERSION
+
+version 1.05
+
+=head1 DESCRIPTION
+
+Travel::Status::DE::EFA::Line describes a tram/bus/train line departing at the
+stop requested by Travel::Status::DE::EFA. Note that it only covers one
+direction, so in most cases, you get two Travel::Status::DE::EFA::Line objects
+per actual line.
+
+=head1 METHODS
+
+=head2 ACCESSORS
+
+=over
+
+=item $line->direction
+
+Direction of the line. Name of either the destination stop or one on the way.
+
+=item $line->name
+
+Name of the line, e.g. "U11", "SB15", "107".
+
+=item $line->operator
+
+Operator of the line, as in the local transit company responsible for it.
+May be undefined.
+
+=item $line->route
+
+Partial route of the line (as string), usually start and destination with two
+stops in between. May be undefined.
+
+Note that start means the actual start of the line, the stop requested by
+Travel::Status::DE::EFA::Line may not even be included in this listing.
+
+=item $line->type
+
+Type of the line. Observed values so far are "Bus", "NE", "StraE<szlig>enbahn",
+"U-Bahn".
+
+=item $line->valid
+
+When / how long above information is valid.
+
+=back
+
+=head2 INTERNAL
+
+=over
+
+=item $line = Travel::Status::DE::EFA::Line->new(I<%data>)
+
+Returns a new Travel::Status::DE::EFA::Line object. You should not need to
+call this.
+
+=item $line->TO_JSON
+
+Allows the object data to be serialized to JSON.
+
+=back
+
+=head1 DIAGNOSTICS
+
+None.
+
+=head1 DEPENDENCIES
+
+=over
+
+=item Class::Accessor(3pm)
+
+=back
+
+=head1 BUGS AND LIMITATIONS
+
+The B<route> accessor returns a simple string, an array might be better suited.
+
+=head1 SEE ALSO
+
+Travel::Status::DE::EFA(3pm).
+
+=head1 AUTHOR
+
+Copyright (C) 2011 by Daniel Friesel E<lt>derf@finalrewind.orgE<gt>
+
+=head1 LICENSE
+
+This module is licensed under the same terms as Perl itself.