open-meteo 0.3.2 → 0.3.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/open_meteo/client/url_builder.rb +2 -2
- data/lib/open_meteo/client.rb +3 -3
- data/lib/open_meteo/entities/location.rb +1 -1
- data/lib/open_meteo/faraday_connection.rb +1 -1
- data/lib/open_meteo/forecast/variables.rb +7 -4
- data/lib/open_meteo/forecast.rb +2 -2
- data/lib/open_meteo/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: df57745eac4454ef8165b7e202ac8b794ffa21e4e91f3a2888245fae72c2247d
|
4
|
+
data.tar.gz: a94961154f9f325b5194956236fe2153071d91711a194eabcf9b8968766183ba
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b3bc0b7c5530498b4a099503665e29c6f582aa4453a3bd564b612fa346ae56a18173f19e7a53677ba811015604a77eaaf408dbb52fde980afc6b887501843e22
|
7
|
+
data.tar.gz: f35900d202b03f878497d260ec54f6293f595a33848182b9ad106b587f60421124c9aa9b079605d4b62e4071743c883fa7dea3861354d98fe8502cb011700fb3
|
@@ -11,11 +11,11 @@ module OpenMeteo
|
|
11
11
|
@config = config
|
12
12
|
end
|
13
13
|
|
14
|
-
def build_url(endpoint,
|
14
|
+
def build_url(endpoint, path_params = {})
|
15
15
|
relative_path = API_PATHS.fetch(endpoint.to_sym)
|
16
16
|
full_path = [config.url, relative_path].join("/")
|
17
17
|
|
18
|
-
URI::DEFAULT_PARSER.escape(format(full_path,
|
18
|
+
URI::DEFAULT_PARSER.escape(format(full_path, path_params))
|
19
19
|
end
|
20
20
|
end
|
21
21
|
end
|
data/lib/open_meteo/client.rb
CHANGED
@@ -23,11 +23,11 @@ module OpenMeteo
|
|
23
23
|
@agent = agent
|
24
24
|
end
|
25
25
|
|
26
|
-
def get(endpoint_name,
|
27
|
-
endpoint = url_builder.build_url(endpoint_name,
|
26
|
+
def get(endpoint_name, path_params: {}, query_params: {})
|
27
|
+
endpoint = url_builder.build_url(endpoint_name, path_params)
|
28
28
|
|
29
29
|
agent.connect.get do |request|
|
30
|
-
request.params =
|
30
|
+
request.params = query_params.merge({ apikey: config.api_key }.compact)
|
31
31
|
request.url(endpoint)
|
32
32
|
end
|
33
33
|
rescue Faraday::ConnectionFailed => e
|
@@ -25,15 +25,18 @@ module OpenMeteo
|
|
25
25
|
:models,
|
26
26
|
OpenMeteo::Types::Strict::Array.of(OpenMeteo::Types::Strict::Symbol).default([].freeze),
|
27
27
|
)
|
28
|
+
attribute(:timezone, OpenMeteo::Types::Strict::String.optional.default(nil))
|
28
29
|
|
29
|
-
def
|
30
|
-
|
30
|
+
def to_query_params
|
31
|
+
query_params = {}
|
31
32
|
|
32
33
|
%i[current minutely_15 hourly daily models].each do |key|
|
33
|
-
|
34
|
+
query_params[key] = send(key).join(",") if send(key) != []
|
34
35
|
end
|
35
36
|
|
36
|
-
|
37
|
+
%i[timezone].each { |key| query_params[key] = send(key) if send(key) }
|
38
|
+
|
39
|
+
query_params
|
37
40
|
end
|
38
41
|
end
|
39
42
|
end
|
data/lib/open_meteo/forecast.rb
CHANGED
@@ -57,8 +57,8 @@ module OpenMeteo
|
|
57
57
|
end
|
58
58
|
|
59
59
|
def get_forecast(endpoint, location, variables)
|
60
|
-
|
61
|
-
response = client.get(endpoint,
|
60
|
+
query_params = { **location.to_query_params, **variables.to_query_params }
|
61
|
+
response = client.get(endpoint, query_params:)
|
62
62
|
|
63
63
|
@response_wrapper.wrap(response, entity: OpenMeteo::Entities::Forecast)
|
64
64
|
end
|
data/lib/open_meteo/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: open-meteo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Peter Morgenstern
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-10-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: dry-struct
|