Module: WeatherGemKg

Defined in:
lib/weather_gem_kg.rb,
lib/weather_gem_kg/client.rb,
lib/weather_gem_kg/config.rb,
lib/weather_gem_kg/errors.rb,
lib/weather_gem_kg/version.rb,
lib/weather_gem_kg/forecast_day.rb,
lib/weather_gem_kg/clients/open_meteo.rb,
lib/generators/weather_gem_kg/install_generator.rb

Defined Under Namespace

Modules: Clients, Generators Classes: Client, Configuration, Error, ForecastDay, InvalidArgumentError, LocationNotFoundError, RequestError

Constant Summary collapse

VERSION =
"1.0.1"

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.configurationObject



8
9
10
# File 'lib/weather_gem_kg/config.rb', line 8

def self.configuration
  @configuration ||= Configuration.new
end

Class Method Details

.configure {|configuration| ... } ⇒ Object

Yields:



12
13
14
# File 'lib/weather_gem_kg/config.rb', line 12

def self.configure
  yield(configuration) if block_given?
end

.forecast(city:, days: nil, client: nil) ⇒ Object



11
12
13
14
15
16
# File 'lib/weather_gem_kg.rb', line 11

def self.forecast(city:, days: nil, client: nil)
  raise InvalidArgumentError, "city is required" if city.nil? || city.to_s.strip.empty?

  days ||= configuration.default_days
  (client || configuration.client).forecast(city: city, days: days)
end

.reset_configuration!Object



16
17
18
# File 'lib/weather_gem_kg/config.rb', line 16

def self.reset_configuration!
  @configuration = Configuration.new
end