rcap 2.4.1 → 2.7.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (99) hide show
  1. checksums.yaml +5 -5
  2. data/.ruby-version +1 -0
  3. data/CHANGELOG.md +18 -0
  4. data/README.md +1 -0
  5. data/lib/rcap.rb +3 -1
  6. data/lib/rcap/alert.rb +30 -29
  7. data/lib/rcap/base/alert.rb +208 -205
  8. data/lib/rcap/base/area.rb +95 -91
  9. data/lib/rcap/base/circle.rb +45 -34
  10. data/lib/rcap/base/event_code.rb +2 -0
  11. data/lib/rcap/base/geocode.rb +2 -0
  12. data/lib/rcap/base/info.rb +273 -272
  13. data/lib/rcap/base/parameter.rb +29 -28
  14. data/lib/rcap/base/point.rb +26 -24
  15. data/lib/rcap/base/polygon.rb +43 -35
  16. data/lib/rcap/base/resource.rb +65 -65
  17. data/lib/rcap/cap_1_0/alert.rb +85 -86
  18. data/lib/rcap/cap_1_0/area.rb +2 -2
  19. data/lib/rcap/cap_1_0/circle.rb +2 -1
  20. data/lib/rcap/cap_1_0/event_code.rb +3 -1
  21. data/lib/rcap/cap_1_0/geocode.rb +3 -1
  22. data/lib/rcap/cap_1_0/info.rb +3 -3
  23. data/lib/rcap/cap_1_0/parameter.rb +13 -13
  24. data/lib/rcap/cap_1_0/point.rb +2 -1
  25. data/lib/rcap/cap_1_0/polygon.rb +3 -3
  26. data/lib/rcap/cap_1_0/resource.rb +2 -3
  27. data/lib/rcap/cap_1_1/alert.rb +6 -6
  28. data/lib/rcap/cap_1_1/area.rb +2 -2
  29. data/lib/rcap/cap_1_1/circle.rb +2 -1
  30. data/lib/rcap/cap_1_1/event_code.rb +3 -1
  31. data/lib/rcap/cap_1_1/geocode.rb +3 -1
  32. data/lib/rcap/cap_1_1/info.rb +125 -132
  33. data/lib/rcap/cap_1_1/parameter.rb +2 -3
  34. data/lib/rcap/cap_1_1/point.rb +2 -1
  35. data/lib/rcap/cap_1_1/polygon.rb +3 -3
  36. data/lib/rcap/cap_1_1/resource.rb +37 -38
  37. data/lib/rcap/cap_1_2/alert.rb +6 -6
  38. data/lib/rcap/cap_1_2/area.rb +2 -2
  39. data/lib/rcap/cap_1_2/circle.rb +2 -1
  40. data/lib/rcap/cap_1_2/event_code.rb +3 -1
  41. data/lib/rcap/cap_1_2/geocode.rb +3 -1
  42. data/lib/rcap/cap_1_2/info.rb +120 -123
  43. data/lib/rcap/cap_1_2/parameter.rb +2 -3
  44. data/lib/rcap/cap_1_2/point.rb +2 -1
  45. data/lib/rcap/cap_1_2/polygon.rb +4 -4
  46. data/lib/rcap/cap_1_2/resource.rb +38 -38
  47. data/lib/rcap/config.rb +5 -3
  48. data/lib/rcap/custom_validators.rb +75 -78
  49. data/lib/rcap/extensions/array.rb +3 -1
  50. data/lib/rcap/extensions/date.rb +3 -1
  51. data/lib/rcap/extensions/date_time.rb +5 -2
  52. data/lib/rcap/extensions/float.rb +2 -0
  53. data/lib/rcap/extensions/integer.rb +7 -0
  54. data/lib/rcap/extensions/nil_class.rb +2 -0
  55. data/lib/rcap/extensions/string.rb +6 -4
  56. data/lib/rcap/extensions/time.rb +5 -3
  57. data/lib/rcap/formatters/yaml.rb +5 -0
  58. data/lib/rcap/info.rb +6 -5
  59. data/lib/rcap/utilities.rb +27 -30
  60. data/lib/rcap/validation.rb +22 -21
  61. data/lib/rcap/version.rb +3 -1
  62. data/rcap.gemspec +5 -5
  63. data/spec/alert_spec.rb +141 -141
  64. data/spec/cap_1_0/alert_spec.rb +92 -94
  65. data/spec/cap_1_0/area_spec.rb +86 -86
  66. data/spec/cap_1_0/circle_spec.rb +48 -39
  67. data/spec/cap_1_0/event_code_spec.rb +15 -15
  68. data/spec/cap_1_0/geocode_spec.rb +16 -16
  69. data/spec/cap_1_0/info_spec.rb +175 -177
  70. data/spec/cap_1_0/parameter_spec.rb +27 -27
  71. data/spec/cap_1_0/point_spec.rb +18 -18
  72. data/spec/cap_1_0/polygon_spec.rb +43 -41
  73. data/spec/cap_1_0/resource_spec.rb +63 -64
  74. data/spec/cap_1_1/alert_spec.rb +107 -109
  75. data/spec/cap_1_1/area_spec.rb +90 -90
  76. data/spec/cap_1_1/circle_spec.rb +43 -34
  77. data/spec/cap_1_1/event_code_spec.rb +15 -16
  78. data/spec/cap_1_1/geocode_spec.rb +16 -16
  79. data/spec/cap_1_1/info_spec.rb +194 -196
  80. data/spec/cap_1_1/parameter_spec.rb +17 -17
  81. data/spec/cap_1_1/point_spec.rb +18 -18
  82. data/spec/cap_1_1/polygon_spec.rb +43 -41
  83. data/spec/cap_1_1/resource_spec.rb +106 -107
  84. data/spec/cap_1_2/alert_spec.rb +98 -99
  85. data/spec/cap_1_2/area_spec.rb +90 -90
  86. data/spec/cap_1_2/circle_spec.rb +52 -43
  87. data/spec/cap_1_2/event_code_spec.rb +19 -20
  88. data/spec/cap_1_2/geocode_spec.rb +20 -20
  89. data/spec/cap_1_2/info_spec.rb +196 -198
  90. data/spec/cap_1_2/parameter_spec.rb +19 -19
  91. data/spec/cap_1_2/point_spec.rb +21 -21
  92. data/spec/cap_1_2/polygon_spec.rb +55 -47
  93. data/spec/cap_1_2/resource_spec.rb +96 -97
  94. data/spec/extensions_spec.rb +29 -29
  95. data/spec/info_spec.rb +15 -15
  96. data/spec/spec_helper.rb +3 -3
  97. data/spec/validations_spec.rb +73 -73
  98. metadata +12 -11
  99. data/lib/rcap/extensions/fixnum.rb +0 -5
@@ -1,46 +1,46 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe( RCAP::CAP_1_1::Circle ) do
4
- describe( 'should not be valid if' ) do
5
- before( :each ) do
3
+ describe(RCAP::CAP_1_1::Circle) do
4
+ describe('should not be valid if') do
5
+ before(:each) do
6
6
  @circle = RCAP::CAP_1_1::Circle.new do |circle|
7
7
  circle.lattitude = 0
8
8
  circle.longitude = 0
9
9
  circle.radius = 0
10
10
  end
11
11
 
12
- @circle.should( be_valid )
12
+ @circle.should(be_valid)
13
13
  end
14
14
 
15
- it( 'does not have a lattitude defined' ) do
15
+ it('does not have a lattitude defined') do
16
16
  @circle.lattitude = nil
17
- @circle.should_not( be_valid )
17
+ @circle.should_not(be_valid)
18
18
  end
19
19
 
20
- it( 'does not have a longitude defined' ) do
20
+ it('does not have a longitude defined') do
21
21
  @circle.longitude = nil
22
- @circle.should_not( be_valid )
22
+ @circle.should_not(be_valid)
23
23
  end
24
24
 
25
- it( 'does not have a radius defined' ) do
25
+ it('does not have a radius defined') do
26
26
  @circle.radius = nil
27
- @circle.should_not( be_valid )
27
+ @circle.should_not(be_valid)
28
28
  end
29
29
 
30
- it( 'does not have a numeric radius' ) do
31
- @circle.radius = "not a number"
32
- @circle.should_not( be_valid )
30
+ it('does not have a numeric radius') do
31
+ @circle.radius = 'not a number'
32
+ @circle.should_not(be_valid)
33
33
  end
34
34
 
35
- it( 'does not have a positive radius' ) do
35
+ it('does not have a positive radius') do
36
36
  @circle.radius = -1
37
- @circle.should_not( be_valid )
37
+ @circle.should_not(be_valid)
38
38
  end
39
39
  end
40
40
 
41
- context( 'on initialisation' ) do
42
- context( 'from XML' ) do
43
- before( :each ) do
41
+ context('on initialisation') do
42
+ context('from XML') do
43
+ before(:each) do
44
44
  @original_circle = RCAP::CAP_1_1::Circle.new do |circle|
45
45
  circle.lattitude = 30
46
46
  circle.longitude = 60
@@ -55,46 +55,46 @@ describe( RCAP::CAP_1_1::Circle ) do
55
55
  end
56
56
 
57
57
  @xml_string = @alert.to_xml
58
- @xml_document = REXML::Document.new( @xml_string )
59
- @info_element = RCAP.xpath_first( @xml_document.root, RCAP::CAP_1_1::Info::XPATH, RCAP::CAP_1_1::Alert::XMLNS )
60
- @area_element = RCAP.xpath_first( @info_element, RCAP::CAP_1_1::Area::XPATH, RCAP::CAP_1_1::Alert::XMLNS )
61
- @circle_element = RCAP.xpath_first( @area_element, RCAP::CAP_1_1::Circle::XPATH, RCAP::CAP_1_1::Alert::XMLNS )
62
- @circle = RCAP::CAP_1_1::Circle.from_xml_element( @circle_element )
58
+ @xml_document = REXML::Document.new(@xml_string)
59
+ @info_element = RCAP.xpath_first(@xml_document.root, RCAP::CAP_1_1::Info::XPATH, RCAP::CAP_1_1::Alert::XMLNS)
60
+ @area_element = RCAP.xpath_first(@info_element, RCAP::CAP_1_1::Area::XPATH, RCAP::CAP_1_1::Alert::XMLNS)
61
+ @circle_element = RCAP.xpath_first(@area_element, RCAP::CAP_1_1::Circle::XPATH, RCAP::CAP_1_1::Alert::XMLNS)
62
+ @circle = RCAP::CAP_1_1::Circle.from_xml_element(@circle_element)
63
63
  end
64
64
 
65
- it( 'should parse the radius correctly' ) do
65
+ it('should parse the radius correctly') do
66
66
  @circle.radius.should == @original_circle.radius
67
67
  end
68
68
 
69
- it( 'should parse the lattitude and longitude correctly' ) do
69
+ it('should parse the lattitude and longitude correctly') do
70
70
  @circle.lattitude.should == @original_circle.lattitude
71
71
  @circle.longitude.should == @original_circle.longitude
72
72
  end
73
73
  end
74
74
 
75
- context( 'from a hash' ) do
76
- before( :each ) do
75
+ context('from a hash') do
76
+ before(:each) do
77
77
  @original_circle = RCAP::CAP_1_1::Circle.new do |circle|
78
78
  circle.lattitude = 30
79
79
  circle.longitude = 60
80
80
  circle.radius = 10.5
81
81
  end
82
- @circle = RCAP::CAP_1_1::Circle.from_h( @original_circle.to_h )
82
+ @circle = RCAP::CAP_1_1::Circle.from_h(@original_circle.to_h)
83
83
  end
84
84
 
85
- it( 'should set the radius correctly' ) do
85
+ it('should set the radius correctly') do
86
86
  @circle.radius.should == @original_circle.radius
87
87
  end
88
88
 
89
- it( 'should parse the lattitude and longitude correctly' ) do
89
+ it('should parse the lattitude and longitude correctly') do
90
90
  @circle.lattitude.should == @original_circle.lattitude
91
91
  @circle.longitude.should == @original_circle.longitude
92
92
  end
93
93
  end
94
94
  end
95
95
 
96
- context( 'when exported' ) do
97
- before( :each ) do
96
+ context('when exported') do
97
+ before(:each) do
98
98
  @circle = RCAP::CAP_1_1::Circle.new do |circle|
99
99
  circle.lattitude = 30
100
100
  circle.longitude = 60
@@ -102,8 +102,17 @@ describe( RCAP::CAP_1_1::Circle ) do
102
102
  end
103
103
  end
104
104
 
105
- context( 'to hash' ) do
106
- it( 'should be correct' ) do
105
+ context('to geojson') do
106
+ it('should be valid geojson') do
107
+ @circle.longitude = 5.6
108
+ expected = '{"type":"Feature","geometry":{"type":"Point",' \
109
+ '"coordinates":[5.6,30]},"properties":{"radius":10.5}}'
110
+ expect(@circle.to_geojson).to eq expected
111
+ end
112
+ end
113
+
114
+ context('to hash') do
115
+ it('should be correct') do
107
116
  @circle.to_h.should == { 'radius' => 10.5, 'lattitude' => 30, 'longitude' => 60 }
108
117
  end
109
118
  end
@@ -1,9 +1,9 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe( RCAP::CAP_1_1::EventCode ) do
4
- context( 'when initialised' ) do
5
- context( 'from XML' ) do
6
- before( :each ) do
3
+ describe(RCAP::CAP_1_1::EventCode) do
4
+ context('when initialised') do
5
+ context('from XML') do
6
+ before(:each) do
7
7
  @alert = RCAP::CAP_1_1::Alert.new do |alert|
8
8
  alert.add_info.add_event_code do |event_code|
9
9
  event_code.name = 'name'
@@ -12,39 +12,38 @@ describe( RCAP::CAP_1_1::EventCode ) do
12
12
  end
13
13
  @original_event_code = @alert.infos.first.event_codes.first
14
14
  @xml_string = @alert.to_xml
15
- @xml_document = REXML::Document.new( @xml_string )
16
- @info_xml_element = RCAP.xpath_first( @xml_document.root, RCAP::CAP_1_1::Info::XPATH, RCAP::CAP_1_1::Alert::XMLNS )
17
- @event_code_xml_element = RCAP.xpath_first( @info_xml_element, RCAP::CAP_1_1::EventCode::XPATH, RCAP::CAP_1_1::Alert::XMLNS )
18
- @event_code = RCAP::CAP_1_1::EventCode.from_xml_element( @event_code_xml_element )
15
+ @xml_document = REXML::Document.new(@xml_string)
16
+ @info_xml_element = RCAP.xpath_first(@xml_document.root, RCAP::CAP_1_1::Info::XPATH, RCAP::CAP_1_1::Alert::XMLNS)
17
+ @event_code_xml_element = RCAP.xpath_first(@info_xml_element, RCAP::CAP_1_1::EventCode::XPATH, RCAP::CAP_1_1::Alert::XMLNS)
18
+ @event_code = RCAP::CAP_1_1::EventCode.from_xml_element(@event_code_xml_element)
19
19
  end
20
20
 
21
- it( 'should parse into the correct class' ) do
21
+ it('should parse into the correct class') do
22
22
  @event_code.class.should == RCAP::CAP_1_1::EventCode
23
23
  end
24
24
 
25
- it( 'should parse the name correctly' ) do
25
+ it('should parse the name correctly') do
26
26
  @event_code.name.should == @original_event_code.name
27
27
  end
28
28
 
29
- it( 'should parse the value correctly' ) do
29
+ it('should parse the value correctly') do
30
30
  @event_code.value.should == @original_event_code.value
31
31
  end
32
32
  end
33
33
  end
34
34
 
35
- context( 'when exported' ) do
36
- before( :each ) do
35
+ context('when exported') do
36
+ before(:each) do
37
37
  @event_code = RCAP::CAP_1_1::EventCode.new do |event_code|
38
38
  event_code.name = 'name'
39
39
  event_code.value = 'value'
40
40
  end
41
41
  end
42
42
 
43
- context( 'to a hash' ) do
44
- it( 'should export correctly' ) do
43
+ context('to a hash') do
44
+ it('should export correctly') do
45
45
  @event_code.to_h.should == { 'name' => 'value' }
46
46
  end
47
47
  end
48
48
  end
49
49
  end
50
-
@@ -1,9 +1,9 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe( RCAP::CAP_1_1::Geocode ) do
4
- context( 'when initialised' ) do
5
- context( 'from XML' ) do
6
- before( :each ) do
3
+ describe(RCAP::CAP_1_1::Geocode) do
4
+ context('when initialised') do
5
+ context('from XML') do
6
+ before(:each) do
7
7
  @alert = RCAP::CAP_1_1::Alert.new do |alert|
8
8
  alert.add_info.add_area.add_geocode do |geocode|
9
9
  geocode.name = 'name'
@@ -12,37 +12,37 @@ describe( RCAP::CAP_1_1::Geocode ) do
12
12
  end
13
13
  @original_geocode = @alert.infos.first.areas.first.geocodes.first
14
14
  @xml_string = @alert.to_xml
15
- @xml_document = REXML::Document.new( @xml_string )
16
- @info_xml_element = RCAP.xpath_first( @xml_document.root, RCAP::CAP_1_1::Info::XPATH, RCAP::CAP_1_1::Alert::XMLNS )
17
- @area_xml_element = RCAP.xpath_first( @info_xml_element, RCAP::CAP_1_1::Area::XPATH, RCAP::CAP_1_1::Alert::XMLNS )
18
- @geocode_xml_element = RCAP.xpath_first( @area_xml_element, RCAP::CAP_1_1::Geocode::XPATH, RCAP::CAP_1_1::Alert::XMLNS )
19
- @geocode = RCAP::CAP_1_1::Geocode.from_xml_element( @geocode_xml_element )
15
+ @xml_document = REXML::Document.new(@xml_string)
16
+ @info_xml_element = RCAP.xpath_first(@xml_document.root, RCAP::CAP_1_1::Info::XPATH, RCAP::CAP_1_1::Alert::XMLNS)
17
+ @area_xml_element = RCAP.xpath_first(@info_xml_element, RCAP::CAP_1_1::Area::XPATH, RCAP::CAP_1_1::Alert::XMLNS)
18
+ @geocode_xml_element = RCAP.xpath_first(@area_xml_element, RCAP::CAP_1_1::Geocode::XPATH, RCAP::CAP_1_1::Alert::XMLNS)
19
+ @geocode = RCAP::CAP_1_1::Geocode.from_xml_element(@geocode_xml_element)
20
20
  end
21
21
 
22
- it( 'should parse into the correct class' ) do
22
+ it('should parse into the correct class') do
23
23
  @geocode.class.should == RCAP::CAP_1_1::Geocode
24
24
  end
25
25
 
26
- it( 'should parse the name correctly' ) do
26
+ it('should parse the name correctly') do
27
27
  @geocode.name.should == @original_geocode.name
28
28
  end
29
29
 
30
- it( 'should parse the value correctly' ) do
30
+ it('should parse the value correctly') do
31
31
  @geocode.value.should == @original_geocode.value
32
32
  end
33
33
  end
34
34
  end
35
35
 
36
- context( 'when exported' ) do
37
- before( :each ) do
36
+ context('when exported') do
37
+ before(:each) do
38
38
  @geocode = RCAP::CAP_1_1::Geocode.new do |geocode|
39
39
  geocode.name = 'name'
40
40
  geocode.value = 'value'
41
41
  end
42
42
  end
43
43
 
44
- context( 'to a hash' ) do
45
- it( 'should export correctly' ) do
44
+ context('to a hash') do
45
+ it('should export correctly') do
46
46
  @geocode.to_h.should == { 'name' => 'value' }
47
47
  end
48
48
  end
@@ -1,15 +1,15 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe( RCAP::CAP_1_1::Info ) do
4
- before( :each ) do
3
+ describe(RCAP::CAP_1_1::Info) do
4
+ before(:each) do
5
5
  @info_constructor = lambda do |info|
6
- [ RCAP::CAP_1_1::Info::CATEGORY_GEO, RCAP::CAP_1_1::Info::CATEGORY_FIRE ].each do |category|
6
+ [RCAP::CAP_1_1::Info::CATEGORY_GEO, RCAP::CAP_1_1::Info::CATEGORY_FIRE].each do |category|
7
7
  info.categories << category
8
8
  end
9
9
 
10
10
  info.event = 'Event Description'
11
11
 
12
- [ RCAP::CAP_1_1::Info::RESPONSE_TYPE_MONITOR, RCAP::CAP_1_1::Info::RESPONSE_TYPE_ASSESS ].each do |response_type|
12
+ [RCAP::CAP_1_1::Info::RESPONSE_TYPE_MONITOR, RCAP::CAP_1_1::Info::RESPONSE_TYPE_ASSESS].each do |response_type|
13
13
  info.response_types << response_type
14
14
  end
15
15
 
@@ -32,21 +32,21 @@ describe( RCAP::CAP_1_1::Info ) do
32
32
  resource.uri = 'http://tempuri.org/resource'
33
33
  end
34
34
 
35
- [{ :name => 'name1', :value => 'value1' }, { :name => 'name2', :value => 'value2' }].each do |event_code_hash|
35
+ [{ name: 'name1', value: 'value1' }, { name: 'name2', value: 'value2' }].each do |event_code_hash|
36
36
  info.add_event_code do |event_code|
37
- event_code.name = event_code_hash[ :name ]
38
- event_code.value = event_code_hash[ :value ]
37
+ event_code.name = event_code_hash[ :name]
38
+ event_code.value = event_code_hash[ :value]
39
39
  end
40
40
  end
41
41
 
42
- [{ :name => 'name1', :value => 'value1' }, { :name => 'name2', :value => 'value2' }].each do |parameter_hash|
42
+ [{ name: 'name1', value: 'value1' }, { name: 'name2', value: 'value2' }].each do |parameter_hash|
43
43
  info.add_parameter do |parameter|
44
- parameter.name = parameter_hash[ :name ]
45
- parameter.value = parameter_hash[ :value ]
44
+ parameter.name = parameter_hash[ :name]
45
+ parameter.value = parameter_hash[ :value]
46
46
  end
47
47
  end
48
48
 
49
- [ 'Area1', 'Area2' ].each do |area_desc|
49
+ %w(Area1 Area2).each do |area_desc|
50
50
  info.add_area do |area|
51
51
  area.area_desc = area_desc
52
52
  end
@@ -54,221 +54,220 @@ describe( RCAP::CAP_1_1::Info ) do
54
54
  end
55
55
  end
56
56
 
57
- context( 'on initialisation' ) do
58
- before( :each ) do
57
+ context('on initialisation') do
58
+ before(:each) do
59
59
  @info = RCAP::CAP_1_1::Info.new
60
60
  end
61
61
 
62
- it( 'should have a default language of en-US' ) do
62
+ it('should have a default language of en-US') do
63
63
  @info.language.should == 'en-US'
64
64
  end
65
65
 
66
- it( 'should have no categories' ) do
67
- @info.categories.should( be_empty )
66
+ it('should have no categories') do
67
+ @info.categories.should(be_empty)
68
68
  end
69
69
 
70
- it( 'should have no event' ) do
71
- @info.event.should( be_nil )
70
+ it('should have no event') do
71
+ @info.event.should(be_nil)
72
72
  end
73
73
 
74
- it( 'should have no response types' ) do
75
- @info.response_types.should( be_empty )
74
+ it('should have no response types') do
75
+ @info.response_types.should(be_empty)
76
76
  end
77
77
 
78
- it( 'should have no urgency' ) do
79
- @info.urgency.should( be_nil )
78
+ it('should have no urgency') do
79
+ @info.urgency.should(be_nil)
80
80
  end
81
81
 
82
- it( 'should have no severity' ) do
83
- @info.severity.should( be_nil )
82
+ it('should have no severity') do
83
+ @info.severity.should(be_nil)
84
84
  end
85
85
 
86
- it( 'should have no certainty' ) do
87
- @info.certainty.should( be_nil )
86
+ it('should have no certainty') do
87
+ @info.certainty.should(be_nil)
88
88
  end
89
89
 
90
- it( 'should have no audience' ) do
91
- @info.audience.should( be_nil )
90
+ it('should have no audience') do
91
+ @info.audience.should(be_nil)
92
92
  end
93
93
 
94
- it( 'should have no event_codes' ) do
95
- @info.event_codes.should( be_empty )
94
+ it('should have no event_codes') do
95
+ @info.event_codes.should(be_empty)
96
96
  end
97
97
 
98
- it( 'should have no effective datetime' ) do
99
- @info.effective.should( be_nil )
98
+ it('should have no effective datetime') do
99
+ @info.effective.should(be_nil)
100
100
  end
101
101
 
102
- it( 'should have no onset datetime' ) do
103
- @info.onset.should( be_nil )
102
+ it('should have no onset datetime') do
103
+ @info.onset.should(be_nil)
104
104
  end
105
105
 
106
- it( 'should have no expires datetime' ) do
107
- @info.expires.should( be_nil )
106
+ it('should have no expires datetime') do
107
+ @info.expires.should(be_nil)
108
108
  end
109
109
 
110
- it( 'should have no sender name ' ) do
111
- @info.sender_name.should( be_nil )
110
+ it('should have no sender name ') do
111
+ @info.sender_name.should(be_nil)
112
112
  end
113
113
 
114
- it( 'should have no headline' ) do
115
- @info.headline.should( be_nil )
114
+ it('should have no headline') do
115
+ @info.headline.should(be_nil)
116
116
  end
117
117
 
118
- it( 'should have no description' ) do
119
- @info.description.should( be_nil )
118
+ it('should have no description') do
119
+ @info.description.should(be_nil)
120
120
  end
121
121
 
122
- it( 'should have no instruction' ) do
123
- @info.instruction.should( be_nil )
122
+ it('should have no instruction') do
123
+ @info.instruction.should(be_nil)
124
124
  end
125
125
 
126
- it( 'should have no web' ) do
127
- @info.web.should( be_nil )
126
+ it('should have no web') do
127
+ @info.web.should(be_nil)
128
128
  end
129
129
 
130
- it( 'should have no contact' ) do
131
- @info.contact.should( be_nil )
130
+ it('should have no contact') do
131
+ @info.contact.should(be_nil)
132
132
  end
133
133
 
134
- it( 'should have no parameters' ) do
135
- @info.parameters.should( be_empty )
134
+ it('should have no parameters') do
135
+ @info.parameters.should(be_empty)
136
136
  end
137
137
 
138
-
139
- shared_examples_for( 'it can parse into a CAP 1.1 Info object' ) do
140
- it( 'should parse categories correctly' ) do
141
- @info.categories.should_not( be_nil )
138
+ shared_examples_for('it can parse into a CAP 1.1 Info object') do
139
+ it('should parse categories correctly') do
140
+ @info.categories.should_not(be_nil)
142
141
  @info.categories.should == @original_info.categories
143
142
  end
144
143
 
145
- it( 'should parse event correctly' ) do
146
- @info.event.should_not( be_nil )
144
+ it('should parse event correctly') do
145
+ @info.event.should_not(be_nil)
147
146
  @info.event.should == @original_info.event
148
147
  end
149
148
 
150
- it( 'should parse response_types correctly' ) do
151
- @info.response_types.should_not( be_nil )
149
+ it('should parse response_types correctly') do
150
+ @info.response_types.should_not(be_nil)
152
151
  @info.response_types.should == @original_info.response_types
153
152
  end
154
153
 
155
- it( 'should parse urgency correctly' ) do
156
- @info.urgency.should_not( be_nil )
154
+ it('should parse urgency correctly') do
155
+ @info.urgency.should_not(be_nil)
157
156
  @info.urgency.should == @original_info.urgency
158
157
  end
159
158
 
160
- it( 'should parse severity correctly' ) do
161
- @info.severity.should_not( be_nil )
159
+ it('should parse severity correctly') do
160
+ @info.severity.should_not(be_nil)
162
161
  @info.severity.should == @original_info.severity
163
162
  end
164
163
 
165
- it( 'should parse certainty correctly' ) do
166
- @info.certainty.should_not( be_nil )
164
+ it('should parse certainty correctly') do
165
+ @info.certainty.should_not(be_nil)
167
166
  @info.certainty.should == @original_info.certainty
168
167
  end
169
168
 
170
- it( 'should parse audience correctly' ) do
171
- @info.audience.should_not( be_nil )
169
+ it('should parse audience correctly') do
170
+ @info.audience.should_not(be_nil)
172
171
  @info.audience.should == @original_info.audience
173
172
  end
174
173
 
175
- it( 'should parse effective correctly' ) do
176
- @info.effective.should_not( be_nil )
177
- @info.effective.should( be_within(Rational( 1, 86400 )).of( @original_info.effective ))
174
+ it('should parse effective correctly') do
175
+ @info.effective.should_not(be_nil)
176
+ @info.effective.should(be_within(Rational(1, 86_400)).of(@original_info.effective))
178
177
  end
179
178
 
180
- it( 'should parse onset correctly' ) do
181
- @info.onset.should_not( be_nil )
182
- @info.onset.should( be_within( Rational( 1, 86400 )).of( @original_info.onset ))
179
+ it('should parse onset correctly') do
180
+ @info.onset.should_not(be_nil)
181
+ @info.onset.should(be_within(Rational(1, 86_400)).of(@original_info.onset))
183
182
  end
184
183
 
185
- it( 'should parse expires correctly' ) do
186
- @info.expires.should_not( be_nil )
187
- @info.expires.should( be_within( Rational( 1, 86400 )).of( @original_info.expires ))
184
+ it('should parse expires correctly') do
185
+ @info.expires.should_not(be_nil)
186
+ @info.expires.should(be_within(Rational(1, 86_400)).of(@original_info.expires))
188
187
  end
189
188
 
190
- it( 'should parse sender_name correctly' ) do
191
- @info.sender_name.should_not( be_nil )
189
+ it('should parse sender_name correctly') do
190
+ @info.sender_name.should_not(be_nil)
192
191
  @info.sender_name.should == @original_info.sender_name
193
192
  end
194
193
 
195
- it( 'should parse headline correctly' ) do
196
- @info.headline.should_not( be_nil )
194
+ it('should parse headline correctly') do
195
+ @info.headline.should_not(be_nil)
197
196
  @info.headline.should == @original_info.headline
198
197
  end
199
198
 
200
- it( 'should parse description correctly' ) do
201
- @info.description.should_not( be_nil )
199
+ it('should parse description correctly') do
200
+ @info.description.should_not(be_nil)
202
201
  @info.description.should == @original_info.description
203
202
  end
204
203
 
205
- it( 'should parse instruction correctly' ) do
206
- @info.instruction.should_not( be_nil )
204
+ it('should parse instruction correctly') do
205
+ @info.instruction.should_not(be_nil)
207
206
  @info.instruction.should == @original_info.instruction
208
207
  end
209
208
 
210
- it( 'should parse web correctly' ) do
211
- @info.web.should_not( be_nil )
209
+ it('should parse web correctly') do
210
+ @info.web.should_not(be_nil)
212
211
  @info.web.should == @original_info.web
213
212
  end
214
213
 
215
- it( 'should parse contact correctly' ) do
216
- @info.contact.should_not( be_nil )
214
+ it('should parse contact correctly') do
215
+ @info.contact.should_not(be_nil)
217
216
  @info.contact.should == @original_info.contact
218
217
  end
219
218
 
220
- it( 'should parse event_codes correctly' ) do
221
- @info.event_codes.should_not( be_nil )
219
+ it('should parse event_codes correctly') do
220
+ @info.event_codes.should_not(be_nil)
222
221
  @info.event_codes.should == @original_info.event_codes
223
222
  end
224
223
 
225
- it( 'should parse parameters correctly' ) do
226
- @info.parameters.should_not( be_nil )
224
+ it('should parse parameters correctly') do
225
+ @info.parameters.should_not(be_nil)
227
226
  @info.parameters.should == @original_info.parameters
228
227
  end
229
228
 
230
- it( 'should parse resources correctly' ) do
231
- @info.resources.should_not( be_empty )
229
+ it('should parse resources correctly') do
230
+ @info.resources.should_not(be_empty)
232
231
 
233
232
  comparison_attributes = lambda do |resource|
234
233
  resource.resource_desc
235
234
  resource.uri
236
235
  end
237
- @info.resources.map( &comparison_attributes ).should == @original_info.resources.map( &comparison_attributes )
236
+ @info.resources.map(&comparison_attributes).should == @original_info.resources.map(&comparison_attributes)
238
237
  end
239
238
 
240
- it( 'should parse areas correctly' ) do
241
- @info.areas.should_not( be_nil )
239
+ it('should parse areas correctly') do
240
+ @info.areas.should_not(be_nil)
242
241
  @info.areas.should == @original_info.areas
243
242
  end
244
243
  end
245
244
 
246
- context( 'from XML' ) do
247
- before( :each ) do
248
- @original_info = RCAP::CAP_1_1::Info.new( &@info_constructor )
245
+ context('from XML') do
246
+ before(:each) do
247
+ @original_info = RCAP::CAP_1_1::Info.new(&@info_constructor)
249
248
  @alert = RCAP::CAP_1_1::Alert.new
250
- @alert.add_info( &@info_constructor )
249
+ @alert.add_info(&@info_constructor)
251
250
  @xml_string = @alert.to_xml
252
- @xml_document = REXML::Document.new( @xml_string )
253
- @info = RCAP::CAP_1_1::Info.from_xml_element( RCAP.xpath_first( @xml_document.root, RCAP::CAP_1_1::Info::XPATH, RCAP::CAP_1_1::Alert::XMLNS ))
251
+ @xml_document = REXML::Document.new(@xml_string)
252
+ @info = RCAP::CAP_1_1::Info.from_xml_element(RCAP.xpath_first(@xml_document.root, RCAP::CAP_1_1::Info::XPATH, RCAP::CAP_1_1::Alert::XMLNS))
254
253
  end
255
254
 
256
- it_should_behave_like( "it can parse into a CAP 1.1 Info object" )
255
+ it_should_behave_like('it can parse into a CAP 1.1 Info object')
257
256
  end
258
257
 
259
- context( 'from a hash' ) do
260
- before( :each ) do
261
- @original_info = RCAP::CAP_1_1::Info.new( &@info_constructor )
258
+ context('from a hash') do
259
+ before(:each) do
260
+ @original_info = RCAP::CAP_1_1::Info.new(&@info_constructor)
262
261
 
263
- @info = RCAP::CAP_1_1::Info.from_h( @original_info.to_h )
262
+ @info = RCAP::CAP_1_1::Info.from_h(@original_info.to_h)
264
263
  end
265
264
 
266
- it_should_behave_like( "it can parse into a CAP 1.1 Info object" )
265
+ it_should_behave_like('it can parse into a CAP 1.1 Info object')
267
266
  end
268
267
  end
269
268
 
270
- context( 'is not valid if it' ) do
271
- before( :each ) do
269
+ context('is not valid if it') do
270
+ before(:each) do
272
271
  @info = RCAP::CAP_1_1::Info.new do |info|
273
272
  info.event = 'Info Event'
274
273
  info.categories << RCAP::CAP_1_1::Info::CATEGORY_GEO
@@ -278,203 +277,202 @@ describe( RCAP::CAP_1_1::Info ) do
278
277
  end
279
278
  @info.valid?
280
279
  puts @info.errors.full_messages
281
- @info.should( be_valid )
280
+ @info.should(be_valid)
282
281
  end
283
282
 
284
- it( 'does not have an event' ) do
283
+ it('does not have an event') do
285
284
  @info.event = nil
286
- @info.should_not( be_valid )
285
+ @info.should_not(be_valid)
287
286
  end
288
287
 
289
- it( 'does not have categories' ) do
288
+ it('does not have categories') do
290
289
  @info.categories.clear
291
- @info.should_not( be_valid )
290
+ @info.should_not(be_valid)
292
291
  end
293
292
 
294
- it( 'does not have an urgency' ) do
293
+ it('does not have an urgency') do
295
294
  @info.urgency = nil
296
- @info.should_not( be_valid )
295
+ @info.should_not(be_valid)
297
296
  end
298
297
 
299
- it( 'does not have an severity' ) do
298
+ it('does not have an severity') do
300
299
  @info.severity = nil
301
- @info.should_not( be_valid )
300
+ @info.should_not(be_valid)
302
301
  end
303
302
 
304
- it( 'does not have an certainty' ) do
303
+ it('does not have an certainty') do
305
304
  @info.certainty = nil
306
- @info.should_not( be_valid )
305
+ @info.should_not(be_valid)
307
306
  end
308
307
  end
309
308
 
310
-
311
- describe( 'when exported' ) do
312
- context( 'to hash' ) do
313
- before( :each ) do
314
- @info = RCAP::CAP_1_1::Info.new( &@info_constructor )
309
+ describe('when exported') do
310
+ context('to hash') do
311
+ before(:each) do
312
+ @info = RCAP::CAP_1_1::Info.new(&@info_constructor)
315
313
 
316
314
  @info_hash = @info.to_h
317
315
  end
318
316
 
319
- it( 'should export the language correctly' ) do
320
- @info_hash[ RCAP::CAP_1_1::Info::LANGUAGE_KEY ].should == @info.language
317
+ it('should export the language correctly') do
318
+ @info_hash[ RCAP::CAP_1_1::Info::LANGUAGE_KEY].should == @info.language
321
319
  end
322
320
 
323
- it( 'should export the categories' ) do
324
- @info_hash[ RCAP::CAP_1_1::Info::CATEGORIES_KEY ].should == @info.categories
321
+ it('should export the categories') do
322
+ @info_hash[ RCAP::CAP_1_1::Info::CATEGORIES_KEY].should == @info.categories
325
323
  end
326
324
 
327
- it( 'should export the event' ) do
328
- @info_hash[ RCAP::CAP_1_1::Info::EVENT_KEY ].should == @info.event
325
+ it('should export the event') do
326
+ @info_hash[ RCAP::CAP_1_1::Info::EVENT_KEY].should == @info.event
329
327
  end
330
328
 
331
- it( 'should export the response types' ) do
332
- @info_hash[ RCAP::CAP_1_1::Info::RESPONSE_TYPES_KEY ].should == @info.response_types
329
+ it('should export the response types') do
330
+ @info_hash[ RCAP::CAP_1_1::Info::RESPONSE_TYPES_KEY].should == @info.response_types
333
331
  end
334
332
 
335
- it( 'should export the urgency' ) do
336
- @info_hash[ RCAP::CAP_1_1::Info:: URGENCY_KEY ].should == @info.urgency
333
+ it('should export the urgency') do
334
+ @info_hash[ RCAP::CAP_1_1::Info:: URGENCY_KEY].should == @info.urgency
337
335
  end
338
336
 
339
- it( 'should export the severity' ) do
340
- @info_hash[ RCAP::CAP_1_1::Info:: SEVERITY_KEY ].should == @info.severity
337
+ it('should export the severity') do
338
+ @info_hash[ RCAP::CAP_1_1::Info:: SEVERITY_KEY].should == @info.severity
341
339
  end
342
340
 
343
- it( 'should export the certainty' ) do
344
- @info_hash[ RCAP::CAP_1_1::Info:: CERTAINTY_KEY ].should == @info.certainty
341
+ it('should export the certainty') do
342
+ @info_hash[ RCAP::CAP_1_1::Info:: CERTAINTY_KEY].should == @info.certainty
345
343
  end
346
344
 
347
- it( 'should export the audience' ) do
348
- @info_hash[ RCAP::CAP_1_1::Info:: AUDIENCE_KEY ].should == @info.audience
345
+ it('should export the audience') do
346
+ @info_hash[ RCAP::CAP_1_1::Info:: AUDIENCE_KEY].should == @info.audience
349
347
  end
350
348
 
351
- it( 'should export the effective date' ) do
352
- @info_hash[ RCAP::CAP_1_1::Info::EFFECTIVE_KEY ].should == @info.effective.to_s_for_cap
349
+ it('should export the effective date') do
350
+ @info_hash[ RCAP::CAP_1_1::Info::EFFECTIVE_KEY].should == @info.effective.to_s_for_cap
353
351
  end
354
352
 
355
- it( 'should export the onset date' ) do
356
- @info_hash[ RCAP::CAP_1_1::Info::ONSET_KEY ].should == @info.onset.to_s_for_cap
353
+ it('should export the onset date') do
354
+ @info_hash[ RCAP::CAP_1_1::Info::ONSET_KEY].should == @info.onset.to_s_for_cap
357
355
  end
358
356
 
359
- it( 'should export the expires date' ) do
360
- @info_hash[ RCAP::CAP_1_1::Info::EXPIRES_KEY ].should == @info.expires.to_s_for_cap
357
+ it('should export the expires date') do
358
+ @info_hash[ RCAP::CAP_1_1::Info::EXPIRES_KEY].should == @info.expires.to_s_for_cap
361
359
  end
362
360
 
363
- it( 'should export the sender name' ) do
364
- @info_hash[ RCAP::CAP_1_1::Info::SENDER_NAME_KEY ].should == @info.sender_name
365
- end
361
+ it('should export the sender name') do
362
+ @info_hash[ RCAP::CAP_1_1::Info::SENDER_NAME_KEY].should == @info.sender_name
363
+ end
366
364
 
367
- it( 'should export the headline' ) do
368
- @info_hash[ RCAP::CAP_1_1::Info::HEADLINE_KEY ].should == @info.headline
369
- end
365
+ it('should export the headline') do
366
+ @info_hash[ RCAP::CAP_1_1::Info::HEADLINE_KEY].should == @info.headline
367
+ end
370
368
 
371
- it( 'should export the description' ) do
372
- @info_hash[ RCAP::CAP_1_1::Info::DESCRIPTION_KEY ].should == @info.description
373
- end
369
+ it('should export the description') do
370
+ @info_hash[ RCAP::CAP_1_1::Info::DESCRIPTION_KEY].should == @info.description
371
+ end
374
372
 
375
- it( 'should export the instruction' ) do
376
- @info_hash[ RCAP::CAP_1_1::Info::INSTRUCTION_KEY ].should == @info.instruction
377
- end
373
+ it('should export the instruction') do
374
+ @info_hash[ RCAP::CAP_1_1::Info::INSTRUCTION_KEY].should == @info.instruction
375
+ end
378
376
 
379
- it( 'should export the web address ' ) do
380
- @info_hash[ RCAP::CAP_1_1::Info::WEB_KEY ].should == @info.web
381
- end
377
+ it('should export the web address ') do
378
+ @info_hash[ RCAP::CAP_1_1::Info::WEB_KEY].should == @info.web
379
+ end
382
380
 
383
- it( 'should export the contact' ) do
384
- @info_hash[ RCAP::CAP_1_1::Info::CONTACT_KEY ].should == @info.contact
385
- end
381
+ it('should export the contact') do
382
+ @info_hash[ RCAP::CAP_1_1::Info::CONTACT_KEY].should == @info.contact
383
+ end
386
384
 
387
- it( 'should export the event codes' ) do
388
- @info_hash[ RCAP::CAP_1_1::Info::EVENT_CODES_KEY ].should == @info.event_codes.map{ |event_code| event_code.to_h }
389
- end
385
+ it('should export the event codes') do
386
+ @info_hash[ RCAP::CAP_1_1::Info::EVENT_CODES_KEY].should == @info.event_codes.map { |event_code| event_code.to_h }
387
+ end
390
388
 
391
- it( 'should export the parameters ' ) do
392
- @info_hash[ RCAP::CAP_1_1::Info::PARAMETERS_KEY ].should == @info.parameters.map{ |parameter| parameter.to_h }
393
- end
389
+ it('should export the parameters ') do
390
+ @info_hash[ RCAP::CAP_1_1::Info::PARAMETERS_KEY].should == @info.parameters.map { |parameter| parameter.to_h }
391
+ end
394
392
 
395
- it( 'should export the resources ' ) do
396
- @info_hash[ RCAP::CAP_1_1::Info::RESOURCES_KEY ].should == @info.resources.map{ |resource| resource.to_h }
397
- end
393
+ it('should export the resources ') do
394
+ @info_hash[ RCAP::CAP_1_1::Info::RESOURCES_KEY].should == @info.resources.map { |resource| resource.to_h }
395
+ end
398
396
 
399
- it( 'should export the areas' ) do
400
- @info_hash[ RCAP::CAP_1_1::Info::AREAS_KEY ].should == @info.areas.map{ |area| area.to_h }
401
- end
397
+ it('should export the areas') do
398
+ @info_hash[ RCAP::CAP_1_1::Info::AREAS_KEY].should == @info.areas.map { |area| area.to_h }
399
+ end
402
400
  end
403
401
  end
404
402
 
405
- describe( 'instance methods' ) do
406
- before( :each ) do
403
+ describe('instance methods') do
404
+ before(:each) do
407
405
  @info = RCAP::CAP_1_1::Info.new
408
406
  end
409
407
 
410
- describe( '#add_event_code' ) do
411
- before( :each ) do
408
+ describe('#add_event_code') do
409
+ before(:each) do
412
410
  @event_code = @info.add_event_code do |event_code|
413
411
  event_code.name = 'Event Code'
414
412
  event_code.value = '1234'
415
413
  end
416
414
  end
417
415
 
418
- it( 'should return a 1.1 EventCode' ) do
416
+ it('should return a 1.1 EventCode') do
419
417
  @event_code.class.should == RCAP::CAP_1_1::EventCode
420
418
  @event_code.name.should == 'Event Code'
421
419
  @event_code.value.should == '1234'
422
420
  end
423
421
 
424
- it( 'should add an EventCode to the event_codes attribute' ) do
422
+ it('should add an EventCode to the event_codes attribute') do
425
423
  @info.event_codes.size.should == 1
426
424
  end
427
425
  end
428
426
 
429
- describe( '#add_parameter' ) do
430
- before( :each ) do
427
+ describe('#add_parameter') do
428
+ before(:each) do
431
429
  @parameter = @info.add_parameter do |parameter|
432
430
  parameter.name = 'Parameter'
433
431
  parameter.value = '1234'
434
432
  end
435
433
  end
436
434
 
437
- it( 'should return a 1.1 Parameter' ) do
435
+ it('should return a 1.1 Parameter') do
438
436
  @parameter.class.should == RCAP::CAP_1_1::Parameter
439
437
  @parameter.name.should == 'Parameter'
440
438
  @parameter.value.should == '1234'
441
439
  end
442
440
 
443
- it( 'should add a Parameter to the parameters attribute' ) do
441
+ it('should add a Parameter to the parameters attribute') do
444
442
  @info.parameters.size.should == 1
445
443
  end
446
444
  end
447
445
 
448
- describe( '#add_resource' ) do
449
- before( :each ) do
446
+ describe('#add_resource') do
447
+ before(:each) do
450
448
  @resource = @info.add_resource do |resource|
451
449
  resource.resource_desc = 'Resource'
452
450
  end
453
451
  end
454
452
 
455
- it( 'should return a 1.1 Resource' ) do
453
+ it('should return a 1.1 Resource') do
456
454
  @resource.class.should == RCAP::CAP_1_1::Resource
457
455
  @resource.resource_desc.should == 'Resource'
458
456
  end
459
457
 
460
- it( 'should add a Resource to the resources attribute' ) do
458
+ it('should add a Resource to the resources attribute') do
461
459
  @info.resources.size.should == 1
462
460
  end
463
461
  end
464
462
 
465
- describe( '#add_area' ) do
466
- before( :each ) do
463
+ describe('#add_area') do
464
+ before(:each) do
467
465
  @area = @info.add_area do |area|
468
466
  area.area_desc = 'Area'
469
467
  end
470
468
  end
471
469
 
472
- it( 'should return a 1.1 area' ) do
470
+ it('should return a 1.1 area') do
473
471
  @area.class.should == RCAP::CAP_1_1::Area
474
472
  @area.area_desc.should == 'Area'
475
473
  end
476
474
 
477
- it( 'should add a Area to the areas attribute' ) do
475
+ it('should add a Area to the areas attribute') do
478
476
  @info.areas.size.should == 1
479
477
  end
480
478
  end