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