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.
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,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
- XMLNS = "http://www.incident.com/cap/1.0"
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( :password )
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 = 'password'
30
+ PASSWORD_ELEMENT_NAME = 'password'
31
31
 
32
32
  # @return [REXML::Element]
33
33
  def to_xml_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
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( ADDRESSES_ELEMENT_NAME ).add_text( @addresses.to_s_for_cap )
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( CODE_ELEMENT_NAME ).add_text( code )
49
+ xml_element.add_element(CODE_ELEMENT_NAME).add_text(code)
50
50
  end
51
- xml_element.add_element( NOTE_ELEMENT_NAME ).add_text( @note ) if @note
51
+ xml_element.add_element(NOTE_ELEMENT_NAME).add_text(@note) if @note
52
52
  if @references.any?
53
- xml_element.add_element( REFERENCES_ELEMENT_NAME ).add_text( @references.join( ' ' ))
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( INCIDENTS_ELEMENT_NAME ).add_text( @incidents.join( ' ' ))
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( info.to_xml_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 = [ "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: #{ @references.join( ' ' )}",
81
- "Incidents: #{ @incidents.join( ' ')}",
82
- "Information:",
83
- @infos.map{ |info| " " + info.to_s }.join( "\n" )].join("\n")
84
- RCAP.format_lines_for_inspect( 'ALERT', alert_inspect )
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( alert_xml_element )
92
+ def self.from_xml_element(alert_xml_element)
93
93
  super.tap do |alert|
94
- alert.password = RCAP.xpath_text( alert_xml_element, PASSWORD_XPATH, Alert::XMLNS )
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( options = {} )
105
- RCAP.attribute_values_to_hash( [ CAP_VERSION_YAML, CAP_VERSION ],
106
- [ IDENTIFIER_YAML, @identifier ],
107
- [ SENDER_YAML, @sender ],
108
- [ SENT_YAML, @sent ],
109
- [ STATUS_YAML, @status ],
110
- [ MSG_TYPE_YAML, @msg_type ],
111
- [ PASSWORD_YAML, @password ],
112
- [ SOURCE_YAML, @source ],
113
- [ SCOPE_YAML, @scope ],
114
- [ RESTRICTION_YAML, @restriction ],
115
- [ ADDRESSES_YAML, @addresses ],
116
- [ CODES_YAML, @codes ],
117
- [ NOTE_YAML, @note ],
118
- [ REFERENCES_YAML, @references ],
119
- [ INCIDENTS_YAML, @incidents ],
120
- [ INFOS_YAML, @infos.map( &:to_yaml_data )]).to_yaml( options )
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( alert_yaml_data )
124
+ def self.from_yaml_data(alert_yaml_data)
126
125
  super.tap do |alert|
127
- alert.password = RCAP.strip_if_given( alert_yaml_data[ PASSWORD_YAML ])
126
+ alert.password = RCAP.strip_if_given(alert_yaml_data[PASSWORD_YAML])
128
127
  end
129
128
  end
130
129
 
131
- PASSWORD_KEY = 'password'
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( [ CAP_VERSION_KEY, CAP_VERSION ],
138
- [ IDENTIFIER_KEY, @identifier ],
139
- [ SENDER_KEY, @sender ],
140
- [ SENT_KEY, RCAP.to_s_for_cap( @sent )],
141
- [ STATUS_KEY, @status ],
142
- [ MSG_TYPE_KEY, @msg_type ],
143
- [ PASSWORD_KEY, @password ],
144
- [ SOURCE_KEY, @source ],
145
- [ SCOPE_KEY, @scope ],
146
- [ RESTRICTION_KEY, @restriction ],
147
- [ ADDRESSES_KEY, @addresses ],
148
- [ CODES_KEY, @codes ],
149
- [ NOTE_KEY, @note ],
150
- [ REFERENCES_KEY, @references ],
151
- [ INCIDENTS_KEY, @incidents ],
152
- [ INFOS_KEY, @infos.map{ |info| info.to_h }])
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( alert_hash )
158
+ def self.from_h(alert_hash)
160
159
  super.tap do |alert|
161
- alert.password = RCAP.strip_if_given( alert_hash[ PASSWORD_KEY ])
160
+ alert.password = RCAP.strip_if_given(alert_hash[PASSWORD_KEY])
162
161
  end
163
162
  end
164
163
  end
@@ -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
@@ -1,6 +1,7 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RCAP
2
4
  module CAP_1_0
3
-
4
5
  # A Circle object is valid if
5
6
  # * it has a valid lattitude and longitude
6
7
  # * it has a radius with a value greater than zero
@@ -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:#{ XML_ELEMENT_NAME }"
8
+ XPATH = "cap:#{XML_ELEMENT_NAME}"
7
9
 
8
10
  # @return [String]
9
11
  def xmlns
@@ -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:#{ XML_ELEMENT_NAME }"
8
+ XPATH = "cap:#{XML_ELEMENT_NAME}"
7
9
 
8
10
  # @return [String]
9
11
  def xmlns
@@ -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( self.class::XML_ELEMENT_NAME )
11
- xml_element.add_text( "#{ @name }=#{ @value }")
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( parameter_xml_element )
18
- parameter_hash = self.parse_parameter( parameter_xml_element.text )
19
- self.new do |parameter|
20
- parameter.name = RCAP.strip_if_given( parameter_hash[ :name ])
21
- parameter.value = RCAP.strip_if_given( parameter_hash[ :value ])
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( parameter_string )
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
- { :name => RCAP.strip_if_given( name ),
31
- :value => RCAP.strip_if_given( value )}
30
+ { name: RCAP.strip_if_given(name),
31
+ value: RCAP.strip_if_given(value) }
32
32
  end
33
33
  end
34
34
  end
@@ -1,6 +1,7 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RCAP
2
4
  module CAP_1_0
3
-
4
5
  # A Point object is valid if
5
6
  # * it has a lattitude within the minimum and maximum lattitude values
6
7
  # * it has a longitude within the minimum and maximum longitude values
@@ -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
@@ -1,11 +1,10 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RCAP
2
4
  module CAP_1_0
3
-
4
-
5
5
  # A Resource object is valid if
6
6
  # * it has a resource description
7
7
  class Resource < RCAP::Base::Resource
8
-
9
8
  # @return [String]
10
9
  def xmlns
11
10
  Alert::XMLNS
@@ -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
- XMLNS = "urn:oasis:names:tc:emergency:cap:1.1"
15
- CAP_VERSION = "1.1"
16
-
17
- STATUS_DRAFT = "Draft"
17
+ STATUS_DRAFT = 'Draft'
18
18
  # Valid values for status
19
- VALID_STATUSES = [ STATUS_ACTUAL, STATUS_EXERCISE, STATUS_SYSTEM, STATUS_TEST, STATUS_DRAFT ]
19
+ VALID_STATUSES = [STATUS_ACTUAL, STATUS_EXERCISE, STATUS_SYSTEM, STATUS_TEST, STATUS_DRAFT].freeze
20
20
 
21
21
  # @return [String]
22
22
  def xmlns
@@ -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