Sha256: e53433a1b0e90c670debe0e77cf75fcf30ef04c7f063d0a17d4ceb59608ea487

Contents?: true

Size: 1.14 KB

Versions: 7

Compression:

Stored size: 1.14 KB

Contents

module Barometer
  module WeatherService
    class Yahoo
      class Response
        class Sun
          def initialize(payload, base_time)
            @payload = payload
            @base_time = base_time
          end

          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

          attr_reader :payload, :base_time

          def local_rise_time
            @local_rise_time ||= Utils::Time.parse(payload.fetch('astronomy', '@sunrise'))
          end

          def local_set_time
            @local_set_time ||= Utils::Time.parse(payload.fetch('astronomy', '@sunset'))
          end

          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

          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
        end
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
barometer-0.9.6 lib/barometer/weather_services/yahoo/response/sun.rb
barometer-0.9.5 lib/barometer/weather_services/yahoo/response/sun.rb
barometer-0.9.4 lib/barometer/weather_services/yahoo/response/sun.rb
barometer-0.9.3 lib/barometer/weather_services/yahoo/response/sun.rb
barometer-0.9.2 lib/barometer/weather_services/yahoo/response/sun.rb
barometer-0.9.1 lib/barometer/weather_services/yahoo/response/sun.rb
barometer-0.9.0 lib/barometer/weather_services/yahoo/response/sun.rb