rcap 2.7.3 → 2.7.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.ruby-version +1 -1
- data/CHANGELOG.md +4 -0
- data/lib/rcap/base/alert.rb +13 -19
- data/lib/rcap/base/info.rb +16 -16
- data/lib/rcap/base/parameter.rb +2 -2
- data/lib/rcap/base/resource.rb +4 -4
- data/lib/rcap/cap_1_0/alert.rb +14 -20
- data/lib/rcap/cap_1_1/info.rb +14 -14
- data/lib/rcap/cap_1_1/resource.rb +6 -6
- data/lib/rcap/cap_1_2/info.rb +13 -13
- data/lib/rcap/cap_1_2/resource.rb +6 -6
- data/lib/rcap/custom_validators.rb +18 -16
- data/lib/rcap/utilities.rb +1 -1
- data/lib/rcap/validation.rb +8 -5
- data/lib/rcap/version.rb +1 -1
- data/spec/alert_spec.rb +8 -9
- data/spec/cap_1_0/alert_spec.rb +4 -5
- data/spec/cap_1_0/area_spec.rb +7 -10
- data/spec/cap_1_0/event_code_spec.rb +1 -1
- data/spec/cap_1_0/geocode_spec.rb +1 -1
- data/spec/cap_1_0/info_spec.rb +38 -38
- data/spec/cap_1_0/resource_spec.rb +6 -7
- data/spec/cap_1_1/alert_spec.rb +6 -7
- data/spec/cap_1_1/area_spec.rb +6 -8
- data/spec/cap_1_1/info_spec.rb +26 -26
- data/spec/cap_1_1/parameter_spec.rb +1 -2
- data/spec/cap_1_1/resource_spec.rb +12 -12
- data/spec/cap_1_2/alert_spec.rb +7 -8
- data/spec/cap_1_2/area_spec.rb +6 -6
- data/spec/cap_1_2/info_spec.rb +25 -26
- data/spec/cap_1_2/resource_spec.rb +12 -12
- data/spec/extensions_spec.rb +2 -2
- data/spec/spec_helper.rb +2 -2
- data/spec/validations_spec.rb +0 -1
- metadata +6 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 257bbebf78d6bd1acba243fff3c24b7d52504f32acd494e395102c5a25f0108a
|
4
|
+
data.tar.gz: 4aad2a1c2a79a997a46e8a47f7542aa6eae55881302a76be9c8fe9bedf44965a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7274c4ad7f92bc6c9df731880ba73d77b8a11ba39f250ad6844fe8f2a3e044b8fbf35ec819ad64a0cc473c493a0b5f39df07361a52364af38ded56217817ce4d
|
7
|
+
data.tar.gz: a8d8e973dc56197011383b83f7923cb5856cdc5da32152bfd4929ad0e860add185be4389fda09f106482f25a58f00f5aa5e15567e4931a971078a795ddd54018
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.
|
1
|
+
2.7.1
|
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,10 @@
|
|
1
1
|
Change Log
|
2
2
|
==========
|
3
3
|
|
4
|
+
## 2.7.3 - 14 July 2020
|
5
|
+
|
6
|
+
* Added `Avoid` and `All Clear` response types for CAP 1.2
|
7
|
+
|
4
8
|
## 2.7.0 - 22 March 2017
|
5
9
|
|
6
10
|
* Coordinates of a polygon should be an array of coordinate arrays rather than a single coordinate array. (Seth Deckard)
|
data/lib/rcap/base/alert.rb
CHANGED
@@ -123,27 +123,21 @@ module RCAP
|
|
123
123
|
def to_xml_element
|
124
124
|
xml_element = REXML::Element.new(XML_ELEMENT_NAME)
|
125
125
|
xml_element.add_namespace(self.class::XMLNS)
|
126
|
-
xml_element.add_element(IDENTIFIER_ELEMENT_NAME).add_text(@identifier) if @identifier
|
127
|
-
xml_element.add_element(SENDER_ELEMENT_NAME).add_text(@sender) if @sender
|
128
|
-
xml_element.add_element(SENT_ELEMENT_NAME).add_text(@sent.to_s_for_cap)
|
129
|
-
xml_element.add_element(STATUS_ELEMENT_NAME).add_text(@status) if @status
|
130
|
-
xml_element.add_element(MSG_TYPE_ELEMENT_NAME).add_text(@msg_type) if @msg_type
|
131
|
-
xml_element.add_element(SOURCE_ELEMENT_NAME).add_text(@source) if @source
|
132
|
-
xml_element.add_element(SCOPE_ELEMENT_NAME).add_text(@scope) if @scope
|
133
|
-
xml_element.add_element(RESTRICTION_ELEMENT_NAME).add_text(@restriction) if @restriction
|
134
|
-
if @addresses.any?
|
135
|
-
xml_element.add_element(ADDRESSES_ELEMENT_NAME).add_text(@addresses.to_s_for_cap)
|
136
|
-
end
|
126
|
+
xml_element.add_element(IDENTIFIER_ELEMENT_NAME).add_text(@identifier.to_s) if @identifier
|
127
|
+
xml_element.add_element(SENDER_ELEMENT_NAME).add_text(@sender.to_s) if @sender
|
128
|
+
xml_element.add_element(SENT_ELEMENT_NAME).add_text(@sent.to_s_for_cap) if @sent
|
129
|
+
xml_element.add_element(STATUS_ELEMENT_NAME).add_text(@status.to_s) if @status
|
130
|
+
xml_element.add_element(MSG_TYPE_ELEMENT_NAME).add_text(@msg_type.to_s) if @msg_type
|
131
|
+
xml_element.add_element(SOURCE_ELEMENT_NAME).add_text(@source.to_s) if @source
|
132
|
+
xml_element.add_element(SCOPE_ELEMENT_NAME).add_text(@scope.to_s) if @scope
|
133
|
+
xml_element.add_element(RESTRICTION_ELEMENT_NAME).add_text(@restriction.to_s) if @restriction
|
134
|
+
xml_element.add_element(ADDRESSES_ELEMENT_NAME).add_text(@addresses.to_s_for_cap) if @addresses.any?
|
137
135
|
@codes.each do |code|
|
138
|
-
xml_element.add_element(CODE_ELEMENT_NAME).add_text(code)
|
139
|
-
end
|
140
|
-
xml_element.add_element(NOTE_ELEMENT_NAME).add_text(@note) if @note
|
141
|
-
if @references.any?
|
142
|
-
xml_element.add_element(REFERENCES_ELEMENT_NAME).add_text(@references.join(' '))
|
143
|
-
end
|
144
|
-
if @incidents.any?
|
145
|
-
xml_element.add_element(INCIDENTS_ELEMENT_NAME).add_text(@incidents.join(' '))
|
136
|
+
xml_element.add_element(CODE_ELEMENT_NAME).add_text(code.to_s)
|
146
137
|
end
|
138
|
+
xml_element.add_element(NOTE_ELEMENT_NAME).add_text(@note.to_s) if @note
|
139
|
+
xml_element.add_element(REFERENCES_ELEMENT_NAME).add_text(@references.join(' ')) if @references.any?
|
140
|
+
xml_element.add_element(INCIDENTS_ELEMENT_NAME).add_text(@incidents.join(' ')) if @incidents.any?
|
147
141
|
@infos.each do |info|
|
148
142
|
xml_element.add_element(info.to_xml_element)
|
149
143
|
end
|
data/lib/rcap/base/info.rb
CHANGED
@@ -197,27 +197,27 @@ module RCAP
|
|
197
197
|
# @return [REXML::Element]
|
198
198
|
def to_xml_element
|
199
199
|
xml_element = REXML::Element.new(XML_ELEMENT_NAME)
|
200
|
-
xml_element.add_element(LANGUAGE_ELEMENT_NAME).add_text(@language) if @language
|
200
|
+
xml_element.add_element(LANGUAGE_ELEMENT_NAME).add_text(@language.to_s) if @language
|
201
201
|
@categories.each do |category|
|
202
|
-
xml_element.add_element(CATEGORY_ELEMENT_NAME).add_text(category)
|
202
|
+
xml_element.add_element(CATEGORY_ELEMENT_NAME).add_text(category.to_s)
|
203
203
|
end
|
204
|
-
xml_element.add_element(EVENT_ELEMENT_NAME).add_text(@event)
|
205
|
-
xml_element.add_element(URGENCY_ELEMENT_NAME).add_text(@urgency)
|
206
|
-
xml_element.add_element(SEVERITY_ELEMENT_NAME).add_text(@severity)
|
207
|
-
xml_element.add_element(CERTAINTY_ELEMENT_NAME).add_text(@certainty)
|
208
|
-
xml_element.add_element(AUDIENCE_ELEMENT_NAME).add_text(@audience) if @audience
|
204
|
+
xml_element.add_element(EVENT_ELEMENT_NAME).add_text(@event.to_s)
|
205
|
+
xml_element.add_element(URGENCY_ELEMENT_NAME).add_text(@urgency.to_s)
|
206
|
+
xml_element.add_element(SEVERITY_ELEMENT_NAME).add_text(@severity.to_s)
|
207
|
+
xml_element.add_element(CERTAINTY_ELEMENT_NAME).add_text(@certainty.to_s)
|
208
|
+
xml_element.add_element(AUDIENCE_ELEMENT_NAME).add_text(@audience.to_s) if @audience
|
209
209
|
@event_codes.each do |event_code|
|
210
210
|
xml_element.add_element(event_code.to_xml_element)
|
211
211
|
end
|
212
|
-
xml_element.add_element(EFFECTIVE_ELEMENT_NAME).add_text(@effective.to_s_for_cap)
|
213
|
-
xml_element.add_element(ONSET_ELEMENT_NAME).add_text(@onset.to_s_for_cap)
|
214
|
-
xml_element.add_element(EXPIRES_ELEMENT_NAME).add_text(@expires.to_s_for_cap)
|
215
|
-
xml_element.add_element(SENDER_NAME_ELEMENT_NAME).add_text(@sender_name) if @sender_name
|
216
|
-
xml_element.add_element(HEADLINE_ELEMENT_NAME).add_text(@headline) if @headline
|
217
|
-
xml_element.add_element(DESCRIPTION_ELEMENT_NAME).add_text(@description) if @description
|
218
|
-
xml_element.add_element(INSTRUCTION_ELEMENT_NAME).add_text(@instruction) if @instruction
|
219
|
-
xml_element.add_element(WEB_ELEMENT_NAME).add_text(@web) if @web
|
220
|
-
xml_element.add_element(CONTACT_ELEMENT_NAME).add_text(@contact) if @contact
|
212
|
+
xml_element.add_element(EFFECTIVE_ELEMENT_NAME).add_text(@effective.to_s_for_cap) if @effective
|
213
|
+
xml_element.add_element(ONSET_ELEMENT_NAME).add_text(@onset.to_s_for_cap) if @onset
|
214
|
+
xml_element.add_element(EXPIRES_ELEMENT_NAME).add_text(@expires.to_s_for_cap) if @expires
|
215
|
+
xml_element.add_element(SENDER_NAME_ELEMENT_NAME).add_text(@sender_name.to_s) if @sender_name
|
216
|
+
xml_element.add_element(HEADLINE_ELEMENT_NAME).add_text(@headline.to_s) if @headline
|
217
|
+
xml_element.add_element(DESCRIPTION_ELEMENT_NAME).add_text(@description.to_s) if @description
|
218
|
+
xml_element.add_element(INSTRUCTION_ELEMENT_NAME).add_text(@instruction.to_s) if @instruction
|
219
|
+
xml_element.add_element(WEB_ELEMENT_NAME).add_text(@web.to_s) if @web
|
220
|
+
xml_element.add_element(CONTACT_ELEMENT_NAME).add_text(@contact.to_s) if @contact
|
221
221
|
@parameters.each do |parameter|
|
222
222
|
xml_element.add_element(parameter.to_xml_element)
|
223
223
|
end
|
data/lib/rcap/base/parameter.rb
CHANGED
@@ -30,8 +30,8 @@ module RCAP
|
|
30
30
|
# @return [REXML::Element]
|
31
31
|
def to_xml_element
|
32
32
|
xml_element = REXML::Element.new(self.class::XML_ELEMENT_NAME)
|
33
|
-
xml_element.add_element(self.class::NAME_ELEMENT_NAME).add_text(@name)
|
34
|
-
xml_element.add_element(self.class::VALUE_ELEMENT_NAME).add_text(@value)
|
33
|
+
xml_element.add_element(self.class::NAME_ELEMENT_NAME).add_text(@name.to_s)
|
34
|
+
xml_element.add_element(self.class::VALUE_ELEMENT_NAME).add_text(@value.to_s)
|
35
35
|
xml_element
|
36
36
|
end
|
37
37
|
|
data/lib/rcap/base/resource.rb
CHANGED
@@ -46,10 +46,10 @@ module RCAP
|
|
46
46
|
def to_xml_element
|
47
47
|
xml_element = REXML::Element.new(XML_ELEMENT_NAME)
|
48
48
|
xml_element.add_element(RESOURCE_DESC_ELEMENT_NAME).add_text(@resource_desc)
|
49
|
-
xml_element.add_element(MIME_TYPE_ELEMENT_NAME).add_text(@mime_type) if @mime_type
|
50
|
-
xml_element.add_element(SIZE_ELEMENT_NAME).add_text(@size.to_s)
|
51
|
-
xml_element.add_element(URI_ELEMENT_NAME).add_text(@uri) if @uri
|
52
|
-
xml_element.add_element(DIGEST_ELEMENT_NAME).add_text(@digest) if @digest
|
49
|
+
xml_element.add_element(MIME_TYPE_ELEMENT_NAME).add_text(@mime_type.to_s) if @mime_type
|
50
|
+
xml_element.add_element(SIZE_ELEMENT_NAME).add_text(@size.to_s) if @size
|
51
|
+
xml_element.add_element(URI_ELEMENT_NAME).add_text(@uri.to_s) if @uri
|
52
|
+
xml_element.add_element(DIGEST_ELEMENT_NAME).add_text(@digest.to_s) if @digest
|
53
53
|
xml_element
|
54
54
|
end
|
55
55
|
|
data/lib/rcap/cap_1_0/alert.rb
CHANGED
@@ -33,28 +33,22 @@ module RCAP
|
|
33
33
|
def to_xml_element
|
34
34
|
xml_element = REXML::Element.new(XML_ELEMENT_NAME)
|
35
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
|
-
if @addresses.any?
|
46
|
-
xml_element.add_element(ADDRESSES_ELEMENT_NAME).add_text(@addresses.to_s_for_cap)
|
47
|
-
end
|
36
|
+
xml_element.add_element(IDENTIFIER_ELEMENT_NAME).add_text(@identifier.to_s) if @identifier
|
37
|
+
xml_element.add_element(SENDER_ELEMENT_NAME).add_text(@sender.to_s) if @sender
|
38
|
+
xml_element.add_element(SENT_ELEMENT_NAME).add_text(@sent.to_s_for_cap.to_s) if @sent
|
39
|
+
xml_element.add_element(STATUS_ELEMENT_NAME).add_text(@status.to_s) if @status
|
40
|
+
xml_element.add_element(MSG_TYPE_ELEMENT_NAME).add_text(@msg_type.to_s) if @msg_type
|
41
|
+
xml_element.add_element(PASSWORD_ELEMENT_NAME).add_text(@password.to_s) if @password
|
42
|
+
xml_element.add_element(SOURCE_ELEMENT_NAME).add_text(@source.to_s) if @source
|
43
|
+
xml_element.add_element(SCOPE_ELEMENT_NAME).add_text(@scope.to_s) if @scope
|
44
|
+
xml_element.add_element(RESTRICTION_ELEMENT_NAME).add_text(@restriction.to_s) if @restriction
|
45
|
+
xml_element.add_element(ADDRESSES_ELEMENT_NAME).add_text(@addresses.to_s_for_cap) if @addresses.any?
|
48
46
|
@codes.each do |code|
|
49
|
-
xml_element.add_element(CODE_ELEMENT_NAME).add_text(code)
|
50
|
-
end
|
51
|
-
xml_element.add_element(NOTE_ELEMENT_NAME).add_text(@note) if @note
|
52
|
-
if @references.any?
|
53
|
-
xml_element.add_element(REFERENCES_ELEMENT_NAME).add_text(@references.join(' '))
|
54
|
-
end
|
55
|
-
if @incidents.any?
|
56
|
-
xml_element.add_element(INCIDENTS_ELEMENT_NAME).add_text(@incidents.join(' '))
|
47
|
+
xml_element.add_element(CODE_ELEMENT_NAME).add_text(code.to_s)
|
57
48
|
end
|
49
|
+
xml_element.add_element(NOTE_ELEMENT_NAME).add_text(@note.to_s) if @note
|
50
|
+
xml_element.add_element(REFERENCES_ELEMENT_NAME).add_text(@references.join(' ')) if @references.any?
|
51
|
+
xml_element.add_element(INCIDENTS_ELEMENT_NAME).add_text(@incidents.join(' ')) if @incidents.any?
|
58
52
|
@infos.each do |info|
|
59
53
|
xml_element.add_element(info.to_xml_element)
|
60
54
|
end
|
data/lib/rcap/cap_1_1/info.rb
CHANGED
@@ -96,30 +96,30 @@ module RCAP
|
|
96
96
|
# @return [REXML::Element]
|
97
97
|
def to_xml_element
|
98
98
|
xml_element = REXML::Element.new(XML_ELEMENT_NAME)
|
99
|
-
xml_element.add_element(LANGUAGE_ELEMENT_NAME).add_text(@language) if @language
|
99
|
+
xml_element.add_element(LANGUAGE_ELEMENT_NAME).add_text(@language.to_s) if @language
|
100
100
|
@categories.each do |category|
|
101
|
-
xml_element.add_element(CATEGORY_ELEMENT_NAME).add_text(category)
|
101
|
+
xml_element.add_element(CATEGORY_ELEMENT_NAME).add_text(category.to_s)
|
102
102
|
end
|
103
|
-
xml_element.add_element(EVENT_ELEMENT_NAME).add_text(@event)
|
103
|
+
xml_element.add_element(EVENT_ELEMENT_NAME).add_text(@event.to_s)
|
104
104
|
@response_types.each do |response_type|
|
105
|
-
xml_element.add_element(RESPONSE_TYPE_ELEMENT_NAME).add_text(response_type)
|
105
|
+
xml_element.add_element(RESPONSE_TYPE_ELEMENT_NAME).add_text(response_type.to_s)
|
106
106
|
end
|
107
|
-
xml_element.add_element(URGENCY_ELEMENT_NAME).add_text(@urgency)
|
108
|
-
xml_element.add_element(SEVERITY_ELEMENT_NAME).add_text(@severity)
|
109
|
-
xml_element.add_element(CERTAINTY_ELEMENT_NAME).add_text(@certainty)
|
110
|
-
xml_element.add_element(AUDIENCE_ELEMENT_NAME).add_text(@audience) if @audience
|
107
|
+
xml_element.add_element(URGENCY_ELEMENT_NAME).add_text(@urgency.to_s)
|
108
|
+
xml_element.add_element(SEVERITY_ELEMENT_NAME).add_text(@severity.to_s)
|
109
|
+
xml_element.add_element(CERTAINTY_ELEMENT_NAME).add_text(@certainty.to_s)
|
110
|
+
xml_element.add_element(AUDIENCE_ELEMENT_NAME).add_text(@audience.to_s) if @audience
|
111
111
|
@event_codes.each do |event_code|
|
112
112
|
xml_element.add_element(event_code.to_xml_element)
|
113
113
|
end
|
114
114
|
xml_element.add_element(EFFECTIVE_ELEMENT_NAME).add_text(@effective.to_s_for_cap) if @effective
|
115
115
|
xml_element.add_element(ONSET_ELEMENT_NAME).add_text(@onset.to_s_for_cap) if @onset
|
116
116
|
xml_element.add_element(EXPIRES_ELEMENT_NAME).add_text(@expires.to_s_for_cap) if @expires
|
117
|
-
xml_element.add_element(SENDER_NAME_ELEMENT_NAME).add_text(@sender_name)
|
118
|
-
xml_element.add_element(HEADLINE_ELEMENT_NAME).add_text(@headline)
|
119
|
-
xml_element.add_element(DESCRIPTION_ELEMENT_NAME).add_text(@description)
|
120
|
-
xml_element.add_element(INSTRUCTION_ELEMENT_NAME).add_text(@instruction)
|
121
|
-
xml_element.add_element(WEB_ELEMENT_NAME).add_text(@web)
|
122
|
-
xml_element.add_element(CONTACT_ELEMENT_NAME).add_text(@contact)
|
117
|
+
xml_element.add_element(SENDER_NAME_ELEMENT_NAME).add_text(@sender_name.to_s) if @sender_name
|
118
|
+
xml_element.add_element(HEADLINE_ELEMENT_NAME).add_text(@headline.to_s) if @headline
|
119
|
+
xml_element.add_element(DESCRIPTION_ELEMENT_NAME).add_text(@description.to_s) if @description
|
120
|
+
xml_element.add_element(INSTRUCTION_ELEMENT_NAME).add_text(@instruction.to_s) if @instruction
|
121
|
+
xml_element.add_element(WEB_ELEMENT_NAME).add_text(@web.to_s) if @web
|
122
|
+
xml_element.add_element(CONTACT_ELEMENT_NAME).add_text(@contact.to_s) if @contact
|
123
123
|
@parameters.each do |parameter|
|
124
124
|
xml_element.add_element(parameter.to_xml_element)
|
125
125
|
end
|
@@ -14,12 +14,12 @@ module RCAP
|
|
14
14
|
# @return [REXML::Element]
|
15
15
|
def to_xml_element
|
16
16
|
xml_element = REXML::Element.new(XML_ELEMENT_NAME)
|
17
|
-
xml_element.add_element(RESOURCE_DESC_ELEMENT_NAME).add_text(@resource_desc)
|
18
|
-
xml_element.add_element(MIME_TYPE_ELEMENT_NAME).add_text(@mime_type) if @mime_type
|
19
|
-
xml_element.add_element(SIZE_ELEMENT_NAME).add_text(@size.to_s)
|
20
|
-
xml_element.add_element(URI_ELEMENT_NAME).add_text(@uri) if @uri
|
21
|
-
xml_element.add_element(DEREF_URI_ELEMENT_NAME).add_text(@deref_uri) if @deref_uri
|
22
|
-
xml_element.add_element(DIGEST_ELEMENT_NAME).add_text(@digest) if @digest
|
17
|
+
xml_element.add_element(RESOURCE_DESC_ELEMENT_NAME).add_text(@resource_desc.to_s)
|
18
|
+
xml_element.add_element(MIME_TYPE_ELEMENT_NAME).add_text(@mime_type.to_s) if @mime_type
|
19
|
+
xml_element.add_element(SIZE_ELEMENT_NAME).add_text(@size.to_s) if @size
|
20
|
+
xml_element.add_element(URI_ELEMENT_NAME).add_text(@uri.to_s) if @uri
|
21
|
+
xml_element.add_element(DEREF_URI_ELEMENT_NAME).add_text(@deref_uri.to_s) if @deref_uri
|
22
|
+
xml_element.add_element(DIGEST_ELEMENT_NAME).add_text(@digest.to_s) if @digest
|
23
23
|
xml_element
|
24
24
|
end
|
25
25
|
|
data/lib/rcap/cap_1_2/info.rb
CHANGED
@@ -74,30 +74,30 @@ module RCAP
|
|
74
74
|
# @return [REXML::Element]
|
75
75
|
def to_xml_element
|
76
76
|
xml_element = REXML::Element.new(XML_ELEMENT_NAME)
|
77
|
-
xml_element.add_element(LANGUAGE_ELEMENT_NAME).add_text(@language) if @language
|
77
|
+
xml_element.add_element(LANGUAGE_ELEMENT_NAME).add_text(@language.to_s) if @language
|
78
78
|
@categories.each do |category|
|
79
|
-
xml_element.add_element(CATEGORY_ELEMENT_NAME).add_text(category)
|
79
|
+
xml_element.add_element(CATEGORY_ELEMENT_NAME).add_text(category.to_s)
|
80
80
|
end
|
81
|
-
xml_element.add_element(EVENT_ELEMENT_NAME).add_text(@event)
|
81
|
+
xml_element.add_element(EVENT_ELEMENT_NAME).add_text(@event.to_s)
|
82
82
|
@response_types.each do |response_type|
|
83
83
|
xml_element.add_element(RESPONSE_TYPE_ELEMENT_NAME).add_text(response_type)
|
84
84
|
end
|
85
|
-
xml_element.add_element(URGENCY_ELEMENT_NAME).add_text(@urgency)
|
86
|
-
xml_element.add_element(SEVERITY_ELEMENT_NAME).add_text(@severity)
|
87
|
-
xml_element.add_element(CERTAINTY_ELEMENT_NAME).add_text(@certainty)
|
88
|
-
xml_element.add_element(AUDIENCE_ELEMENT_NAME).add_text(@audience) if @audience
|
85
|
+
xml_element.add_element(URGENCY_ELEMENT_NAME).add_text(@urgency.to_s)
|
86
|
+
xml_element.add_element(SEVERITY_ELEMENT_NAME).add_text(@severity.to_s)
|
87
|
+
xml_element.add_element(CERTAINTY_ELEMENT_NAME).add_text(@certainty.to_s)
|
88
|
+
xml_element.add_element(AUDIENCE_ELEMENT_NAME).add_text(@audience.to_s) if @audience
|
89
89
|
@event_codes.each do |event_code|
|
90
90
|
xml_element.add_element(event_code.to_xml_element)
|
91
91
|
end
|
92
92
|
xml_element.add_element(EFFECTIVE_ELEMENT_NAME).add_text(@effective.to_s_for_cap) if @effective
|
93
93
|
xml_element.add_element(ONSET_ELEMENT_NAME).add_text(@onset.to_s_for_cap) if @onset
|
94
94
|
xml_element.add_element(EXPIRES_ELEMENT_NAME).add_text(@expires.to_s_for_cap) if @expires
|
95
|
-
xml_element.add_element(SENDER_NAME_ELEMENT_NAME).add_text(@sender_name)
|
96
|
-
xml_element.add_element(HEADLINE_ELEMENT_NAME).add_text(@headline)
|
97
|
-
xml_element.add_element(DESCRIPTION_ELEMENT_NAME).add_text(@description)
|
98
|
-
xml_element.add_element(INSTRUCTION_ELEMENT_NAME).add_text(@instruction)
|
99
|
-
xml_element.add_element(WEB_ELEMENT_NAME).add_text(@web)
|
100
|
-
xml_element.add_element(CONTACT_ELEMENT_NAME).add_text(@contact)
|
95
|
+
xml_element.add_element(SENDER_NAME_ELEMENT_NAME).add_text(@sender_name.to_s) if @sender_name
|
96
|
+
xml_element.add_element(HEADLINE_ELEMENT_NAME).add_text(@headline.to_s) if @headline
|
97
|
+
xml_element.add_element(DESCRIPTION_ELEMENT_NAME).add_text(@description.to_s) if @description
|
98
|
+
xml_element.add_element(INSTRUCTION_ELEMENT_NAME).add_text(@instruction.to_s) if @instruction
|
99
|
+
xml_element.add_element(WEB_ELEMENT_NAME).add_text(@web.to_s) if @web
|
100
|
+
xml_element.add_element(CONTACT_ELEMENT_NAME).add_text(@contact.to_s) if @contact
|
101
101
|
@parameters.each do |parameter|
|
102
102
|
xml_element.add_element(parameter.to_xml_element)
|
103
103
|
end
|
@@ -18,12 +18,12 @@ module RCAP
|
|
18
18
|
# @return [REXML::Element]
|
19
19
|
def to_xml_element
|
20
20
|
xml_element = REXML::Element.new(XML_ELEMENT_NAME)
|
21
|
-
xml_element.add_element(RESOURCE_DESC_ELEMENT_NAME).add_text(@resource_desc)
|
22
|
-
xml_element.add_element(MIME_TYPE_ELEMENT_NAME).add_text(@mime_type) if @mime_type
|
23
|
-
xml_element.add_element(SIZE_ELEMENT_NAME).add_text(@size.to_s)
|
24
|
-
xml_element.add_element(URI_ELEMENT_NAME).add_text(@uri) if @uri
|
25
|
-
xml_element.add_element(DEREF_URI_ELEMENT_NAME).add_text(@deref_uri) if @deref_uri
|
26
|
-
xml_element.add_element(DIGEST_ELEMENT_NAME).add_text(@digest) if @digest
|
21
|
+
xml_element.add_element(RESOURCE_DESC_ELEMENT_NAME).add_text(@resource_desc.to_s)
|
22
|
+
xml_element.add_element(MIME_TYPE_ELEMENT_NAME).add_text(@mime_type.to_s) if @mime_type
|
23
|
+
xml_element.add_element(SIZE_ELEMENT_NAME).add_text(@size.to_s) if @size
|
24
|
+
xml_element.add_element(URI_ELEMENT_NAME).add_text(@uri.to_s) if @uri
|
25
|
+
xml_element.add_element(DEREF_URI_ELEMENT_NAME).add_text(@deref_uri.to_s) if @deref_uri
|
26
|
+
xml_element.add_element(DIGEST_ELEMENT_NAME).add_text(@digest.to_s) if @digest
|
27
27
|
xml_element
|
28
28
|
end
|
29
29
|
|
@@ -14,9 +14,8 @@ module Validation
|
|
14
14
|
|
15
15
|
validates_each(*attributes) do |object, attribute, value|
|
16
16
|
next if value.nil? && options[:allow_nil]
|
17
|
-
|
18
|
-
|
19
|
-
end
|
17
|
+
|
18
|
+
object.errors[attribute] << options[:message] unless options[:in].include?(value)
|
20
19
|
end
|
21
20
|
end
|
22
21
|
|
@@ -30,9 +29,8 @@ module Validation
|
|
30
29
|
|
31
30
|
validates_each(*attributes) do |object, attribute, collection|
|
32
31
|
next if (collection.nil? && options[:allow_nil]) || (collection.empty? && options[:allow_empty])
|
33
|
-
|
34
|
-
|
35
|
-
end
|
32
|
+
|
33
|
+
object.errors[attribute] << options[:message] unless collection.all? { |member| options[:in].include?(member) }
|
36
34
|
end
|
37
35
|
end
|
38
36
|
|
@@ -43,9 +41,8 @@ module Validation
|
|
43
41
|
|
44
42
|
validates_each(*attributes) do |object, attribute, collection|
|
45
43
|
next if (collection.nil? && options[:allow_nil]) || (collection.empty? && options[:allow_empty])
|
46
|
-
|
47
|
-
|
48
|
-
end
|
44
|
+
|
45
|
+
object.errors[attribute] << options[:message] unless options[:minimum] && collection.length >= options[:minimum]
|
49
46
|
end
|
50
47
|
end
|
51
48
|
|
@@ -56,6 +53,7 @@ module Validation
|
|
56
53
|
|
57
54
|
validates_each(*attributes) do |object, attribute, value|
|
58
55
|
next if value.nil? && options[:allow_nil]
|
56
|
+
|
59
57
|
object.errors[attribute] << options[:message] unless value&.valid?
|
60
58
|
end
|
61
59
|
end
|
@@ -67,9 +65,8 @@ module Validation
|
|
67
65
|
|
68
66
|
validates_each(*attributes) do |object, attribute, collection|
|
69
67
|
next if (collection.nil? && options[:allow_nil]) || (collection.empty? && options[:allow_empty])
|
70
|
-
|
71
|
-
|
72
|
-
end
|
68
|
+
|
69
|
+
object.errors[attribute] << options[:message] unless collection.all?(&:valid?)
|
73
70
|
end
|
74
71
|
end
|
75
72
|
|
@@ -80,6 +77,7 @@ module Validation
|
|
80
77
|
|
81
78
|
validates_each(*attributes) do |object, attribute, value|
|
82
79
|
next if value.blank?
|
80
|
+
|
83
81
|
contingent_on_attribute = object.send(options[:on])
|
84
82
|
contingent_on_attribute_value = options[:with_value]
|
85
83
|
|
@@ -98,7 +96,10 @@ module Validation
|
|
98
96
|
contingent_attribute_value = object.send(options[:when])
|
99
97
|
required_contingent_attribute_value = options[:is]
|
100
98
|
|
101
|
-
|
99
|
+
if contingent_attribute_value.nil? || contingent_attribute_value != required_contingent_attribute_value && !options[:is].blank?
|
100
|
+
next
|
101
|
+
end
|
102
|
+
|
102
103
|
if value.blank?
|
103
104
|
object.errors[attribute] << options[:message].gsub(/:contingent_attribute/, options[:whenn].to_s)
|
104
105
|
end
|
@@ -114,6 +115,7 @@ module Validation
|
|
114
115
|
|
115
116
|
validates_each(*attributes) do |object, attribute, value|
|
116
117
|
next if value.nil? && options[:allow_nil]
|
118
|
+
|
117
119
|
unless (value.to_s =~ re) &&
|
118
120
|
(options[:greater_than].nil? || value && value > options[:greater_than]) &&
|
119
121
|
(options[:greater_than_or_equal].nil? || value && value >= options[:greater_than_or_equal])
|
@@ -129,6 +131,7 @@ module Validation
|
|
129
131
|
|
130
132
|
validates_each(*attributes) do |object, attribute, _value|
|
131
133
|
next if collection.nil? && options[:allow_nil]
|
134
|
+
|
132
135
|
unless options[:to].all? { |method_name| object.respond_to?(method_name) }
|
133
136
|
object.errors[attribute] << options [:message]
|
134
137
|
end
|
@@ -143,9 +146,8 @@ module Validation
|
|
143
146
|
validates_each(*attributes) do |object, attribute, collection|
|
144
147
|
next if collection.nil? && options[:allow_nil]
|
145
148
|
next if collection.empty? && options[:allow_empty]
|
146
|
-
|
147
|
-
|
148
|
-
end
|
149
|
+
|
150
|
+
object.errors[attribute] << options[:message] unless collection.first == collection.last
|
149
151
|
end
|
150
152
|
end
|
151
153
|
end
|
data/lib/rcap/utilities.rb
CHANGED
data/lib/rcap/validation.rb
CHANGED
@@ -130,9 +130,7 @@ module Validation
|
|
130
130
|
|
131
131
|
# Validates the given instance.
|
132
132
|
def validate(o)
|
133
|
-
if superclass.respond_to?(:validate) && !@skip_superclass_validations
|
134
|
-
superclass.validate(o)
|
135
|
-
end
|
133
|
+
superclass.validate(o) if superclass.respond_to?(:validate) && !@skip_superclass_validations
|
136
134
|
validations.each do |att, procs|
|
137
135
|
v = o.send(att)
|
138
136
|
procs.each { |p| p[o, att, v] }
|
@@ -164,6 +162,7 @@ module Validation
|
|
164
162
|
|
165
163
|
validates_each(*atts) do |o, a, v|
|
166
164
|
next if (v.nil? && opts[:allow_nil]) || (v.blank? && opts[:allow_blank])
|
165
|
+
|
167
166
|
o.errors[a] << opts[:message] unless v == opts[:accept]
|
168
167
|
end
|
169
168
|
end
|
@@ -176,6 +175,7 @@ module Validation
|
|
176
175
|
|
177
176
|
validates_each(*atts) do |o, a, v|
|
178
177
|
next if (v.nil? && opts[:allow_nil]) || (v.blank? && opts[:allow_blank])
|
178
|
+
|
179
179
|
c = o.send(:"#{a}_confirmation")
|
180
180
|
o.errors[a] << opts[:message] unless v == c
|
181
181
|
end
|
@@ -193,6 +193,7 @@ module Validation
|
|
193
193
|
|
194
194
|
validates_each(*atts) do |o, a, v|
|
195
195
|
next if (v.nil? && opts[:allow_nil]) || (v.blank? && opts[:allow_blank])
|
196
|
+
|
196
197
|
o.errors[a] << opts[:message] unless v.to_s =~ opts[:with]
|
197
198
|
end
|
198
199
|
end
|
@@ -207,6 +208,7 @@ module Validation
|
|
207
208
|
|
208
209
|
validates_each(*atts) do |o, a, v|
|
209
210
|
next if (v.nil? && opts[:allow_nil]) || (v.blank? && opts[:allow_blank])
|
211
|
+
|
210
212
|
if m = opts[:maximum]
|
211
213
|
o.errors[a] << (opts[:message] || opts[:too_long]) unless v && v.size <= m
|
212
214
|
end
|
@@ -222,8 +224,8 @@ module Validation
|
|
222
224
|
end
|
223
225
|
end
|
224
226
|
|
225
|
-
NUMBER_RE = /^\d*\.{0,1}\d
|
226
|
-
INTEGER_RE = /\A[+-]?\d+\Z
|
227
|
+
NUMBER_RE = /^\d*\.{0,1}\d+$/.freeze
|
228
|
+
INTEGER_RE = /\A[+-]?\d+\Z/.freeze
|
227
229
|
|
228
230
|
# Validates whether an attribute is a number.
|
229
231
|
def validates_numericality_of(*atts)
|
@@ -235,6 +237,7 @@ module Validation
|
|
235
237
|
|
236
238
|
validates_each(*atts) do |o, a, v|
|
237
239
|
next if (v.nil? && opts[:allow_nil]) || (v.blank? && opts[:allow_blank])
|
240
|
+
|
238
241
|
o.errors[a] << opts[:message] unless v.to_s =~ re
|
239
242
|
end
|
240
243
|
end
|