Class: Darksky::API
- Inherits:
-
Object
- Object
- Darksky::API
- Defined in:
- lib/darksky-ruby/api.rb
Constant Summary collapse
- DARKSKY_URL =
'https://api.darksky.net/'- DARKSKY_PATH_TEMPLATE =
'/forecast/%{key}/%{loc}'- DARKSKY_BLOCK_NAMES =
[:currently, :minutely, :hourly, :daily, :alerts, :flags]
Instance Attribute Summary collapse
-
#key ⇒ Object
Returns the value of attribute key.
-
#latitude ⇒ Object
Returns the value of attribute latitude.
-
#location ⇒ Object
Returns the value of attribute location.
-
#longitude ⇒ Object
Returns the value of attribute longitude.
-
#options ⇒ Object
Returns the value of attribute options.
-
#time ⇒ Object
Returns the value of attribute time.
Instance Method Summary collapse
- #blocks ⇒ Object
- #blocks=(h) ⇒ Object
- #forecast(lat: @latitude, lon: @longitude, loc: @location, ts: @time) ⇒ Object
-
#initialize(key:, options: {}) ⇒ API
constructor
A new instance of API.
- #param(key, val = nil) ⇒ Object
- #timemachine(lat: @latitude, lon: @longitude, loc: @location, ts:) ⇒ Object
Constructor Details
#initialize(key:, options: {}) ⇒ API
Returns a new instance of API.
13 14 15 16 |
# File 'lib/darksky-ruby/api.rb', line 13 def initialize(key:, options: {}) @key = key @options = end |
Instance Attribute Details
#key ⇒ Object
Returns the value of attribute key.
11 12 13 |
# File 'lib/darksky-ruby/api.rb', line 11 def key @key end |
#latitude ⇒ Object
Returns the value of attribute latitude.
11 12 13 |
# File 'lib/darksky-ruby/api.rb', line 11 def latitude @latitude end |
#location ⇒ Object
Returns the value of attribute location.
11 12 13 |
# File 'lib/darksky-ruby/api.rb', line 11 def location @location end |
#longitude ⇒ Object
Returns the value of attribute longitude.
11 12 13 |
# File 'lib/darksky-ruby/api.rb', line 11 def longitude @longitude end |
#options ⇒ Object
Returns the value of attribute options.
11 12 13 |
# File 'lib/darksky-ruby/api.rb', line 11 def @options end |
#time ⇒ Object
Returns the value of attribute time.
11 12 13 |
# File 'lib/darksky-ruby/api.rb', line 11 def time @time end |
Instance Method Details
#blocks ⇒ Object
29 30 31 32 33 34 35 |
# File 'lib/darksky-ruby/api.rb', line 29 def blocks() ex = [:exclude] ex.nil? ? ex = [] : ex = ex.split(',').map{ |n| n.to_sym } h = {} DARKSKY_BLOCK_NAMES.each { |n| h[n] = !ex.include?(n) } return h end |
#blocks=(h) ⇒ Object
37 38 39 40 |
# File 'lib/darksky-ruby/api.rb', line 37 def blocks=(h) ex = DARKSKY_BLOCK_NAMES.select { |n| h[n] == false } [:exclude] = ex.join(',') end |
#forecast(lat: @latitude, lon: @longitude, loc: @location, ts: @time) ⇒ Object
18 19 20 21 22 23 |
# File 'lib/darksky-ruby/api.rb', line 18 def forecast(lat: @latitude, lon: @longitude, loc: @location, ts: @time) loc = "#{lat},#{lon}" if lat && lon raise ArgumentError, 'No location given to forecast' if loc.nil? ts = ts.to_i if ts.class == Time request(loc, ts) end |
#param(key, val = nil) ⇒ Object
42 43 |
# File 'lib/darksky-ruby/api.rb', line 42 def param(key, val = nil) end |
#timemachine(lat: @latitude, lon: @longitude, loc: @location, ts:) ⇒ Object
25 26 27 |
# File 'lib/darksky-ruby/api.rb', line 25 def timemachine(lat: @latitude, lon: @longitude, loc: @location, ts:) forecast(lat: lat, lon: lon, loc: loc, ts: ts) end |