0.01
No commit activity in last 3 years
No release in over 3 years
An implementation to easily fetch the OpenWeatherMap API.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies
 Project Readme

OpenWeatherMap - The Ruby implementation

With this gem, you can easily fetch the API to receive informations about weather.

License - RubyDoc

Why would I use this library ?

Before writing this OpenWeatherMap implementation, I checked for existing ones on rubygems.org. There're only small libraries, that has at least one or two good thing but that's all. Consequently, I decided to make my own one, combining all their advantages :

  • Centralized : all the options and fetch methods are stored in one class, that is initialized only once in all the program. Parameters are the same across all requests.
  • Fast : the only thing that can slow the library is your Internet connection : indeed, no heavy operations are made in the background. As soon as it receives weather conditions, the only step for it is organizing them.
  • Simple : the library only contains essential operations to keep the number of methods low. Moreover, all the information is perfectly human-readable.
  • Documented : every method and class attribute is explained and every exception thrown is explicit, therefore learning or debugging the library remains easy.

This work resulted in a powerful implementation that responds to primary needs while staying abordable.

  • πŸ“Œ Requirements
  • πŸ”§ Setup
    • Quick installation
    • Gemfile
    • Build
  • ⌨ Basic interactions
    • Setup the API
    • Get current weather
    • Get forecast
    • Possible exceptions
  • πŸ“œ Credits
  • πŸ” License

πŸ“Œ Requirements

This library requires an updated version of Ruby.

πŸ”§ Setup

Quick installation

If you want to quickly test the library, you can install it using the install command of Ruby Gem.

gem install openweathermap

Gemfile

If you setup the library for medium or big projects, it's recommended to write it in your Gemfile.

gem 'openweathermap', '~> 0.2.3'

After, use again the install command, but without the package name.

gem install

Build

You can also compile it by yourself. First, clone the repository.

git clone https://github.com/BecauseOfProg/openweathermap-ruby.git  # HTTP
          git@github.com:BecauseOfProg/openweathermap-ruby.git      # SSH

Then, build the gemspec file to create the gem.

gem build ./openweathermap.gemspec

Finally, install it on your system.

gem install ./openweathermap-0.2.3.gem

⌨ Basic interactions

Once you finished installing the library, you're ready to play around.

Setup the API

First of all, include the openweathermap library in your project :

include 'openweathermap'

Then, we must initialize an API object in the OpenWeatherMap module, that we'll use to get our weather data.

api = OpenWeatherMap::API.new(API_KEY, 'en', 'metric')

The constructor takes three parameters :

  • The first is an API key, that can be generated on the OpenWeatherMap website
  • The second is the language of the data. It can be one of these : Arabic - ar, Bulgarian - bg, Catalan - ca, Czech - cz, German - de, Greek - el, English - en, Persian (Farsi) - fa, Finnish - fi, French - fr, Galician - gl, Croatian - hr, Hungarian - hu, Italian - it, Japanese - ja, Korean - kr, Latvian - la, Lithuanian - lt, Macedonian - mk, Dutch - nl, Polish - pl, Portuguese - pt, Romanian - ro, Russian - ru, Swedish - se, Slovak - sk, Slovenian - sl, Spanish - es, Turkish - tr, Ukrainian - ua, Vietnamese - vi, Chinese Simplified - zh_cn, Chinese Traditional - zh_tw.
  • The third is the unit system. It can be one of these :
    • default (temperatures in Kelvin)
    • metric (temperatures in Celsius)
    • imperial (temperatures in Fahrenheit)

Get current weather

To get the current weather at a certain city anywhere in the world, use the current method of the API object :

api.current('Lyon,FR')

It only takes one parameter : the location. It can be one of this type :

  • A simple string : search by city name. To have more precision, it can be completed with the country code separated by a comma
  • An integer : search by city ID (refer to OpenWeatherMap)
  • An array : search by coordinates (format : [longitude, latitude])

The method will return a OpenWeatherMap::CurrentWeather object that you can explore on RubyDoc.

Get forecast

To get the forecast for a certain city anywhere in the world, use the forecast method of the API object :

api.forecast('Paris,FR')

Its parameter is the same as the current method. It will return a OpenWeatherMap::Forecast object that you can explore on RubyDoc.

Possible exceptions

Your requests may return exceptions that are in the OpenWeatherMap::Exceptions module. All are based on the OpenWeatherMap::Exception class.

  • An Unauthorized exception, caused when your API key is wrong
  • An UnknownLocation exception, caused if the location you wrote is wrong

These exceptions will have in their body the message sent by the OpenWeatherMap API, so you can easily debug them.

πŸ“œ Credits

πŸ” License

See License file