rcap 2.4.1 → 2.7.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/.ruby-version +1 -0
- data/CHANGELOG.md +18 -0
- data/README.md +1 -0
- data/lib/rcap.rb +3 -1
- data/lib/rcap/alert.rb +30 -29
- data/lib/rcap/base/alert.rb +208 -205
- data/lib/rcap/base/area.rb +95 -91
- data/lib/rcap/base/circle.rb +45 -34
- data/lib/rcap/base/event_code.rb +2 -0
- data/lib/rcap/base/geocode.rb +2 -0
- data/lib/rcap/base/info.rb +273 -272
- data/lib/rcap/base/parameter.rb +29 -28
- data/lib/rcap/base/point.rb +26 -24
- data/lib/rcap/base/polygon.rb +43 -35
- data/lib/rcap/base/resource.rb +65 -65
- data/lib/rcap/cap_1_0/alert.rb +85 -86
- data/lib/rcap/cap_1_0/area.rb +2 -2
- data/lib/rcap/cap_1_0/circle.rb +2 -1
- data/lib/rcap/cap_1_0/event_code.rb +3 -1
- data/lib/rcap/cap_1_0/geocode.rb +3 -1
- data/lib/rcap/cap_1_0/info.rb +3 -3
- data/lib/rcap/cap_1_0/parameter.rb +13 -13
- data/lib/rcap/cap_1_0/point.rb +2 -1
- data/lib/rcap/cap_1_0/polygon.rb +3 -3
- data/lib/rcap/cap_1_0/resource.rb +2 -3
- data/lib/rcap/cap_1_1/alert.rb +6 -6
- data/lib/rcap/cap_1_1/area.rb +2 -2
- data/lib/rcap/cap_1_1/circle.rb +2 -1
- data/lib/rcap/cap_1_1/event_code.rb +3 -1
- data/lib/rcap/cap_1_1/geocode.rb +3 -1
- data/lib/rcap/cap_1_1/info.rb +125 -132
- data/lib/rcap/cap_1_1/parameter.rb +2 -3
- data/lib/rcap/cap_1_1/point.rb +2 -1
- data/lib/rcap/cap_1_1/polygon.rb +3 -3
- data/lib/rcap/cap_1_1/resource.rb +37 -38
- data/lib/rcap/cap_1_2/alert.rb +6 -6
- data/lib/rcap/cap_1_2/area.rb +2 -2
- data/lib/rcap/cap_1_2/circle.rb +2 -1
- data/lib/rcap/cap_1_2/event_code.rb +3 -1
- data/lib/rcap/cap_1_2/geocode.rb +3 -1
- data/lib/rcap/cap_1_2/info.rb +120 -123
- data/lib/rcap/cap_1_2/parameter.rb +2 -3
- data/lib/rcap/cap_1_2/point.rb +2 -1
- data/lib/rcap/cap_1_2/polygon.rb +4 -4
- data/lib/rcap/cap_1_2/resource.rb +38 -38
- data/lib/rcap/config.rb +5 -3
- data/lib/rcap/custom_validators.rb +75 -78
- data/lib/rcap/extensions/array.rb +3 -1
- data/lib/rcap/extensions/date.rb +3 -1
- data/lib/rcap/extensions/date_time.rb +5 -2
- data/lib/rcap/extensions/float.rb +2 -0
- data/lib/rcap/extensions/integer.rb +7 -0
- data/lib/rcap/extensions/nil_class.rb +2 -0
- data/lib/rcap/extensions/string.rb +6 -4
- data/lib/rcap/extensions/time.rb +5 -3
- data/lib/rcap/formatters/yaml.rb +5 -0
- data/lib/rcap/info.rb +6 -5
- data/lib/rcap/utilities.rb +27 -30
- data/lib/rcap/validation.rb +22 -21
- data/lib/rcap/version.rb +3 -1
- data/rcap.gemspec +5 -5
- data/spec/alert_spec.rb +141 -141
- data/spec/cap_1_0/alert_spec.rb +92 -94
- data/spec/cap_1_0/area_spec.rb +86 -86
- data/spec/cap_1_0/circle_spec.rb +48 -39
- data/spec/cap_1_0/event_code_spec.rb +15 -15
- data/spec/cap_1_0/geocode_spec.rb +16 -16
- data/spec/cap_1_0/info_spec.rb +175 -177
- data/spec/cap_1_0/parameter_spec.rb +27 -27
- data/spec/cap_1_0/point_spec.rb +18 -18
- data/spec/cap_1_0/polygon_spec.rb +43 -41
- data/spec/cap_1_0/resource_spec.rb +63 -64
- data/spec/cap_1_1/alert_spec.rb +107 -109
- data/spec/cap_1_1/area_spec.rb +90 -90
- data/spec/cap_1_1/circle_spec.rb +43 -34
- data/spec/cap_1_1/event_code_spec.rb +15 -16
- data/spec/cap_1_1/geocode_spec.rb +16 -16
- data/spec/cap_1_1/info_spec.rb +194 -196
- data/spec/cap_1_1/parameter_spec.rb +17 -17
- data/spec/cap_1_1/point_spec.rb +18 -18
- data/spec/cap_1_1/polygon_spec.rb +43 -41
- data/spec/cap_1_1/resource_spec.rb +106 -107
- data/spec/cap_1_2/alert_spec.rb +98 -99
- data/spec/cap_1_2/area_spec.rb +90 -90
- data/spec/cap_1_2/circle_spec.rb +52 -43
- data/spec/cap_1_2/event_code_spec.rb +19 -20
- data/spec/cap_1_2/geocode_spec.rb +20 -20
- data/spec/cap_1_2/info_spec.rb +196 -198
- data/spec/cap_1_2/parameter_spec.rb +19 -19
- data/spec/cap_1_2/point_spec.rb +21 -21
- data/spec/cap_1_2/polygon_spec.rb +55 -47
- data/spec/cap_1_2/resource_spec.rb +96 -97
- data/spec/extensions_spec.rb +29 -29
- data/spec/info_spec.rb +15 -15
- data/spec/spec_helper.rb +3 -3
- data/spec/validations_spec.rb +73 -73
- metadata +12 -11
- data/lib/rcap/extensions/fixnum.rb +0 -5
data/lib/rcap/cap_1_0/alert.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module RCAP
|
2
4
|
module CAP_1_0
|
3
|
-
|
4
5
|
# An Alert object is valid if
|
5
6
|
# * it has an identifier
|
6
7
|
# * it has a sender
|
@@ -10,12 +11,11 @@ module RCAP
|
|
10
11
|
# * it has a valid scope value
|
11
12
|
# * all Info objects contained in infos are valid
|
12
13
|
class Alert < RCAP::Base::Alert
|
13
|
-
|
14
|
-
|
15
|
-
CAP_VERSION = "1.0"
|
14
|
+
XMLNS = 'http://www.incident.com/cap/1.0'
|
15
|
+
CAP_VERSION = '1.0'
|
16
16
|
|
17
17
|
# @return [String]
|
18
|
-
attr_accessor(
|
18
|
+
attr_accessor(:password)
|
19
19
|
|
20
20
|
# @return [String]
|
21
21
|
def xmlns
|
@@ -27,138 +27,137 @@ module RCAP
|
|
27
27
|
Info
|
28
28
|
end
|
29
29
|
|
30
|
-
PASSWORD_ELEMENT_NAME
|
30
|
+
PASSWORD_ELEMENT_NAME = 'password'
|
31
31
|
|
32
32
|
# @return [REXML::Element]
|
33
33
|
def to_xml_element
|
34
|
-
xml_element = REXML::Element.new(
|
35
|
-
xml_element.add_namespace(
|
36
|
-
xml_element.add_element(
|
37
|
-
xml_element.add_element(
|
38
|
-
xml_element.add_element(
|
39
|
-
xml_element.add_element(
|
40
|
-
xml_element.add_element(
|
41
|
-
xml_element.add_element(
|
42
|
-
xml_element.add_element(
|
43
|
-
xml_element.add_element(
|
44
|
-
xml_element.add_element(
|
34
|
+
xml_element = REXML::Element.new(XML_ELEMENT_NAME)
|
35
|
+
xml_element.add_namespace(XMLNS)
|
36
|
+
xml_element.add_element(IDENTIFIER_ELEMENT_NAME).add_text(@identifier) if @identifier
|
37
|
+
xml_element.add_element(SENDER_ELEMENT_NAME).add_text(@sender) if @sender
|
38
|
+
xml_element.add_element(SENT_ELEMENT_NAME).add_text(@sent.to_s_for_cap) if @sent
|
39
|
+
xml_element.add_element(STATUS_ELEMENT_NAME).add_text(@status) if @status
|
40
|
+
xml_element.add_element(MSG_TYPE_ELEMENT_NAME).add_text(@msg_type) if @msg_type
|
41
|
+
xml_element.add_element(PASSWORD_ELEMENT_NAME).add_text(@password) if @password
|
42
|
+
xml_element.add_element(SOURCE_ELEMENT_NAME).add_text(@source) if @source
|
43
|
+
xml_element.add_element(SCOPE_ELEMENT_NAME).add_text(@scope) if @scope
|
44
|
+
xml_element.add_element(RESTRICTION_ELEMENT_NAME).add_text(@restriction) if @restriction
|
45
45
|
if @addresses.any?
|
46
|
-
xml_element.add_element(
|
46
|
+
xml_element.add_element(ADDRESSES_ELEMENT_NAME).add_text(@addresses.to_s_for_cap)
|
47
47
|
end
|
48
48
|
@codes.each do |code|
|
49
|
-
xml_element.add_element(
|
49
|
+
xml_element.add_element(CODE_ELEMENT_NAME).add_text(code)
|
50
50
|
end
|
51
|
-
xml_element.add_element(
|
51
|
+
xml_element.add_element(NOTE_ELEMENT_NAME).add_text(@note) if @note
|
52
52
|
if @references.any?
|
53
|
-
xml_element.add_element(
|
53
|
+
xml_element.add_element(REFERENCES_ELEMENT_NAME).add_text(@references.join(' '))
|
54
54
|
end
|
55
55
|
if @incidents.any?
|
56
|
-
xml_element.add_element(
|
56
|
+
xml_element.add_element(INCIDENTS_ELEMENT_NAME).add_text(@incidents.join(' '))
|
57
57
|
end
|
58
58
|
@infos.each do |info|
|
59
|
-
xml_element.add_element(
|
59
|
+
xml_element.add_element(info.to_xml_element)
|
60
60
|
end
|
61
61
|
xml_element
|
62
62
|
end
|
63
63
|
|
64
64
|
# @return [String]
|
65
65
|
def inspect
|
66
|
-
alert_inspect = [
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
66
|
+
alert_inspect = ["CAP Version: #{CAP_VERSION}",
|
67
|
+
"Identifier: #{@identifier}",
|
68
|
+
"Sender: #{@sender}",
|
69
|
+
"Sent: #{@sent}",
|
70
|
+
"Status: #{@status}",
|
71
|
+
"Message Type: #{@msg_type}",
|
72
|
+
"Password: #{@password}",
|
73
|
+
"Source: #{@source}",
|
74
|
+
"Scope: #{@scope}",
|
75
|
+
"Restriction: #{@restriction}",
|
76
|
+
"Addresses: #{@addresses.to_s_for_cap}",
|
77
|
+
'Codes:',
|
78
|
+
@codes.map { |code| ' ' + code }.join("\n"),
|
79
|
+
"Note: #{@note}",
|
80
|
+
'References:',
|
81
|
+
@references.join("\n "),
|
82
|
+
"Incidents: #{@incidents.join(' ')}",
|
83
|
+
'Information:',
|
84
|
+
@infos.map { |info| ' ' + info.to_s }.join("\n")].join("\n")
|
85
|
+
RCAP.format_lines_for_inspect('ALERT', alert_inspect)
|
85
86
|
end
|
86
87
|
|
87
|
-
|
88
|
-
PASSWORD_XPATH = "cap:#{ PASSWORD_ELEMENT_NAME }"
|
88
|
+
PASSWORD_XPATH = "cap:#{PASSWORD_ELEMENT_NAME}"
|
89
89
|
|
90
90
|
# @param [REXML::Element] alert_xml_element
|
91
91
|
# @return [RCAP::CAP_1_0::Alert]
|
92
|
-
def self.from_xml_element(
|
92
|
+
def self.from_xml_element(alert_xml_element)
|
93
93
|
super.tap do |alert|
|
94
|
-
alert.password = RCAP.xpath_text(
|
94
|
+
alert.password = RCAP.xpath_text(alert_xml_element, PASSWORD_XPATH, Alert::XMLNS)
|
95
95
|
end
|
96
96
|
end
|
97
97
|
|
98
|
-
|
99
|
-
PASSWORD_YAML = "Password"
|
98
|
+
PASSWORD_YAML = 'Password'
|
100
99
|
|
101
100
|
# Returns a string containing the YAML representation of the alert.
|
102
101
|
#
|
103
102
|
# @return [String]
|
104
|
-
def to_yaml(
|
105
|
-
RCAP.attribute_values_to_hash(
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
103
|
+
def to_yaml(options = {})
|
104
|
+
RCAP.attribute_values_to_hash([CAP_VERSION_YAML, CAP_VERSION],
|
105
|
+
[IDENTIFIER_YAML, @identifier],
|
106
|
+
[SENDER_YAML, @sender],
|
107
|
+
[SENT_YAML, @sent],
|
108
|
+
[STATUS_YAML, @status],
|
109
|
+
[MSG_TYPE_YAML, @msg_type],
|
110
|
+
[PASSWORD_YAML, @password],
|
111
|
+
[SOURCE_YAML, @source],
|
112
|
+
[SCOPE_YAML, @scope],
|
113
|
+
[RESTRICTION_YAML, @restriction],
|
114
|
+
[ADDRESSES_YAML, @addresses],
|
115
|
+
[CODES_YAML, @codes],
|
116
|
+
[NOTE_YAML, @note],
|
117
|
+
[REFERENCES_YAML, @references],
|
118
|
+
[INCIDENTS_YAML, @incidents],
|
119
|
+
[INFOS_YAML, @infos.map(&:to_yaml_data)]).to_yaml(options)
|
121
120
|
end
|
122
121
|
|
123
122
|
# @param [Hash] alert_yaml_data
|
124
123
|
# @return [RCAP::CAP_1_0::Alert]
|
125
|
-
def self.from_yaml_data(
|
124
|
+
def self.from_yaml_data(alert_yaml_data)
|
126
125
|
super.tap do |alert|
|
127
|
-
alert.password = RCAP.strip_if_given(
|
126
|
+
alert.password = RCAP.strip_if_given(alert_yaml_data[PASSWORD_YAML])
|
128
127
|
end
|
129
128
|
end
|
130
129
|
|
131
|
-
PASSWORD_KEY
|
130
|
+
PASSWORD_KEY = 'password'
|
132
131
|
|
133
132
|
# Returns a Hash representation of an Alert object
|
134
133
|
#
|
135
134
|
# @return [Hash]
|
136
135
|
def to_h
|
137
|
-
RCAP.attribute_values_to_hash(
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
136
|
+
RCAP.attribute_values_to_hash([CAP_VERSION_KEY, CAP_VERSION],
|
137
|
+
[IDENTIFIER_KEY, @identifier],
|
138
|
+
[SENDER_KEY, @sender],
|
139
|
+
[SENT_KEY, RCAP.to_s_for_cap(@sent)],
|
140
|
+
[STATUS_KEY, @status],
|
141
|
+
[MSG_TYPE_KEY, @msg_type],
|
142
|
+
[PASSWORD_KEY, @password],
|
143
|
+
[SOURCE_KEY, @source],
|
144
|
+
[SCOPE_KEY, @scope],
|
145
|
+
[RESTRICTION_KEY, @restriction],
|
146
|
+
[ADDRESSES_KEY, @addresses],
|
147
|
+
[CODES_KEY, @codes],
|
148
|
+
[NOTE_KEY, @note],
|
149
|
+
[REFERENCES_KEY, @references],
|
150
|
+
[INCIDENTS_KEY, @incidents],
|
151
|
+
[INFOS_KEY, @infos.map(&:to_h)])
|
153
152
|
end
|
154
153
|
|
155
154
|
# Initialises an Alert object from a Hash produced by Alert#to_h
|
156
155
|
#
|
157
156
|
# @param [Hash] alert_hash
|
158
157
|
# @return [RCAP::CAP_1_0::Alert]
|
159
|
-
def self.from_h(
|
158
|
+
def self.from_h(alert_hash)
|
160
159
|
super.tap do |alert|
|
161
|
-
alert.password = RCAP.strip_if_given(
|
160
|
+
alert.password = RCAP.strip_if_given(alert_hash[PASSWORD_KEY])
|
162
161
|
end
|
163
162
|
end
|
164
163
|
end
|
data/lib/rcap/cap_1_0/area.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module RCAP
|
2
4
|
module CAP_1_0
|
3
|
-
|
4
5
|
# An Area object is valid if
|
5
6
|
# * it has an area description
|
6
7
|
# * all Circle objects contained in circles are valid
|
@@ -8,7 +9,6 @@ module RCAP
|
|
8
9
|
# * all Polygon objects contained in polygons are valid
|
9
10
|
# * altitude has a value if ceiling is set
|
10
11
|
class Area < RCAP::Base::Area
|
11
|
-
|
12
12
|
# @return [String]
|
13
13
|
def xmlns
|
14
14
|
Alert::XMLNS
|
data/lib/rcap/cap_1_0/circle.rb
CHANGED
@@ -1,9 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module RCAP
|
2
4
|
module CAP_1_0
|
3
5
|
# Subclass of {Parameter}
|
4
6
|
class EventCode < RCAP::Base::EventCode
|
5
7
|
XML_ELEMENT_NAME = 'eventCode'
|
6
|
-
XPATH = "cap:#{
|
8
|
+
XPATH = "cap:#{XML_ELEMENT_NAME}"
|
7
9
|
|
8
10
|
# @return [String]
|
9
11
|
def xmlns
|
data/lib/rcap/cap_1_0/geocode.rb
CHANGED
@@ -1,9 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module RCAP
|
2
4
|
module CAP_1_0
|
3
5
|
# Subclass of {Parameter}
|
4
6
|
class Geocode < RCAP::Base::Geocode
|
5
7
|
XML_ELEMENT_NAME = 'geocode'
|
6
|
-
XPATH = "cap:#{
|
8
|
+
XPATH = "cap:#{XML_ELEMENT_NAME}"
|
7
9
|
|
8
10
|
# @return [String]
|
9
11
|
def xmlns
|
data/lib/rcap/cap_1_0/info.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module RCAP
|
2
4
|
module CAP_1_0
|
3
|
-
|
4
5
|
# In Info object is valid if
|
5
6
|
# * it has an event
|
6
7
|
# * it has an urgency with a valid value
|
@@ -10,8 +11,7 @@ module RCAP
|
|
10
11
|
# * all Resource objects in the resources collection are valid
|
11
12
|
# * all Area objects in the areas collection are valid
|
12
13
|
class Info < RCAP::Base::Info
|
13
|
-
|
14
|
-
validates_inclusion_of( :certainty, :allow_nil => true, :in => VALID_CERTAINTIES, :message => "can only be assigned the following values: #{ VALID_CERTAINTIES.join(', ') }")
|
14
|
+
validates_inclusion_of(:certainty, allow_nil: true, in: VALID_CERTAINTIES, message: "can only be assigned the following values: #{VALID_CERTAINTIES.join(', ')}")
|
15
15
|
|
16
16
|
# @return [String]
|
17
17
|
def xmlns
|
@@ -1,34 +1,34 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module RCAP
|
2
4
|
module CAP_1_0
|
3
5
|
# A Parameter object is valid if
|
4
6
|
# * it has a name
|
5
|
-
# * it has a value
|
6
7
|
class Parameter < RCAP::Base::Parameter
|
7
|
-
|
8
8
|
# @return [REXML::Element]
|
9
9
|
def to_xml_element
|
10
|
-
xml_element = REXML::Element.new(
|
11
|
-
xml_element.add_text(
|
10
|
+
xml_element = REXML::Element.new(self.class::XML_ELEMENT_NAME)
|
11
|
+
xml_element.add_text("#{@name}=#{@value}")
|
12
12
|
xml_element
|
13
13
|
end
|
14
14
|
|
15
15
|
# @param [REXML::Element] parameter_xml_element
|
16
16
|
# @return [Parameter]
|
17
|
-
def self.from_xml_element(
|
18
|
-
parameter_hash =
|
19
|
-
|
20
|
-
parameter.name = RCAP.strip_if_given(
|
21
|
-
parameter.value = RCAP.strip_if_given(
|
17
|
+
def self.from_xml_element(parameter_xml_element)
|
18
|
+
parameter_hash = parse_parameter(parameter_xml_element.text)
|
19
|
+
new do |parameter|
|
20
|
+
parameter.name = RCAP.strip_if_given(parameter_hash[:name])
|
21
|
+
parameter.value = RCAP.strip_if_given(parameter_hash[:value])
|
22
22
|
end
|
23
23
|
end
|
24
24
|
|
25
25
|
# @param [String] parameter_string
|
26
26
|
# @return [Hash]
|
27
|
-
def self.parse_parameter(
|
28
|
-
name, value = parameter_string.split(
|
27
|
+
def self.parse_parameter(parameter_string)
|
28
|
+
name, value = parameter_string.split('=')
|
29
29
|
if name && value
|
30
|
-
{ :
|
31
|
-
:
|
30
|
+
{ name: RCAP.strip_if_given(name),
|
31
|
+
value: RCAP.strip_if_given(value) }
|
32
32
|
end
|
33
33
|
end
|
34
34
|
end
|
data/lib/rcap/cap_1_0/point.rb
CHANGED
data/lib/rcap/cap_1_0/polygon.rb
CHANGED
@@ -1,11 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module RCAP
|
2
4
|
module CAP_1_0
|
3
|
-
|
4
5
|
# A Polygon object is valid if
|
5
|
-
# * it has a minimum of three points
|
6
|
+
# * if points are given it has a minimum of three points
|
6
7
|
# * each Point object in the points collection is valid
|
7
8
|
class Polygon < RCAP::Base::Polygon
|
8
|
-
|
9
9
|
# @return [Class]
|
10
10
|
def point_class
|
11
11
|
Point
|
data/lib/rcap/cap_1_1/alert.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module RCAP
|
2
4
|
module CAP_1_1
|
3
|
-
|
4
5
|
# An Alert object is valid if
|
5
6
|
# * it has an identifier
|
6
7
|
# * it has a sender
|
@@ -10,13 +11,12 @@ module RCAP
|
|
10
11
|
# * it has a valid scope value
|
11
12
|
# * all Info objects contained in infos are valid
|
12
13
|
class Alert < RCAP::Base::Alert
|
14
|
+
XMLNS = 'urn:oasis:names:tc:emergency:cap:1.1'
|
15
|
+
CAP_VERSION = '1.1'
|
13
16
|
|
14
|
-
|
15
|
-
CAP_VERSION = "1.1"
|
16
|
-
|
17
|
-
STATUS_DRAFT = "Draft"
|
17
|
+
STATUS_DRAFT = 'Draft'
|
18
18
|
# Valid values for status
|
19
|
-
VALID_STATUSES = [
|
19
|
+
VALID_STATUSES = [STATUS_ACTUAL, STATUS_EXERCISE, STATUS_SYSTEM, STATUS_TEST, STATUS_DRAFT].freeze
|
20
20
|
|
21
21
|
# @return [String]
|
22
22
|
def xmlns
|
data/lib/rcap/cap_1_1/area.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module RCAP
|
2
4
|
module CAP_1_1
|
3
|
-
|
4
5
|
# An Area object is valid if
|
5
6
|
# * it has an area description
|
6
7
|
# * all Circle objects contained in circles are valid
|
@@ -8,7 +9,6 @@ module RCAP
|
|
8
9
|
# * all Polygon objects contained in polygons are valid
|
9
10
|
# * altitude has a value if ceiling is set
|
10
11
|
class Area < RCAP::Base::Area
|
11
|
-
|
12
12
|
# @return [String]
|
13
13
|
def xmlns
|
14
14
|
Alert::XMLNS
|