undergroundweather 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.
- data/.rbenv-version +1 -0
- data/README.md +6 -6
- data/Rakefile +4 -4
- data/lib/undergroundweather.rb +12 -12
- data/lib/undergroundweather/api_call.rb +11 -4
- data/lib/undergroundweather/features/current_conditions.rb +3 -1
- data/lib/undergroundweather/version.rb +1 -1
- data/spec/spec_helper.rb +6 -0
- data/spec/undergroundweather/api_call_spec.rb +44 -0
- data/{specs → spec}/undergroundweather/client_spec.rb +1 -1
- data/spec/undergroundweather/features_spec.rb +38 -0
- data/{specs → spec}/undergroundweather_spec.rb +1 -1
- data/undergroundweather.gemspec +3 -1
- metadata +84 -25
- data/specs/helper.rb +0 -8
- data/specs/undergroundweather/api_call_spec.rb +0 -6
data/.rbenv-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
1.8.7-p352
|
data/README.md
CHANGED
@@ -14,11 +14,15 @@ Implemented Endpoints
|
|
14
14
|
|
15
15
|
```
|
16
16
|
gem install undergroundweather
|
17
|
+
```
|
18
|
+
```
|
19
|
+
require 'undergroundweather'
|
20
|
+
|
17
21
|
api_key = 'xxxxxxxx' # Your WU API Key
|
18
22
|
uw = UndergroundWeather.new(api_key)
|
19
23
|
|
20
24
|
zip_code = 19106
|
21
|
-
uw
|
25
|
+
uw.[endpoint](zip_code) # conditions, forecast, astronomy, etc...
|
22
26
|
```
|
23
27
|
|
24
28
|
## Development
|
@@ -26,9 +30,5 @@ uw.<endpoint>(zip_code) # conditions, forecast, astronomy, etc...
|
|
26
30
|
### ToDo
|
27
31
|
https://github.com/brookemckim/undergroundweather/issues?labels=Story&sort=created&direction=desc&state=open&page=1
|
28
32
|
|
29
|
-
###
|
33
|
+
### Tests
|
30
34
|
Using minitest/spec
|
31
|
-
|
32
|
-
```
|
33
|
-
rake test
|
34
|
-
```
|
data/Rakefile
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
require 'bundler/gem_tasks'
|
2
2
|
require 'rake/testtask'
|
3
3
|
|
4
|
-
desc "Test UndergroundWeather"
|
5
4
|
Rake::TestTask.new do |t|
|
6
|
-
t.libs.push
|
7
|
-
t.
|
5
|
+
t.libs.push 'lib'
|
6
|
+
t.libs.push 'spec'
|
7
|
+
t.test_files = FileList['spec/**/*_spec.rb']
|
8
8
|
t.verbose = true
|
9
|
-
end
|
9
|
+
end
|
data/lib/undergroundweather.rb
CHANGED
@@ -1,19 +1,19 @@
|
|
1
1
|
$:.push File.expand_path(File.dirname(__FILE__))
|
2
2
|
|
3
|
-
require '
|
4
|
-
require '
|
5
|
-
require '
|
6
|
-
require '
|
3
|
+
require 'undergroundweather/version'
|
4
|
+
require 'undergroundweather/api_call'
|
5
|
+
require 'undergroundweather/daily_forecast'
|
6
|
+
require 'undergroundweather/webcam'
|
7
7
|
|
8
|
-
require '
|
9
|
-
require '
|
10
|
-
require '
|
11
|
-
require '
|
12
|
-
require '
|
13
|
-
require '
|
8
|
+
require 'undergroundweather/features/current_conditions'
|
9
|
+
require 'undergroundweather/features/forecast'
|
10
|
+
require 'undergroundweather/features/astronomy'
|
11
|
+
require 'undergroundweather/features/radar'
|
12
|
+
require 'undergroundweather/features/satellite'
|
13
|
+
require 'undergroundweather/features/webcams'
|
14
14
|
|
15
|
-
require '
|
16
|
-
require '
|
15
|
+
require 'undergroundweather/features'
|
16
|
+
require 'undergroundweather/client'
|
17
17
|
|
18
18
|
module UndergroundWeather
|
19
19
|
def self.new(*args)
|
@@ -13,15 +13,22 @@ module UndergroundWeather
|
|
13
13
|
@feature = feature
|
14
14
|
@query = query
|
15
15
|
@error = false
|
16
|
-
|
17
|
-
@response = JSON.parse(get)
|
18
|
-
@error = true if @response['response']['error']
|
19
16
|
end
|
20
17
|
|
18
|
+
def get!
|
19
|
+
get
|
20
|
+
end
|
21
|
+
|
22
|
+
def response
|
23
|
+
@response ||= JSON.parse(get)
|
24
|
+
end
|
25
|
+
|
21
26
|
def url
|
22
27
|
URI.parse("#{BASE_URL}/#{@api_key}/#{@feature}/q/#{@query}.json")
|
23
28
|
end
|
24
29
|
|
30
|
+
private
|
31
|
+
|
25
32
|
def get
|
26
33
|
resp = Net::HTTP.get_response(url)
|
27
34
|
|
@@ -30,7 +37,7 @@ module UndergroundWeather
|
|
30
37
|
else
|
31
38
|
@error = true
|
32
39
|
|
33
|
-
# raise exception here
|
40
|
+
# raise exception here?
|
34
41
|
{}
|
35
42
|
end
|
36
43
|
end
|
@@ -6,7 +6,7 @@ module UndergroundWeather
|
|
6
6
|
:humidity, :wind, :wind_dir, :wind_mph, :icon, :url,
|
7
7
|
:heat_index_f, :heat_index_c, :dewpoint_f, :dewpoint_c,
|
8
8
|
:windchill_f, :windchill_c, :visibility_mi, :visibility_km,
|
9
|
-
:pressure_mb, :pressure_in
|
9
|
+
:pressure_mb, :pressure_in, :precip_hour, :precip_today
|
10
10
|
|
11
11
|
def initialize(feed)
|
12
12
|
obsv = feed['current_observation']
|
@@ -40,6 +40,8 @@ module UndergroundWeather
|
|
40
40
|
@visibility_km = obsv['visibility_km']
|
41
41
|
@pressure_mb = obsv['pressure_mb']
|
42
42
|
@pressure_in = obsv['pressure_in']
|
43
|
+
@precip_today = obsv['precip_today_in']
|
44
|
+
@precip_hour = obsv['precip_1hr_in']
|
43
45
|
|
44
46
|
@icon = obsv['icon_url']
|
45
47
|
@url = obsv['forecast_url']
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe UndergroundWeather::ApiCall do
|
4
|
+
before do
|
5
|
+
@api_key = 'apikey'
|
6
|
+
@feature = 'forecast'
|
7
|
+
@query = '19106'
|
8
|
+
|
9
|
+
@uw = UndergroundWeather::ApiCall.new(@api_key, @feature, @query)
|
10
|
+
end
|
11
|
+
|
12
|
+
it "can be initialized with api_key, forecast, and query" do
|
13
|
+
@uw.must_be_instance_of(UndergroundWeather::ApiCall)
|
14
|
+
end
|
15
|
+
|
16
|
+
it "should not have an error if no call has been made" do
|
17
|
+
@uw.error.must_equal(false)
|
18
|
+
end
|
19
|
+
|
20
|
+
it "should have an error if http response code is not 200" do
|
21
|
+
http_response = mock()
|
22
|
+
http_response.expects(:code).returns('404')
|
23
|
+
Net::HTTP.stubs(:get_response).returns(http_response)
|
24
|
+
|
25
|
+
@uw.get!
|
26
|
+
@uw.error.must_equal(true)
|
27
|
+
end
|
28
|
+
|
29
|
+
it "should not have an error if http response code is 200" do
|
30
|
+
http_response = mock()
|
31
|
+
http_response.expects(:code).returns('200')
|
32
|
+
http_response.expects(:body).returns({})
|
33
|
+
|
34
|
+
Net::HTTP.stubs(:get_response).returns(http_response)
|
35
|
+
|
36
|
+
@uw.get!
|
37
|
+
@uw.error.must_equal(false)
|
38
|
+
end
|
39
|
+
|
40
|
+
it "should return correct url" do
|
41
|
+
@uw.url.to_s.must_equal(URI.parse("http://api.wunderground.com/api/apikey/forecast/q/19106.json").to_s)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
@@ -0,0 +1,38 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe UndergroundWeather::Features do
|
4
|
+
before do
|
5
|
+
class Features
|
6
|
+
extend UndergroundWeather::Features
|
7
|
+
end
|
8
|
+
|
9
|
+
@api_response = mock()
|
10
|
+
@api_response.stubs(:response).returns({})
|
11
|
+
@api_response.stubs(:error).returns(false)
|
12
|
+
UndergroundWeather::ApiCall.stubs(:new).returns(@api_response)
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should define conditions" do
|
16
|
+
Features.must_respond_to(:conditions)
|
17
|
+
end
|
18
|
+
|
19
|
+
it "should define forecast" do
|
20
|
+
Features.must_respond_to(:forecast)
|
21
|
+
end
|
22
|
+
|
23
|
+
it "should define astronomy" do
|
24
|
+
Features.must_respond_to(:astronomy)
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should define radar" do
|
28
|
+
Features.must_respond_to(:radar)
|
29
|
+
end
|
30
|
+
|
31
|
+
it "should define satellite" do
|
32
|
+
Features.must_respond_to(:satellite)
|
33
|
+
end
|
34
|
+
|
35
|
+
it "should define webcams" do
|
36
|
+
Features.must_respond_to(:webcams)
|
37
|
+
end
|
38
|
+
end
|
data/undergroundweather.gemspec
CHANGED
@@ -19,5 +19,7 @@ Gem::Specification.new do |s|
|
|
19
19
|
s.require_paths = ["lib"]
|
20
20
|
|
21
21
|
# specify any dependencies here; for example:
|
22
|
-
|
22
|
+
s.add_development_dependency "minitest", '~> 2.8.0'
|
23
|
+
s.add_development_dependency "mocha", '~> 0.10.0'
|
24
|
+
|
23
25
|
end
|
metadata
CHANGED
@@ -1,24 +1,67 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: undergroundweather
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 25
|
5
5
|
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 0
|
9
|
+
- 3
|
10
|
+
version: 0.0.3
|
6
11
|
platform: ruby
|
7
|
-
authors:
|
12
|
+
authors:
|
8
13
|
- brookemckim
|
9
14
|
autorequire:
|
10
15
|
bindir: bin
|
11
16
|
cert_chain: []
|
12
|
-
|
13
|
-
|
17
|
+
|
18
|
+
date: 2011-11-17 00:00:00 -05:00
|
19
|
+
default_executable:
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
22
|
+
name: minitest
|
23
|
+
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
hash: 47
|
30
|
+
segments:
|
31
|
+
- 2
|
32
|
+
- 8
|
33
|
+
- 0
|
34
|
+
version: 2.8.0
|
35
|
+
type: :development
|
36
|
+
version_requirements: *id001
|
37
|
+
- !ruby/object:Gem::Dependency
|
38
|
+
name: mocha
|
39
|
+
prerelease: false
|
40
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ~>
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
hash: 55
|
46
|
+
segments:
|
47
|
+
- 0
|
48
|
+
- 10
|
49
|
+
- 0
|
50
|
+
version: 0.10.0
|
51
|
+
type: :development
|
52
|
+
version_requirements: *id002
|
14
53
|
description: API Client for the Weather Underground
|
15
|
-
email:
|
54
|
+
email:
|
16
55
|
- brooke.mckim@gmail.com
|
17
56
|
executables: []
|
57
|
+
|
18
58
|
extensions: []
|
59
|
+
|
19
60
|
extra_rdoc_files: []
|
20
|
-
|
61
|
+
|
62
|
+
files:
|
21
63
|
- .gitignore
|
64
|
+
- .rbenv-version
|
22
65
|
- Gemfile
|
23
66
|
- README.md
|
24
67
|
- Rakefile
|
@@ -35,33 +78,49 @@ files:
|
|
35
78
|
- lib/undergroundweather/features/webcams.rb
|
36
79
|
- lib/undergroundweather/version.rb
|
37
80
|
- lib/undergroundweather/webcam.rb
|
38
|
-
-
|
39
|
-
-
|
40
|
-
-
|
41
|
-
-
|
81
|
+
- spec/spec_helper.rb
|
82
|
+
- spec/undergroundweather/api_call_spec.rb
|
83
|
+
- spec/undergroundweather/client_spec.rb
|
84
|
+
- spec/undergroundweather/features_spec.rb
|
85
|
+
- spec/undergroundweather_spec.rb
|
42
86
|
- undergroundweather.gemspec
|
87
|
+
has_rdoc: true
|
43
88
|
homepage: http://github.com/brookemckim/undergroundweather
|
44
89
|
licenses: []
|
90
|
+
|
45
91
|
post_install_message:
|
46
92
|
rdoc_options: []
|
47
|
-
|
93
|
+
|
94
|
+
require_paths:
|
48
95
|
- lib
|
49
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
96
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
50
97
|
none: false
|
51
|
-
requirements:
|
52
|
-
- -
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
|
55
|
-
|
98
|
+
requirements:
|
99
|
+
- - ">="
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
hash: 3
|
102
|
+
segments:
|
103
|
+
- 0
|
104
|
+
version: "0"
|
105
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
56
106
|
none: false
|
57
|
-
requirements:
|
58
|
-
- -
|
59
|
-
- !ruby/object:Gem::Version
|
60
|
-
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
hash: 3
|
111
|
+
segments:
|
112
|
+
- 0
|
113
|
+
version: "0"
|
61
114
|
requirements: []
|
115
|
+
|
62
116
|
rubyforge_project: undergroundweather
|
63
|
-
rubygems_version: 1.
|
117
|
+
rubygems_version: 1.6.2
|
64
118
|
signing_key:
|
65
119
|
specification_version: 3
|
66
120
|
summary: API Client for wunderground.com
|
67
|
-
test_files:
|
121
|
+
test_files:
|
122
|
+
- spec/spec_helper.rb
|
123
|
+
- spec/undergroundweather/api_call_spec.rb
|
124
|
+
- spec/undergroundweather/client_spec.rb
|
125
|
+
- spec/undergroundweather/features_spec.rb
|
126
|
+
- spec/undergroundweather_spec.rb
|
data/specs/helper.rb
DELETED