open-meteo 0.3.1 → 0.3.2

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: f89e15f29bfd187c332d5543477221061804b3a03e7a9773adebc62639284ab3
4
- data.tar.gz: e2fd0e2e6c3b78a5448101ad8982da048e3532e4cb6089cfdc5b614d350184b5
3
+ metadata.gz: 60140c0aa4f49166a8d9efef379ba7628fb663bd65c712018f7e2089f43677d5
4
+ data.tar.gz: bd54e00eabe5518725f32b790e8da3257fc985e0e678d0220343ac528858fbe5
5
5
  SHA512:
6
- metadata.gz: e9e564dff02d8e28c5a3c45ef418b901da1dc5dc565231dd9608e8d0c02b8d1b340341d89ce2af7dcf7bec7f631cf38e4460a472d33cdcbec90cc5628767ef1d
7
- data.tar.gz: f32d7c9de50a39a420aa64e8a7962f3c2fdf27f1bb04e5e86a0e2170077803ca9d31a14904fb0c839c3ef0f511e41d25667f90473501c2746f6beab717f980db
6
+ metadata.gz: 17a87ed4b29b65f93ff21bfad1c2579f37faa5eb7677f7598da708438e1888d54729af4bd1946328a0b37dc14f8fef9711bab95ab3619ccc7e16b6e0c300302f
7
+ data.tar.gz: 205a30320db01bf6406e69c02633c1799d81f660962b05d13749cb9f92c630044224833cd88bd1b46bcfaf85656b5067958fe94d636d92b861b7aed9bb5e82ec
@@ -5,15 +5,15 @@ module OpenMeteo
5
5
  class UrlBuilder
6
6
  API_PATHS = { forecast: "v1/forecast", forecast_dwd_icon: "v1/dwd-icon" }.freeze
7
7
 
8
- attr_reader :api_config
8
+ attr_reader :config
9
9
 
10
- def initialize(api_config: OpenMeteo::Client::Config.new)
11
- @api_config = api_config
10
+ def initialize(config: OpenMeteo::Client::Config.new)
11
+ @config = config
12
12
  end
13
13
 
14
14
  def build_url(endpoint, *args)
15
15
  relative_path = API_PATHS.fetch(endpoint.to_sym)
16
- full_path = [api_config.url, relative_path].join("/")
16
+ full_path = [config.url, relative_path].join("/")
17
17
 
18
18
  URI::DEFAULT_PARSER.escape(format(full_path, args))
19
19
  end
@@ -11,23 +11,23 @@ module OpenMeteo
11
11
  class Timeout < StandardError
12
12
  end
13
13
 
14
- attr_reader :api_config, :agent
14
+ attr_reader :config, :agent
15
15
 
16
16
  def initialize(
17
- api_config: OpenMeteo::Client::Config.new,
18
- url_builder: nil,
19
- agent: FaradayConnection.new.connect
17
+ config: OpenMeteo::Client::Config.new,
18
+ url_builder: UrlBuilder.new(config:),
19
+ agent: FaradayConnection.new(config:)
20
20
  )
21
- @api_config = api_config
22
- @url_builder = url_builder || UrlBuilder.new(api_config:)
21
+ @config = config
22
+ @url_builder = url_builder
23
23
  @agent = agent
24
24
  end
25
25
 
26
26
  def get(endpoint_name, *endpoint_args, **get_params)
27
27
  endpoint = url_builder.build_url(endpoint_name, *endpoint_args)
28
28
 
29
- agent.get do |request|
30
- request.params = get_params.merge({ apikey: api_config.api_key }.compact)
29
+ agent.connect.get do |request|
30
+ request.params = get_params.merge({ apikey: config.api_key }.compact)
31
31
  request.url(endpoint)
32
32
  end
33
33
  rescue Faraday::ConnectionFailed => e
@@ -20,6 +20,7 @@ module OpenMeteo
20
20
  conn.options[:open_timeout] = config.timeouts[:open_timeout]
21
21
 
22
22
  conn.request :retry, RETRY_OPTIONS
23
+ conn.response :logger
23
24
  end
24
25
  end
25
26
  end
@@ -12,7 +12,11 @@ module OpenMeteo
12
12
  class WrongLocationType < StandardError
13
13
  end
14
14
 
15
- def initialize(client: OpenMeteo::Client.new, response_wrapper: OpenMeteo::ResponseWrapper.new)
15
+ def initialize(
16
+ config: OpenMeteo::Client::Config.new,
17
+ client: OpenMeteo::Client.new(config:),
18
+ response_wrapper: OpenMeteo::ResponseWrapper.new(config:)
19
+ )
16
20
  @client = client
17
21
  @response_wrapper = response_wrapper
18
22
  end
@@ -3,6 +3,8 @@ module OpenMeteo
3
3
  # Wrap the JSON body response from the OpenMeteo request.
4
4
  #
5
5
  class ResponseWrapper
6
+ attr_reader :config
7
+
6
8
  def initialize(config: OpenMeteo::Client::Config.new)
7
9
  @config = config
8
10
  end
@@ -1,3 +1,3 @@
1
1
  module OpenMeteo
2
- VERSION = "0.3.1".freeze
2
+ VERSION = "0.3.2".freeze
3
3
  end
data/lib/open_meteo.rb CHANGED
@@ -1,3 +1,4 @@
1
+ require "open_meteo/faraday_connection"
1
2
  require "open_meteo/types"
2
3
  require "open_meteo/configuration"
3
4
  require "open_meteo/entities/location"
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.1
4
+ version: 0.3.2
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-03-08 00:00:00.000000000 Z
11
+ date: 2024-03-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dry-struct