Accuweather

Get weather information for cities around the world using the accuweather API. Includes temperature, pressure, humidity, weather text and GPS coordinates.

Installation

Add this line to your application's Gemfile:

gem 'accuweather'

And then execute:

$ bundle

Or install it yourself as:

$ gem install accuweather

Usage

Search for an accuweather location:

location_array = Accuweather.city_search(name: 'vancouver')
vancouver = location_array.first

vancouver.id        # => 'cityId:53286'
vancouver.city      # => 'Vancouver'
vancouver.state     # => 'Canada (British Columbia)'
vancouver.latitude  # => '49.2448'
vancouver.longitude # => '123.1154'

Search for weather conditions for a given location id:

current_weather = Accuweather.get_conditions(location_id: 'cityId:53286').current
current_weather.temperature    # => '41'
current_weather.weather_text   # => 'Partly Sunny'
current_weather.pressure       # => '30.35'
current_weather.humidity       # => '43%'
current_weather.cloud_cover    # => '40%'

Get the units for the conditions:

units = Accuweather.get_conditions(location_id: 'cityId:53286').units
units.temperature  # => 'F'
units.distance     # => 'MI'
units.speed        # => 'MPH'

Get more information on the location including time and time zone:

local = Accuweather.get_conditions(location_id: 'cityId:53286').local
local.time                   # => '13:41'
local.time_zone              # => '-8'
local.time_zone_abbreviation # => 'PST'

Imperial units are returned by default, but metric results are available:

Accuweather.get_conditions(location_id: 'cityId:53286', metric: true)

Each Accuweather::Conditions object implements a to_s method that displays all attribute name, value pairs. This makes it easy to explore the API. For example:

Accuweather.get_conditions(location_id: 'cityId:53286').local.to_s
# => "city: Vancouver, state: British Columbia, latitude: 49.2448, longitude: -123.1154, time: 16:58, time_zone: -8, obs_daylight: 0, current_gmt_offset: -8, time_zone_abbreviation: PST"

Development

Run rake to run the tests

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/accuweather.