weatherfor 0.1.2 → 0.1.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.
- checksums.yaml +4 -4
- data/.rubocop.yml +9 -0
- data/Gemfile +6 -0
- data/Gemfile.lock +22 -1
- data/lib/weatherfor.rb +18 -20
- data/lib/weatherfor/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 85a546d16499c87a9f01c538667787d96fdaea6f155ef156e7d52e3226a234b3
|
4
|
+
data.tar.gz: f7a43bb84686aec7bcbb93125180fc4ab0a8aa08b68472f711f16d8edab5f54a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ead1a7c9ef8c1cd38cdab3c8bc0bdcf12857bf8310d84f7895b63caf7bd5f468e672d36ed763ac879e28c429155842e136db8da7e15d5ace9ffc0dc4d14191f7
|
7
|
+
data.tar.gz: 022301040e6e8c5de10d9d81813d9dce4b38c79ad7236a34dfa7df2226183ad8d027a4440b783e27cb6358a3e0942704b28a0a5fb74187f134eb30a0f132a602
|
data/.rubocop.yml
CHANGED
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,16 +1,23 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
weatherfor (0.1.
|
4
|
+
weatherfor (0.1.3)
|
5
5
|
|
6
6
|
GEM
|
7
7
|
remote: https://rubygems.org/
|
8
8
|
specs:
|
9
|
+
addressable (2.7.0)
|
10
|
+
public_suffix (>= 2.0.2, < 5.0)
|
9
11
|
ast (2.4.2)
|
12
|
+
crack (0.4.5)
|
13
|
+
rexml
|
10
14
|
diff-lcs (1.4.4)
|
15
|
+
docile (1.3.5)
|
16
|
+
hashdiff (1.0.1)
|
11
17
|
parallel (1.20.1)
|
12
18
|
parser (3.0.1.0)
|
13
19
|
ast (~> 2.4.1)
|
20
|
+
public_suffix (4.0.6)
|
14
21
|
rainbow (3.0.0)
|
15
22
|
rake (12.3.3)
|
16
23
|
regexp_parser (2.1.1)
|
@@ -40,7 +47,18 @@ GEM
|
|
40
47
|
rubocop-ast (1.4.1)
|
41
48
|
parser (>= 2.7.1.5)
|
42
49
|
ruby-progressbar (1.11.0)
|
50
|
+
simplecov (0.21.2)
|
51
|
+
docile (~> 1.1)
|
52
|
+
simplecov-html (~> 0.11)
|
53
|
+
simplecov_json_formatter (~> 0.1)
|
54
|
+
simplecov-html (0.12.3)
|
55
|
+
simplecov_json_formatter (0.1.2)
|
43
56
|
unicode-display_width (2.0.0)
|
57
|
+
vcr (6.0.0)
|
58
|
+
webmock (3.12.2)
|
59
|
+
addressable (>= 2.3.6)
|
60
|
+
crack (>= 0.3.2)
|
61
|
+
hashdiff (>= 0.4.0, < 2.0.0)
|
44
62
|
|
45
63
|
PLATFORMS
|
46
64
|
ruby
|
@@ -49,7 +67,10 @@ DEPENDENCIES
|
|
49
67
|
rake (~> 12.0)
|
50
68
|
rspec (~> 3.0)
|
51
69
|
rubocop
|
70
|
+
simplecov
|
71
|
+
vcr
|
52
72
|
weatherfor!
|
73
|
+
webmock
|
53
74
|
|
54
75
|
BUNDLED WITH
|
55
76
|
2.1.2
|
data/lib/weatherfor.rb
CHANGED
@@ -9,16 +9,18 @@ module Weatherfor
|
|
9
9
|
|
10
10
|
# Make the API request and parse data
|
11
11
|
class ApiConsultant
|
12
|
+
attr_reader :obj
|
13
|
+
|
12
14
|
def initialize(city, api_id)
|
13
15
|
uri = url(city, api_id)
|
14
16
|
res = Net::HTTP.get_response(uri)
|
15
17
|
|
16
|
-
@
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
18
|
+
@obj = case res.code
|
19
|
+
when '200'
|
20
|
+
JSON.parse(res.body)
|
21
|
+
else
|
22
|
+
{ error: res.message }
|
23
|
+
end
|
22
24
|
end
|
23
25
|
|
24
26
|
def weather_in_days
|
@@ -30,7 +32,7 @@ module Weatherfor
|
|
30
32
|
|
31
33
|
def avg_temp_in_days
|
32
34
|
@arr = []
|
33
|
-
@
|
35
|
+
@obj['list'].group_by { |item| Time.at(item['dt']).strftime('%m-%d-%Y') }.each do |date, data|
|
34
36
|
avg_temp = data.sum { |info| info['main']['temp'] }
|
35
37
|
avg_temp /= data.count
|
36
38
|
@arr << { avg_temp: avg_temp, date: date }
|
@@ -38,38 +40,34 @@ module Weatherfor
|
|
38
40
|
end
|
39
41
|
|
40
42
|
def today_avg_temp
|
41
|
-
@
|
43
|
+
@obj['list'][0]['main']['temp'].round
|
42
44
|
end
|
43
45
|
|
44
46
|
def city_name
|
45
|
-
@
|
47
|
+
@obj['city']['name']
|
46
48
|
end
|
47
49
|
|
48
50
|
def current_temp_desc
|
49
|
-
@
|
51
|
+
@obj['list'][0]['weather'][0]['description']
|
50
52
|
end
|
51
53
|
|
52
54
|
def current_date
|
53
55
|
Time.now.strftime('%d/%m')
|
54
56
|
end
|
55
57
|
|
58
|
+
private
|
59
|
+
|
56
60
|
def parse_avg_text
|
57
61
|
text = ''
|
58
|
-
@arr.last(
|
62
|
+
@arr.last(5).each_with_index do |item, index|
|
59
63
|
text += "#{item[:avg_temp].round(0)}°C em #{parse_date(item[:date])}"
|
60
|
-
text +=
|
64
|
+
text += ', ' if index <= 2
|
65
|
+
text += ' e ' if index == 3
|
66
|
+
text += '.' if index == 4
|
61
67
|
end
|
62
68
|
text
|
63
69
|
end
|
64
70
|
|
65
|
-
def city
|
66
|
-
@json['city']
|
67
|
-
end
|
68
|
-
|
69
|
-
def list
|
70
|
-
@json['list']
|
71
|
-
end
|
72
|
-
|
73
71
|
def parse_date(date)
|
74
72
|
date.gsub('-', '/').delete_suffix('/2021')
|
75
73
|
end
|
data/lib/weatherfor/version.rb
CHANGED