diff options
author | Daniel Friesel <derf@finalrewind.org> | 2014-01-15 11:04:37 +0100 |
---|---|---|
committer | Daniel Friesel <derf@finalrewind.org> | 2014-01-15 11:04:37 +0100 |
commit | a84a29cee9427191096b1c4753843e79e200f8d9 (patch) | |
tree | 2439707e4a1759cf54dc946143e33a7d00f05bf4 | |
parent | 2ecfc2cfd6015729608df339f14e4a2e520a6696 (diff) |
Stations: Move DS100 match to separate method, use this for db-iris
-rwxr-xr-x | bin/db-iris | 3 | ||||
-rw-r--r-- | lib/Travel/Status/DE/IRIS/Stations.pm | 22 | ||||
-rwxr-xr-x | 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<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 |