weatherfor 0.1.2 → 0.2.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/.github/workflows/gem-push.yml +42 -0
- data/.rubocop.yml +5 -0
- data/Gemfile +6 -0
- data/Gemfile.lock +22 -1
- data/README.md +5 -8
- data/lib/weatherfor.rb +18 -20
- data/lib/weatherfor/version.rb +1 -1
- metadata +7 -7
- data/.travis.yml +0 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 387939db3d543012921d2565f2daba90b705598917d81d85b6aa9f76c148e3b8
|
4
|
+
data.tar.gz: 8619e049fdb32c5c4445c9d303d2563a81030975b832ea714dc73f1912a1ecb5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5cec5dbcb435df7efd9d6e0db1406e1dcc70bfde2a08f9f9a0a133f6158d2b9533d509e0f16527ecb8540b853a675209f633612e545a73bee1a423445a47ad0c
|
7
|
+
data.tar.gz: 064fce463177f69a4a4f77df75f76b9c8c9d074c81df5e18f1837802fc87cad663065f70fe685f4b8e64e008e6c9e4128cbb7b41592c9eb69da773dd9e8a98bd
|
@@ -0,0 +1,42 @@
|
|
1
|
+
name: Ruby Gem
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
branches: [ main ]
|
6
|
+
pull_request:
|
7
|
+
branches: [ main ]
|
8
|
+
|
9
|
+
jobs:
|
10
|
+
build:
|
11
|
+
name: Build + Publish
|
12
|
+
runs-on: ubuntu-latest
|
13
|
+
|
14
|
+
steps:
|
15
|
+
- uses: actions/checkout@v2
|
16
|
+
- name: Set up Ruby 2.6
|
17
|
+
uses: actions/setup-ruby@v1
|
18
|
+
with:
|
19
|
+
ruby-version: 2.6.x
|
20
|
+
|
21
|
+
- name: Publish to GPR
|
22
|
+
run: |
|
23
|
+
mkdir -p $HOME/.gem
|
24
|
+
touch $HOME/.gem/credentials
|
25
|
+
chmod 0600 $HOME/.gem/credentials
|
26
|
+
printf -- "---\n:github: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
|
27
|
+
gem build *.gemspec
|
28
|
+
gem push --KEY github --host https://rubygems.pkg.github.com/${OWNER} *.gem
|
29
|
+
env:
|
30
|
+
GEM_HOST_API_KEY: "Bearer ${{secrets.GITHUB_TOKEN}}"
|
31
|
+
OWNER: ${{ github.repository_owner }}
|
32
|
+
|
33
|
+
- name: Publish to RubyGems
|
34
|
+
run: |
|
35
|
+
mkdir -p $HOME/.gem
|
36
|
+
touch $HOME/.gem/credentials
|
37
|
+
chmod 0600 $HOME/.gem/credentials
|
38
|
+
printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
|
39
|
+
gem build *.gemspec
|
40
|
+
gem push *.gem
|
41
|
+
env:
|
42
|
+
GEM_HOST_API_KEY: "${{secrets.RUBYGEMS_AUTH_TOKEN}}"
|
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.
|
4
|
+
weatherfor (0.2.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/README.md
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
# Weatherfor
|
2
2
|
|
3
|
+
[](https://github.com/k41n3w/weatherfor/actions/workflows/gem-push.yml) <a href="https://codeclimate.com/github/k41n3w/weatherfor/maintainability"><img src="https://api.codeclimate.com/v1/badges/11442e37d318544985fe/maintainability" /></a>
|
4
|
+
|
3
5
|
Welcome to Weatherfor gem!
|
4
6
|
|
5
7
|
The purpose of this Gem is to make API requests to OpenWeatherAPI to query meteorological data to process the average temperature for the next five days.
|
@@ -36,15 +38,10 @@ Methodo to consult average temperature in days:
|
|
36
38
|
req.weather_in_days
|
37
39
|
```
|
38
40
|
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
```
|
41
|
+
This will bring a message like that:
|
42
|
+
|
43
|
+
34°C e nublado em <cidade> em 12/12. Média para os próximos dias: 32°C em 13/12, 25°C em 14/12, 29°C em 15/12, 33°C em 16/12 e 28°C em 16/12.
|
43
44
|
|
44
|
-
Method to consult the city request data:
|
45
|
-
```ruby
|
46
|
-
req.list
|
47
|
-
```
|
48
45
|
## Development
|
49
46
|
|
50
47
|
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
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
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: weatherfor
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Caio Ramos
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-04-
|
11
|
+
date: 2021-04-20 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Sumario
|
14
14
|
email:
|
@@ -17,10 +17,10 @@ executables: []
|
|
17
17
|
extensions: []
|
18
18
|
extra_rdoc_files: []
|
19
19
|
files:
|
20
|
+
- ".github/workflows/gem-push.yml"
|
20
21
|
- ".gitignore"
|
21
22
|
- ".rspec"
|
22
23
|
- ".rubocop.yml"
|
23
|
-
- ".travis.yml"
|
24
24
|
- Gemfile
|
25
25
|
- Gemfile.lock
|
26
26
|
- LICENSE.txt
|
@@ -36,7 +36,7 @@ licenses:
|
|
36
36
|
- MIT
|
37
37
|
metadata:
|
38
38
|
homepage_uri: https://github.com/k41n3w/weatherfor
|
39
|
-
post_install_message:
|
39
|
+
post_install_message:
|
40
40
|
rdoc_options: []
|
41
41
|
require_paths:
|
42
42
|
- lib
|
@@ -51,8 +51,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
51
51
|
- !ruby/object:Gem::Version
|
52
52
|
version: '0'
|
53
53
|
requirements: []
|
54
|
-
rubygems_version: 3.1
|
55
|
-
signing_key:
|
54
|
+
rubygems_version: 3.0.3.1
|
55
|
+
signing_key:
|
56
56
|
specification_version: 4
|
57
57
|
summary: Api to check the average weather forecast for the next five days
|
58
58
|
test_files: []
|