Sha256: 9df22ae980187c126b850f6841414a8fb666de676ea4af2d70f772178a110955

Contents?: true

Size: 1.3 KB

Versions: 8

Compression:

Stored size: 1.3 KB

Contents

module Barometer
  module WeatherService
    class WundergroundV1
      class Response
        class Sun
          def initialize(payload, timezone, response)
            @payload = payload
            @timezone = timezone
            @response = response
          end

          def parse
            Data::Sun.new(rise: utc_rise_time, set: utc_set_time)
          end

          private

          attr_reader :payload, :timezone, :response

          def utc_rise_time
            return unless response.current
            Utils::Time.utc_from_base_plus_local_time(
              timezone, response.current.observed_at, rise_hour, rise_min
            )
          end

          def utc_set_time
            return unless response.current
            Utils::Time.utc_from_base_plus_local_time(
              timezone, response.current.observed_at, set_hour, set_min
            )
          end

          def rise_hour
            payload.fetch('moon_phase', 'sunrise', 'hour')
          end

          def rise_min
            payload.fetch('moon_phase', 'sunrise', 'minute')
          end

          def set_hour
            payload.fetch('moon_phase', 'sunset', 'hour')
          end

          def set_min
            payload.fetch('moon_phase', 'sunset', 'minute')
          end
        end
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

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