= yahoo-weather == About yahoo-weather provides an object-oriented interface to the Yahoo! Weather XML RSS feed detailed at http://developer.yahoo.com/weather. People care a lot about the weather. This may seem ironic given they can just glance out the window. However, we can all understand a fascination with details and forecasting. Log the weather information to your database! Graph it to your heart's content! Write a widget that emails the weather to your cell phone every five minutes with a link to your friend's PayPal account to deposit money if the weather's sunny and you both bet that it would be rainy. And the fun doesn't have to stop there. The RubyForge project page for this library is at http://rubyforge.org/projects/yahoo-weather. Source code is at http://github.com/shaper/yahoo-weather. NOTE: This library was updated as of December 2009 to use a new WOEID-based lookup interface. Yahoo has deprecated the older non-WOEID-based lookup API. The archived page with the deprecated API details is at: http://developer.yahoo.com/weather/archive.html The older interface is still operational but users of this library should shift from using YahooWeather::Client::lookup_location to YahooWeather::Client::lookup_by_woeid. == Installation Install +rubygems+ if you don't already have it. See http://rubyforge.org/projects/rubygems/. Then install the gem by executing: % gem install yahoo-weather == Usage A simple example program: require 'rubygems' require 'yahoo-weather' @client = YahooWeather::Client.new # look up WOEID via http://weather.yahoo.com; enter location by city # name or zip and WOEID is at end of resulting page url. herein we use # the WOEID for Santa Monica, CA. response = @client.lookup_by_woeid(2488892) # straight text output print <<edoc #{response.title} #{response.condition.temp} degrees #{response.condition.text} edoc # sample html output print <<edoc <div> <img src="#{response.image.url}"><br/> #{response.condition.temp} degrees #{response.units.temperature}<br/> #{response.condition.text}<br> Forecast:<br/> #{response.forecasts[0].day} - #{response.forecasts[0].text}. High: #{response.forecasts[0].high} Low: #{response.forecasts[0].low}<br/> #{response.forecasts[1].day} - #{response.forecasts[1].text}. High: #{response.forecasts[1].high} Low: #{response.forecasts[1].low}<br/> More information <a href="#{response.page_url}">here</a>. </div> edoc Produces output as: Conditions for Santa Monica, CA at 10:51 am PST 56 degrees Partly Cloudy <div> <img src="http://l.yimg.com/a/i/us/nws/th/main_142b.gif"><br/> 56 degrees F<br/> Partly Cloudy<br> Forecast:<br/> Sat - Mostly Cloudy. High: 59 Low: 46<br/> Sun - Partly Cloudy. High: 64 Low: 48<br/> More information <a href="http://us.rd.yahoo.com/dailynews/rss/weather/Santa_Monica__CA/*http://weather.yahoo.com/forecast/USCA1024_f.html">here</a>. </div> There is a variety of detailed weather information in other attributes of the YahooWeather::Response object. == License This library is provided via the GNU LGPL license at http://www.gnu.org/licenses/lgpl.html. == Author Copyright 2006 - 2009, Walter Korman <shaper@fatgoose.com>, http://lemurware.blogspot.com. Thanks to Matthew Berk for inspiration and initial hack.