From 48d2e217e142a013821365f22cef6338489b8442 Mon Sep 17 00:00:00 2001
From: Alexey Falin <alexey.falin@gmail.com>
Date: Sat, 21 Jan 2012 09:34:51 +0400
Subject: [PATCH] Fix for: Issue #162

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

diff --git a/lib/geocoder/results/yandex.rb b/lib/geocoder/results/yandex.rb
index 32d093aa..f9d830ee 100644
--- a/lib/geocoder/results/yandex.rb
+++ b/lib/geocoder/results/yandex.rb
@@ -14,8 +14,10 @@ module Geocoder::Result
     def city
       if state.empty?
         address_details['Locality']['LocalityName']
-      else
-        address_details['AdministrativeArea']['Locality']['LocalityName']
+      elsif sub_state.empty?
+        state['Locality']['LocalityName']
+      else 
+        sub_state['Locality']['LocalityName']
       end
     end
 
@@ -34,6 +36,18 @@ module Geocoder::Result
         ""
       end
     end
+    
+    def sub_state
+      if !state.empty?
+        if state['SubAdministrativeArea']
+          state['SubAdministrativeArea']['SubAdministrativeAreaName']
+        else
+          ""
+        end
+      else
+        ""
+      end
+    end
 
     def state_code
       ""
-- 
GitLab