Skip to content

Instantly share code, notes, and snippets.

@bakineggs
Created September 19, 2008 04:46
Show Gist options
  • Select an option

  • Save bakineggs/11540 to your computer and use it in GitHub Desktop.

Select an option

Save bakineggs/11540 to your computer and use it in GitHub Desktop.
require 'cgi'
require 'rubygems'
require 'hpricot'
require 'open-uri'
cgi = CGI.new
print cgi.header('type' => 'text/xml')
doc = Hpricot(open('http://www.apple.com/retail/sanfrancisco/'))
parameters = DocParser::url_parameters(doc).merge({
'appid' => 'tCa4.fDV34GcXMnIbz5dWxSZWjSWsMXIQSqiVVBFb55nTKX1RFLqYyuM677Jz2vK'
})
parameters = '?' + parameters.map do |key, value|
"#{CGI::escape(key)}=#{CGI::escape(value)}"
end.join('&')
Net::HTTP.get_print 'local.yahooapis.com', '/MapsService/V1/mapImage' + parameters
module DocParser
def url_parameters(doc)
addresses = doc / '.vcard .adr'
addresses.each do |address|
if zip = (address / '.postal-code').first
params = {'zip' => zip.innerHTML}
if street = (address / '.street-address').first
params['street'] = street.innerHTML
end
return params
elsif state = (address / '.region').first
params = {'state' => state.innerHTML}
if city = (address / '.locality').first
params['city'] = city.innerHTML
end
if street = (address / '.street-address').first
params['street'] = street.innerHTML
end
return params
end
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment