ya_yahoo_geocode 0.0.2 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,19 +1,33 @@
|
|
1
1
|
module YaYahooGeocode
|
2
2
|
|
3
3
|
class Client
|
4
|
-
@@
|
4
|
+
@@YAHOO_GEOCODE_ENDPOINT = 'http://where.yahooapis.com/geocode'
|
5
|
+
@@YAHOO_PLACES_ENDPOINT = 'http://where.yahooapis.com/v1/place'
|
5
6
|
|
6
7
|
def search_for_place(search_terms)
|
7
8
|
begin
|
8
|
-
|
9
|
-
|
10
|
-
|
9
|
+
url = @@YAHOO_GEOCODE_ENDPOINT + '?q=' + URI::escape(search_terms)
|
10
|
+
response = do_http_get(url)
|
11
|
+
response_hash = Nori.parse(response)['ResultSet']
|
11
12
|
rescue Exception => e
|
12
13
|
raise "Error searching for location: #{search_terms.inspect}. Got error: #{e.message}"
|
13
14
|
end
|
14
15
|
handle_errors(response_hash, search_terms)
|
15
16
|
select_match(response_hash)
|
16
17
|
end
|
18
|
+
|
19
|
+
def get_place_by_woeid(woeid)
|
20
|
+
begin
|
21
|
+
url = @@YAHOO_PLACES_ENDPOINT + '/' + woeid.to_s + '?appid=' + 'g9.D9ZTV34Ehp4lJeRQCgIWfBYBQ9NumiUYf76y3LFB3xbI7XU1fDB70uJgsBFkQ'
|
22
|
+
response = do_http_get(url)
|
23
|
+
response = Nori.parse(response)
|
24
|
+
response['place']
|
25
|
+
rescue Exception => e
|
26
|
+
raise "Error searching for location: #{woeid.inspect}. Got error: #{e.message}"
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
|
17
31
|
|
18
32
|
private
|
19
33
|
def do_http_get(url)
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require './lib/ya_yahoo_geocode.rb'
|
2
|
+
|
3
|
+
describe YaYahooGeocode::Client do
|
4
|
+
def sample
|
5
|
+
<<END
|
6
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
7
|
+
<place xmlns="http://where.yahooapis.com/v1/schema.rng" xmlns:yahoo="http://www.yahooapis.com/v1/base.rng" yahoo:uri="http://where.yahooapis.com/v1/place/28751381" xml:lang="en-US"><woeid>28751381</woeid><placeTypeName code="22">Suburb</placeTypeName><name>Midtown</name><country type="Country" code="US">United States</country><admin1 type="State" code="US-NY">New York</admin1><admin2 type="County" code="">Manhattan</admin2><admin3></admin3><locality1 type="Town">New York</locality1><locality2 type="Suburb">Midtown</locality2><postal type="Zip Code">10017</postal><centroid><latitude>40.751122</latitude><longitude>-73.977859</longitude></centroid><boundingBox><southWest><latitude>40.734409</latitude><longitude>-73.996986</longitude></southWest><northEast><latitude>40.767841</latitude><longitude>-73.958817</longitude></northEast></boundingBox><areaRank>2</areaRank><popRank>0</popRank></place>
|
8
|
+
END
|
9
|
+
end
|
10
|
+
|
11
|
+
describe "#get_place_by_woeid" do
|
12
|
+
context "all goes well" do
|
13
|
+
before :each do
|
14
|
+
@client = YaYahooGeocode::Client.new
|
15
|
+
@client.stub!(:do_http_get).and_return(sample)
|
16
|
+
end
|
17
|
+
|
18
|
+
it "should find Midtown by 28751381" do
|
19
|
+
place = @client.get_place_by_woeid(28751381)
|
20
|
+
place['name'].should == "Midtown"
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
File without changes
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: ya_yahoo_geocode
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.0.
|
5
|
+
version: 0.0.3
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- John Hinnegan
|
@@ -52,7 +52,8 @@ files:
|
|
52
52
|
- lib/ya_yahoo_geocode.rb
|
53
53
|
- lib/ya_yahoo_geocode/client.rb
|
54
54
|
- lib/ya_yahoo_geocode/version.rb
|
55
|
-
- spec/ya_yahoo_geocode/
|
55
|
+
- spec/ya_yahoo_geocode/client__get_place_by_woeid_spec.rb
|
56
|
+
- spec/ya_yahoo_geocode/client__search_for_place_spec.rb
|
56
57
|
- ya_yahoo_geocode.gemspec
|
57
58
|
has_rdoc: true
|
58
59
|
homepage: ""
|
@@ -83,4 +84,5 @@ signing_key:
|
|
83
84
|
specification_version: 3
|
84
85
|
summary: This is a gem to help make various calls to yahoo's geo-aware api's
|
85
86
|
test_files:
|
86
|
-
- spec/ya_yahoo_geocode/
|
87
|
+
- spec/ya_yahoo_geocode/client__get_place_by_woeid_spec.rb
|
88
|
+
- spec/ya_yahoo_geocode/client__search_for_place_spec.rb
|