Class: Weatheruby
- Inherits:
- 
      Object
      
        - Object
- Weatheruby
 
- Includes:
- Weather::Actions, Weather::Planner
- Defined in:
- lib/weatheruby.rb
Overview
Return proper objects instead of ugly hashes throughout the library
Defined Under Namespace
Classes: WeatherError
Instance Attribute Summary collapse
- 
  
    
      #language_key  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Returns the value of attribute language_key. 
Instance Method Summary collapse
- 
  
    
      #get(feature, location)  ⇒ Hash 
    
    
  
  
  
  
  private
  
  
  
  
    Performs a generic HTTP GET request. 
- 
  
    
      #initialize(api_key, language = 'EN', use_pws = true, use_bestfct = true)  ⇒ Weatheruby 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    Creates a new instance of Weatheruby. 
Methods included from Weather::Planner
#chance_of_cloudy, #chance_of_fog, #chance_of_freezing, #chance_of_groundsnow, #chance_of_hail, #chance_of_heat, #chance_of_high_wind, #chance_of_humid, #chance_of_not_freezing, #chance_of_partlycloudy, #chance_of_precipitation, #chance_of_rain, #chance_of_snow, #chance_of_sultry, #chance_of_sunny, #chance_of_thunderstorms, #chance_of_tornado, #chance_of_warmth, #get_chance_of, #get_dewpoints, #get_planner_response, #get_precipitation, #get_temperatures
Methods included from Weather::Actions
#alerts, #complex_forecast, #complex_forecast_10day, #conditions, #hurricane_data, #moon_phase, #parse_complex_forecast, #parse_simple_forecast, #record_high, #record_low, #simple_forecast, #simple_forecast_10day, #sun_info
Constructor Details
#initialize(api_key, language = 'EN', use_pws = true, use_bestfct = true) ⇒ Weatheruby
Creates a new instance of Weatheruby.
| 33 34 35 36 37 38 39 40 | # File 'lib/weatheruby.rb', line 33 def initialize(api_key, language = 'EN', use_pws = true, use_bestfct = true) @api_key = api_key @language_key = language.upcase @use_pws = use_pws ? 1 : 0 @use_bestfct = use_bestfct ? 1 : 0 @client = HTTPClient.new end | 
Instance Attribute Details
#language_key ⇒ Object
Returns the value of attribute language_key
| 26 27 28 | # File 'lib/weatheruby.rb', line 26 def language_key @language_key end | 
Instance Method Details
#get(feature, location) ⇒ Hash (private)
Performs a generic HTTP GET request. This method should generally not be used by a standard user, unless there is not a method for a particular action/feature.
| 50 51 52 53 54 55 56 57 58 59 60 61 62 | # File 'lib/weatheruby.rb', line 50 def get(feature, location) url = "http://api.wunderground.com/api/#{@api_key}/#{feature}/lang:#{@language_key}/pws:#{@use_pws}/bestfct:#{@use_bestfct}/q/#{location}.json" json = JSON.parse(@client.get(URI.parse(URI.encode(url))).body) if json['response'].key?('error') error = json['response']['error'] fail(WeatherError.new(json, error['type'], error['description'].capitalize)) end if json['response'].key?('results') fail(WeatherError.new(json, 'toomanyresults', 'Too many results were returned. Try narrowing your search.')) end json end |