diff --git a/lib/geocoder.rb b/lib/geocoder.rb index ad090b66f487ec66594836c47de44ca6b9eccb9c..2ef99625d9de7235762630b7bb251b766fbcf21a 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 0a866b72db550f2fc0c7b352d78c4663374c16e0..0d24ea16378d911a709d412666604d9e7b95d65e 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