lib/owmo.rb in owmo-0.1.0 vs lib/owmo.rb in owmo-0.2.0
- old
+ new
@@ -1,14 +1,78 @@
+require "owmo/api"
require "owmo/version"
-require "owmo/Weather"
+require "owmo/weather"
+=begin rdoc
+OMWO = OpenWeatherMap.org client for current and forecasted weather conditions.
+=end
module OWMO
+
+=begin rdoc
+Openweathermap.org URL
+=end
URL = 'http://api.openweathermap.org/data/2.5'
+=begin rdoc
+Access current or forecasted conditions by (required):
+* +:current+ - {Current weather data}[http://openweathermap.org/current]
+* +:forecast+ - {5 day / 3 hour forecast}[http://openweathermap.org/forecast5]
+* +:extended+ - {16 day / daily forecast}[http://openweathermap.org/forecast16]
+=end
+ PATHS = {
+ current: 'weather', # Current weather data
+ forecast: 'forecast', # 5 day / 3 hour forecast
+ extended: 'forecast/daily' # 16 day / daily forecast
+ }
+
+=begin rdoc
+{Geocode options (required):}[http://openweathermap.org/current#one]
+* +q:+ or +city_name:+ - By city name
+* +id:+ or +city_id:+ - By city ID
+* +zip:+ or +zip_code:+ - By zip code
+* +lat:+, +lon:+ or +latitude:+, +longitude:+ - By geographic coordinates
+=end
+ GEOCODES = {
+ "City Name" => {
+ query: :q,
+ options: [:q, :city_name]
+ },
+ "City ID" => {
+ query: :id,
+ options: [:id, :city_id]
+ },
+ "Zip Code" => {
+ query: :zip,
+ options: [:zip, :zip_code]
+ },
+ "Coordinance" => {
+ query: [:lat, :lon],
+ options: [[:lat, :lon], [:lattitude, :longitude]]
+ },
+ "Cities Within a Rectangle Zone" => {
+ query: :bbox,
+ options: [:bbox]
+ },
+ "Cities Within a Circle" => {
+ query: [:lat, :lon, :cnt],
+ options: [[:lat, :lon, :cnt],[:lattitude, :longitude, :cnt]]
+ }
+ }
+
+=begin rdoc
+Yield a weather object for querying weather data
+==== Attributes
+* +api_key:+ - {OpenWeatherMap.org API key}[http://openweathermap.org/appid]
+==== Examples
+ api_key = "<My API Key>"
+ OWMO::weather api_key do |weather|
+ puts weather.get :current, city_name: "London,uk"
+ end
+=end
public
def self.weather(**params)
w = Weather.new params
yield w
end # weather
-end
+end # OWMO