jdpace / weatherman

Ruby gem for accessing the Weather Channel XML API

This URL has Read+Write access

name age message
file .gitignore Wed Sep 24 18:59:02 -0700 2008 Initial Commit. [jdpace]
file README.rdoc Mon Sep 29 19:06:20 -0700 2008 Fix README.rdoc to show correct gem install name [jdpace]
directory lib/ Fri Oct 03 17:52:45 -0700 2008 Capture the weather locations local time in the... [jdpace]
directory spec/ Fri Oct 03 17:52:45 -0700 2008 Capture the weather locations local time in the... [jdpace]
file weatherman.gemspec Fri Oct 03 17:52:45 -0700 2008 Capture the weather locations local time in the... [jdpace]
README.rdoc

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 http://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