Un altro utile servizio, messo a disposizione da Yahoo, riguarda le previsioni meteorologiche. Occorre innanzitutto installare la gemma yahoo-weather
e recuperare il codice della città che ci interessa da weather.yahoo.com. Negli esempi utilizzeremo il codice ITXX0067
che corrisponde a Roma.
Di seguito un semplice stralcio di codice che permette di conoscere la situazione meteo di oggi e le previsioni per i prossimi due giorni.
require 'rubygems' require 'yahoo-weather' client = YahooWeather::Client.new res = client.lookup_location('ITXX0067') puts "#{res.title}" puts "Today: #{res.condition.text}" puts "Temperature: #{res.condition.temp} #{res.units.temperature}" puts "Forecast:" forecasts = res.forecasts forecasts.each do |f| puts " #{f.day}: #{f.text} (min #{f.low} - max #{f.high})" end
Innanzitutto creiamo un nuovo client
e lo associamo alla città di interesse, dopodiché recuperiamo i dati attraverso gli attributi della classe YahooWeather::Response
che sono a loro volta delle istanze delle classi che rappresentano le varie tipologie di informazione (ad esempio YahooWeather::Atmosphere
, YahooWeather::Forecast
, YahooWeather::Wind
, etc.).
L'output dell'esempio è il seguente:
Conditions for Rome, IT at 11:50 am CESTToday: Fair Temperature: 63 F Forecast: Tue: Sunny (min 52 - max 74) Wed: Mostly Cloudy (min 54 - max 75)
In questo caso per maggiori informazioni sulla API i siti di riferimento sono: