Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 4th, 2012  |  syntax: None  |  size: 1.24 KB  |  hits: 11  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. #!/usr/bin/env ruby
  2. module GoogleBase
  3.   require 'net/http'
  4.   require 'rexml/document'
  5.  
  6.   def GoogleBase.search(query)
  7.     formatted_query = query
  8.     url = "http://www.google.com/base/feeds/snippets?bq=#{formatted_query}&key=###"
  9.     xml_data = Net::HTTP.get_response(URI.parse(url)).body
  10.  
  11.     doc = REXML::Document.new(xml_data)
  12.  
  13.     entries = []
  14.     doc.elements.each('entry') do |element|
  15.       entries << element
  16.     end
  17.    
  18.     products = []
  19.     entries.each do |entry|
  20.       product << Product.create(entry)
  21.     end
  22.     return products
  23.   end
  24.  
  25.   class Product
  26.     attr_accessor :google_id, :published, :updated, :title, :content, :link, :author_name, :price_in_usd, :xml
  27.    
  28.     def initialize(entry)
  29.       self.google_id = entry.google_id
  30.       self.published = entry.published
  31.       self.updated = entry.updated
  32.       self.title = entry.title
  33.       self.content = entry.content
  34.       self.link = entry.link
  35.       self.author_name = entry.author.name
  36.       self.price_in_usd = entry.price
  37.       self.xml = entry
  38.     end
  39.   end
  40.    
  41. end
  42.  
  43.  
  44. ## What I've tried in the console
  45.  
  46.  
  47. >> require 'GoogleBase'
  48. => ["GoogleBase"]
  49. >> products = GoogleBase.search("macbook")
  50. => []
  51. >> products.each do {|p| print p.title}
  52. >>