class Barometer::Yahoo::Response::Sun

Attributes

base_time[R]
payload[R]

Public Class Methods

new(payload, base_time) click to toggle source
# File lib/barometer/yahoo/response/sun.rb, line 5
def initialize(payload, base_time)
  @payload = payload
  @base_time = base_time
end

Public Instance Methods

parse() click to toggle source
# File lib/barometer/yahoo/response/sun.rb, line 10
def parse
  return if local_rise_time.nil? || local_set_time.nil?
  Data::Sun.new(rise: utc_rise_time, set: utc_set_time)
end

Private Instance Methods

local_rise_time() click to toggle source
# File lib/barometer/yahoo/response/sun.rb, line 19
def local_rise_time
  @local_rise_time ||= Utils::Time.parse(payload.fetch('astronomy', '@sunrise'))
end
local_set_time() click to toggle source
# File lib/barometer/yahoo/response/sun.rb, line 23
def local_set_time
  @local_set_time ||= Utils::Time.parse(payload.fetch('astronomy', '@sunset'))
end
utc_rise_time() click to toggle source
# File lib/barometer/yahoo/response/sun.rb, line 27
def utc_rise_time
  Utils::Time.utc_from_base_plus_local_time(
    base_time.timezone, base_time.base, local_rise_time.hour, local_rise_time.min
  )
end
utc_set_time() click to toggle source
# File lib/barometer/yahoo/response/sun.rb, line 33
def utc_set_time
  Utils::Time.utc_from_base_plus_local_time(
    base_time.timezone, base_time.base, local_set_time.hour, local_set_time.min
  )
end