class WeatherGemKg::Clients::DarkSky

Constants

API_KEY

Public Class Methods

new() click to toggle source
# File lib/weather_gem_kg/clients/dark_sky.rb, line 9
def initialize
  @base_url = "https://api.darksky.net/forecast/#{API_KEY}"
end

Public Instance Methods

get_city_coordinates(city) click to toggle source
# File lib/weather_gem_kg/clients/dark_sky.rb, line 32
def get_city_coordinates(city)
  Geocoder.search("#{city}").first.coordinates.map(&:inspect).join(',')
end
get_weather(city, days) click to toggle source
# File lib/weather_gem_kg/clients/dark_sky.rb, line 13
def get_weather(city, days)
  @data = get_weather_info(city, days)

  @data.dig("daily", "data")[0...days].map do |f|
    {
      date: Time.at(f['time']).ctime.slice(0, 10),
      max_temp: ((f["temperatureHigh"] - 32) * 5 / 9).round(1),
      min_temp: ((f["temperatureLow"] - 32) * 5 / 9).round(1),
      condition: f["summary"]
    }
  end
end
get_weather_info(city, days) click to toggle source
# File lib/weather_gem_kg/clients/dark_sky.rb, line 26
def get_weather_info(city, days)
  coordinates = get_city_coordinates(city)

  HTTParty.get("#{@base_url}/#{coordinates}")
end