myweatherforecast 1.0.5 → 1.0.6

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.
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