Sha256: ef0741329f121402f7367f932450633810f0fe6e1a1be3f7d4d3c1a1cba765b0

Contents?: true

Size: 792 Bytes

Versions: 1

Compression:

Stored size: 792 Bytes

Contents

require 'json'
require 'net/http'
require 'uri'

module UndergroundWeather
  class ApiCall
    attr_reader :response, :error
    
    BASE_URL = 'http://api.wunderground.com/api'
        
    def initialize(api_key, feature, query)
      @api_key = api_key
      @feature = feature
      @query   = query
      @error   = false
    end
    
    def get!
      get
    end  
    
    def response
      @response ||= JSON.parse(get)
    end  
    
    def url
      URI.parse("#{BASE_URL}/#{@api_key}/#{@feature}/q/#{@query}.json")
    end    
    
    private
    
    def get
      resp = Net::HTTP.get_response(url)
      
      if resp.code == "200"
        resp.body
      else
        @error = true
        
        # raise exception here?
        {}
      end    
    end
  end  
end
  

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
undergroundweather-0.0.3 lib/undergroundweather/api_call.rb