Sha256: ceae026fb23a9d1cca28563218f7d668618da94d1744832b0bab27dbbe0b33e3

Contents?: true

Size: 701 Bytes

Versions: 1

Compression:

Stored size: 701 Bytes

Contents

require "alert"
require "httparty"

module Noaa
  class Client
    attr_reader :alerts

    def initialize(state)
      @alerts = []
      get_alerts(state)
    end

    private

    def get_alerts(state)
      catalog = HTTParty.get("http://alerts.weather.gov/cap/#{state}.php?x=0",
                             format: :xml)
      handle_catalog(catalog)
    end

    def handle_catalog(catalog)
      entries = catalog['feed']['entry']
      entries = [entries] unless entries.kind_of?(Array)
      entries.each do |entry| 
        item = HTTParty.get(entry['id'],
                            format: :xml)['alert']
        @alerts << Noaa::Alert.new(entry['id'], item)
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
noaa-alerts-0.1.2 lib/client.rb