Class: DarkSky::API

Inherits:
Object
  • Object
show all
Defined in:
lib/sixarm_ruby_rails_dark_sky_api/dark_sky/api.rb

Class Method Summary collapse

Class Method Details

.credentialsHash

Get the Dark Sky API credentials via typical Rails appplication credentials.

Returns:

  • (Hash)

    the credentials



11
12
13
# File 'lib/sixarm_ruby_rails_dark_sky_api/dark_sky/api.rb', line 11

def self.credentials
  @credentials ||= Rails.application.credentials.env[Rails.env.to_sym][:dark_sky][:api]
end

.get(latitude:, longitude:) ⇒ Faraday::Response

Get a Dark Sky API via Faraday

Parameters:

  • latitude (Decimal)
  • longitude (Decimal)

Returns:

  • (Faraday::Response)

    response



39
40
41
# File 'lib/sixarm_ruby_rails_dark_sky_api/dark_sky/api.rb', line 39

def self.get(latitude:, longitude:)
  Faraday.get uri(latitude: latitude, longitude: longitude)
end

.secret_keyString

Get the Dark Sky API secret key via the typical Rails appplication credentials.

Returns:

  • (String)

    the secret key



19
20
21
# File 'lib/sixarm_ruby_rails_dark_sky_api/dark_sky/api.rb', line 19

def self.secret_key
  @secret_key ||= credentials[:secret_key]
end

.uri(latitude:, longitude:) ⇒ URI

Craft a Dark Sky API URL suitable to get a weather forecast for a given place.

Parameters:

  • latitude (Decimal)
  • longitude (Decimal)

Returns:

  • (URI)

    URI of the request



29
30
31
# File 'lib/sixarm_ruby_rails_dark_sky_api/dark_sky/api.rb', line 29

def self.uri(latitude:, longitude:)
  URI("https://api.darksky.net/forecast/#{secret_key}/#{latitude},#{longitude}")
end