powered_wunderground 0.0.5 → 0.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 +4 -4
- data/lib/powered_wunderground.rb +1 -0
- data/lib/powered_wunderground/replacements/en.yml +18 -0
- data/lib/powered_wunderground/replacements/pt.yml +18 -0
- data/lib/powered_wunderground/response.rb +8 -3
- data/lib/powered_wunderground/version.rb +1 -1
- data/lib/powered_wunderground/weather_decorator.rb +62 -0
- metadata +4 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 77eb9e77642072172259632e6cf55a7583c4b869
|
4
|
+
data.tar.gz: 986569aea6509722dea486c25c7001b625619937
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e57d95a1bb5feaa3426b722586ed61c10957fe61874476e0582ed49bfc951fb57a2dcb8c0f49593f8c13099db9ba4fab4f544cb835ef5bf941c2f9a439d4faf8
|
7
|
+
data.tar.gz: 6752cd8f453b1dd43be409a81aa5e4216a3e1ea217220f23be91857fe62303f67a35db4f23204eb55a92c15afaaa309576adfca890f1d4811764ed928c01cbf3
|
data/lib/powered_wunderground.rb
CHANGED
@@ -0,0 +1,18 @@
|
|
1
|
+
winds:
|
2
|
+
word: Winds
|
3
|
+
E: East
|
4
|
+
ENE: East-northeast
|
5
|
+
ESE: East-southeast
|
6
|
+
N: North
|
7
|
+
NE: Northeast
|
8
|
+
NNE: North-northeast
|
9
|
+
NNW: North-northwest
|
10
|
+
NW: Northwest
|
11
|
+
W: West
|
12
|
+
WNW: West-northwest
|
13
|
+
WSW: West-southwest
|
14
|
+
S: South
|
15
|
+
SE: Southeast
|
16
|
+
SSE: South-southeast
|
17
|
+
SSW: South-southwest
|
18
|
+
SW: Southwest
|
@@ -0,0 +1,18 @@
|
|
1
|
+
winds:
|
2
|
+
word: Ventos
|
3
|
+
E: Este
|
4
|
+
ENE: Este/Nordeste
|
5
|
+
ESE: Este/Sudeste
|
6
|
+
N: Norte
|
7
|
+
NE: Nordeste
|
8
|
+
NNE: Norte/Nordeste
|
9
|
+
NNO: Norte/Noroeste
|
10
|
+
"NO": Noroeste
|
11
|
+
O: Oeste
|
12
|
+
ONO: Oeste/Noroeste
|
13
|
+
OSO: Oeste/Sudoeste
|
14
|
+
S: Sul
|
15
|
+
SE: Sudeste
|
16
|
+
SSE: Sul/Sudeste
|
17
|
+
SSO: Sul/Sudoeste
|
18
|
+
SO: Sudoeste
|
@@ -15,10 +15,11 @@ module PoweredWunderground
|
|
15
15
|
|
16
16
|
def powered_output
|
17
17
|
{
|
18
|
-
|
19
|
-
text: to_s,
|
18
|
+
country: country,
|
20
19
|
city: city,
|
21
|
-
|
20
|
+
language_code: language_code,
|
21
|
+
original_text: to_s,
|
22
|
+
decorated_text: decorated_text
|
22
23
|
}
|
23
24
|
end
|
24
25
|
|
@@ -26,6 +27,10 @@ module PoweredWunderground
|
|
26
27
|
|
27
28
|
private
|
28
29
|
|
30
|
+
def decorated_text
|
31
|
+
WeatherDecorator.new(language_code, to_s).decorate
|
32
|
+
end
|
33
|
+
|
29
34
|
def fcttext_field(country)
|
30
35
|
if imperial_system.include? country
|
31
36
|
'fcttext'
|
@@ -0,0 +1,62 @@
|
|
1
|
+
module PoweredWunderground
|
2
|
+
class WeatherDecorator
|
3
|
+
attr_reader :language_code, :text
|
4
|
+
|
5
|
+
def initialize(language_code, text)
|
6
|
+
@language_code = language_code
|
7
|
+
@text = text
|
8
|
+
end
|
9
|
+
|
10
|
+
def decorate
|
11
|
+
tokens = text.split('.')
|
12
|
+
decorate_temperature_part(tokens)
|
13
|
+
decorate_wind_part(tokens)
|
14
|
+
"#{tokens.join('.')}."
|
15
|
+
end
|
16
|
+
|
17
|
+
def decorate_temperature_part(tokens)
|
18
|
+
temperature_token_index = temperature_token_position(tokens)
|
19
|
+
return if temperature_token_index.nil?
|
20
|
+
tokens[temperature_token_index].sub!(/ (\d+)F$/, ' \1ºF')
|
21
|
+
end
|
22
|
+
|
23
|
+
def decorate_wind_part(tokens)
|
24
|
+
wind_token_index = wind_token_position(tokens)
|
25
|
+
return if wind_token_index.nil?
|
26
|
+
wind_replacements.each do |replacement|
|
27
|
+
tokens[wind_token_index].gsub!(" #{replacement[0]} ", " #{replacement[1]} ")
|
28
|
+
end
|
29
|
+
tokens[wind_token_index] = wind_pronoum_handling tokens[wind_token_index]
|
30
|
+
end
|
31
|
+
|
32
|
+
def temperature_token_position(tokens)
|
33
|
+
tokens.index { |t| t.match /\s\d+(C|F)$/ }
|
34
|
+
end
|
35
|
+
|
36
|
+
def wind_token_position(tokens)
|
37
|
+
tokens.index { |t| t.match wind_replacements['word'] }
|
38
|
+
end
|
39
|
+
|
40
|
+
def wind_replacements
|
41
|
+
replacements_yaml['winds']
|
42
|
+
end
|
43
|
+
|
44
|
+
def replacements_yaml
|
45
|
+
@yaml ||= YAML.load_file(replacement_file)
|
46
|
+
end
|
47
|
+
|
48
|
+
def wind_pronoum_handling(text)
|
49
|
+
case language_code
|
50
|
+
# replace: a 10 a 15 => de 10 a 15
|
51
|
+
when 'pt' then text.gsub(/\s(a)(\s\d+\sa\s\d+)/, ' de\2')
|
52
|
+
else text
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
def replacement_file
|
57
|
+
file = File.join __dir__, 'replacements', "#{language_code}.yml"
|
58
|
+
fail "file not found #{file}" unless File.exist? file
|
59
|
+
file
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: powered_wunderground
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel Carneiro
|
@@ -99,8 +99,11 @@ files:
|
|
99
99
|
- lib/powered_wunderground.rb
|
100
100
|
- lib/powered_wunderground/connection.rb
|
101
101
|
- lib/powered_wunderground/language_mapper.rb
|
102
|
+
- lib/powered_wunderground/replacements/en.yml
|
103
|
+
- lib/powered_wunderground/replacements/pt.yml
|
102
104
|
- lib/powered_wunderground/response.rb
|
103
105
|
- lib/powered_wunderground/version.rb
|
106
|
+
- lib/powered_wunderground/weather_decorator.rb
|
104
107
|
- powered_wunderground.gemspec
|
105
108
|
homepage: https://github.com/dcarneiro/powered_wunderground
|
106
109
|
licenses: []
|