tropical 0.1.5 → 0.1.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: 773b86e10df59f914fc84c955a6c9098f51cce682b027eb8b3052e4f7f622d2e
4
- data.tar.gz: 7dd04dfbcaa8bf919f40edb1f4a8be500d4c18b40a4c293dd6cc87675677c118
3
+ metadata.gz: 951846b67756ef790d084887e5656c8073d78ca755a8503807ad99a283afdb5d
4
+ data.tar.gz: a56eeb6e6d44724aacfc237fbd3a1d0d82a9d688c429ba6c971794a5bcf445c0
5
5
  SHA512:
6
- metadata.gz: 99efe601b047c5bc204d9a70c403e23a559f1a321e3f55531d32c82daefa1981e498a54625056cdc0be93729708e47805e2e4672913e54df4affa0abb54372d5
7
- data.tar.gz: bff9a8af48ec17d96be5f7b6b3749de6681acc227a1ac058bcb2f4221e2b3205bb2009499d0c7e904a4e520c1ad2feedc182985233aed38c22241cade4f8fea5
6
+ metadata.gz: a9b99a891cc45d53c9dce81d02ef5356ee972bbfca519240d4ef7234bdd5fe6b84810240b37a352ad56bb105482cbdf88aa72f6051b4bb0e3eaeb56e8a996405
7
+ data.tar.gz: ba09b867c7ea1dc302d2573cf0190205611667a7a83069107a648a49040d99c37a24ffed0ffc51bab23081397b8cee45631b68de6ea8c30f8b63f7694697cae1
data/CODE_OF_CONDUCT.md CHANGED
@@ -69,8 +69,6 @@ Community leaders will follow these Community Impact Guidelines in determining t
69
69
 
70
70
  **Community Impact**: Demonstrating a pattern of violation of community standards, including sustained inappropriate behavior, harassment of an individual, or aggression toward or disparagement of classes of individuals.
71
71
 
72
- **Consequence**: A permanent ban from any sort of public interaction within the community.
73
-
74
72
  ## Attribution
75
73
 
76
74
  This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 2.0,
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- tropical (0.1.5)
4
+ tropical (0.1.6)
5
5
  activesupport (~> 6.1.2.1)
6
6
 
7
7
  GEM
data/lib/tropical.rb CHANGED
@@ -17,25 +17,12 @@ module Tropical
17
17
  load_data(response)
18
18
  end
19
19
 
20
- def average_temp_by_days
21
- group_by_days = list.group_by { |item| item[:datetime].to_date }
22
- days = []
23
-
24
- group_by_days.each do |day, temps|
25
- average = temps.sum { |time| time[:temp] } / temps.length
26
-
27
- days << { day: day, average: average.round }
28
- end
29
-
30
- days
31
- end
32
-
33
20
  def city
34
21
  data["city"]["name"]
35
22
  end
36
23
 
37
24
  def current_date
38
- list.first[:datetime]
25
+ list.first[:dt]
39
26
  end
40
27
 
41
28
  def current_temp
@@ -46,35 +33,55 @@ module Tropical
46
33
  list.first[:description]
47
34
  end
48
35
 
36
+ def scale
37
+ units = params[:units]
38
+
39
+ return "°C" if units == "metric"
40
+ return "°F" if units == "imperial"
41
+
42
+ "°K"
43
+ end
44
+
45
+ def full_sumary
46
+ "#{sumary_current_day} "\
47
+ "Média para os próximos dias: "\
48
+ "#{sumary_days_forecast}"
49
+ end
50
+
51
+ def sumary_current_day
52
+ "#{current_temp.round}#{scale} e #{current_weather} em "\
53
+ "#{city} em #{current_date.strftime("%d/%m")}."
54
+ end
55
+
56
+ def sumary_days_forecast
57
+ list = average_temp_by_days.map do |x|
58
+ "#{x[:average]}#{scale} em #{x[:day].strftime("%d/%m")}"
59
+ end
60
+
61
+ "#{list.to_sentence(words_connector: ", ", last_word_connector: " e ")}."
62
+ end
63
+
49
64
  def list
50
65
  data["list"].map do |list_item|
51
66
  {
52
- datetime: Time.at(list_item["dt"]),
67
+ dt: Time.zone.at(list_item["dt"]),
53
68
  temp: list_item["main"]["temp"],
54
69
  description: list_item["weather"].first["description"]
55
70
  }
56
71
  end
57
72
  end
58
73
 
59
- def scale
60
- units = params[:units]
61
-
62
- return "°C" if units == "metric"
63
- return "°F" if units == "imperial"
74
+ def average_temp_by_days
75
+ group_by_days = list.group_by { |item| item[:dt].to_date }
76
+ days = []
64
77
 
65
- "°K"
66
- end
78
+ group_by_days.each do |day, temps|
79
+ average = temps.sum { |time| time[:temp] } / temps.length
67
80
 
68
- def sumary
69
- message = format_message
81
+ days << { day: day, average: average.round }
82
+ end
70
83
 
71
- "#{message.current_temp}#{scale} e #{current_weather} em #{city} em #{message.current_date}. "\
72
- "Média para os próximos dias: "\
73
- "#{message.first_day_average}#{scale} em #{message.first_day_date}, "\
74
- "#{message.second_day_average}#{scale} em #{message.second_day_date}, "\
75
- "#{message.third_day_average}#{scale} em #{message.third_day_date}, "\
76
- "#{message.fourth_day_average}#{scale} em #{message.fourth_day_date} "\
77
- "e #{message.fifth_day_average}#{scale} em #{message.fifth_day_date}."
84
+ days
78
85
  end
79
86
 
80
87
  private
@@ -89,23 +96,6 @@ module Tropical
89
96
  BASE_URL + link
90
97
  end
91
98
 
92
- def format_message
93
- OpenStruct.new(
94
- current_temp: current_temp.round,
95
- current_date: current_date.strftime("%d/%m"),
96
- first_day_average: average_temp_by_days[0][:average],
97
- first_day_date: average_temp_by_days[0][:day].strftime("%d/%m"),
98
- second_day_average: average_temp_by_days[1][:average],
99
- second_day_date: average_temp_by_days[1][:day].strftime("%d/%m"),
100
- third_day_average: average_temp_by_days[2][:average],
101
- third_day_date: average_temp_by_days[2][:day].strftime("%d/%m"),
102
- fourth_day_average: average_temp_by_days[3][:average],
103
- fourth_day_date: average_temp_by_days[3][:day].strftime("%d/%m"),
104
- fifth_day_average: average_temp_by_days[4][:average],
105
- fifth_day_date: average_temp_by_days[4][:day].strftime("%d/%m")
106
- )
107
- end
108
-
109
99
  def load_data(response)
110
100
  @status = response.code
111
101
  @data = case response
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Tropical
4
- VERSION = "0.1.5"
4
+ VERSION = "0.1.6"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tropical
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Valter
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-02-13 00:00:00.000000000 Z
11
+ date: 2021-02-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport