myweatherforecast 1.0.5 → 1.0.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 76cbe1a9ee289baf82c0081e2b1f446017a950b811d35ea8b5c087e1f4be23ed
4
- data.tar.gz: 05bdc15ba9fcb48a9746b581e2601eb1ac51599e05af17691188b02b902b436f
3
+ metadata.gz: f610e30f76a028070f0260348aa5e6ebd35b10973a0df575dd932522a39f0739
4
+ data.tar.gz: e2b54d313adfd0fe4b8a3b7a1fb5db1629f28641667816cea14b8572e336b61c
5
5
  SHA512:
6
- metadata.gz: 1529784ef4a4229e7e949781219d02691c5f41096bbbba36f9db747d1f3550e5f54e557e22ab2627e54a4cb493195d3da42c910848e6d9e63ef8372bc3ceafc1
7
- data.tar.gz: 8d00c0cfee676ef590c17601b5fe35bfadf01d44e1d2227cbc811ba80ebda3870b707960d8debf8a48d0fee8286af0ccf3e691c652c88ad2141dab2a2a8e70f5
6
+ metadata.gz: 5d5128ab239532d9b269ba84cc6069622aea07e622f475ee772f73619643036622efd170ef66b445b7dcfaa25b5f0dfcbf9925f1f537a6517fc96af250aaa563
7
+ data.tar.gz: 16f79ee28d46e4d27902db34f0d6f423976a4885ba08916cd37fc012698d78623599b4ffe0e52bbda54e7d96d694d794776cd4fbc8797afddd7597ec88b09982
checksums.yaml.gz.sig CHANGED
@@ -1,7 +1,2 @@
1
- �Jን�c5p�=�^Ш�5~��)^d�z�fc?'ͼr"_d�<J�� ��zu�� ���z����6�w���6Dm����zЌ� @hT!&��s��L��Z���H
2
- 2��V�#
3
- c� r��qcv{��*F�$;���]����TK�t�,��2�G��p�Ϋ����m�7�=Ԕ��ۥ�����f���:�Js�c���Jn;`f��$�K�]�x\g�@���9���"Zf�e%��љ֖}�#�vK�2s���R��%"���1G�(%��Ʒ:�`�qE��C�9��*�u�����j�΋K�c�"��<!\�;I�K��'��5a��MgL�`�T�9;0
4
-
5
- IJ]�a
6
-
7
- ��&"�C�u�蕨?=D�]
1
+ v���A�yY"K訮�����Q����M���
8
2
 
3
+ \�aI])���ސLH&p�e|5�֚��.ICg�n����?��e
@@ -14,31 +14,31 @@ require 'forecast_io'
14
14
  # SI explained: https://en.wikipedia.org/wiki/SI_derived_unit
15
15
 
16
16
  class MyWeatherForecast
17
-
17
+
18
18
  attr_reader :coordinates
19
19
 
20
20
  def initialize(*location, api_key: nil, units: :auto, timeout: 3, \
21
21
  symbols: true)
22
22
  lat, lon = if location[0].is_a? Array then
23
-
23
+
24
24
  location[0]
25
-
25
+
26
26
  elsif location.any?
27
-
27
+
28
28
  results = Geocoder.search(location.first)
29
29
  return puts 'location not found' unless results.any?
30
30
  results[0].coordinates
31
-
31
+
32
32
  else
33
-
34
- h = JSON.parse open('http://jsonip.com/').read
33
+
34
+ h = JSON.parse URI.open('http://jsonip.com/').read
35
35
  Geocoder.configure(timeout: timeout)
36
36
  results = Geocoder.search(h['ip'])
37
37
  return puts 'could not determine location from IP address' unless \
38
38
  results.any?
39
39
  results[0].coordinates
40
-
41
- end
40
+
41
+ end
42
42
 
43
43
  ForecastIO.api_key = api_key
44
44
 
@@ -46,54 +46,54 @@ class MyWeatherForecast
46
46
  @forecast = ForecastIO.forecast(lat, lon, params: params)
47
47
 
48
48
  autounits = @forecast['flags']['units']
49
-
49
+
50
50
  @tlabel = if symbols then
51
51
  autounits == 'us' ? '°F' : '°C'
52
52
  else
53
53
  autounits == 'us' ? 'degrees Farenheit' : 'degrees Celcius'
54
54
  end
55
-
55
+
56
56
  @coordinates = [lat, lon]
57
57
  @symbols = symbols
58
58
 
59
59
  end
60
60
 
61
61
  class Hourly
62
-
62
+
63
63
  attr_reader :today
64
64
 
65
65
  def initialize(forecast, tlabel, i=0)
66
-
66
+
67
67
  @forecast, @tlabel, @i = forecast, tlabel, i
68
-
68
+
69
69
  @x, @hourly_data = if i > 0 then
70
70
  [forecast['hourly']['data'][i], forecast['hourly']['data'][i..-1]]
71
71
  else
72
72
  [forecast.currently, forecast['hourly']['data']]
73
73
  end
74
-
74
+
75
75
  #@speed_label = 'kph'
76
76
  @speed_label = 'mph' #if @forecast['flags']['units'][/^uk2$/]
77
77
 
78
- end
79
-
78
+ end
79
+
80
80
  def at(raw_hour)
81
-
81
+
82
82
  hour = Time.parse(raw_hour).hour
83
83
  i = 0
84
84
 
85
85
  return if Time.at(@hourly_data[i]['time']).hour > hour
86
-
86
+
87
87
  i += 1 until Time.at(@hourly_data[i]['time']).hour == hour
88
88
 
89
89
  Hourly.new(@forecast, @tlabel, i+@i)
90
90
 
91
91
  end
92
-
92
+
93
93
  def ahead(advance=2)
94
-
94
+
95
95
  current_hour = Time.at(@hourly_data[0]['time']).hour + advance
96
-
96
+
97
97
  name = case current_hour
98
98
  when 12..17
99
99
  :afternoon
@@ -105,18 +105,18 @@ class MyWeatherForecast
105
105
  :morning
106
106
  when night_time.hour..23
107
107
  :night
108
- end
109
-
108
+ end
109
+
110
110
  method(name).call
111
-
111
+
112
112
  end
113
-
114
- def afternoon() period(12, 17) end
115
- def detail() period(0, 23) end
113
+
114
+ def afternoon() period(12, 17) end
115
+ def detail() period(0, 23) end
116
116
  def early_hours() period(0, 5) end
117
-
117
+
118
118
  def emoji()
119
-
119
+
120
120
  h = {
121
121
  'clear-day' => :sun,
122
122
  'clear-night' => :night_with_stars,
@@ -128,61 +128,61 @@ class MyWeatherForecast
128
128
  'cloudy' => :cloud,
129
129
  'partly-cloudy-day' => :sun_behind_cloud,
130
130
  'partly-cloudy-night' => :cloud
131
- }
132
-
131
+ }
132
+
133
133
  Emoji2020.new(h[icon()]).to_s
134
-
134
+
135
135
  end
136
-
136
+
137
137
  def evening() period(17, night_time.hour+1) end
138
- def morning() period(6, 12) end
139
- def night() period(night_time.hour, 23) end
140
-
138
+ def morning() period(6, 12) end
139
+ def night() period(night_time.hour, 23) end
140
+
141
141
  def night_time()
142
142
  Time.at(@day.sunsetTime)
143
- end
144
-
143
+ end
144
+
145
145
  def humidity()
146
146
  @x.humidity
147
147
  end
148
-
148
+
149
149
  def icon()
150
150
  @x.icon
151
151
  end
152
-
152
+
153
153
  def noon()
154
154
  at_hour 12
155
155
  end
156
-
156
+
157
157
  alias midday noon
158
158
 
159
159
  def to_s
160
160
  r = "%s: %d%s, %s" % [self.time.strftime("%-I%P"), @x.temperature.round, \
161
161
  @tlabel, @x.summary]
162
- r << ", %s" % [windspeed] if r[/windy|breezy/i]
162
+ r << ", %s" % [windspeed] if r[/windy|breezy/i]
163
163
  r
164
164
  end
165
165
 
166
166
  def summary()
167
167
  @x.summary
168
168
  end
169
-
169
+
170
170
  def sunrise()
171
171
  @day.sunrise
172
172
  end
173
-
173
+
174
174
  def sunset()
175
175
  @day.sunset
176
- end
177
-
178
- alias night_time sunset
179
-
176
+ end
177
+
178
+ alias night_time sunset
179
+
180
180
  def temperature
181
181
  "%s°" % @x.temperature.round
182
182
  end
183
-
183
+
184
184
  alias temp temperature
185
-
185
+
186
186
  def time
187
187
  Time.at @x.time
188
188
  end
@@ -190,43 +190,43 @@ class MyWeatherForecast
190
190
  def visibility()
191
191
  @x.visibility
192
192
  end
193
-
193
+
194
194
  def windspeed()
195
195
  "%s%s" % [@x.windSpeed.round, @speed_label]
196
196
  end
197
-
197
+
198
198
  private
199
-
199
+
200
200
  def at_hour(n)
201
201
 
202
202
  i = 0
203
203
 
204
- return if Time.at(@hourly_data[i]['time']).hour > n
204
+ return if Time.at(@hourly_data[i]['time']).hour > n
205
205
  len = @hourly_data.length
206
206
  i += 1 until Time.at(@hourly_data[i]['time']).hour == n or i >= len - 1
207
207
 
208
208
  Hourly.new(@forecast, @tlabel, i+@i)
209
209
  end
210
-
210
+
211
211
  def period(hr1, hr2)
212
-
213
- current_hour = Time.at(@hourly_data[0]['time']).hour
214
-
212
+
213
+ current_hour = Time.at(@hourly_data[0]['time']).hour
214
+
215
215
  return if current_hour >= hr2
216
-
216
+
217
217
  hr1 = current_hour if current_hour > hr1
218
218
  hr2 = @hourly_data.length - 2 if hr2 + 1 > @hourly_data.length - 1
219
219
  (hr1..hr2).map {|n| at_hour n}
220
-
220
+
221
221
  end
222
-
222
+
223
223
  end
224
-
225
-
224
+
225
+
226
226
  class Daily < Hourly
227
-
227
+
228
228
  def initialize(forecast, tlabel, d=0)
229
-
229
+
230
230
  @forecast = forecast
231
231
 
232
232
  @x = forecast['daily']['data'][d]
@@ -235,51 +235,51 @@ class MyWeatherForecast
235
235
  found = forecast['hourly']['data'].detect do |hour|
236
236
  Time.at(@x.time).to_date == Time.at(hour.time).to_date
237
237
  end
238
-
239
- @i = forecast['hourly']['data'].index found
240
-
238
+
239
+ @i = forecast['hourly']['data'].index found
240
+
241
241
  return if @i.nil?
242
242
 
243
243
  @hourly_data = forecast['hourly']['data'][@i..-1]
244
244
  @day = self
245
-
245
+
246
246
  end
247
-
247
+
248
248
  def day()
249
249
  Date::ABBR_DAYNAMES[self.time.wday]
250
250
  end
251
-
251
+
252
252
  def to_s
253
-
254
- label = self.time.to_date == Time.now.to_date ? 'Today' : day()
253
+
254
+ label = self.time.to_date == Time.now.to_date ? 'Today' : day()
255
255
  mask = @symbols ? "%s: ▽%s ▲%s, %s" : "%s: %s %s, %s"
256
256
  mask % [label, tempmin, tempmax, @x.summary]
257
-
257
+
258
258
  end
259
-
259
+
260
260
  def sunrise()
261
261
  Time.at @x.sunriseTime
262
262
  end
263
-
263
+
264
264
  def sunset()
265
265
  Time.at @x.sunsetTime
266
- end
267
-
266
+ end
267
+
268
268
  def temperature()
269
269
  end
270
270
 
271
271
  def tempmin
272
272
  "%s°" % [@x.temperatureMin.round]
273
273
  end
274
-
274
+
275
275
  def tempmax
276
276
  "%s°" % [@x.temperatureMax.round]
277
277
  end
278
-
278
+
279
279
 
280
280
  end
281
-
282
-
281
+
282
+
283
283
  # e.g.
284
284
  # require 'myweatherforecast'
285
285
  #
@@ -295,32 +295,32 @@ class MyWeatherForecast
295
295
  end
296
296
 
297
297
  def hours()
298
-
298
+
299
299
  len = @forecast['hourly']['data'].length
300
300
  len.times.map {|i| Hourly.new @forecast, @tlabel, i}
301
301
 
302
302
  end
303
-
303
+
304
304
  def now()
305
305
  Hourly.new(@forecast, @tlabel)
306
306
  end
307
-
307
+
308
308
  def today()
309
309
  Daily.new(@forecast, @tlabel)
310
310
  end
311
-
312
- alias currently now
313
-
311
+
312
+ alias currently now
313
+
314
314
  def tonight()
315
315
  Daily.new(@forecast, @tlabel).night
316
316
  end
317
-
317
+
318
318
  alias this today
319
-
320
- def tomorrow()
319
+
320
+ def tomorrow()
321
321
  Daily.new(@forecast, @tlabel, 1)
322
- end
323
-
322
+ end
323
+
324
324
  def monday() day :monday end
325
325
  def tuesday() day :tuesday end
326
326
  def wednesday() day :wednesday end
@@ -328,7 +328,7 @@ class MyWeatherForecast
328
328
  def friday() day :friday end
329
329
  def saturday() day :saturday end
330
330
  def sunday() day :sunday end
331
-
331
+
332
332
  alias sat saturday
333
333
  alias sun sunday
334
334
  alias mon monday
@@ -336,31 +336,31 @@ class MyWeatherForecast
336
336
  alias wed wednesday
337
337
  alias thu thursday
338
338
  alias fri friday
339
-
339
+
340
340
  def next_3days()
341
-
341
+
342
342
  days().take(4)[1..-1].map do |x|
343
- "%s: %s - %s #{x.emoji} %s" % [x.time.strftime("%a"), x.tempmin,
343
+ "%s: %s - %s #{x.emoji} %s" % [x.time.strftime("%a"), x.tempmin,
344
344
  x.tempmax, x.summary]
345
- end.join("\n")
346
-
345
+ end.join("\n")
346
+
347
347
  end
348
-
348
+
349
349
  def next_5days()
350
-
350
+
351
351
  days().take(6)[1..-1].map do |x|
352
- "%s: %s %s" % [x.time.strftime("%a"), x.tempmax, x.summary]
352
+ "%s: %s %s" % [x.time.strftime("%a"), x.tempmax, x.summary]
353
353
  end.join("\n")
354
354
 
355
- end
355
+ end
356
356
 
357
357
  private
358
-
358
+
359
359
  def day(name)
360
-
360
+
361
361
  name = (name.to_s + '?').to_sym
362
-
363
- d = 0
362
+
363
+ d = 0
364
364
  d += 1 until Time.at(@forecast['daily']['data'][d].time).method(name).call
365
365
  Time.at(@forecast['daily']['data'][d].time)
366
366
  Daily.new(@forecast, @tlabel, d)
data.tar.gz.sig CHANGED
@@ -1,2 +1,2 @@
1
- U F?�܍�Չ�KHb������-Y�d�"��u��GT)�k�Z@���,ي�5h� �#(�Y�R�^q���^��S�_s|t�8= s��?�og:�G�(@�Sf^G?�'���,�@����@�l5,0��L86̱篸��3���Վ?6>��j��sѰۭ 烣��[�G��[�ӽܹ��Ӕ�,� �S~w�a������2]�Z'˭�Q�������B�vwn_�ԸT=�l@�" 0% M�� �g��]Q�
2
- Bb5s����� ������R�*��
1
+ )�V&�9�^Y�u Du��
2
+ ��}7��ѕ�(5hr�`AJojP�=�%���;d1w�YB�t���D���hQ���KU'N��1�#Q:Q���\�s}N�����&��I��^?�'�lZ:�����6���1��(6��i�|,Yw�}R�P_3>�-ب��϶�n�ش��#�0x�m1�����h��WC���vS6+q�������v�Qzi�#�{@F��]���4��!? 9�UD;�!?�(7L5g:��y2�*������S����9r^��,�A?��\�ՊW]�!H��"U�~RۥA��U������=����.�����P����f��y:���<��{���)�v�m��8Z|,Ss���rfnE~�iZ�{��ev�����ۜ
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: myweatherforecast
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.5
4
+ version: 1.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -11,31 +11,31 @@ cert_chain:
11
11
  - |
12
12
  -----BEGIN CERTIFICATE-----
13
13
  MIIEXjCCAsagAwIBAgIBATANBgkqhkiG9w0BAQsFADAsMSowKAYDVQQDDCFnZW1t
14
- YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMjAwNDI2MDkwMDEzWhcN
15
- MjEwNDI2MDkwMDEzWjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
16
- cnRzb24vREM9ZXUwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQDy5Ev/
17
- +TmmW2Zbqs3nwm1ZKztFwS4HKierISuHHK9LRVUoocJ1HAMt65t9K0FqLHcPw8Cq
18
- A83Hh6pyOC38Q6xE0bACRz05jL/AKWQU+KF2o9gyph4+b/Y+S51627/nJPaaPl/i
19
- /AAkCPX+XYZZx6Ts3c4bajWbBZQvduKz+Mgns0HHfZyU4OL9PhjQSpL4w+b53C7I
20
- rROHOcskWOmKhqD04VLoB0k7IoKQ6iD6AJLGwcLPIEKcQ00F6kiA9lFYUt9Iw/YM
21
- Ci1W6SO7b80+7nYLeKgYMF3xfZwUB7ZwrIv3oNYZqLmSnk2NlDlibYNOd8CEm51d
22
- il/LCYqBjsx8hQxddQ7bqckkMHI2aWfnB8CH/l3r7vWvkKrlyWkA+yc5Hain86eu
23
- qip4E40kzjT1dKNuayS8MWYqD0kGrvZd5J6mm0w1SVSCmk5HVR68WkpNT63IXS5Y
24
- tqflllrFbf1onOkOw3GOrN+IKGVnBdxZEpgwnROXTnswdUJ7Q8POSiK2Qu8CAwEA
25
- AaOBijCBhzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUcUjjw62h
26
- LOtlQ5ITbp0+TWaMl9EwJgYDVR0RBB8wHYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0
14
+ YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMjExMTE4MjAzNTU2WhcN
15
+ MjIxMTE4MjAzNTU2WjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
16
+ cnRzb24vREM9ZXUwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQC4eL0X
17
+ SYCTqoyqfk6AmnRvGe/0sgrAywdGq4FJb4B56LmiPEJI6UH8HNxsSCtqhvSXg35e
18
+ 5ZcWu9OwFrZiSqJmj8JaLVLTtm094hBXKgDFCUFhlVsdUZ8G/0c+J3uDjM5ucCyX
19
+ gRfKBoTnGup7pGstGChVMn00RzcsgfO30p1dxQcYTxWsbqEb1hlfmVIfRhmDdq4T
20
+ tLjyW8ZhgblNfQIlTnRB81x3A1E7ECL4nQkiKUjmzipYOXW34st795FA5rQlyiKC
21
+ PgnsUa2QpUcZVS7Rx2GfSVoftupHEPNUUuCnW1q0bihUf6Y34n4Ha0bFl0Q1mlEk
22
+ 1mSE0m3XHQqFmJYqLehMpMsOUQSRwjDPRO1ciMbNT+QaoKKaeYP6LALC1sEODrNZ
23
+ ux05Zw5jUgIMc046rFRR/tBqM6r+WvGbemLMNpOvQwwMkPJmpu0ROmAAFjZyCis6
24
+ qllnE+P9M7S0ULLFkPnoCQE62fFGpHkcoW75rYplj42MZxz6bMtw5xuf718CAwEA
25
+ AaOBijCBhzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUNEqVjENP
26
+ Ii49GrSvh1D69uhDT/AwJgYDVR0RBB8wHYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0
27
27
  c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1hc3RlckBqYW1lc3JvYmVydHNvbi5ldTAN
28
- BgkqhkiG9w0BAQsFAAOCAYEAUzolYndXxgA1eH/QTx1gbEK4ay7UW4/BUMZcenlM
29
- Xx841MdN5yfy91NWeo/Qy0ruxCnNtCvXsVEx6P1TVLaZBxkU/i/H3TgNrOsqgRHz
30
- 8S428Xg3PTTYkMf27+sLMO8uXmEYeCjrbdEyUBiCtmPht776T2nepwOJNwqgb8x8
31
- qSMtqEYZxY3x+4Dd9CNf2xQujQ26Q4qyZnzYIuZQb9aHMgAiww3rst8Kxc83pggI
32
- It47yWd2GhjXd7fv/9MZ0Uhfov+ExsqSr9H0HDjf8KCL+Y9OzNAW7ixpQpXK0pQJ
33
- i54CNZiaGNwJnBVp9USO7cA5jCKN1Iouaj/Vbie5XXhiGnOZ/cyfna/K/fX10/lh
34
- JL0NiXQMvY3FTEjgq7BZxit1Q7dE07TH54CD/f5EMNm9v/f5BKVPDF+pfAUrZnKy
35
- T8ZItjfCqcG6MNMdmPqplYAqpSJzVB9ucdkrz8Ia5Lf1waJw6Dd0m1zHWYSofIH8
36
- HuG3HnRIMQNQE2s1PFtxmX2w
28
+ BgkqhkiG9w0BAQsFAAOCAYEAT0hmJ5VYOXO6p9xQlh1WGOzDa0lKn8n8a1yIjr+s
29
+ G/cc6Ubk492Pg3wwogbp6XEhZkbWhupyi1I+j7Tk8W5QQ//ZNgc5QVBCLuDRv9GI
30
+ YEM7k4laUkARx79bemoiqedrMR63E1SDqqlOIOC77Wyz8ZK264Adj+yW3CizoX15
31
+ d2ji2ZlfG5itpXTdATQEN2r+FaXWwdom+xxKg2/so8/ZHylNr7pVKWzvO/Pc7GaZ
32
+ 7l+jA4xr1qSM7k+UKSw2hKtIyjzXRjUkmdusaT+EvuajIvGHuATk9VnIFK3K+DcE
33
+ p33f9tL1S5hvcHIuITP/R6DbYBn6cbrmsKWGQFcxaBYzjmvXeriqV+U7QAbZD7yU
34
+ cfNYElTbzllkLfSpLAxf6SDmp8JjVYm3lWZ/AiSZTY5GDSLy/gAfv3wI2uvxi61h
35
+ Xe+ZY1GQbdQEDFDEvbHvn24bxuz3fQ4VF8L39HzvwQn9EXjvOAxOoQEHJAPS+uAn
36
+ iVXeBn9xu1pLJZy7L6X+Op2j
37
37
  -----END CERTIFICATE-----
38
- date: 2020-07-17 00:00:00.000000000 Z
38
+ date: 2021-11-18 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: forecast_io
@@ -61,22 +61,22 @@ dependencies:
61
61
  name: geocoder
62
62
  requirement: !ruby/object:Gem::Requirement
63
63
  requirements:
64
- - - "~>"
65
- - !ruby/object:Gem::Version
66
- version: '1.6'
67
64
  - - ">="
68
65
  - !ruby/object:Gem::Version
69
- version: 1.6.3
66
+ version: 1.7.0
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: '1.7'
70
70
  type: :runtime
71
71
  prerelease: false
72
72
  version_requirements: !ruby/object:Gem::Requirement
73
73
  requirements:
74
- - - "~>"
75
- - !ruby/object:Gem::Version
76
- version: '1.6'
77
74
  - - ">="
78
75
  - !ruby/object:Gem::Version
79
- version: 1.6.3
76
+ version: 1.7.0
77
+ - - "~>"
78
+ - !ruby/object:Gem::Version
79
+ version: '1.7'
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: emoji2020
82
82
  requirement: !ruby/object:Gem::Requirement
@@ -98,7 +98,7 @@ dependencies:
98
98
  - !ruby/object:Gem::Version
99
99
  version: 0.2.1
100
100
  description:
101
- email: james@jamesrobertson.eu
101
+ email: digital.robertson@gmail.com
102
102
  executables: []
103
103
  extensions: []
104
104
  extra_rdoc_files: []
@@ -123,7 +123,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
125
  requirements: []
126
- rubygems_version: 3.0.3
126
+ rubyforge_project:
127
+ rubygems_version: 2.7.10
127
128
  signing_key:
128
129
  specification_version: 4
129
130
  summary: This gem is a wrapper of the forecast_io gem.
metadata.gz.sig CHANGED
Binary file