diff --git a/Gemfile b/Gemfile index 774144563..f28c48008 100644 --- a/Gemfile +++ b/Gemfile @@ -24,7 +24,7 @@ group :test do gem 'webmock' platforms :ruby do - gem 'pg', '~> 1.1.4' + gem 'pg', '~> 1.1' gem 'mysql2', '~> 0.5.4' end diff --git a/lib/geocoder/lookups/nominatim.rb b/lib/geocoder/lookups/nominatim.rb index f7e119a98..72f8d714e 100644 --- a/lib/geocoder/lookups/nominatim.rb +++ b/lib/geocoder/lookups/nominatim.rb @@ -55,7 +55,7 @@ def query_url_params(query) lat,lon = query.coordinates params[:lat] = lat params[:lon] = lon - else + elsif !query.params_given? || !query.sanitized_text.empty? params[:q] = query.sanitized_text end params diff --git a/lib/geocoder/query.rb b/lib/geocoder/query.rb index c509a7bfb..3dc15c232 100644 --- a/lib/geocoder/query.rb +++ b/lib/geocoder/query.rb @@ -116,8 +116,6 @@ def language options[:language] end - private # ---------------------------------------------------------------- - def params_given? !!(options[:params].is_a?(Hash) and options[:params].keys.size > 0) end diff --git a/test/unit/lookups/nominatim_test.rb b/test/unit/lookups/nominatim_test.rb index f4a6fa4b8..464a62dd8 100644 --- a/test/unit/lookups/nominatim_test.rb +++ b/test/unit/lookups/nominatim_test.rb @@ -41,6 +41,11 @@ def test_host_configuration assert_match %r(http://local\.com), query.url end + def test_structured_lookup + result = Geocoder.search("", params: { street: "Madison Square Garden" }).first + assert_equal "Madison Square Garden", result.data["address"]["stadium"] + end + def test_raises_exception_when_over_query_limit Geocoder.configure(:always_raise => [Geocoder::OverQueryLimitError]) l = Geocoder::Lookup.get(:nominatim)