summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Friesel <derf@finalrewind.org>2014-01-15 11:04:37 +0100
committerDaniel Friesel <derf@finalrewind.org>2014-01-15 11:04:37 +0100
commita84a29cee9427191096b1c4753843e79e200f8d9 (patch)
tree2439707e4a1759cf54dc946143e33a7d00f05bf4
parent2ecfc2cfd6015729608df339f14e4a2e520a6696 (diff)
Stations: Move DS100 match to separate method, use this for db-iris
-rwxr-xr-xbin/db-iris3
-rw-r--r--lib/Travel/Status/DE/IRIS/Stations.pm22
-rwxr-xr-xscripts/acronyms.pl20
3 files changed, 41 insertions, 4 deletions
diff --git a/bin/db-iris b/bin/db-iris
index 8e5909a..506809e 100755
--- a/bin/db-iris
+++ b/bin/db-iris
@@ -93,8 +93,7 @@ my $status = Travel::Status::DE::IRIS->new(
sub get_station {
my ($input_name) = @_;
- my @stations
- = Travel::Status::DE::IRIS::Stations::get_station_by_name($input_name);
+ my @stations = Travel::Status::DE::IRIS::Stations::get_station($input_name);
if ( @stations == 0 ) {
say STDERR "No station matches '$input_name'";
diff --git a/lib/Travel/Status/DE/IRIS/Stations.pm b/lib/Travel/Status/DE/IRIS/Stations.pm
index 3f05fd9..27261a0 100644
--- a/lib/Travel/Status/DE/IRIS/Stations.pm
+++ b/lib/Travel/Status/DE/IRIS/Stations.pm
@@ -15100,6 +15100,18 @@ sub get_stations {
return @stations;
}
+sub get_station {
+ my ( $name ) = @_;
+
+ my $ds100_match = firstval { $name eq $_->[0] } @stations;
+
+ if ($ds100_match) {
+ return ($ds100_match);
+ }
+
+ return get_station_by_name($name);
+}
+
sub get_station_by_name {
my ( $name ) = @_;
@@ -15165,6 +15177,16 @@ B<Note:> Station codes may contain whitespace.
Returns a list of [station code, station name] listrefs lexically sorted by
station name.
+=item Travel::Status::DE::IRIS::get_station(I<$in>)
+
+Returns a list of [station code, station name] listrefs matching I<$in>.
+
+If a I<$in> is a valid station code, only one element ([I<$in>, related name])
+is returned. Otherwise, it is passed to get_station_by_name(I<$in>) (see
+below).
+
+Note that station codes matching is case sensitive and must be exact.
+
=item Travel::Status::DE::IRIS::get_station_by_name(I<$name>)
Returns a list of [station code, station name] listrefs where the station
diff --git a/scripts/acronyms.pl b/scripts/acronyms.pl
index 43634d3..d7b890f 100755
--- a/scripts/acronyms.pl
+++ b/scripts/acronyms.pl
@@ -45,15 +45,21 @@ sub get_stations {
return @stations;
}
-sub get_station_by_name {
+sub get_station {
my ( $name ) = @_;
- my $ds100_match = firstval { $nname eq $_->[0] } @stations;
+ my $ds100_match = firstval { $name eq $_->[0] } @stations;
if ($ds100_match) {
return ($ds100_match);
}
+ return get_station_by_name($name);
+}
+
+sub get_station_by_name {
+ my ( $name ) = @_;
+
my $nname = lc($name);
my $actual_match = firstval { $nname eq lc($_->[1]) } @stations;
@@ -116,6 +122,16 @@ B<Note:> Station codes may contain whitespace.
Returns a list of [station code, station name] listrefs lexically sorted by
station name.
+=item Travel::Status::DE::IRIS::get_station(I<$in>)
+
+Returns a list of [station code, station name] listrefs matching I<$in>.
+
+If a I<$in> is a valid station code, only one element ([I<$in>, related name])
+is returned. Otherwise, it is passed to get_station_by_name(I<$in>) (see
+below).
+
+Note that station codes matching is case sensitive and must be exact.
+
=item Travel::Status::DE::IRIS::get_station_by_name(I<$name>)
Returns a list of [station code, station name] listrefs where the station