Class: Chebyte::GeoLoc

Inherits:
Object
  • Object
show all
Defined in:
lib/ruby-yql.rb

Instance Method Summary collapse

Constructor Details

#initialize(api_key = 'dj0yJmk9aHhiV1JPeXpRZDRxJmQ9WVdrOVVWVnVOVWxtTldjbWNHbzlNQS0tJnM9Y29uc3VtZXJzZWNyZXQmeD00Yw--', share_key = '92d98ea113c0246d6a91b3858ea3f16ea1e87338') ⇒ GeoLoc

Returns a new instance of GeoLoc.



89
90
91
92
93
94
# File 'lib/ruby-yql.rb', line 89

def initialize(api_key = 'dj0yJmk9aHhiV1JPeXpRZDRxJmQ9WVdrOVVWVnVOVWxtTldjbWNHbzlNQS0tJnM9Y29uc3VtZXJzZWNyZXQmeD00Yw--', share_key = '92d98ea113c0246d6a91b3858ea3f16ea1e87338')
  @o = OauthUtil.new
  @o.consumer_key    = api_key
  @o.consumer_secret = share_key
  @response = nil
end

Instance Method Details

#escape(string) ⇒ Object



96
97
98
# File 'lib/ruby-yql.rb', line 96

def escape(string)
  CGI::escape(string)
end

#find(sql) ⇒ Object



113
114
115
116
117
118
119
120
# File 'lib/ruby-yql.rb', line 113

def find(sql)
  url = "http://query.yahooapis.com/v1/public/yql?q=#{escape(sql)}"
  parsed_url = URI.parse( sql )
  Net::HTTP.start( parsed_url.host ) do | http |
    req = Net::HTTP::Get.new "#{ parsed_url.path }?#{ @o.sign(url).to_query_string }"
    @response = Location.new(Hpricot.XML(http.request(req).read_body))
  end
end

#find_by_address(string) ⇒ Object



100
101
102
103
104
105
106
107
108
109
110
111
# File 'lib/ruby-yql.rb', line 100

def find_by_address(string)
  url = "http://query.yahooapis.com/v1/public/yql?q=SELECT%20centroid%20from%20geo.places%20WHERE%20text%3D'#{escape(string)}'&diagnostics=false"
  parsed_url = URI.parse( url )
  begin
    Net::HTTP.start( parsed_url.host ) do | http |
      req = Net::HTTP::Get.new "#{ parsed_url.path }?#{ @o.sign(url).to_query_string }"
      @response = Location.new(Hpricot.XML(http.request(req).read_body))
    end
  rescue
    ""
  end
end