google-weather 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -3,3 +3,5 @@
3
3
  coverage
4
4
  rdoc
5
5
  pkg
6
+ .bundle
7
+ Gemfile.lock
data/Gemfile ADDED
@@ -0,0 +1,9 @@
1
+ source :rubygems
2
+
3
+ # Specify your gem's dependencies in google-weather.gemspec
4
+ gemspec
5
+
6
+ gem 'rake'
7
+ gem 'shoulda', '2.11.3'
8
+ gem 'jnunemaker-matchy', '0.4.0', :require => 'matchy'
9
+ gem 'fakeweb', '1.3.0'
data/Rakefile CHANGED
@@ -1,15 +1,6 @@
1
1
  require 'bundler'
2
2
  Bundler::GemHelper.install_tasks
3
3
 
4
- require 'rake/rdoctask'
5
- Rake::RDocTask.new do |rdoc|
6
- rdoc.rdoc_dir = 'rdoc'
7
- rdoc.title = 'google-weather'
8
- rdoc.options << '--line-numbers' << '--inline-source'
9
- rdoc.rdoc_files.include('README*')
10
- rdoc.rdoc_files.include('lib/**/*.rb')
11
- end
12
-
13
4
  require 'rake/testtask'
14
5
  Rake::TestTask.new(:test) do |test|
15
6
  test.libs << 'lib' << 'test'
@@ -17,17 +8,4 @@ Rake::TestTask.new(:test) do |test|
17
8
  test.verbose = false
18
9
  end
19
10
 
20
- begin
21
- require 'rcov/rcovtask'
22
- Rcov::RcovTask.new do |test|
23
- test.libs << 'test'
24
- test.pattern = 'test/**/*_test.rb'
25
- test.verbose = true
26
- end
27
- rescue LoadError
28
- task :rcov do
29
- abort "RCov is not available. In order to run rcov, you must: sudo gem install spicycode-rcov"
30
- end
31
- end
32
-
33
11
  task :default => :test
@@ -1,16 +1,38 @@
1
1
  #!/usr/bin/env ruby
2
-
2
+ require 'rubygems'
3
3
  require File.dirname(__FILE__) + '/../lib/google_weather'
4
4
 
5
- if ARGV.size == 0
6
- puts 'Weather [Powered by Google]'
7
- puts 'USAGE: weather [zip code or city]'
8
- puts 'EXAMPLES:'
9
- puts ' weather 46544'
10
- puts ' weather "mishawaka, in"'
11
- exit
5
+ path = Pathname(ENV["HOME"]).join('.weather')
6
+
7
+ if path.exist? && ARGV.size == 0
8
+ param = path.read
9
+ else
10
+ if ARGV.size == 0
11
+ puts 'Weather [Powered by Google]'
12
+ puts 'USAGE: weather [zip code or city]'
13
+ puts 'EXAMPLES:'
14
+ puts ' weather 46544'
15
+ puts ' weather "mishawaka, in"'
16
+ exit
17
+ end
18
+
19
+ param = ARGV[0]
12
20
  end
13
21
 
14
- weather = GoogleWeather.new(ARGV[0])
22
+ weather = GoogleWeather.new(param)
15
23
  current = weather.current_conditions
16
- puts "#{current.temp_f}° #{current.condition} - #{current.wind_condition} - #{current.humidity}"
24
+ puts
25
+ puts "#{weather.forecast_information.city}"
26
+ puts "#{current.temp_f}° #{current.condition}"
27
+ puts "#{current.wind_condition}"
28
+ puts "#{current.humidity}"
29
+ puts
30
+
31
+ weather.forecast_conditions.each do |condition|
32
+ puts "#{condition.day_of_week}"
33
+ puts " #{condition.condition}"
34
+ puts " High: #{condition.high}°"
35
+ puts " Low: #{condition.low}°"
36
+ end
37
+
38
+ puts
@@ -14,8 +14,7 @@ Gem::Specification.new do |s|
14
14
  s.required_rubygems_version = ">= 1.3.6"
15
15
  s.rubyforge_project = "google-weather"
16
16
 
17
- s.add_development_dependency "bundler", ">= 1.0.0"
18
- s.add_dependency "httparty", "0.5.2"
17
+ s.add_dependency "httparty", "~> 0.5.0"
19
18
 
20
19
  s.files = `git ls-files`.split("\n")
21
20
  s.executables = `git ls-files`.split("\n").map{|f| f =~ /^bin\/(.*)/ ? $1 : nil}.compact
@@ -1,31 +1,60 @@
1
- require 'rubygems'
2
- gem 'httparty'
3
1
  require 'httparty'
4
2
  require File.dirname(__FILE__) + '/google_weather/data'
5
3
 
6
- class GoogleWeather
4
+ class GoogleWeather
7
5
  include HTTParty
8
6
  base_uri "www.google.com"
9
-
10
- attr_reader :zip
11
-
12
- def initialize(zip)
13
- @zip = zip
7
+ Path = "/ig/api"
8
+
9
+ attr_reader :param
10
+
11
+ def initialize(value, options={})
12
+ @param = prep_param(value)
13
+ @options = options
14
+ end
15
+
16
+ def locale
17
+ @options[:locale] || :en
14
18
  end
15
-
19
+
16
20
  def weather
17
- @weather ||= self.class.get("/ig/api", :query => {:weather => @zip}, :format => :xml)['xml_api_reply']['weather']
21
+ @weather ||= self.class.get(Path, weather_options)['xml_api_reply']['weather']
18
22
  end
19
-
23
+
20
24
  def forecast_information
21
25
  @forecast_information ||= ForecastInformation.new(weather['forecast_information'])
22
26
  end
23
-
27
+
24
28
  def current_conditions
25
29
  @current_conditions ||= CurrentConditions.new(weather['current_conditions'])
26
30
  end
27
-
31
+
28
32
  def forecast_conditions
29
33
  @forecast_conditions ||= weather['forecast_conditions'].map { |cond| ForecastCondition.new(cond) }
30
34
  end
35
+
36
+ private
37
+
38
+ def weather_options
39
+ opts = {
40
+ :query => {
41
+ :weather => param,
42
+ :hl => locale,
43
+ :oe => 'utf-8'
44
+ },
45
+ :format => :xml,
46
+ }
47
+ end
48
+
49
+ def prep_param(value)
50
+ if value.kind_of?(Array)
51
+ value = value.inject([]) do |result, element|
52
+ result << (element * 1e6).to_i
53
+ result
54
+ end
55
+ value = ",,,#{value[0]},#{value[1]}"
56
+ else
57
+ value
58
+ end
59
+ end
31
60
  end
@@ -0,0 +1,3 @@
1
+ class GoogleWeather
2
+ VERSION = "0.3.0"
3
+ end
@@ -0,0 +1 @@
1
+ <?xml version="1.0"?><xml_api_reply version="1"><weather module_id="0" tab_id="0" mobile_row="0" mobile_zipped="1" row="0" section="0" ><forecast_information><city data=""/><postal_code data=""/><latitude_e6 data="32221700"/><longitude_e6 data="110925800"/><forecast_date data="2012-04-21"/><current_date_time data="2012-04-21 17:00:00 +0000"/><unit_system data="US"/></forecast_information><current_conditions><condition data="Mostly Cloudy"/><temp_f data="66"/><temp_c data="19"/><humidity data="Humidity: 69%"/><icon data="/ig/images/weather/mostly_cloudy.gif"/><wind_condition data="Wind: SE at 2 mph"/></current_conditions><forecast_conditions><day_of_week data="Sat"/><low data="54"/><high data="84"/><icon data="/ig/images/weather/sunny.gif"/><condition data="Clear"/></forecast_conditions><forecast_conditions><day_of_week data="Sun"/><low data="55"/><high data="88"/><icon data="/ig/images/weather/sunny.gif"/><condition data="Clear"/></forecast_conditions><forecast_conditions><day_of_week data="Mon"/><low data="61"/><high data="95"/><icon data="/ig/images/weather/mostly_sunny.gif"/><condition data="Mostly Sunny"/></forecast_conditions><forecast_conditions><day_of_week data="Tue"/><low data="50"/><high data="73"/><icon data="/ig/images/weather/chance_of_rain.gif"/><condition data="Chance of Rain"/></forecast_conditions></weather></xml_api_reply>
@@ -0,0 +1 @@
1
+ <?xml version="1.0"?><xml_api_reply version="1"><weather module_id="0" tab_id="0" mobile_row="0" mobile_zipped="1" row="0" section="0" ><forecast_information><city data="london,uk"/><postal_code data="london,uk"/><latitude_e6 data=""/><longitude_e6 data=""/><forecast_date data="2012-04-21"/><current_date_time data="1970-01-01 00:00:00 +0000"/><unit_system data="US"/></forecast_information><current_conditions><condition data="Clear"/><temp_f data="43"/><temp_c data="6"/><humidity data="Humidity: 81%"/><icon data="/ig/images/weather/sunny.gif"/><wind_condition data="Wind: SW at 10 mph"/></current_conditions><forecast_conditions><day_of_week data="Sat"/><low data="43"/><high data="55"/><icon data="/ig/images/weather/chance_of_storm.gif"/><condition data="Chance of Storm"/></forecast_conditions><forecast_conditions><day_of_week data="Sun"/><low data="43"/><high data="57"/><icon data="/ig/images/weather/chance_of_storm.gif"/><condition data="Chance of Storm"/></forecast_conditions><forecast_conditions><day_of_week data="Mon"/><low data="46"/><high data="55"/><icon data="/ig/images/weather/chance_of_rain.gif"/><condition data="Chance of Rain"/></forecast_conditions><forecast_conditions><day_of_week data="Tue"/><low data="45"/><high data="55"/><icon data="/ig/images/weather/fog.gif"/><condition data="Fog"/></forecast_conditions></weather></xml_api_reply>
@@ -2,13 +2,31 @@ require 'test_helper'
2
2
 
3
3
  class GoogleWeatherTest < Test::Unit::TestCase
4
4
  context "Initialization" do
5
- should "require a zip code" do
5
+ should "require a value" do
6
6
  lambda { GoogleWeather.new }.should raise_error
7
-
8
- GoogleWeather.new(46544).zip.should == 46544
7
+ end
8
+
9
+ should "set param" do
10
+ GoogleWeather.new(46544).param.should == 46544
11
+ end
12
+
13
+ should "work with string" do
14
+ GoogleWeather.new('Mishawaka, IN').param.should == 'Mishawaka, IN'
15
+ end
16
+
17
+ should "convert lat, lng array into string of e6 formatted lat,lng values" do
18
+ GoogleWeather.new([32.24959602450668,-110.8394506158091]).param.should == ',,,32249596,-110839450'
19
+ end
20
+
21
+ should "set en locale by default" do
22
+ GoogleWeather.new(46544).locale.should == :en
23
+ end
24
+
25
+ should "set specified locale if it's passed" do
26
+ GoogleWeather.new('Vologda', :locale => :ru).locale.should == :ru
9
27
  end
10
28
  end
11
-
29
+
12
30
  context "Data" do
13
31
  setup do
14
32
  @data = GoogleWeather::Data.new({'foo' => {'data' => 'bar'}})
@@ -17,50 +35,133 @@ class GoogleWeatherTest < Test::Unit::TestCase
17
35
  should "use method missing to get value for existing keys" do
18
36
  @data.foo.should == 'bar'
19
37
  end
20
-
38
+
21
39
  should "return nil for missing keys" do
22
40
  @data.foobar.should be(nil)
23
41
  end
24
42
  end
25
-
26
-
43
+
27
44
  context "Fetching" do
28
- setup do
29
- FakeWeb.register_uri(:get, "http://www.google.com/ig/api?weather=46544", :string => File.read("fixtures/46544.xml"))
30
- @weather = GoogleWeather.new(46544)
31
- end
32
-
33
- should "have forecast information" do
34
- information = @weather.forecast_information
35
- information.city.should == 'Mishawaka, IN'
36
- information.postal_code.should == '46544'
37
- information.unit_system.should == 'US'
38
- information.forecast_date.should == '2009-03-24'
39
- information.current_date_time.should == '2009-03-25 04:16:27 +0000'
45
+ context "with a zip code" do
46
+ setup do
47
+ FakeWeb.register_uri(:get, "http://www.google.com/ig/api?weather=46544&hl=en&oe=utf-8", :body => fixture_file("fixtures/46544.xml"))
48
+ @weather = GoogleWeather.new(46544)
49
+ end
50
+
51
+ should "have forecast information" do
52
+ information = @weather.forecast_information
53
+ information.city.should == 'Mishawaka, IN'
54
+ information.postal_code.should == '46544'
55
+ information.unit_system.should == 'US'
56
+ information.forecast_date.should == '2009-03-24'
57
+ information.current_date_time.should == '2009-03-25 04:16:27 +0000'
58
+ end
59
+
60
+ should "have current conditions" do
61
+ conditions = @weather.current_conditions
62
+ conditions.humidity.should == 'Humidity: 48%'
63
+ conditions.icon.should == '/images/weather/cloudy.gif'
64
+ conditions.temp_c.should == '17'
65
+ conditions.temp_f.should == '62'
66
+ conditions.condition.should == 'Overcast'
67
+ conditions.wind_condition.should == 'Wind: SE at 11 mph'
68
+ end
69
+
70
+ should "have forecast conditions" do
71
+ conditions = @weather.forecast_conditions
72
+ conditions[0].low.should == '45'
73
+ conditions[0].high.should == '67'
74
+ conditions[0].icon.should == '/images/weather/mostly_sunny.gif'
75
+ conditions[0].condition.should == 'Partly Sunny'
76
+ conditions[0].day_of_week.should == 'Tue'
77
+ conditions[1].low.should == '34'
78
+ conditions[1].high.should == '52'
79
+ conditions[1].icon.should == '/images/weather/mostly_sunny.gif'
80
+ conditions[1].condition.should == 'Mostly Sunny'
81
+ conditions[1].day_of_week.should == 'Wed'
82
+ end
40
83
  end
41
-
42
- should "have current conditions" do
43
- conditions = @weather.current_conditions
44
- conditions.humidity.should == 'Humidity: 48%'
45
- conditions.icon.should == '/images/weather/cloudy.gif'
46
- conditions.temp_c.should == '17'
47
- conditions.temp_f.should == '62'
48
- conditions.condition.should == 'Overcast'
49
- conditions.wind_condition.should == 'Wind: SE at 11 mph'
84
+
85
+ context "with a string" do
86
+ setup do
87
+ FakeWeb.register_uri(:get, "http://www.google.com/ig/api?hl=en&oe=utf-8&weather=London%2CUK", :body => fixture_file("fixtures/london.xml"))
88
+ @weather = GoogleWeather.new('London,UK')
89
+ end
90
+
91
+ should "have forecast information" do
92
+ information = @weather.forecast_information
93
+ information.city.should == 'london,uk'
94
+ information.postal_code.should == 'london,uk'
95
+ information.unit_system.should == 'US'
96
+ information.forecast_date.should == '2012-04-21'
97
+ information.current_date_time.should == '1970-01-01 00:00:00 +0000'
98
+ end
99
+
100
+ should "have current conditions" do
101
+ conditions = @weather.current_conditions
102
+ conditions.humidity.should == 'Humidity: 81%'
103
+ conditions.icon.should == '/ig/images/weather/sunny.gif'
104
+ conditions.temp_c.should == '6'
105
+ conditions.temp_f.should == '43'
106
+ conditions.condition.should == 'Clear'
107
+ conditions.wind_condition.should == 'Wind: SW at 10 mph'
108
+ end
109
+
110
+ should "have forecast conditions" do
111
+ conditions = @weather.forecast_conditions
112
+ conditions[0].low.should == '43'
113
+ conditions[0].high.should == '55'
114
+ conditions[0].icon.should == '/ig/images/weather/chance_of_storm.gif'
115
+ conditions[0].condition.should == 'Chance of Storm'
116
+ conditions[0].day_of_week.should == 'Sat'
117
+ conditions[1].low.should == '43'
118
+ conditions[1].high.should == '57'
119
+ conditions[1].icon.should == '/ig/images/weather/chance_of_storm.gif'
120
+ conditions[1].condition.should == 'Chance of Storm'
121
+ conditions[1].day_of_week.should == 'Sun'
122
+ end
50
123
  end
51
-
52
- should "have forecast conditions" do
53
- conditions = @weather.forecast_conditions
54
- conditions[0].low.should == '45'
55
- conditions[0].high.should == '67'
56
- conditions[0].icon.should == '/images/weather/mostly_sunny.gif'
57
- conditions[0].condition.should == 'Partly Sunny'
58
- conditions[0].day_of_week.should == 'Tue'
59
- conditions[1].low.should == '34'
60
- conditions[1].high.should == '52'
61
- conditions[1].icon.should == '/images/weather/mostly_sunny.gif'
62
- conditions[1].condition.should == 'Mostly Sunny'
63
- conditions[1].day_of_week.should == 'Wed'
124
+
125
+ context "with latitude, longitude array" do
126
+ setup do
127
+ FakeWeb.register_uri(:get, "http://www.google.com/ig/api?hl=en&oe=utf-8&weather=%2C%2C%2C32221700%2C110925800", :body => fixture_file("fixtures/coords.xml"))
128
+ @weather = GoogleWeather.new(',,,32221700,110925800')
129
+ end
130
+
131
+ should "have forecast information" do
132
+ information = @weather.forecast_information
133
+ information.city.should == ''
134
+ information.postal_code.should == ''
135
+ information.latitude_e6.should == '32221700'
136
+ information.longitude_e6.should == '110925800'
137
+ information.unit_system.should == 'US'
138
+ information.forecast_date.should == '2012-04-21'
139
+ information.current_date_time.should == '2012-04-21 17:00:00 +0000'
140
+ end
141
+
142
+ should "have current conditions" do
143
+ conditions = @weather.current_conditions
144
+ conditions.humidity.should == 'Humidity: 69%'
145
+ conditions.icon.should == '/ig/images/weather/mostly_cloudy.gif'
146
+ conditions.temp_c.should == '19'
147
+ conditions.temp_f.should == '66'
148
+ conditions.condition.should == 'Mostly Cloudy'
149
+ conditions.wind_condition.should == 'Wind: SE at 2 mph'
150
+ end
151
+
152
+ should "have forecast conditions" do
153
+ conditions = @weather.forecast_conditions
154
+ conditions[0].low.should == '54'
155
+ conditions[0].high.should == '84'
156
+ conditions[0].icon.should == '/ig/images/weather/sunny.gif'
157
+ conditions[0].condition.should == 'Clear'
158
+ conditions[0].day_of_week.should == 'Sat'
159
+ conditions[1].low.should == '55'
160
+ conditions[1].high.should == '88'
161
+ conditions[1].icon.should == '/ig/images/weather/sunny.gif'
162
+ conditions[1].condition.should == 'Clear'
163
+ conditions[1].day_of_week.should == 'Sun'
164
+ end
64
165
  end
65
166
  end
66
167
  end
@@ -71,59 +172,59 @@ Example hash that comes back from Google
71
172
 
72
173
  {
73
174
  "xml_api_reply"=> {
74
- "version"=>"1",
175
+ "version"=>"1",
75
176
  "weather"=> {
76
- "mobile_row"=>"0",
77
- "mobile_zipped"=>"1",
78
- "module_id"=>"0",
177
+ "mobile_row"=>"0",
178
+ "mobile_zipped"=>"1",
179
+ "module_id"=>"0",
79
180
  "forecast_information"=>{
80
- "city"=>{"data"=>"Mishawaka, IN"},
81
- "postal_code"=>{"data"=>"46544"},
82
- "longitude_e6"=>{"data"=>""},
83
- "current_date_time"=>{"data"=>"2009-03-25 04:16:27 +0000"},
84
- "latitude_e6"=>{"data"=>""},
85
- "forecast_date"=>{"data"=>"2009-03-24"},
181
+ "city"=>{"data"=>"Mishawaka, IN"},
182
+ "postal_code"=>{"data"=>"46544"},
183
+ "longitude_e6"=>{"data"=>""},
184
+ "current_date_time"=>{"data"=>"2009-03-25 04:16:27 +0000"},
185
+ "latitude_e6"=>{"data"=>""},
186
+ "forecast_date"=>{"data"=>"2009-03-24"},
86
187
  "unit_system"=>{"data"=>"US"}
87
- },
188
+ },
88
189
  "current_conditions"=> {
89
190
  "humidity"=>{"data"=>"Humidity: 48%"},
90
- "icon"=>{"data"=>"/images/weather/cloudy.gif"},
91
- "condition"=>{"data"=>"Overcast"},
92
- "temp_c"=>{"data"=>"17"},
93
- "wind_condition"=>{"data"=>"Wind: SE at 11 mph"},
191
+ "icon"=>{"data"=>"/images/weather/cloudy.gif"},
192
+ "condition"=>{"data"=>"Overcast"},
193
+ "temp_c"=>{"data"=>"17"},
194
+ "wind_condition"=>{"data"=>"Wind: SE at 11 mph"},
94
195
  "temp_f"=>{"data"=>"62"}
95
- },
96
- "tab_id"=>"0",
196
+ },
197
+ "tab_id"=>"0",
97
198
  "forecast_conditions"=>[
98
199
  {
99
- "high"=>{"data"=>"67"},
200
+ "high"=>{"data"=>"67"},
100
201
  "day_of_week"=>{"data"=>"Tue"},
101
- "icon"=>{"data"=>"/images/weather/mostly_sunny.gif"},
102
- "condition"=>{"data"=>"Partly Sunny"},
202
+ "icon"=>{"data"=>"/images/weather/mostly_sunny.gif"},
203
+ "condition"=>{"data"=>"Partly Sunny"},
103
204
  "low"=>{"data"=>"45"}
104
- },
205
+ },
105
206
  {
106
- "high"=>{"data"=>"52"},
107
- "day_of_week"=>{"data"=>"Wed"},
108
- "icon"=>{"data"=>"/images/weather/mostly_sunny.gif"},
109
- "condition"=>{"data"=>"Mostly Sunny"},
207
+ "high"=>{"data"=>"52"},
208
+ "day_of_week"=>{"data"=>"Wed"},
209
+ "icon"=>{"data"=>"/images/weather/mostly_sunny.gif"},
210
+ "condition"=>{"data"=>"Mostly Sunny"},
110
211
  "low"=>{"data"=>"34"}
111
212
  },
112
213
  {
113
- "high"=>{"data"=>"54"},
114
- "day_of_week"=>{"data"=>"Thu"},
115
- "icon"=>{"data"=>"/images/weather/mostly_sunny.gif"},
116
- "condition"=>{"data"=>"Mostly Sunny"},
214
+ "high"=>{"data"=>"54"},
215
+ "day_of_week"=>{"data"=>"Thu"},
216
+ "icon"=>{"data"=>"/images/weather/mostly_sunny.gif"},
217
+ "condition"=>{"data"=>"Mostly Sunny"},
117
218
  "low"=>{"data"=>"36"}
118
- },
219
+ },
119
220
  {
120
- "high"=>{"data"=>"56"},
121
- "day_of_week"=>{"data"=>"Fri"},
122
- "icon"=>{"data"=>"/images/weather/mostly_sunny.gif"},
123
- "condition"=>{"data"=>"Mostly Sunny"},
221
+ "high"=>{"data"=>"56"},
222
+ "day_of_week"=>{"data"=>"Fri"},
223
+ "icon"=>{"data"=>"/images/weather/mostly_sunny.gif"},
224
+ "condition"=>{"data"=>"Mostly Sunny"},
124
225
  "low"=>{"data"=>"38"}
125
226
  }
126
227
  ]
127
228
  }
128
229
  }
129
- }
230
+ }
@@ -1,3 +1,4 @@
1
+ require 'pathname'
1
2
  require 'rubygems'
2
3
  require 'test/unit'
3
4
  require 'shoulda'
@@ -11,4 +12,7 @@ $LOAD_PATH.unshift(File.dirname(__FILE__))
11
12
  require 'google_weather'
12
13
 
13
14
  class Test::Unit::TestCase
15
+ def fixture_file(path)
16
+ Pathname(__FILE__).dirname.join(*path.split('/')).read
17
+ end
14
18
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: google-weather
3
3
  version: !ruby/object:Gem::Version
4
- hash: 23
5
- prerelease: false
4
+ hash: 19
5
+ prerelease:
6
6
  segments:
7
7
  - 0
8
- - 2
8
+ - 3
9
9
  - 0
10
- version: 0.2.0
10
+ version: 0.3.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - John Nunemaker
@@ -15,41 +15,24 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-09-12 00:00:00 +10:00
19
- default_executable:
18
+ date: 2012-04-21 00:00:00 Z
20
19
  dependencies:
21
20
  - !ruby/object:Gem::Dependency
22
- name: bundler
21
+ type: :runtime
23
22
  prerelease: false
24
23
  requirement: &id001 !ruby/object:Gem::Requirement
25
24
  none: false
26
25
  requirements:
27
- - - ">="
26
+ - - ~>
28
27
  - !ruby/object:Gem::Version
29
- hash: 23
28
+ hash: 11
30
29
  segments:
31
- - 1
32
30
  - 0
31
+ - 5
33
32
  - 0
34
- version: 1.0.0
35
- type: :development
33
+ version: 0.5.0
36
34
  version_requirements: *id001
37
- - !ruby/object:Gem::Dependency
38
35
  name: httparty
39
- prerelease: false
40
- requirement: &id002 !ruby/object:Gem::Requirement
41
- none: false
42
- requirements:
43
- - - "="
44
- - !ruby/object:Gem::Version
45
- hash: 15
46
- segments:
47
- - 0
48
- - 5
49
- - 2
50
- version: 0.5.2
51
- type: :runtime
52
- version_requirements: *id002
53
36
  description: stupid simple fetching of the weather using google's api
54
37
  email:
55
38
  - nunemaker@gmail.com
@@ -62,6 +45,7 @@ extra_rdoc_files:
62
45
  - LICENSE
63
46
  files:
64
47
  - .gitignore
48
+ - Gemfile
65
49
  - LICENSE
66
50
  - README.rdoc
67
51
  - Rakefile
@@ -70,10 +54,12 @@ files:
70
54
  - google-weather.gemspec
71
55
  - lib/google_weather.rb
72
56
  - lib/google_weather/data.rb
57
+ - lib/google_weather/version.rb
73
58
  - test/fixtures/46544.xml
59
+ - test/fixtures/coords.xml
60
+ - test/fixtures/london.xml
74
61
  - test/google_weather_test.rb
75
62
  - test/test_helper.rb
76
- has_rdoc: true
77
63
  homepage: http://github.com/jnunemaker/google-weather
78
64
  licenses: []
79
65
 
@@ -106,7 +92,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
106
92
  requirements: []
107
93
 
108
94
  rubyforge_project: google-weather
109
- rubygems_version: 1.3.7
95
+ rubygems_version: 1.8.10
110
96
  signing_key:
111
97
  specification_version: 3
112
98
  summary: stupid simple fetching of the weather using google's api