Sha256: df18070316a7025a1a949e12e70bcf645349fe628c7c5c44834c18fc3ac98ecc
Contents?: true
Size: 1.49 KB
Versions: 4
Compression:
Stored size: 1.49 KB
Contents
module Graticule #:nodoc: module Geocoder #:nodoc: # TODO: Reverse Geocoding class GeocoderCa < Rest def initialize(auth = nil) @url = URI.parse 'http://geocoder.ca/' @auth = auth end def locate(address) get :locate => address.is_a?(String) ? address : location_from_params(address).to_s(:country => false) end private def parse_response(xml) #:nodoc: location = Location.new location.latitude = xml.elements['geodata/latt'].text.to_f location.longitude = xml.elements['geodata/longt'].text.to_f location.street = xml.elements['geodata/standard/staddress'].text location.locality = xml.elements['geodata/standard/city'].text location.region = xml.elements['geodata/standard/prov'].text [location] end def check_error(xml) #:nodoc: error = xml.elements['geodata/error'] if error code = error.elements['code'].text.to_i message = error.elements['description'].text if (1..3).include?(code) raise CredentialsError, message elsif (4..8).include?(code) raise AddressError, message else raise Error, message end end end def make_url(params) #:nodoc: params[:auth] = @auth if @auth params[:standard] = 1 params[:showpostal] = 1 params[:geoit] = 'XML' super params end end end end
Version data entries
4 entries across 4 versions & 1 rubygems