From 2509fc00c42ecb4ec9df2508631eb06b006fc3da Mon Sep 17 00:00:00 2001 From: Alex Reisner <alex@alexreisner.com> Date: Fri, 22 Apr 2011 13:31:55 -0400 Subject: [PATCH] List street and ip lookups separately. --- lib/geocoder.rb | 20 +++++++++++++++++--- lib/geocoder/cli.rb | 7 +++---- 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/lib/geocoder.rb b/lib/geocoder.rb index ad090b66..2ef99625 100644 --- a/lib/geocoder.rb +++ b/lib/geocoder.rb @@ -76,7 +76,21 @@ module Geocoder # Array of valid Lookup names. # def valid_lookups - [:google, :yahoo, :geocoder_ca, :yandex, :freegeoip] + street_lookups + ip_lookups + end + + ## + # All street address lookups, default first. + # + def street_lookups + [:google, :yahoo, :geocoder_ca, :yandex] + end + + ## + # All IP address lookups, default first. + # + def ip_lookups + [:freegeoip] end def version @@ -97,9 +111,9 @@ module Geocoder # def lookup(ip = false) if ip - get_lookup :freegeoip + get_lookup(ip_lookups.first) else - get_lookup Configuration.lookup || :google + get_lookup(Configuration.lookup || street_lookups.first) end end diff --git a/lib/geocoder/cli.rb b/lib/geocoder/cli.rb index 0a866b72..0d24ea16 100644 --- a/lib/geocoder/cli.rb +++ b/lib/geocoder/cli.rb @@ -22,13 +22,12 @@ module Geocoder Geocoder::Configuration.language = language end - lookups = Geocoder.valid_lookups - [:freegeoip] - opts.on("-s <service>", lookups, "--service <service>", - "Geocoding service: #{lookups.join(', ')}") do |service| + opts.on("-s <service>", Geocoder.street_lookups, "--service <service>", + "Geocoding service: #{Geocoder.street_lookups * ', '}") do |service| Geocoder::Configuration.lookup = service.to_sym end - opts.on("-t <seconds>", lookups, "--timeout <seconds>", + opts.on("-t <seconds>", "--timeout <seconds>", "Maximum number of seconds to wait for API response") do |timeout| Geocoder::Configuration.timeout = timeout.to_i end -- GitLab