class Wettr::Weather

Attributes

city_id[R]
city_name[R]
cloudiness[R]
country_code[R]
feels_like[R]
humidity[R]
pressure[R]
sunrise_time[R]
sunset_time[R]
temp[R]
temp_max[R]
temp_min[R]
time_calculated[R]
timezone[R]
visibility[R]
weather_description[R]
wind_speed[R]

Public Class Methods

new(weather_description:, temp:, feels_like:, temp_min:, temp_max:, pressure:, humidity:, visibility:, wind_speed:, cloudiness:, time_calculated:, country_code:, sunrise_time:, sunset_time:, timezone:, city_id:, city_name:) click to toggle source
# File lib/wettr/weather.rb, line 4
def initialize(weather_description:, temp:, feels_like:, temp_min:, temp_max:, pressure:, humidity:, visibility:, wind_speed:, cloudiness:, time_calculated:, country_code:, sunrise_time:, sunset_time:, timezone:, city_id:, city_name:)
  @weather_description = weather_description
  @temp = temp
  @feels_like = feels_like
  @temp_min = temp_min
  @temp_max = temp_max
  @pressure = pressure
  @humidity = humidity
  @visibility = visibility
  @wind_speed = wind_speed
  @cloudiness = cloudiness
  @time_calculated = time_calculated
  @country_code = country_code
  @sunrise_time = sunrise_time
  @sunset_time = sunset_time
  @timezone = timezone
  @city_id = city_id
  @city_name = city_name
end
new_with_lat_and_lon(lat:, lon:) click to toggle source
# File lib/wettr/weather.rb, line 24
def self.new_with_lat_and_lon(lat:, lon:)
  response = Wettr::WeatherAPI.call_with_lat_and_lon(lat: lat, lon: lon)
  weather = self.new_from_api_response(response)
  weather
end
new_with_zip(zip) click to toggle source
# File lib/wettr/weather.rb, line 30
def self.new_with_zip(zip)
  response = Wettr::WeatherAPI.call_with_zip(zip)
  weather = self.new_from_api_response(response)
  weather
end

Private Class Methods

new_from_api_response(response) click to toggle source
# File lib/wettr/weather.rb, line 48
def self.new_from_api_response(response)
  weather = self.new(
    weather_description: response["weather"].first["description"],
    temp: response["main"]["temp"],
    feels_like: response["main"]["feels_like"],
    temp_min: response["main"]["temp_min"],
    temp_max: response["main"]["temp_max"],
    pressure: response["main"]["pressure"],
    humidity: response["main"]["humidity"],
    visibility: response["visibility"],
    wind_speed: response["wind"]["speed"],
    cloudiness: response["clouds"]["all"],
    time_calculated: response["dt"],
    country_code: response["sys"]["country"],
    sunrise_time: response["sys"]["sunrise"],
    sunset_time: response["sys"]["sunset"],
    timezone: response["timezone"],
    city_id: response["id"],
    city_name: response["name"]
  )

  weather
end

Public Instance Methods

print() click to toggle source