/weatherman

Ruby gem for accessing the Weather Channel XML API

Primary LanguageRuby

WeatherMan

A Ruby Gem that wraps the Weather Channel, inc. XML data feed written by Jared Pace, Codeword: Studios (codewordstudios.com), based on the rweather gem by Carlos Kozuszko - www.ckozus.com.ar/blog/.

Dependencies

  1. XmlSimple

‘gem install xml-simple`


Installation

% sudo gem sources -a gems.github.com # (if you haven’t already) % sudo gem install jdpace-weatherman


Usage

Find or load a location:

require ‘weather_man’ WeatherMan.partner_id = ‘0123456789’ WeatherMan.license_key = ‘0123456789abcdef’ # Search for a location # Returns an array of WeatherMan objects locations = WeatherMan.search(‘New York’) # or if you know the location id or just want to use a US Zip code ny = WeatherMan.new(‘USNY0996’) Fetch the weather: # Fetch the current conditions and 5 day forecast in ‘standard’ units weather = ny.fetch # Fetch only current conditions in metric units weather = ny.fetch(:days => 0, :unit => ‘m’) # Fetch a 3 day forecast only weather = ny.fetch(:days => 3, :current_conditions => false) Look at the Current Conditions:

# current temperature temp = weather.current_conditions.temperature feels_like = weather.current_conditions.feels_like wind_speed = weather.current_conditions.wind.speed wind_direction = weather.current_conditions.wind.direction Look at the forecast:

# how many days? weather.forecast.size # Some different forecasts weather.forecast.today weather.forecast.tomorrow weather.forecast.monday weather.forecast.for(Date.today) weather.forecast.for(3.days.from_now) # Note: using rails core extensions weather.forecast.for(‘Sep 1’) # data for a forecast friday = weather.forecast.friday high_temp = friday.high low_temp = friday.low # forecasts are split into 2 parts day/night friday.day.description # Partly Cloudy, Sunny… friday.day.chance_percipitation # 0..100 night_wind_speed = friday.night.wind.speed The Weather Channel requires that you 4 promotional links for them if you use their service. Here’s how to access those links:

# The array of pr links weather.links # Getting the first links text and url weather.links.first.text weather.links.first.url TODO: Document all attributes