barometer 0.7.1 → 0.7.2
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.
- data/README.rdoc +8 -23
- data/TODO +4 -2
- data/VERSION.yml +1 -1
- data/barometer.gemspec +2 -2
- data/bin/barometer +2 -20
- data/lib/barometer.rb +0 -4
- data/lib/barometer/data/geo.rb +14 -11
- data/lib/barometer/weather_services/google.rb +1 -1
- data/lib/barometer/web_services/geocode.rb +4 -9
- data/lib/barometer/web_services/placemaker.rb +2 -0
- data/spec/barometer_spec.rb +0 -10
- data/spec/fakeweb_helper.rb +50 -30
- data/spec/fixtures/formats/weather_id/90210.xml +7 -1
- data/spec/fixtures/formats/weather_id/from_USGA0028.xml +3 -1
- data/spec/fixtures/formats/weather_id/ksfo.xml +1 -1
- data/spec/fixtures/formats/weather_id/manhattan.xml +7 -0
- data/spec/fixtures/formats/weather_id/new_york.xml +1 -1
- data/spec/fixtures/formats/weather_id/the_hills.xml +1 -0
- data/spec/fixtures/geocode/40_73.json +10 -142
- data/spec/fixtures/geocode/90210.json +9 -12
- data/spec/fixtures/geocode/T5B4M9.json +11 -8
- data/spec/fixtures/geocode/atlanta.json +1 -1
- data/spec/fixtures/geocode/calgary_ab.json +6 -6
- data/spec/fixtures/geocode/ksfo.json +14 -14
- data/spec/fixtures/geocode/newyork_ny.json +5 -5
- data/spec/fixtures/services/google/calgary_ab.xml +1 -1
- data/spec/fixtures/services/placemaker/w615702.xml +40 -39
- data/spec/fixtures/services/weather_dot_com/90210.xml +1 -1
- data/spec/fixtures/services/wunderground/current_calgary_ab.xml +9 -1
- data/spec/fixtures/services/wunderground/forecast_calgary_ab.xml +13 -1
- data/spec/fixtures/services/yahoo/90210.xml +3 -1
- data/spec/formats/coordinates_spec.rb +3 -11
- data/spec/formats/geocode_spec.rb +33 -41
- data/spec/formats/weather_id_spec.rb +0 -4
- data/spec/formats/woe_id_spec.rb +0 -4
- data/spec/query_spec.rb +4 -23
- data/spec/spec_helper.rb +0 -1
- data/spec/weather_services/weather_dot_com_spec.rb +32 -32
- data/spec/weather_services/wunderground_spec.rb +2 -2
- data/spec/weather_services/yahoo_spec.rb +10 -22
- data/spec/web_services/geocode_spec.rb +1 -11
- metadata +7 -19
- data/spec/fixtures/formats/weather_id/atlanta.xml +0 -1
- data/spec/fixtures/geocode/40_73.xml +0 -1
- data/spec/fixtures/geocode/90210.xml +0 -1
- data/spec/fixtures/geocode/T5B4M9.xml +0 -1
- data/spec/fixtures/geocode/atlanta.xml +0 -1
- data/spec/fixtures/geocode/calgary_ab.xml +0 -1
- data/spec/fixtures/geocode/ksfo.xml +0 -1
- data/spec/fixtures/geocode/newyork_ny.xml +0 -1
data/README.rdoc
CHANGED
@@ -15,7 +15,7 @@ this.
|
|
15
15
|
|
16
16
|
== version
|
17
17
|
|
18
|
-
Version 0.7.
|
18
|
+
Version 0.7.2 is the current release of this gem. The gem is available from
|
19
19
|
gemcutter (barometer: http://gemcutter.org/gems/barometer).
|
20
20
|
Older version are available through rubyforge (barometer) and github
|
21
21
|
(attack-barometer).
|
@@ -34,25 +34,15 @@ Features to be added in the future:
|
|
34
34
|
|
35
35
|
= dependencies
|
36
36
|
|
37
|
-
== Google API key
|
37
|
+
== Google API key [UPDATED]
|
38
38
|
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
google:
|
44
|
-
geocode: YOUR_KEY_HERE
|
45
|
-
|
46
|
-
You will need this for:
|
47
|
-
- using the Barometer gem (unless you use queries that are directly supported
|
48
|
-
by the weather source API, ie yahoo will take a zip code directly and doesn't
|
49
|
-
require any geocoding)
|
50
|
-
- running the Barometer binary
|
51
|
-
- running the Barometer Web Demo
|
39
|
+
As stated on the Google Geocoding API website
|
40
|
+
(http://code.google.com/apis/maps/documentation/geocoding/), Google no longer
|
41
|
+
requires an API key. Therefore Barometer no longer requires a Google API key.
|
52
42
|
|
53
43
|
=== other keys
|
54
44
|
|
55
|
-
The
|
45
|
+
The '~/.barometer' file can hold all your weather service API keys.
|
56
46
|
|
57
47
|
eg. weather.com
|
58
48
|
|
@@ -131,12 +121,8 @@ You can use barometer right out of the box, as it is configured to use one
|
|
131
121
|
register-less (no API key required) international weather service
|
132
122
|
(wunderground.com).
|
133
123
|
|
134
|
-
For better results, signup for a google-map key and enhance your barometer
|
135
|
-
with geo-coding.
|
136
|
-
|
137
124
|
require 'barometer'
|
138
125
|
|
139
|
-
Barometer.google_geocode_key = "THE_GOOGLE_API_KEY"
|
140
126
|
barometer = Barometer.new("Paris")
|
141
127
|
weather = barometer.measure
|
142
128
|
|
@@ -149,8 +135,8 @@ The available sources are:
|
|
149
135
|
Wunderground.com (:wunderground) [default]
|
150
136
|
Yahoo! Weather (:yahoo)
|
151
137
|
Google Weather (:google)
|
152
|
-
Weather.com (:weather_dot_com)
|
153
|
-
WeatherBug.com (:weather_bug)
|
138
|
+
Weather.com (:weather_dot_com) [requires key]
|
139
|
+
WeatherBug.com (:weather_bug) [requires key]
|
154
140
|
|
155
141
|
== source configuration
|
156
142
|
|
@@ -179,7 +165,6 @@ Weather services, one with keys.
|
|
179
165
|
|
180
166
|
require 'barometer'
|
181
167
|
|
182
|
-
Barometer.google_geocode_key = "THE_GOOGLE_API_KEY"
|
183
168
|
# use yahoo and google, if they both fail, use wunderground
|
184
169
|
Barometer.config = { 1 => [:yahoo, :google], 2 => :wunderground }
|
185
170
|
|
data/TODO
CHANGED
@@ -1,16 +1,18 @@
|
|
1
1
|
== now
|
2
|
+
- use Yahoo placemaker for geocoding (as exclusive, or as priority for supported conversions)
|
3
|
+
- remove use of google api key
|
4
|
+
|
5
|
+
== very soon
|
2
6
|
|
3
7
|
- google geocoding terms of service indicate that "a map must be shown" ... what to do?
|
4
8
|
- driver: hamweather
|
5
9
|
- driver: meter
|
6
10
|
- improve code based on metrics
|
7
|
-
- ability to use Placemaker for geocoding (instead of Google)
|
8
11
|
- use Geomojo to convert coords to woe_id (when no yahoo key)
|
9
12
|
- remove use of HTTParty, use Net:HTTP and Nokogiri instead
|
10
13
|
|
11
14
|
== soon
|
12
15
|
|
13
|
-
- style the demo app results
|
14
16
|
- refactor: data-zone
|
15
17
|
- methods to use service_specific icons/images
|
16
18
|
|
data/VERSION.yml
CHANGED
data/barometer.gemspec
CHANGED
@@ -2,14 +2,14 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{barometer}
|
5
|
-
s.version = "0.7.
|
5
|
+
s.version = "0.7.2"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.rubygems_version = %q{1.3.5}
|
9
9
|
|
10
10
|
s.authors = ["Mark G"]
|
11
11
|
s.email = %q{barometer@attackcorp.com}
|
12
|
-
s.date = %q{2011-06-
|
12
|
+
s.date = %q{2011-06-02}
|
13
13
|
|
14
14
|
s.summary = %q{A multi API consuming weather forecasting superstar.}
|
15
15
|
s.description = %q{A multi API consuming weather forecasting superstar.}
|
data/bin/barometer
CHANGED
@@ -53,7 +53,7 @@ require 'yaml'
|
|
53
53
|
|
54
54
|
# file where API keys are stored
|
55
55
|
KEY_FILE = File.expand_path(File.join('~', '.barometer'))
|
56
|
-
BAROMETER_VERSION = '0.7.
|
56
|
+
BAROMETER_VERSION = '0.7.2'
|
57
57
|
|
58
58
|
class App
|
59
59
|
|
@@ -449,17 +449,6 @@ def pretty_output(barometer)
|
|
449
449
|
end
|
450
450
|
end
|
451
451
|
|
452
|
-
def geocode_google_key_message
|
453
|
-
puts
|
454
|
-
puts "MISSING KEYS !!!"
|
455
|
-
puts "Please update the key_file '#{KEY_FILE}' with your google api key"
|
456
|
-
puts "Get it here: http://code.google.com/apis/maps/signup.html"
|
457
|
-
puts "Then, add this line to the file:"
|
458
|
-
puts "google:"
|
459
|
-
puts " geocode: YOUR_KEY_KERE"
|
460
|
-
puts
|
461
|
-
end
|
462
|
-
|
463
452
|
def weather_key_message
|
464
453
|
puts
|
465
454
|
puts "MISSING KEYS !!!"
|
@@ -488,16 +477,9 @@ if File.exists?(KEY_FILE)
|
|
488
477
|
keys = YAML.load_file(KEY_FILE)
|
489
478
|
if keys["yahoo"] && keys["yahoo"]["app_id"]
|
490
479
|
Barometer.yahoo_placemaker_app_id = keys["yahoo"]["app_id"]
|
491
|
-
end
|
492
|
-
if keys["google"] && keys["google"]["geocode"]
|
493
|
-
Barometer.google_geocode_key = keys["google"]["geocode"]
|
494
|
-
else
|
495
|
-
geocode_google_key_message
|
496
|
-
exit
|
497
480
|
end
|
498
481
|
else
|
499
|
-
File.open(KEY_FILE, 'w') {|f| f << "
|
500
|
-
geocode_google_key_message
|
482
|
+
File.open(KEY_FILE, 'w') {|f| f << "yahoo: app_id: YOUR_KEY_KERE" }
|
501
483
|
exit
|
502
484
|
end
|
503
485
|
|
data/lib/barometer.rb
CHANGED
@@ -15,10 +15,6 @@ module Barometer
|
|
15
15
|
def self.debug!; @@debug_mode = true; end;
|
16
16
|
def self.debug?; @@debug_mode; end;
|
17
17
|
|
18
|
-
@@google_geocode_key = nil
|
19
|
-
def self.google_geocode_key; @@google_geocode_key; end;
|
20
|
-
def self.google_geocode_key=(google_key); @@google_geocode_key = google_key; end;
|
21
|
-
|
22
18
|
@@yahoo_placemaker_app_id = nil
|
23
19
|
def self.yahoo_placemaker_app_id; @@yahoo_placemaker_app_id; end;
|
24
20
|
def self.yahoo_placemaker_app_id=(yahoo_key); @@yahoo_placemaker_app_id = yahoo_key; end;
|
data/lib/barometer/data/geo.rb
CHANGED
@@ -36,20 +36,23 @@ module Barometer
|
|
36
36
|
end
|
37
37
|
end
|
38
38
|
if placemark && placemark["AddressDetails"] && placemark["AddressDetails"]["Country"]
|
39
|
-
|
40
|
-
|
41
|
-
|
39
|
+
country = placemark["AddressDetails"]["Country"]
|
40
|
+
if country["AdministrativeArea"]
|
41
|
+
ad_area = country["AdministrativeArea"]
|
42
|
+
if ad_area["SubAdministrativeArea"]
|
43
|
+
@locality = ad_area["SubAdministrativeArea"]["Locality"]["LocalityName"]
|
44
|
+
elsif ad_area["DependentLocality"] && ad_area["DependentLocality"]["DependentLocalityName"]
|
45
|
+
@locality = ad_area["DependentLocality"]["DependentLocalityName"]
|
46
|
+
elsif ad_area["Locality"] && ad_area["Locality"]["LocalityName"]
|
47
|
+
@locality = ad_area["Locality"]["LocalityName"]
|
42
48
|
else
|
43
|
-
locality =
|
49
|
+
@locality = ""
|
44
50
|
end
|
45
|
-
|
46
|
-
@locality = locality["LocalityName"]
|
47
|
-
end
|
48
|
-
@region = placemark["AddressDetails"]["Country"]["AdministrativeArea"]["AdministrativeAreaName"]
|
51
|
+
@region = ad_area["AdministrativeAreaName"]
|
49
52
|
end
|
50
|
-
@country =
|
51
|
-
@country_code =
|
52
|
-
@address =
|
53
|
+
@country = country["CountryName"]
|
54
|
+
@country_code = country["CountryNameCode"]
|
55
|
+
@address = country["AddressLine"]
|
53
56
|
end
|
54
57
|
end
|
55
58
|
|
@@ -131,7 +131,7 @@ module Barometer
|
|
131
131
|
return unless query
|
132
132
|
puts "fetch google: #{query.q}" if Barometer::debug?
|
133
133
|
self.get(
|
134
|
-
"http://google.com/ig/api",
|
134
|
+
"http://www.google.com/ig/api",
|
135
135
|
:query => {:weather => query.q, :hl => (metric ? "en-GB" : "en-US")},
|
136
136
|
:format => :xml,
|
137
137
|
:timeout => Barometer.timeout
|
@@ -9,24 +9,19 @@ module Barometer
|
|
9
9
|
def self.fetch(query)
|
10
10
|
raise ArgumentError unless _is_a_query?(query)
|
11
11
|
puts "geocoding: #{query.q}" if Barometer::debug?
|
12
|
-
return nil unless _has_geocode_key?
|
13
12
|
location = self.get(
|
14
13
|
"http://maps.google.com/maps/geo",
|
15
14
|
:query => {
|
16
|
-
:gl => query.country_code,
|
17
|
-
:output => "json",
|
15
|
+
:gl => query.country_code,
|
16
|
+
:output => "json",
|
17
|
+
:q => query.q,
|
18
|
+
:sensor => "false"
|
18
19
|
},
|
19
20
|
:format => :json, :timeout => Barometer.timeout
|
20
21
|
)
|
21
22
|
location = location['kml']['Response'] if (location && location['kml'])
|
22
23
|
location ? (geo = Data::Geo.new(location)) : nil
|
23
24
|
end
|
24
|
-
|
25
|
-
private
|
26
|
-
|
27
|
-
def self._has_geocode_key?
|
28
|
-
!Barometer.google_geocode_key.nil?
|
29
|
-
end
|
30
25
|
|
31
26
|
end
|
32
27
|
end
|
@@ -5,6 +5,8 @@ module Barometer
|
|
5
5
|
# Yahoo! Placemaker is a geoparsing web service,
|
6
6
|
# this uses Placemaker to obtain a WOEID, as only Yahoo knows them
|
7
7
|
#
|
8
|
+
# accepts: city name, coords, postal code, NOT zip code, NOT icao
|
9
|
+
#
|
8
10
|
class WebService::Placemaker < WebService
|
9
11
|
|
10
12
|
# get the woe_id for a given query
|
data/spec/barometer_spec.rb
CHANGED
@@ -4,7 +4,6 @@ describe "Barometer" do
|
|
4
4
|
|
5
5
|
before(:each) do
|
6
6
|
@config_hash = { 1 => [:wunderground] }
|
7
|
-
@google_key = KEY
|
8
7
|
@yahoo_key = YAHOO_KEY
|
9
8
|
end
|
10
9
|
|
@@ -22,14 +21,6 @@ describe "Barometer" do
|
|
22
21
|
Barometer.source(:wunderground).should == Barometer::WeatherService::Wunderground
|
23
22
|
end
|
24
23
|
|
25
|
-
it "sets the Graticule Google geocoding API key" do
|
26
|
-
Barometer.respond_to?("google_geocode_key").should be_true
|
27
|
-
Barometer.google_geocode_key = nil
|
28
|
-
Barometer.google_geocode_key.should be_nil
|
29
|
-
Barometer.google_geocode_key = @google_key
|
30
|
-
Barometer.google_geocode_key.should == @google_key
|
31
|
-
end
|
32
|
-
|
33
24
|
it "sets the Placemaker Yahoo! app ID" do
|
34
25
|
Barometer.respond_to?("yahoo_placemaker_app_id").should be_true
|
35
26
|
Barometer.yahoo_placemaker_app_id = nil
|
@@ -103,7 +94,6 @@ describe "Barometer" do
|
|
103
94
|
describe "when measuring" do
|
104
95
|
|
105
96
|
before(:each) do
|
106
|
-
Barometer.google_geocode_key = @google_key
|
107
97
|
query_term = "Calgary,AB"
|
108
98
|
@barometer = Barometer::Base.new(query_term)
|
109
99
|
@time = Time.now
|
data/spec/fakeweb_helper.rb
CHANGED
@@ -4,7 +4,6 @@ FakeWeb.allow_net_connect = false
|
|
4
4
|
#
|
5
5
|
# Set random test keys
|
6
6
|
#
|
7
|
-
KEY = "ABC123"
|
8
7
|
WEATHER_PARTNER_KEY = "1234"
|
9
8
|
WEATHER_LICENSE_KEY = "12345"
|
10
9
|
WEATHERBUG_CODE = "A9999"
|
@@ -14,66 +13,79 @@ YAHOO_KEY = "YAHOO"
|
|
14
13
|
# for geocoding
|
15
14
|
#
|
16
15
|
geo_url = "http://maps.google.com/maps/geo?"
|
16
|
+
|
17
|
+
# http://maps.google.com/maps/geo?gl=US&sensor=false&q=90210&output=json
|
17
18
|
FakeWeb.register_uri(:get,
|
18
|
-
"#{geo_url}gl=US&
|
19
|
+
"#{geo_url}gl=US&sensor=false&q=90210&output=json",
|
19
20
|
:body => File.read(File.dirname(__FILE__) + '/fixtures/geocode/90210.json')
|
20
21
|
)
|
21
|
-
|
22
|
+
# http://maps.google.com/maps/geo?gl=&q=40.756054%2C-73.986951&output=json&sensor=false
|
22
23
|
FakeWeb.register_uri(:get,
|
23
|
-
"#{geo_url}gl=&q=#{CGI.escape("40.756054,-73.986951")}&output=json&
|
24
|
+
"#{geo_url}gl=&q=#{CGI.escape("40.756054,-73.986951")}&output=json&sensor=false",
|
24
25
|
:body => File.read(File.dirname(__FILE__) + '/fixtures/geocode/40_73.json')
|
25
26
|
)
|
26
|
-
|
27
|
+
# http://maps.google.com/maps/geo?gl=&q=New%20York%2C%20NY&output=json&sensor=false
|
27
28
|
FakeWeb.register_uri(:get,
|
28
|
-
"#{geo_url}gl=&q=New%20York%2C%20NY&output=json&
|
29
|
+
"#{geo_url}gl=&q=New%20York%2C%20NY&output=json&sensor=false",
|
29
30
|
:body => File.read(File.dirname(__FILE__) + '/fixtures/geocode/newyork_ny.json')
|
30
31
|
)
|
32
|
+
# http://maps.google.com/maps/geo?gl=CA&output=json&q=T5B%204M9&sensor=false
|
31
33
|
FakeWeb.register_uri(:get,
|
32
|
-
"#{geo_url}gl=CA&
|
34
|
+
"#{geo_url}gl=CA&output=json&q=T5B%204M9&sensor=false",
|
33
35
|
:body => File.read(File.dirname(__FILE__) + '/fixtures/geocode/T5B4M9.json')
|
34
36
|
)
|
37
|
+
# http://maps.google.com/maps/geo?gl=US&q=KSFO&output=json&sensor=false
|
35
38
|
FakeWeb.register_uri(:get,
|
36
|
-
"#{geo_url}gl=US&q=KSFO&output=json&
|
39
|
+
"#{geo_url}gl=US&q=KSFO&output=json&sensor=false",
|
37
40
|
:body => File.read(File.dirname(__FILE__) + '/fixtures/geocode/ksfo.json')
|
38
41
|
)
|
42
|
+
# http://maps.google.com/maps/geo?gl=&q=Atlanta%2C%20GA%2C%20US&output=json&sensor=false
|
39
43
|
FakeWeb.register_uri(:get,
|
40
|
-
"#{geo_url}gl=&q=Atlanta%2C%20GA%2C%20US&output=json&
|
44
|
+
"#{geo_url}gl=&q=Atlanta%2C%20GA%2C%20US&output=json&sensor=false",
|
41
45
|
:body => File.read(File.dirname(__FILE__) + '/fixtures/geocode/atlanta.json')
|
42
46
|
)
|
47
|
+
# http://maps.google.com/maps/geo?gl=&q=Calgary%2CAB&sensor=false&output=json
|
43
48
|
FakeWeb.register_uri(:get,
|
44
|
-
"#{geo_url}
|
45
|
-
:body => File.read(File.dirname(__FILE__) + '/fixtures/geocode/atlanta.xml')
|
46
|
-
)
|
47
|
-
FakeWeb.register_uri(:get,
|
48
|
-
"#{geo_url}gl=&key=#{KEY}&q=Calgary%2CAB&sensor=false&output=json",
|
49
|
+
"#{geo_url}gl=&q=Calgary%2CAB&sensor=false&output=json",
|
49
50
|
:body => File.read(File.dirname(__FILE__) + '/fixtures/geocode/calgary_ab.json')
|
50
51
|
)
|
51
52
|
#
|
52
53
|
# for weather.com searches
|
53
54
|
#
|
55
|
+
# http://xoap.weather.com:80/search/search?where=Beverly%20Hills%2C%20CA%2C%20USA
|
54
56
|
FakeWeb.register_uri(:get,
|
55
57
|
"http://xoap.weather.com:80/search/search?where=Beverly%20Hills%2C%20CA%2C%20USA",
|
56
|
-
:body => File.read(File.dirname(__FILE__) + '/fixtures/formats/weather_id/
|
58
|
+
:body => File.read(File.dirname(__FILE__) + '/fixtures/formats/weather_id/the_hills.xml')
|
57
59
|
)
|
60
|
+
# http://xoap.weather.com:80/search/search?where=New%20York%2C%20NY
|
58
61
|
FakeWeb.register_uri(:get,
|
59
62
|
"http://xoap.weather.com:80/search/search?where=New%20York%2C%20NY",
|
60
63
|
:body => File.read(File.dirname(__FILE__) + '/fixtures/formats/weather_id/new_york.xml')
|
61
64
|
)
|
65
|
+
# http://xoap.weather.com:80/search/search?where=Manhattan%2C%20NY%2C%20USA
|
66
|
+
FakeWeb.register_uri(:get,
|
67
|
+
"http://xoap.weather.com:80/search/search?where=Manhattan%2C%20NY%2C%20USA",
|
68
|
+
:body => File.read(File.dirname(__FILE__) + '/fixtures/formats/weather_id/manhattan.xml')
|
69
|
+
)
|
70
|
+
# http://xoap.weather.com:80/search/search?where=New%20York%2C%20NY%2C%20USA
|
62
71
|
FakeWeb.register_uri(:get,
|
63
72
|
"http://xoap.weather.com:80/search/search?where=New%20York%2C%20NY%2C%20USA",
|
64
73
|
:body => File.read(File.dirname(__FILE__) + '/fixtures/formats/weather_id/new_york.xml')
|
65
74
|
)
|
75
|
+
# http://xoap.weather.com:80/search/search?where=90210
|
66
76
|
FakeWeb.register_uri(:get,
|
67
77
|
"http://xoap.weather.com:80/search/search?where=90210",
|
68
78
|
:body => File.read(File.dirname(__FILE__) + '/fixtures/formats/weather_id/90210.xml')
|
69
79
|
)
|
80
|
+
# http://xoap.weather.com:80/search/search?where=San%20Francisco%2C%20CA%2C%20USA
|
70
81
|
FakeWeb.register_uri(:get,
|
71
|
-
"http://xoap.weather.com:80/search/search?where=
|
82
|
+
"http://xoap.weather.com:80/search/search?where=San%20Francisco%2C%20CA%2C%20USA",
|
72
83
|
:body => File.read(File.dirname(__FILE__) + '/fixtures/formats/weather_id/ksfo.xml')
|
73
84
|
)
|
74
85
|
#
|
75
86
|
# for yahoo.com searches
|
76
87
|
#
|
88
|
+
# http://weather.yahooapis.com:80/forecastrss?p=USGA0028
|
77
89
|
FakeWeb.register_uri(:get,
|
78
90
|
"http://weather.yahooapis.com:80/forecastrss?p=USGA0028",
|
79
91
|
:body => File.read(File.dirname(__FILE__) + '/fixtures/formats/weather_id/from_USGA0028.xml')
|
@@ -81,27 +93,29 @@ FakeWeb.register_uri(:get,
|
|
81
93
|
#
|
82
94
|
# for Google weather
|
83
95
|
#
|
96
|
+
# http://www.google.com/ig/api?weather=Calgary%2CAB&hl=en-GB
|
84
97
|
FakeWeb.register_uri(:get,
|
85
|
-
"http://google.com/ig/api?weather=#{CGI.escape('Calgary,AB')}&hl=en-GB",
|
98
|
+
"http://www.google.com/ig/api?weather=#{CGI.escape('Calgary,AB')}&hl=en-GB",
|
86
99
|
:body => File.read(File.dirname(__FILE__) + '/fixtures/services/google/calgary_ab.xml')
|
87
100
|
)
|
88
101
|
#
|
89
102
|
# for WeatherBug weather
|
90
103
|
#
|
91
|
-
bug_url_current = "http://#{WEATHERBUG_CODE}.api.wxbug.net:80/getLiveWeatherRSS.aspx?"
|
92
|
-
FakeWeb.register_uri(:get,
|
93
|
-
|
94
|
-
|
95
|
-
)
|
104
|
+
bug_url_current = "http://#{WEATHERBUG_CODE}.api.wxbug.net:80/getLiveWeatherRSS.aspx?"
|
105
|
+
FakeWeb.register_uri(:get,
|
106
|
+
"#{bug_url_current}ACode=#{WEATHERBUG_CODE}&OutputType=1&UnitType=1&zipCode=90210",
|
107
|
+
:body => File.read(File.dirname(__FILE__) + '/fixtures/services/weather_bug/90210_current.xml')
|
108
|
+
)
|
96
109
|
|
97
|
-
bug_url_future = "http://#{WEATHERBUG_CODE}.api.wxbug.net:80/getForecastRSS.aspx?"
|
98
|
-
FakeWeb.register_uri(:get,
|
99
|
-
|
100
|
-
|
101
|
-
)
|
110
|
+
bug_url_future = "http://#{WEATHERBUG_CODE}.api.wxbug.net:80/getForecastRSS.aspx?"
|
111
|
+
FakeWeb.register_uri(:get,
|
112
|
+
"#{bug_url_future}ACode=#{WEATHERBUG_CODE}&OutputType=1&UnitType=1&zipCode=90210",
|
113
|
+
:body => File.read(File.dirname(__FILE__) + '/fixtures/services/weather_bug/90210_forecast.xml')
|
114
|
+
)
|
102
115
|
#
|
103
116
|
# for weather.com weather
|
104
117
|
#
|
118
|
+
# http://xoap.weather.com:80/weather/local/90210?dayf=5&unit=m&link=xoap&par=PKEY&prod=xoap&key=LKEY&cc=*
|
105
119
|
weather_com_url = "http://xoap.weather.com:80/weather/local/"
|
106
120
|
FakeWeb.register_uri(:get,
|
107
121
|
"#{weather_com_url}90210?dayf=5&unit=m&link=xoap&par=#{WEATHER_PARTNER_KEY}&prod=xoap&key=#{WEATHER_LICENSE_KEY}&cc=*",
|
@@ -110,6 +124,7 @@ FakeWeb.register_uri(:get,
|
|
110
124
|
#
|
111
125
|
# for yahoo weather
|
112
126
|
#
|
127
|
+
# http://weather.yahooapis.com:80/forecastrss?u=c&p=90210
|
113
128
|
FakeWeb.register_uri(:get,
|
114
129
|
"http://weather.yahooapis.com:80/forecastrss?u=c&p=90210",
|
115
130
|
:body => File.read(File.dirname(__FILE__) + '/fixtures/services/yahoo/90210.xml')
|
@@ -118,12 +133,14 @@ FakeWeb.register_uri(:get,
|
|
118
133
|
#
|
119
134
|
# For wunderground weather
|
120
135
|
#
|
136
|
+
# http://api.wunderground.com/auto/wui/geo/WXCurrentObXML/index.xml?query=51.045%2C-114.0572222
|
121
137
|
FakeWeb.register_uri(:get,
|
122
|
-
"http://api.wunderground.com/auto/wui/geo/WXCurrentObXML/index.xml?query=51.
|
138
|
+
"http://api.wunderground.com/auto/wui/geo/WXCurrentObXML/index.xml?query=51.045%2C-114.0572222",
|
123
139
|
:body => File.read(File.dirname(__FILE__) + '/fixtures/services/wunderground/current_calgary_ab.xml')
|
124
|
-
)
|
140
|
+
)
|
141
|
+
# http://api.wunderground.com/auto/wui/geo/ForecastXML/index.xml?query=51.045%2C-114.0572222
|
125
142
|
FakeWeb.register_uri(:get,
|
126
|
-
"http://api.wunderground.com/auto/wui/geo/ForecastXML/index.xml?query=51.
|
143
|
+
"http://api.wunderground.com/auto/wui/geo/ForecastXML/index.xml?query=51.045%2C-114.0572222",
|
127
144
|
:body => File.read(File.dirname(__FILE__) + '/fixtures/services/wunderground/forecast_calgary_ab.xml')
|
128
145
|
)
|
129
146
|
FakeWeb.register_uri(:get,
|
@@ -138,6 +155,9 @@ FakeWeb.register_uri(:get,
|
|
138
155
|
#
|
139
156
|
# For Placemaker
|
140
157
|
#
|
158
|
+
# curl -d "documentType=text%2Fhtml&outputType=xml&documentContent=<html><body><div class=\"geo\"><span class=\"latitude\">40.756054</span><span class=\"longitude\">-73.986951</span></div></body></html>" http://wherein.yahooapis.com/v1/document
|
159
|
+
# curl -d "documentType=text%2Fhtml&outputType=xml&documentContent=Chicago" http://wherein.yahooapis.com/v1/document
|
160
|
+
#
|
141
161
|
FakeWeb.register_uri(:post,
|
142
162
|
"http://wherein.yahooapis.com/v1/document",
|
143
163
|
[
|