From 820bb1f78bebaba7d089c34bab1a6a94f3480d7c Mon Sep 17 00:00:00 2001 From: Simon Stemplinger <simon@stem.ps> Date: Mon, 28 Nov 2016 16:27:36 +0100 Subject: [PATCH] support for opencagedata optional parameters (#1122) support for opencagedata optional parameters --- lib/geocoder/lookups/opencagedata.rb | 6 ++++++ test/unit/lookups/opencagedata_test.rb | 18 ++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/lib/geocoder/lookups/opencagedata.rb b/lib/geocoder/lookups/opencagedata.rb index 2dec74b6..1d469c79 100644 --- a/lib/geocoder/lookups/opencagedata.rb +++ b/lib/geocoder/lookups/opencagedata.rb @@ -47,6 +47,12 @@ module Geocoder::Lookup :language => (query.language || configuration.language) }.merge(super) + [:countrycode, :min_confidence, :no_dedupe, :no_annotations, :no_record, :limit].each do |option| + unless (option_value = query.options[option]).nil? + params[option] = option_value + end + end + unless (bounds = query.options[:bounds]).nil? params[:bounds] = bounds.map{ |point| "%f,%f" % point }.join(',') end diff --git a/test/unit/lookups/opencagedata_test.rb b/test/unit/lookups/opencagedata_test.rb index 496ec14a..7ed0eb32 100644 --- a/test/unit/lookups/opencagedata_test.rb +++ b/test/unit/lookups/opencagedata_test.rb @@ -30,6 +30,24 @@ class OpencagedataTest < GeocoderTestCase assert_match(/bounds=40.0+%2C-120.0+%2C39.0+%2C-121.0+/, url) end + def test_opencagedata_query_url_contains_optional_params + lookup = Geocoder::Lookup::Opencagedata.new + url = lookup.query_url(Geocoder::Query.new( + "Some street", + :countrycode => 'fr', + :min_confidence => 5, + :no_dedupe => 1, + :no_annotations => 1, + :no_record => 1, + :limit => 2 + )) + assert_match(/countrycode=fr/, url) + assert_match(/min_confidence=5/, url) + assert_match(/no_dedupe=1/, url) + assert_match(/no_annotations=1/, url) + assert_match(/no_record=1/, url) + assert_match(/limit=2/, url) + end def test_no_results results = Geocoder.search("no results") -- GitLab