gull 0.2.12 → 0.2.13

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d7cf5f89f2aa7403966ecb221648242d55cb0ce0
4
- data.tar.gz: 17a287cd6e61951cac00706ec4bd611bed4f87e6
3
+ metadata.gz: 7841c6854343d87ee16705b0606bea985d8d27cf
4
+ data.tar.gz: 1102c41588ddeab4435d344420e47c1ba0b09956
5
5
  SHA512:
6
- metadata.gz: 315ae3c06f02a5a155f3c614bbd4ed6f532a81cd973526ee001cb62c303cae3cd50a6b65380b9185273da7e6ec57f83a04dda09246ed13118af904b64f2c4813
7
- data.tar.gz: 68c3b8ad903322414850c62c4071cbbf7402ca4175aaf37c8ef6a6104bd8cd43860c49a684b736c5728064e540e5ced86550e5073d9d5abe667821aef46749f7
6
+ metadata.gz: fc13ad4a90732adcde90db23e27c948306f98ac8a23fe6a3726446627708be4803bd4d475396e2ebe156692cfd1d14f20d57165f80784288961ef0cc2ad4fd8f
7
+ data.tar.gz: 73965ce13979a9ba0962a845f86f86797b78bb6811541a69f9dfd889c7423407c5d57b6a061917580c8753148dab20a21f94622b871e926edfa8f9c91993c0ad
data/CHANGELOG.md CHANGED
@@ -1,3 +1,5 @@
1
+ ### 0.2.13 (6/20/2015) - Handle missing cap section
2
+ ***
1
3
  ### 0.2.12 (6/12/2015) - Fix issue with missing link elements
2
4
  ***
3
5
  ### 0.2.11 (5/29/2015) - Added method to get original polygon string
data/lib/gull/alert.rb CHANGED
@@ -18,7 +18,7 @@ module Gull
18
18
 
19
19
  content = response options
20
20
  document = Nokogiri::XML content
21
- process document.css('feed/entry')
21
+ process document.xpath('//xmlns:feed/xmlns:entry', namespaces)
22
22
  end
23
23
 
24
24
  def parse(element)
@@ -33,6 +33,16 @@ module Gull
33
33
 
34
34
  private
35
35
 
36
+ def self.namespaces
37
+ { 'xmlns' => 'http://www.w3.org/2005/Atom',
38
+ 'cap' => 'urn:oasis:names:tc:emergency:cap:1.1',
39
+ 'ha' => 'http://www.alerting.net/namespace/index_1.0' }
40
+ end
41
+
42
+ def namespaces
43
+ Alert.namespaces
44
+ end
45
+
36
46
  def self.response(options)
37
47
  client = HTTPClient.new
38
48
  begin
@@ -45,13 +55,16 @@ module Gull
45
55
  def self.process(entries)
46
56
  alerts = []
47
57
  entries.each do |entry|
48
- alerts.push create_instance entry
58
+ alert = create_instance entry
59
+ alerts.push alert unless alert.nil?
49
60
  end
50
61
 
51
62
  alerts
52
63
  end
53
64
 
54
65
  def self.create_instance(entry)
66
+ return if entry.xpath('cap:event').empty?
67
+
55
68
  alert = Alert.new
56
69
  alert.parse entry
57
70
  alert
data/lib/gull/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Gull
2
- VERSION = '0.2.12'
2
+ VERSION = '0.2.13'
3
3
  end
data/spec/alert_spec.rb CHANGED
@@ -97,4 +97,15 @@ describe Gull::Alert do
97
97
  expect { Gull::Alert.fetch }
98
98
  .to raise_error(Gull::TimeoutError, message)
99
99
  end
100
+
101
+ it 'should handle missing cap section' do
102
+ xml = File.read 'spec/fixtures/missing_cap.xml'
103
+
104
+ stub_request(:get, 'http://alerts.weather.gov/cap/us.php?x=1')
105
+ .with(headers: { 'Accept' => '*/*' })
106
+ .to_return(status: 200, body: xml, headers: {})
107
+
108
+ alerts = Gull::Alert.fetch
109
+ expect(alerts.size).to eq 0
110
+ end
100
111
  end
@@ -0,0 +1,56 @@
1
+
2
+ <?xml version = '1.0' encoding = 'UTF-8' standalone = 'yes'?>
3
+ <?xml-stylesheet href='http://alerts.weather.gov/cap/capatom.xsl' type='text/xsl'?>
4
+
5
+ <!--
6
+ This atom/xml feed is an index to active advisories, watches and warnings
7
+ issued by the National Weather Service. This index file is not the complete
8
+ Common Alerting Protocol (CAP) alert message. To obtain the complete CAP
9
+ alert, please follow the links for each entry in this index. Also note the
10
+ CAP message uses a style sheet to convey the information in a human readable
11
+ format. Please view the source of the CAP message to see the complete data
12
+ set. Not all information in the CAP message is contained in this index of
13
+ active alerts.
14
+ -->
15
+
16
+
17
+ <feed
18
+ xmlns = 'http://www.w3.org/2005/Atom'
19
+ xmlns:cap = 'urn:oasis:names:tc:emergency:cap:1.1'
20
+ xmlns:ha = 'http://www.alerting.net/namespace/index_1.0'
21
+ >
22
+ <!-- http-date = Sat, 20 Jun 2015 01:23:00 GMT -->
23
+
24
+ <id>http://alerts.weather.gov/cap/us.atom</id>
25
+ <logo>http://alerts.weather.gov/images/xml_logo.gif</logo>
26
+ <generator>NWS CAP Server</generator>
27
+ <updated>2015-06-20T08:23:00-05:00</updated>
28
+ <author>
29
+ <name>w-nws.webmaster@noaa.gov</name>
30
+ </author>
31
+ <title>Current Watches, Warnings and Advisories for the United States Issued by the National Weather Service</title>
32
+ <link href='http://alerts.weather.gov/cap/us.atom'/>
33
+
34
+ <entry>
35
+ <id>http://alerts.weather.gov/cap/wwacapget.php?x=LA1253AE8E0B98.FloodWarning.1253AEBAFBE4LA.SHVFLSSHV.3908c4d415c0ed7efa65ce2f6eea425e</id>
36
+ <updated>2015-06-20T08:02:00-05:00</updated>
37
+ <published>2015-06-20T08:02:00-05:00</published>
38
+ <author>
39
+ <name>w-nws.webmaster@noaa.gov</name>
40
+ </author>
41
+ <title>Flood Warning issued June 20 at 8:02AM CDT until June 23 at 2:53AM CDT by NWS</title>
42
+ <link href='http://alerts.weather.gov/cap/wwacapget.php?x=LA1253AE8E0B98.FloodWarning.1253AEBAFBE4LA.SHVFLSSHV.3908c4d415c0ed7efa65ce2f6eea425e'/>
43
+ <summary>The flood warning continues for the Red Chute Bayou At Sligo, Louisiana. * until late Monday night...or until the warning is cancelled. * At 70 AM Saturday the stage was 32.0 feet. * Minor flooding is occurring and minor flooding is forecast. * Flood stage is 31 feet.</summary>
44
+ <valueName>FIPS6</valueName>
45
+ <value>022013 022015</value>
46
+ <valueName>UGC</valueName>
47
+ <value>LAC013 LAC015</value>
48
+ </cap:geocode>
49
+ <cap:parameter>
50
+ <valueName>VTEC</valueName>
51
+ <value>/O.EXT.KSHV.FL.W.0168.000000T0000Z-150623T0753Z/
52
+ /SLGL1.1.ER.150618T1228Z.150619T1330Z.150622T1353Z.NO/</value>
53
+ </cap:parameter>
54
+ </entry>
55
+
56
+ </feed>
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gull
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.12
4
+ version: 0.2.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Seth Deckard
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-06-12 00:00:00.000000000 Z
11
+ date: 2015-06-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httpclient
@@ -122,6 +122,7 @@ files:
122
122
  - spec/fixtures/alerts.xml
123
123
  - spec/fixtures/bad.xml
124
124
  - spec/fixtures/empty.xml
125
+ - spec/fixtures/missing_cap.xml
125
126
  - spec/polygon_spec.rb
126
127
  - spec/spec_helper.rb
127
128
  homepage: https://github.com/sethdeckard/gull
@@ -153,5 +154,6 @@ test_files:
153
154
  - spec/fixtures/alerts.xml
154
155
  - spec/fixtures/bad.xml
155
156
  - spec/fixtures/empty.xml
157
+ - spec/fixtures/missing_cap.xml
156
158
  - spec/polygon_spec.rb
157
159
  - spec/spec_helper.rb