From 52ce6a3912a14f99cd986ed16dbe4247313c9956 Mon Sep 17 00:00:00 2001 From: Vladimir Lyzo <donbobka@gmail.com> Date: Thu, 2 Feb 2017 13:02:11 +0300 Subject: [PATCH] Add street and street_number methods --- lib/geocoder/results/yandex.rb | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/lib/geocoder/results/yandex.rb b/lib/geocoder/results/yandex.rb index eb42548c..52435330 100644 --- a/lib/geocoder/results/yandex.rb +++ b/lib/geocoder/results/yandex.rb @@ -68,6 +68,14 @@ module Geocoder::Result address_details['Locality']['Premise']['PremiseName'] end + def street + thoroughfare_data && thoroughfare_data['ThoroughfareName'] + end + + def street_number + thoroughfare_data && thoroughfare_data['Premise'] && thoroughfare_data['Premise']['PremiseNumber'] + end + def kind @data['GeoObject']['metaDataProperty']['GeocoderMetaData']['kind'] end @@ -85,6 +93,32 @@ module Geocoder::Result private # ---------------------------------------------------------------- + def thoroughfare_data + locality_data && locality_data['Thoroughfare'] + end + + def locality_data + dependent_locality && subadmin_locality && admin_locality + end + + def admin_locality + address_details && address_details['AdministrativeArea'] && + address_details['AdministrativeArea']['Locality'] + end + + def subadmin_locality + address_details && address_details['AdministrativeArea'] && + address_details['AdministrativeArea']['SubAdministrativeArea'] && + address_details['AdministrativeArea']['SubAdministrativeArea']['Locality'] + end + + def dependent_locality + address_details && address_details['AdministrativeArea'] && + address_details['AdministrativeArea']['SubAdministrativeArea'] && + address_details['AdministrativeArea']['SubAdministrativeArea']['Locality'] && + address_details['AdministrativeArea']['SubAdministrativeArea']['Locality']['DependentLocality'] + end + def address_details @data['GeoObject']['metaDataProperty']['GeocoderMetaData']['AddressDetails']['Country'] end -- GitLab