lib/geocoder/results/yandex.rb in geocoder-1.4.2 vs lib/geocoder/results/yandex.rb in geocoder-1.4.3

- old
+ new

@@ -66,10 +66,18 @@ def premise_name 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 def precision @@ -82,9 +90,35 @@ west, south = envelope['lowerCorner'].split(' ').map(&:to_f) [south, west, north, east] end 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