Sha256: 1df62426043453bcd9cbda70f26ea9a78dca76489a85c1aac9ef0f0028ed1756

Contents?: true

Size: 949 Bytes

Versions: 7

Compression:

Stored size: 949 Bytes

Contents

module Barometer
  module WeatherService
    class Yahoo
      class Response
        class Location
          def initialize(payload)
            @payload = payload
          end

          def parse
            Data::Location.new(
              city: city,
              state_code: state_code,
              country_code: country_code,
              latitude: latitude,
              longitude: longitude
            )
          end

          private

          attr_reader :payload

          def city
            payload.fetch('location', '@city')
          end

          def state_code
            payload.fetch('location', '@region')
          end

          def country_code
            payload.fetch('location', '@country')
          end

          def latitude
            payload.fetch('item', 'lat')
          end

          def longitude
            payload.fetch('item', 'long')
          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/location.rb
barometer-0.9.5 lib/barometer/weather_services/yahoo/response/location.rb
barometer-0.9.4 lib/barometer/weather_services/yahoo/response/location.rb
barometer-0.9.3 lib/barometer/weather_services/yahoo/response/location.rb
barometer-0.9.2 lib/barometer/weather_services/yahoo/response/location.rb
barometer-0.9.1 lib/barometer/weather_services/yahoo/response/location.rb
barometer-0.9.0 lib/barometer/weather_services/yahoo/response/location.rb