diff --git a/lib/geocoder/configuration.rb b/lib/geocoder/configuration.rb index 743920ba1..500ac9c91 100644 --- a/lib/geocoder/configuration.rb +++ b/lib/geocoder/configuration.rb @@ -15,10 +15,10 @@ def self.options_and_defaults # use HTTPS for lookup requests? (if supported) [:use_https, false], - # URL of HTTP proxy + # HTTP proxy server (not including "http://") [:http_proxy, nil], - # URL of HTTPS proxy + # HTTPS proxy server (not including "https://") [:https_proxy, nil], # API key for geocoding service diff --git a/lib/geocoder/lookups/base.rb b/lib/geocoder/lookups/base.rb index a6cf96d2a..497f73ed8 100644 --- a/lib/geocoder/lookups/base.rb +++ b/lib/geocoder/lookups/base.rb @@ -58,14 +58,15 @@ def map_link_url(coordinates) # Object used to make HTTP requests. # def http_client - secure = Geocoder::Configuration.use_https - proxy_name = "http#{'s' if secure}_proxy" - if proxy_url = Geocoder::Configuration.send(proxy_name) + protocol = "http#{'s' if Geocoder::Configuration.use_https}" + proxy_name = "#{protocol}_proxy" + if proxy = Geocoder::Configuration.send(proxy_name) + proxy_url = protocol + '://' + proxy begin uri = URI.parse(proxy_url) rescue URI::InvalidURIError raise ConfigurationError, - "Error parsing HTTP#{'S' if secure} proxy URL: '#{proxy_url}'" + "Error parsing #{protocol.upcase} proxy URL: '#{proxy_url}'" end Net::HTTP::Proxy(uri.host, uri.port, uri.user, uri.password) else diff --git a/test/geocoder_test.rb b/test/geocoder_test.rb index 416867d92..67bc298ed 100644 --- a/test/geocoder_test.rb +++ b/test/geocoder_test.rb @@ -21,7 +21,7 @@ def test_exception_raised_on_bad_lookup_config # --- sanity checks --- def test_uses_proxy_when_specified - Geocoder::Configuration.http_proxy = 'http://localhost' + Geocoder::Configuration.http_proxy = 'localhost' lookup = Geocoder::Lookup::Google.new assert lookup.send(:http_client).proxy_class? end