yahoo_weatherman 1.2.2 → 2.0.0
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/i18n/gr.yml +62 -0
- data/lib/yahoo_weatherman.rb +2 -5
- data/lib/yahoo_weatherman/woeid_lookup.rb +2 -6
- data/spec/spec_helper.rb +10 -4
- data/spec/yahoo_weatherman/woeid_lookup_spec.rb +9 -29
- data/spec/yahoo_weatherman/yahoo_weatherman_spec.rb +4 -6
- data/yahoo_weatherman.gemspec +3 -2
- metadata +4 -3
data/i18n/gr.yml
ADDED
@@ -0,0 +1,62 @@
|
|
1
|
+
0: Ανεμοστρόβιλος
|
2
|
+
1: Τροπική Θύελλα
|
3
|
+
2: Τυφώνας
|
4
|
+
3: Ισχυρές Βροχοπτώσεις
|
5
|
+
4: Βροχοπτώσεις
|
6
|
+
5: Βροχή και χιόνι
|
7
|
+
6: Βροχή και χιονόνερο
|
8
|
+
7: Βροχές και χιόνια
|
9
|
+
8: Ψιλόχροβο
|
10
|
+
9: Ψιχαλίζει
|
11
|
+
10: Κρύα βροχή
|
12
|
+
11: Καταιγίδες
|
13
|
+
12: Καταιγίδες
|
14
|
+
13: Νιφάδες χιονιού
|
15
|
+
14: Χιονοπτώσεις
|
16
|
+
15: Χιόνι κι άνεμοι
|
17
|
+
16: Χιόνι
|
18
|
+
17: Χαλάζι
|
19
|
+
18: Χαλάζι
|
20
|
+
19: Σκόνη
|
21
|
+
20: Ομιχλώδης
|
22
|
+
21: Ομίχλη
|
23
|
+
22: Ομίχλη
|
24
|
+
23: Θυελλώδης
|
25
|
+
24: Ανεμώδης
|
26
|
+
25: Κρύο
|
27
|
+
26: Συννεφιασμένος
|
28
|
+
27: Νεφελώδης (νύχτα)
|
29
|
+
28: Νεφελώδης (ημέρα)
|
30
|
+
29: Πυκνή συννεφιά (νύχτα)
|
31
|
+
30: Πυκνή συννεφιά (ημέρα)
|
32
|
+
31: Hλιοφάνεια
|
33
|
+
32: Hλιοφάνεια
|
34
|
+
33: Ξαστεριά
|
35
|
+
34: Hλιοφάνεια χωρίς σύννεφα
|
36
|
+
35: Μείγμα χιόνι και χαλάζι
|
37
|
+
36: Καύσωνας
|
38
|
+
37: Καταιγίδες
|
39
|
+
38: Περιοδικές καταιγίδες
|
40
|
+
39: Περιοδικές καταιγίδες
|
41
|
+
40: Βροχή
|
42
|
+
41: Χιονοθέλλα
|
43
|
+
42: Χιόνι περιοδικά
|
44
|
+
43: Πολύ χιόνι
|
45
|
+
44: Αίθριος
|
46
|
+
45: Καταιγίδες
|
47
|
+
46: Καταιγίδα χιονιού
|
48
|
+
47: Καταιγίδες
|
49
|
+
3200: Χωρίς περιγραφή
|
50
|
+
|
51
|
+
locations:
|
52
|
+
Greece:
|
53
|
+
|
54
|
+
forecasts:
|
55
|
+
days:
|
56
|
+
Mon: Δευτέρα
|
57
|
+
Tue: Τρίτη
|
58
|
+
Wed: Τετάρτη
|
59
|
+
Thu: Πέμπτη
|
60
|
+
Fri: Παρασκευή
|
61
|
+
Sat: Σάββατο
|
62
|
+
Sun: Κυριακή
|
data/lib/yahoo_weatherman.rb
CHANGED
@@ -13,7 +13,7 @@ require 'yahoo_weatherman/response'
|
|
13
13
|
|
14
14
|
module Weatherman
|
15
15
|
|
16
|
-
VERSION = '
|
16
|
+
VERSION = '2.0.0'
|
17
17
|
|
18
18
|
URI = 'http://weather.yahooapis.com/forecastrss'
|
19
19
|
|
@@ -35,12 +35,9 @@ module Weatherman
|
|
35
35
|
#
|
36
36
|
# +lang+: the language used in the response
|
37
37
|
#
|
38
|
-
# +app_id+: your yahoo app id (necessary for searching by location).
|
39
|
-
#
|
40
38
|
def initialize(options = {})
|
41
39
|
@options = options
|
42
40
|
@uri = options[:url] || URI
|
43
|
-
@app_id = options[:app_id]
|
44
41
|
end
|
45
42
|
|
46
43
|
#
|
@@ -55,7 +52,7 @@ module Weatherman
|
|
55
52
|
# Looks up weather by location.
|
56
53
|
#
|
57
54
|
def lookup_by_location(location)
|
58
|
-
lookup = WoeidLookup.new
|
55
|
+
lookup = WoeidLookup.new
|
59
56
|
woeid = lookup.get_woeid(location)
|
60
57
|
lookup_by_woeid(woeid)
|
61
58
|
end
|
@@ -3,21 +3,17 @@ require 'cgi'
|
|
3
3
|
module Weatherman
|
4
4
|
class WoeidLookup
|
5
5
|
|
6
|
-
def initialize(app_id)
|
7
|
-
@app_id = app_id
|
8
|
-
end
|
9
|
-
|
10
6
|
def get_woeid(location)
|
11
7
|
raw = get query_string(location)
|
12
8
|
Nokogiri::HTML(raw).at_xpath('.//woeid').content
|
13
9
|
rescue
|
14
10
|
nil
|
15
11
|
end
|
16
|
-
|
12
|
+
|
17
13
|
private
|
18
14
|
|
19
15
|
def query_string(location)
|
20
|
-
"http://
|
16
|
+
"http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20geo.placefinder%20where%20text%3D%22#{::CGI.escape(location)}%22%20and%20gflags%3D%22R%22"
|
21
17
|
end
|
22
18
|
|
23
19
|
def get(url)
|
data/spec/spec_helper.rb
CHANGED
@@ -43,11 +43,17 @@ module WoeidHelper
|
|
43
43
|
File.open(File.dirname(__FILE__) + "/files/#{file}.xml").read
|
44
44
|
end
|
45
45
|
|
46
|
-
def self.register_this_woeid_lookup_result(result,
|
47
|
-
FakeWeb.register_uri(:get,
|
46
|
+
def self.register_this_woeid_lookup_result(result, location)
|
47
|
+
FakeWeb.register_uri(:get, lookup_uri(location), :body => result)
|
48
48
|
end
|
49
49
|
|
50
|
-
def self.register_this_woeid_lookup_to_fail(
|
51
|
-
FakeWeb.register_uri(:get,
|
50
|
+
def self.register_this_woeid_lookup_to_fail(location)
|
51
|
+
FakeWeb.register_uri(:get, lookup_uri(location), :exception => Net::HTTPError)
|
52
|
+
end
|
53
|
+
|
54
|
+
private
|
55
|
+
|
56
|
+
def self.lookup_uri(location)
|
57
|
+
"http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20geo.placefinder%20where%20text%3D%22#{location}%22%20and%20gflags%3D%22R%22"
|
52
58
|
end
|
53
59
|
end
|
@@ -2,14 +2,13 @@ require 'spec_helper'
|
|
2
2
|
Dir[File.dirname(__FILE__) + '/directory/*.rb'].each {|file| require file }
|
3
3
|
|
4
4
|
describe Weatherman::WoeidLookup do
|
5
|
-
describe "example with
|
5
|
+
describe "example with 66061" do
|
6
6
|
before do
|
7
|
-
@app_id = 'test_api_id'
|
8
7
|
@location = '66061'
|
9
|
-
@lookup = Weatherman::WoeidLookup.new
|
8
|
+
@lookup = Weatherman::WoeidLookup.new
|
10
9
|
|
11
10
|
xml_result = WoeidHelper.open_test_file('woeid_result_that_returns_12786745')
|
12
|
-
WoeidHelper.register_this_woeid_lookup_result(xml_result, @
|
11
|
+
WoeidHelper.register_this_woeid_lookup_result(xml_result, @location)
|
13
12
|
end
|
14
13
|
|
15
14
|
it "should retrieve the woeid" do
|
@@ -20,12 +19,11 @@ describe Weatherman::WoeidLookup do
|
|
20
19
|
|
21
20
|
describe "example with another_api and 90210" do
|
22
21
|
before do
|
23
|
-
@app_id = 'another_api'
|
24
22
|
@location = '90210'
|
25
|
-
@lookup = Weatherman::WoeidLookup.new
|
23
|
+
@lookup = Weatherman::WoeidLookup.new
|
26
24
|
|
27
25
|
xml_result = WoeidHelper.open_test_file('woeid_result_that_returns_4729347')
|
28
|
-
WoeidHelper.register_this_woeid_lookup_result(xml_result, @
|
26
|
+
WoeidHelper.register_this_woeid_lookup_result(xml_result, @location)
|
29
27
|
end
|
30
28
|
|
31
29
|
it "should retrieve the woeid" do
|
@@ -34,28 +32,11 @@ describe Weatherman::WoeidLookup do
|
|
34
32
|
end
|
35
33
|
end
|
36
34
|
|
37
|
-
describe "invalid api key" do
|
38
|
-
before do
|
39
|
-
@app_id = 'invalid_api'
|
40
|
-
@location = '12345'
|
41
|
-
@lookup = Weatherman::WoeidLookup.new(@app_id)
|
42
|
-
|
43
|
-
xml_result = WoeidHelper.open_test_file('woeid_result_for_invalid_app_id')
|
44
|
-
WoeidHelper.register_this_woeid_lookup_result(xml_result, @app_id, @location)
|
45
|
-
end
|
46
|
-
|
47
|
-
it "should return nil" do
|
48
|
-
response = @lookup.get_woeid(@location)
|
49
|
-
response.should == nil
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
35
|
describe "failed net request" do
|
54
36
|
before do
|
55
|
-
@app_id = 'net_failure'
|
56
37
|
@location = '78902'
|
57
|
-
@lookup = Weatherman::WoeidLookup.new
|
58
|
-
WoeidHelper.register_this_woeid_lookup_to_fail @
|
38
|
+
@lookup = Weatherman::WoeidLookup.new
|
39
|
+
WoeidHelper.register_this_woeid_lookup_to_fail @location
|
59
40
|
end
|
60
41
|
|
61
42
|
it "should return nil" do
|
@@ -66,11 +47,10 @@ describe Weatherman::WoeidLookup do
|
|
66
47
|
|
67
48
|
describe "request with spaces" do
|
68
49
|
before do
|
69
|
-
@
|
70
|
-
@lookup = Weatherman::WoeidLookup.new(@app_id)
|
50
|
+
@lookup = Weatherman::WoeidLookup.new
|
71
51
|
|
72
52
|
xml_result = WoeidHelper.open_test_file('woeid_result_that_returns_12786745')
|
73
|
-
WoeidHelper.register_this_woeid_lookup_result(xml_result,
|
53
|
+
WoeidHelper.register_this_woeid_lookup_result(xml_result, "San+Francisco%2C+CA")
|
74
54
|
end
|
75
55
|
|
76
56
|
it "should retrieve the woeid" do
|
@@ -15,13 +15,12 @@ describe Weatherman::Client do
|
|
15
15
|
describe "#lookup_by_location" do
|
16
16
|
describe "4729347 example" do
|
17
17
|
it "should lookup by location" do
|
18
|
-
app_id = 'test_id'
|
19
18
|
location = '78923'
|
20
19
|
|
21
20
|
xml_result = WoeidHelper.open_test_file 'woeid_result_that_returns_4729347'
|
22
|
-
WoeidHelper.register_this_woeid_lookup_result xml_result,
|
21
|
+
WoeidHelper.register_this_woeid_lookup_result xml_result, location
|
23
22
|
|
24
|
-
@client = Weatherman::Client.new(
|
23
|
+
@client = Weatherman::Client.new()
|
25
24
|
response = @client.lookup_by_location location
|
26
25
|
|
27
26
|
response.should be_instance_of(Weatherman::Response)
|
@@ -30,13 +29,12 @@ describe Weatherman::Client do
|
|
30
29
|
|
31
30
|
describe "12786745 example" do
|
32
31
|
it "should lookup by location" do
|
33
|
-
app_id = 'apple'
|
34
32
|
location = 'orange'
|
35
33
|
|
36
34
|
xml_result = WoeidHelper.open_test_file 'woeid_result_that_returns_12786745'
|
37
|
-
WoeidHelper.register_this_woeid_lookup_result xml_result,
|
35
|
+
WoeidHelper.register_this_woeid_lookup_result xml_result, location
|
38
36
|
|
39
|
-
@client = Weatherman::Client.new(
|
37
|
+
@client = Weatherman::Client.new()
|
40
38
|
response = @client.lookup_by_location location
|
41
39
|
|
42
40
|
response.should be_instance_of(Weatherman::Response)
|
data/yahoo_weatherman.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |gem|
|
2
2
|
gem.name = "yahoo_weatherman"
|
3
|
-
gem.version = "
|
3
|
+
gem.version = "2.0.0"
|
4
4
|
gem.authors = ["Dalto Curvelano Junior"]
|
5
5
|
gem.description = "A ruby wrapper to the Yahoo! Weather feed with i18n support."
|
6
6
|
gem.summary = "A ruby wrapper to the Yahoo! Weather feed with i18n support."
|
@@ -11,9 +11,10 @@ Gem::Specification.new do |gem|
|
|
11
11
|
"lib/yahoo_weatherman/i18n.rb",
|
12
12
|
"lib/yahoo_weatherman/woeid_lookup.rb",
|
13
13
|
"lib/yahoo_weatherman.rb",
|
14
|
+
"i18n/es.yml",
|
15
|
+
"i18n/gr.yml",
|
14
16
|
"i18n/pt-br.yml",
|
15
17
|
"i18n/ru.yml",
|
16
|
-
"i18n/es.yml",
|
17
18
|
"i18n/zh-cn.yml",
|
18
19
|
"spec/files/belo_horizonte_c.rss",
|
19
20
|
"spec/files/belo_horizonte_f.rss",
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: yahoo_weatherman
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2013-01-24 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: nokogiri
|
@@ -71,9 +71,10 @@ files:
|
|
71
71
|
- lib/yahoo_weatherman/i18n.rb
|
72
72
|
- lib/yahoo_weatherman/woeid_lookup.rb
|
73
73
|
- lib/yahoo_weatherman.rb
|
74
|
+
- i18n/es.yml
|
75
|
+
- i18n/gr.yml
|
74
76
|
- i18n/pt-br.yml
|
75
77
|
- i18n/ru.yml
|
76
|
-
- i18n/es.yml
|
77
78
|
- i18n/zh-cn.yml
|
78
79
|
- spec/files/belo_horizonte_c.rss
|
79
80
|
- spec/files/belo_horizonte_f.rss
|