From a8ddce9b9dee7719cba7c80b8215d951d4248bd3 Mon Sep 17 00:00:00 2001
From: Idris <sld7700@gmail.com>
Date: Sat, 29 Dec 2012 18:28:28 +0600
Subject: [PATCH] Added return empty string if city not exist for some region(
 Yandex provider )

---
 lib/geocoder/results/yandex.rb | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/lib/geocoder/results/yandex.rb b/lib/geocoder/results/yandex.rb
index 841da988..f69c10cf 100644
--- a/lib/geocoder/results/yandex.rb
+++ b/lib/geocoder/results/yandex.rb
@@ -16,8 +16,10 @@ module Geocoder::Result
         address_details['Locality']['LocalityName']
       elsif sub_state.empty?
         address_details['AdministrativeArea']['Locality']['LocalityName']
-      else 
-        address_details['AdministrativeArea']['SubAdministrativeArea']['Locality']['LocalityName']
+      elsif not sub_state_city.empty?
+        sub_state_city
+      else
+        ""
       end
     end
 
@@ -62,5 +64,13 @@ module Geocoder::Result
     def address_details
       @data['GeoObject']['metaDataProperty']['GeocoderMetaData']['AddressDetails']['Country']
     end
+
+    def sub_state_city
+      if sub_state && sub_state["Locality"]
+        sub_state['Locality']['LocalityName']          
+      else
+        ""
+      end
+    end
   end
 end
-- 
GitLab