Class: OpenMeteo::Client
- Inherits:
-
Object
- Object
- OpenMeteo::Client
- Defined in:
- lib/open_meteo/client.rb,
lib/open_meteo/client/config.rb,
lib/open_meteo/client/url_builder.rb
Overview
The client that makes the actual requests to the OpenMeteo API.
Defined Under Namespace
Classes: Config, ConnectionFailed, Timeout, UrlBuilder
Instance Attribute Summary collapse
-
#agent ⇒ Object
readonly
Returns the value of attribute agent.
-
#api_config ⇒ Object
readonly
Returns the value of attribute api_config.
Instance Method Summary collapse
- #get(endpoint_name, *endpoint_args, **get_params) ⇒ Object
-
#initialize(api_config: OpenMeteo::Client::Config.new, url_builder: nil, agent: FaradayConnection.new.connect) ⇒ Client
constructor
A new instance of Client.
Constructor Details
#initialize(api_config: OpenMeteo::Client::Config.new, url_builder: nil, agent: FaradayConnection.new.connect) ⇒ Client
Returns a new instance of Client.
16 17 18 19 20 21 22 23 24 |
# File 'lib/open_meteo/client.rb', line 16 def initialize( api_config: OpenMeteo::Client::Config.new, url_builder: nil, agent: FaradayConnection.new.connect ) @api_config = api_config @url_builder = url_builder || UrlBuilder.new(api_config:) @agent = agent end |
Instance Attribute Details
#agent ⇒ Object (readonly)
Returns the value of attribute agent.
14 15 16 |
# File 'lib/open_meteo/client.rb', line 14 def agent @agent end |
#api_config ⇒ Object (readonly)
Returns the value of attribute api_config.
14 15 16 |
# File 'lib/open_meteo/client.rb', line 14 def api_config @api_config end |
Instance Method Details
#get(endpoint_name, *endpoint_args, **get_params) ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/open_meteo/client.rb', line 26 def get(endpoint_name, *endpoint_args, **get_params) endpoint = url_builder.build_url(endpoint_name, *endpoint_args) agent.get do |request| request.params = get_params.merge({ apikey: api_config.api_key }.compact) request.url(endpoint) end rescue Faraday::ConnectionFailed => e raise ConnectionFailed, "Could not connect to OpenMeteo API: #{e.}" rescue Faraday::TimeoutError raise Timeout, "Timeout error from the OpenMeteo API" end |