diff --git a/lib/geocoder/results/yandex.rb b/lib/geocoder/results/yandex.rb index 4871e57e3bdea179a3d7abdce9a919184ca9fe36..bae4258b383cda7338cbd7ceef6680775e9828ce 100644 --- a/lib/geocoder/results/yandex.rb +++ b/lib/geocoder/results/yandex.rb @@ -12,9 +12,9 @@ module Geocoder::Result end def city - if state.empty? and address_details.has_key? 'Locality' + if state.empty? and address_details and address_details.has_key? 'Locality' address_details['Locality']['LocalityName'] - elsif sub_state.empty? and address_details.has_key? 'AdministrativeArea' and + elsif sub_state.empty? and address_details and address_details.has_key? 'AdministrativeArea' and address_details['AdministrativeArea'].has_key? 'Locality' address_details['AdministrativeArea']['Locality']['LocalityName'] elsif not sub_state_city.empty? @@ -33,7 +33,7 @@ module Geocoder::Result end def state - if address_details['AdministrativeArea'] + if address_details and address_details['AdministrativeArea'] address_details['AdministrativeArea']['AdministrativeAreaName'] else "" @@ -41,7 +41,7 @@ module Geocoder::Result end def sub_state - if !state.empty? and address_details['AdministrativeArea']['SubAdministrativeArea'] + if !state.empty? and address_details and address_details['AdministrativeArea']['SubAdministrativeArea'] address_details['AdministrativeArea']['SubAdministrativeArea']['SubAdministrativeAreaName'] else "" @@ -75,7 +75,7 @@ module Geocoder::Result end def sub_state_city - if !sub_state.empty? and address_details['AdministrativeArea']['SubAdministrativeArea'].has_key? 'Locality' + if !sub_state.empty? and address_details and address_details['AdministrativeArea']['SubAdministrativeArea'].has_key? 'Locality' address_details['AdministrativeArea']['SubAdministrativeArea']['Locality']['LocalityName'] || "" else ""