From a84a29cee9427191096b1c4753843e79e200f8d9 Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Wed, 15 Jan 2014 11:04:37 +0100 Subject: Stations: Move DS100 match to separate method, use this for db-iris --- bin/db-iris | 3 +-- lib/Travel/Status/DE/IRIS/Stations.pm | 22 ++++++++++++++++++++++ scripts/acronyms.pl | 20 ++++++++++++++++++-- 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 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 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 -- cgit v1.2.3