Sha256: 26c22e541403cfd66e8e2b57d2482ca1b97bef802d2a5c2970bf30437f60c5eb

Contents?: true

Size: 858 Bytes

Versions: 6

Compression:

Stored size: 858 Bytes

Contents

require 'delegate'

module Barometer
  module WeatherService
    class Noaa
      class ForecastQuery < SimpleDelegator
        attr_reader :converted_query

        def self.accepted_formats
          [:zipcode, :coordinates]
        end

        def initialize(query)
          super
          @converted_query = convert_query
        end

        def to_param
          case converted_query.format.to_sym
          when :short_zipcode
            {zipCodeList: converted_query.q}
          when :zipcode
            {zipCodeList: converted_query.q}
          when :coordinates
            {lat: converted_query.q.split(',')[0], lon: converted_query.q.split(',')[1]}
          else
            {}
          end
        end

        private

        def convert_query
          convert!(*self.class.accepted_formats)
        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
barometer-0.9.5 lib/barometer/weather_services/noaa/forecast_query.rb
barometer-0.9.4 lib/barometer/weather_services/noaa/forecast_query.rb
barometer-0.9.3 lib/barometer/weather_services/noaa/forecast_query.rb
barometer-0.9.2 lib/barometer/weather_services/noaa/forecast_query.rb
barometer-0.9.1 lib/barometer/weather_services/noaa/forecast_query.rb
barometer-0.9.0 lib/barometer/weather_services/noaa/forecast_query.rb