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
# File lib/wettr/weather.rb, line 36 def print puts "Current weather for #{ @city_name.capitalize }, #{ @country_code }" puts "Description: #{ @weather_description.capitalize }" puts "#{ @temp }°F, Feels Like: #{ @feels_like }°F, Min. Temp: #{ @temp_min }°F, Max. Temp: #{ @temp_max }°F" puts "Pressure: #{ @pressure } hPa, Humidity: #{ @humidity }%" puts "Visibility: #{ @visibility.to_s.reverse.gsub(/(\d{3})(?=\d)/, '\\1,').reverse } Ft., Wind Speed: #{ @wind_speed } m/h, Cloudiness: #{ @cloudiness }%" puts "Sunrise: #{ Time.at(@sunrise_time).strftime("%k:%M") }, Sunset: #{ Time.at(@sunset_time).strftime("%k:%M") }" puts "Weather Last Calculated at #{ Time.at(@time_calculated).strftime("%k:%M") }" end