yweather 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. data/.gitignore +6 -0
  2. data/CHANGELOG +3 -0
  3. data/Gemfile +2 -0
  4. data/Guardfile +9 -0
  5. data/LICENSE +504 -0
  6. data/README.md +109 -0
  7. data/Rakefile +14 -0
  8. data/bin/yweather +30 -0
  9. data/lib/yweather.rb +22 -0
  10. data/lib/yweather/astronomy.rb +12 -0
  11. data/lib/yweather/atmosphere.rb +34 -0
  12. data/lib/yweather/client.rb +80 -0
  13. data/lib/yweather/condition.rb +71 -0
  14. data/lib/yweather/forecast.rb +22 -0
  15. data/lib/yweather/image.rb +19 -0
  16. data/lib/yweather/location.rb +15 -0
  17. data/lib/yweather/response.rb +87 -0
  18. data/lib/yweather/units.rb +20 -0
  19. data/lib/yweather/utils.rb +7 -0
  20. data/lib/yweather/version.rb +3 -0
  21. data/lib/yweather/wind.rb +15 -0
  22. data/spec/bin/yweather_spec.rb +7 -0
  23. data/spec/cassettes/invalid_weather_transaction.yml +44 -0
  24. data/spec/cassettes/invalid_woeid_conversion_transaction.yml +38 -0
  25. data/spec/cassettes/valid_weather_transaction.yml +66 -0
  26. data/spec/cassettes/valid_weather_transaction_with_zipcode_conversion.yml +101 -0
  27. data/spec/cassettes/valid_woeid_conversion_transaction.yml +38 -0
  28. data/spec/lib/yweather/astronomy_spec.rb +27 -0
  29. data/spec/lib/yweather/atmosphere_spec.rb +25 -0
  30. data/spec/lib/yweather/client_spec.rb +58 -0
  31. data/spec/lib/yweather/condition_spec.rb +25 -0
  32. data/spec/lib/yweather/forecast_spec.rb +25 -0
  33. data/spec/lib/yweather/image_spec.rb +25 -0
  34. data/spec/lib/yweather/location_spec.rb +25 -0
  35. data/spec/lib/yweather/response_spec.rb +49 -0
  36. data/spec/lib/yweather/units_spec.rb +25 -0
  37. data/spec/lib/yweather/wind_spec.rb +25 -0
  38. data/spec/spec_helper.rb +34 -0
  39. data/spec/support/helpers/spec_parse_helpers.rb +25 -0
  40. data/spec/support/helpers/spec_yweather_helpers.rb +16 -0
  41. data/yweather.gemspec +39 -0
  42. metadata +283 -0
@@ -0,0 +1,25 @@
1
+ require 'spec_helper'
2
+
3
+ describe Yweather::Condition do
4
+
5
+ before(:each) do
6
+ @client ||= Yweather::Client.new
7
+ @response ||= @client.get_response_for_woeid(default_woeid)
8
+ @condition = @response.condition
9
+ end
10
+
11
+ context "accessors" do
12
+ [:code, :date, :temp, :text].each do |acc|
13
+ it "reads and writes :#{acc}", :vcr => {:cassette_name => "valid_weather_transaction"} do
14
+ has_rw_accessor(@condition, acc)
15
+ end
16
+ end
17
+ end
18
+
19
+ [:code, :date, :temp, :text].each do |acc|
20
+ it "has a valid #{acc}", :vcr => {:cassette_name => "valid_weather_transaction"} do
21
+ @condition.send(acc).should_not be_nil
22
+ end
23
+ end
24
+
25
+ end
@@ -0,0 +1,25 @@
1
+ require 'spec_helper'
2
+
3
+ describe Yweather::Forecast do
4
+
5
+ before(:each) do
6
+ @client ||= Yweather::Client.new
7
+ @response ||= @client.get_response_for_woeid(default_woeid)
8
+ @forecasts = @response.forecasts
9
+ end
10
+
11
+ context "accessors" do
12
+ [:day, :date, :low, :high, :text, :code].each do |acc|
13
+ it "reads and writes :#{acc}", :vcr => {:cassette_name => "valid_weather_transaction"} do
14
+ has_rw_accessor(@forecasts[0], acc)
15
+ end
16
+ end
17
+ end
18
+
19
+ [:day, :date, :low, :high, :text, :code].each do |acc|
20
+ it "has a valid #{acc}", :vcr => {:cassette_name => "valid_weather_transaction"} do
21
+ @forecasts[0].send(acc).should_not be_nil
22
+ end
23
+ end
24
+
25
+ end
@@ -0,0 +1,25 @@
1
+ require 'spec_helper'
2
+
3
+ describe Yweather::Image do
4
+
5
+ before(:each) do
6
+ @client ||= Yweather::Client.new
7
+ @response ||= @client.get_response_for_woeid(default_woeid)
8
+ @image = @response.image
9
+ end
10
+
11
+ context "accessors" do
12
+ [:height, :link, :title, :url, :width].each do |acc|
13
+ it "reads and writes :#{acc}", :vcr => {:cassette_name => "valid_weather_transaction"} do
14
+ has_rw_accessor(@image, acc)
15
+ end
16
+ end
17
+ end
18
+
19
+ [:height, :link, :title, :url, :width].each do |acc|
20
+ it "has a valid #{acc}", :vcr => {:cassette_name => "valid_weather_transaction"} do
21
+ @image.send(acc).should_not be_nil
22
+ end
23
+ end
24
+
25
+ end
@@ -0,0 +1,25 @@
1
+ require 'spec_helper'
2
+
3
+ describe Yweather::Location do
4
+
5
+ before(:each) do
6
+ @client ||= Yweather::Client.new
7
+ @response ||= @client.get_response_for_woeid(default_woeid)
8
+ @location = @response.location
9
+ end
10
+
11
+ context "accessors" do
12
+ [:city, :country, :region].each do |acc|
13
+ it "reads and writes :#{acc}", :vcr => {:cassette_name => "valid_weather_transaction"} do
14
+ has_rw_accessor(@location, acc)
15
+ end
16
+ end
17
+ end
18
+
19
+ [:city, :country, :region].each do |acc|
20
+ it "has a valid #{acc}", :vcr => {:cassette_name => "valid_weather_transaction"} do
21
+ @location.send(acc).should_not be_nil
22
+ end
23
+ end
24
+
25
+ end
@@ -0,0 +1,49 @@
1
+ require 'spec_helper'
2
+
3
+ describe Yweather::Response do
4
+
5
+ before(:each) do
6
+ @client ||= Yweather::Client.new
7
+ @response ||= @client.get_response_for_woeid(default_woeid)
8
+ end
9
+
10
+ context "accessors" do
11
+ [:astronomy, :atmosphere, :condition, :forecasts, :wind, :units,
12
+ :description, :image, :latitude, :longitude, :page_url, :request_location,
13
+ :request_url, :title].each do |acc|
14
+ it "reads and writes :#{acc}", :vcr => {:cassette_name => "valid_weather_transaction"} do
15
+ has_rw_accessor(@response, acc)
16
+ end
17
+ end
18
+ end
19
+
20
+ context "instance" do
21
+ [:astronomy, :atmosphere, :condition, :wind, :units, :image, :location].each do |obj|
22
+ class_name = "Yweather::#{obj.to_s.camelize}"
23
+ it "has a #{class_name} object for the :#{obj.to_s} accessor", :vcr => {:cassette_name => "valid_weather_transaction"} do
24
+ @response.send(obj).is_a?(class_name.constantize).should be_true
25
+ end
26
+ end
27
+
28
+ it "has a collection of Yweather::Forecast objects for the :forecasts accessor", :vcr => {:cassette_name => "valid_weather_transaction"} do
29
+ @response.forecasts.each {|f| f.is_a?(Yweather::Forecast).should be_true}
30
+ end
31
+ end
32
+
33
+ [:atmospheric_conditions, :wind_conditions].each do |method|
34
+ context "#{method}" do
35
+ it "returns a HashWithIndifferentAccess by default", :vcr => {:cassette_name => "valid_weather_transaction"} do
36
+ @response.send(method).is_a?(HashWithIndifferentAccess).should be_true
37
+ end
38
+
39
+ it "returns XML", :vcr => {:cassette_name => "valid_weather_transaction"} do
40
+ is_xml?(@response.send(method, :format => :xml)).should be_true
41
+ end
42
+
43
+ it "returns JSON", :vcr => {:cassette_name => "valid_weather_transaction"} do
44
+ is_json?(@response.send(method, :format => :json)).should be_true
45
+ end
46
+ end
47
+ end
48
+
49
+ end
@@ -0,0 +1,25 @@
1
+ require 'spec_helper'
2
+
3
+ describe Yweather::Units do
4
+
5
+ before(:each) do
6
+ @client ||= Yweather::Client.new
7
+ @response ||= @client.get_response_for_woeid(default_woeid)
8
+ @units = @response.units
9
+ end
10
+
11
+ context "accessors" do
12
+ [:temperature, :distance, :pressure, :speed].each do |acc|
13
+ it "reads and writes :#{acc}", :vcr => {:cassette_name => "valid_weather_transaction"} do
14
+ has_rw_accessor(@units, acc)
15
+ end
16
+ end
17
+ end
18
+
19
+ [:temperature, :distance, :pressure, :speed].each do |acc|
20
+ it "has a valid #{acc}", :vcr => {:cassette_name => "valid_weather_transaction"} do
21
+ @units.send(acc).should_not be_nil
22
+ end
23
+ end
24
+
25
+ end
@@ -0,0 +1,25 @@
1
+ require 'spec_helper'
2
+
3
+ describe Yweather::Wind do
4
+
5
+ before(:each) do
6
+ @client ||= Yweather::Client.new
7
+ @response ||= @client.get_response_for_woeid(default_woeid)
8
+ @wind = @response.wind
9
+ end
10
+
11
+ context "accessors" do
12
+ [:chill, :direction, :speed].each do |acc|
13
+ it "reads and writes :#{acc}", :vcr => {:cassette_name => "valid_weather_transaction"} do
14
+ has_rw_accessor(@wind, acc)
15
+ end
16
+ end
17
+ end
18
+
19
+ [:chill, :direction, :speed].each do |acc|
20
+ it "has a valid #{acc}", :vcr => {:cassette_name => "valid_weather_transaction"} do
21
+ @wind.send(acc).should_not be_nil
22
+ end
23
+ end
24
+
25
+ end
@@ -0,0 +1,34 @@
1
+ require 'pry'
2
+ require 'vcr'
3
+
4
+ if ENV['coverage']
5
+ require 'simplecov'
6
+ SimpleCov.start do
7
+ add_filter "spec/spec_parse_helpers.rb"
8
+ add_filter "spec/spec_yweather_helpers.rb"
9
+ add_filter "spec/support/helpers/spec_parse_helpers.rb"
10
+ add_filter "vendor"
11
+ end
12
+ end
13
+ require 'yweather'
14
+
15
+ SPEC_PATH = File.expand_path('..', __FILE__)
16
+ Dir[File.join(SPEC_PATH, 'support/**/*.rb')].each { |support| require support }
17
+
18
+ VCR.configure do |c|
19
+ c.cassette_library_dir = 'spec/cassettes'
20
+ c.hook_into :fakeweb
21
+ c.ignore_localhost = false
22
+ # c.ignore_hosts SRI_INTEGRATION_HOST
23
+ c.configure_rspec_metadata!
24
+ c.default_cassette_options = { :record => :once }
25
+ end
26
+
27
+ RSpec.configure do |conf|
28
+ conf.include JSON
29
+ conf.include XML
30
+ conf.treat_symbols_as_metadata_keys_with_true_values = true
31
+ conf.extend VCR::RSpec::Macros
32
+ conf.mock_with :rspec
33
+ conf.color_enabled = true
34
+ end
@@ -0,0 +1,25 @@
1
+ require 'nokogiri'
2
+
3
+ module JSON
4
+ def is_json?(string)
5
+ begin
6
+ parse(string).all?
7
+ rescue ParserError
8
+ false
9
+ end
10
+ end
11
+ end
12
+
13
+ module XML
14
+ def is_xml?(string)
15
+ begin
16
+ doc = Nokogiri::XML(string) do |config|
17
+ config.options = Nokogiri::XML::ParseOptions::STRICT | Nokogiri::XML::ParseOptions::NOENT
18
+ end
19
+ doc.root
20
+ rescue Exception => e
21
+ # puts ">>> Exception: [#{e}]"
22
+ false
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,16 @@
1
+ def default_woeid
2
+ @woeid = 12786794
3
+ end
4
+
5
+ def default_zipcode
6
+ @zipcode = 66206
7
+ end
8
+
9
+ def has_rw_accessor(object, symbol)
10
+ object.respond_to?(symbol).should be_true
11
+ object.respond_to?(symbol, '=').should be_true
12
+ end
13
+
14
+ def has_readonly_accessor(object, symbol)
15
+ object.respond_to?(symbol).should be_true
16
+ end
@@ -0,0 +1,39 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "yweather/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "yweather"
7
+ s.version = Yweather::VERSION
8
+ s.authors = ["Chris Blackburn"]
9
+ s.email = ["chris@midwiretech.com"]
10
+ s.homepage = ""
11
+ s.summary = %q{Port of the yahoo-weather gem}
12
+ s.description = %q{Port of the yahoo-weather gem, an object-oriented interface to the Yahoo! Weather service.}
13
+
14
+ s.rubyforge_project = "yweather"
15
+
16
+ s.files = `git ls-files`.split("\n")
17
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
+ s.require_paths = ["lib"]
20
+
21
+ # specify any dependencies here; for example:
22
+ s.add_development_dependency "rake"
23
+ s.add_development_dependency "rspec", ">= 2.7.0"
24
+ s.add_development_dependency "simplecov"
25
+ s.add_development_dependency "guard"
26
+ s.add_development_dependency "guard-rspec"
27
+ s.add_development_dependency "growl"
28
+ s.add_development_dependency "pry"
29
+ s.add_development_dependency "fakeweb"
30
+ s.add_development_dependency "nokogiri"
31
+ s.add_development_dependency "vcr", ">= 2.0.0.rc1"
32
+
33
+ s.add_runtime_dependency "yql"
34
+ s.add_runtime_dependency "active_support"
35
+ s.add_runtime_dependency "i18n"
36
+ s.add_runtime_dependency "rest-client"
37
+ s.add_runtime_dependency "builder"
38
+ s.add_runtime_dependency "colorize"
39
+ end
metadata ADDED
@@ -0,0 +1,283 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: yweather
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Chris Blackburn
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-01-14 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rake
16
+ requirement: &70142345120620 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: *70142345120620
25
+ - !ruby/object:Gem::Dependency
26
+ name: rspec
27
+ requirement: &70142345120120 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: 2.7.0
33
+ type: :development
34
+ prerelease: false
35
+ version_requirements: *70142345120120
36
+ - !ruby/object:Gem::Dependency
37
+ name: simplecov
38
+ requirement: &70142345119700 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ type: :development
45
+ prerelease: false
46
+ version_requirements: *70142345119700
47
+ - !ruby/object:Gem::Dependency
48
+ name: guard
49
+ requirement: &70142345119240 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ type: :development
56
+ prerelease: false
57
+ version_requirements: *70142345119240
58
+ - !ruby/object:Gem::Dependency
59
+ name: guard-rspec
60
+ requirement: &70142345118760 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ! '>='
64
+ - !ruby/object:Gem::Version
65
+ version: '0'
66
+ type: :development
67
+ prerelease: false
68
+ version_requirements: *70142345118760
69
+ - !ruby/object:Gem::Dependency
70
+ name: growl
71
+ requirement: &70142345118260 !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: *70142345118260
80
+ - !ruby/object:Gem::Dependency
81
+ name: pry
82
+ requirement: &70142345117800 !ruby/object:Gem::Requirement
83
+ none: false
84
+ requirements:
85
+ - - ! '>='
86
+ - !ruby/object:Gem::Version
87
+ version: '0'
88
+ type: :development
89
+ prerelease: false
90
+ version_requirements: *70142345117800
91
+ - !ruby/object:Gem::Dependency
92
+ name: fakeweb
93
+ requirement: &70142345117240 !ruby/object:Gem::Requirement
94
+ none: false
95
+ requirements:
96
+ - - ! '>='
97
+ - !ruby/object:Gem::Version
98
+ version: '0'
99
+ type: :development
100
+ prerelease: false
101
+ version_requirements: *70142345117240
102
+ - !ruby/object:Gem::Dependency
103
+ name: nokogiri
104
+ requirement: &70142345115140 !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ type: :development
111
+ prerelease: false
112
+ version_requirements: *70142345115140
113
+ - !ruby/object:Gem::Dependency
114
+ name: vcr
115
+ requirement: &70142345114480 !ruby/object:Gem::Requirement
116
+ none: false
117
+ requirements:
118
+ - - ! '>='
119
+ - !ruby/object:Gem::Version
120
+ version: 2.0.0.rc1
121
+ type: :development
122
+ prerelease: false
123
+ version_requirements: *70142345114480
124
+ - !ruby/object:Gem::Dependency
125
+ name: yql
126
+ requirement: &70142345114060 !ruby/object:Gem::Requirement
127
+ none: false
128
+ requirements:
129
+ - - ! '>='
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :runtime
133
+ prerelease: false
134
+ version_requirements: *70142345114060
135
+ - !ruby/object:Gem::Dependency
136
+ name: active_support
137
+ requirement: &70142345113520 !ruby/object:Gem::Requirement
138
+ none: false
139
+ requirements:
140
+ - - ! '>='
141
+ - !ruby/object:Gem::Version
142
+ version: '0'
143
+ type: :runtime
144
+ prerelease: false
145
+ version_requirements: *70142345113520
146
+ - !ruby/object:Gem::Dependency
147
+ name: i18n
148
+ requirement: &70142345112900 !ruby/object:Gem::Requirement
149
+ none: false
150
+ requirements:
151
+ - - ! '>='
152
+ - !ruby/object:Gem::Version
153
+ version: '0'
154
+ type: :runtime
155
+ prerelease: false
156
+ version_requirements: *70142345112900
157
+ - !ruby/object:Gem::Dependency
158
+ name: rest-client
159
+ requirement: &70142345112480 !ruby/object:Gem::Requirement
160
+ none: false
161
+ requirements:
162
+ - - ! '>='
163
+ - !ruby/object:Gem::Version
164
+ version: '0'
165
+ type: :runtime
166
+ prerelease: false
167
+ version_requirements: *70142345112480
168
+ - !ruby/object:Gem::Dependency
169
+ name: builder
170
+ requirement: &70142345112060 !ruby/object:Gem::Requirement
171
+ none: false
172
+ requirements:
173
+ - - ! '>='
174
+ - !ruby/object:Gem::Version
175
+ version: '0'
176
+ type: :runtime
177
+ prerelease: false
178
+ version_requirements: *70142345112060
179
+ - !ruby/object:Gem::Dependency
180
+ name: colorize
181
+ requirement: &70142345111620 !ruby/object:Gem::Requirement
182
+ none: false
183
+ requirements:
184
+ - - ! '>='
185
+ - !ruby/object:Gem::Version
186
+ version: '0'
187
+ type: :runtime
188
+ prerelease: false
189
+ version_requirements: *70142345111620
190
+ description: Port of the yahoo-weather gem, an object-oriented interface to the Yahoo!
191
+ Weather service.
192
+ email:
193
+ - chris@midwiretech.com
194
+ executables:
195
+ - yweather
196
+ extensions: []
197
+ extra_rdoc_files: []
198
+ files:
199
+ - .gitignore
200
+ - CHANGELOG
201
+ - Gemfile
202
+ - Guardfile
203
+ - LICENSE
204
+ - README.md
205
+ - Rakefile
206
+ - bin/yweather
207
+ - lib/yweather.rb
208
+ - lib/yweather/astronomy.rb
209
+ - lib/yweather/atmosphere.rb
210
+ - lib/yweather/client.rb
211
+ - lib/yweather/condition.rb
212
+ - lib/yweather/forecast.rb
213
+ - lib/yweather/image.rb
214
+ - lib/yweather/location.rb
215
+ - lib/yweather/response.rb
216
+ - lib/yweather/units.rb
217
+ - lib/yweather/utils.rb
218
+ - lib/yweather/version.rb
219
+ - lib/yweather/wind.rb
220
+ - spec/bin/yweather_spec.rb
221
+ - spec/cassettes/invalid_weather_transaction.yml
222
+ - spec/cassettes/invalid_woeid_conversion_transaction.yml
223
+ - spec/cassettes/valid_weather_transaction.yml
224
+ - spec/cassettes/valid_weather_transaction_with_zipcode_conversion.yml
225
+ - spec/cassettes/valid_woeid_conversion_transaction.yml
226
+ - spec/lib/yweather/astronomy_spec.rb
227
+ - spec/lib/yweather/atmosphere_spec.rb
228
+ - spec/lib/yweather/client_spec.rb
229
+ - spec/lib/yweather/condition_spec.rb
230
+ - spec/lib/yweather/forecast_spec.rb
231
+ - spec/lib/yweather/image_spec.rb
232
+ - spec/lib/yweather/location_spec.rb
233
+ - spec/lib/yweather/response_spec.rb
234
+ - spec/lib/yweather/units_spec.rb
235
+ - spec/lib/yweather/wind_spec.rb
236
+ - spec/spec_helper.rb
237
+ - spec/support/helpers/spec_parse_helpers.rb
238
+ - spec/support/helpers/spec_yweather_helpers.rb
239
+ - yweather.gemspec
240
+ homepage: ''
241
+ licenses: []
242
+ post_install_message:
243
+ rdoc_options: []
244
+ require_paths:
245
+ - lib
246
+ required_ruby_version: !ruby/object:Gem::Requirement
247
+ none: false
248
+ requirements:
249
+ - - ! '>='
250
+ - !ruby/object:Gem::Version
251
+ version: '0'
252
+ required_rubygems_version: !ruby/object:Gem::Requirement
253
+ none: false
254
+ requirements:
255
+ - - ! '>='
256
+ - !ruby/object:Gem::Version
257
+ version: '0'
258
+ requirements: []
259
+ rubyforge_project: yweather
260
+ rubygems_version: 1.8.10
261
+ signing_key:
262
+ specification_version: 3
263
+ summary: Port of the yahoo-weather gem
264
+ test_files:
265
+ - spec/bin/yweather_spec.rb
266
+ - spec/cassettes/invalid_weather_transaction.yml
267
+ - spec/cassettes/invalid_woeid_conversion_transaction.yml
268
+ - spec/cassettes/valid_weather_transaction.yml
269
+ - spec/cassettes/valid_weather_transaction_with_zipcode_conversion.yml
270
+ - spec/cassettes/valid_woeid_conversion_transaction.yml
271
+ - spec/lib/yweather/astronomy_spec.rb
272
+ - spec/lib/yweather/atmosphere_spec.rb
273
+ - spec/lib/yweather/client_spec.rb
274
+ - spec/lib/yweather/condition_spec.rb
275
+ - spec/lib/yweather/forecast_spec.rb
276
+ - spec/lib/yweather/image_spec.rb
277
+ - spec/lib/yweather/location_spec.rb
278
+ - spec/lib/yweather/response_spec.rb
279
+ - spec/lib/yweather/units_spec.rb
280
+ - spec/lib/yweather/wind_spec.rb
281
+ - spec/spec_helper.rb
282
+ - spec/support/helpers/spec_parse_helpers.rb
283
+ - spec/support/helpers/spec_yweather_helpers.rb