open-meteo 0.3.1 → 0.3.2

Sign up to get free protection for your applications and to get access to all the features.
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