class SunnyDay::Client
Attributes
config[RW]
Public Class Methods
new(options = {})
click to toggle source
# File lib/sunnyday/client.rb, line 8 def initialize(options = {}) @config = SunnyDay::Configuration.new(options) end
Public Instance Methods
configure() { |config| ... }
click to toggle source
# File lib/sunnyday/client.rb, line 12 def configure yield(@config) if block_given? end
current_weather(options = {})
click to toggle source
# File lib/sunnyday/client.rb, line 16 def current_weather(options = {}) call('weather', options) end
daily_forecast(options = {})
click to toggle source
# File lib/sunnyday/client.rb, line 24 def daily_forecast(options = {}) call('forecast/daily', options) end
find(options = {})
click to toggle source
# File lib/sunnyday/client.rb, line 28 def find(options = {}) call('find', options) end
forecast(options = {})
click to toggle source
# File lib/sunnyday/client.rb, line 20 def forecast(options = {}) call('forecast', options) end
Private Instance Methods
call(path, options = {})
click to toggle source
# File lib/sunnyday/client.rb, line 34 def call(path, options = {}) options.delete(:mode) if options.has_key?(:mode) uri = "/data/#{@config.api_version}/#{full_path(path, options)}language=#{@config.language}" uri.concat("&units=#{@config.units}") unless @config.units.nil? uri.concat("&APPID=#{@config.app_id}") unless @config.app_id.nil? response = Net::HTTP.get_response(BASE_URL, uri) JSON.parse(response.body, symbolize_names: true) end
full_path(path, options)
click to toggle source
# File lib/sunnyday/client.rb, line 43 def full_path(path, options) string = '' options.each_key do |key| string << "#{key}=#{options[key]}&" end "#{path}?#{string}" end