rcap 2.7.0 → 2.7.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (60) hide show
  1. checksums.yaml +5 -5
  2. data/.ruby-version +1 -1
  3. data/lib/rcap.rb +2 -0
  4. data/lib/rcap/alert.rb +4 -2
  5. data/lib/rcap/base/alert.rb +57 -55
  6. data/lib/rcap/base/area.rb +19 -13
  7. data/lib/rcap/base/circle.rb +6 -4
  8. data/lib/rcap/base/event_code.rb +2 -0
  9. data/lib/rcap/base/geocode.rb +2 -0
  10. data/lib/rcap/base/info.rb +65 -59
  11. data/lib/rcap/base/parameter.rb +6 -4
  12. data/lib/rcap/base/point.rb +4 -2
  13. data/lib/rcap/base/polygon.rb +8 -6
  14. data/lib/rcap/base/resource.rb +9 -9
  15. data/lib/rcap/cap_1_0/alert.rb +22 -20
  16. data/lib/rcap/cap_1_0/area.rb +2 -0
  17. data/lib/rcap/cap_1_0/circle.rb +2 -0
  18. data/lib/rcap/cap_1_0/event_code.rb +3 -1
  19. data/lib/rcap/cap_1_0/geocode.rb +3 -1
  20. data/lib/rcap/cap_1_0/info.rb +3 -1
  21. data/lib/rcap/cap_1_0/parameter.rb +3 -1
  22. data/lib/rcap/cap_1_0/point.rb +2 -0
  23. data/lib/rcap/cap_1_0/polygon.rb +2 -0
  24. data/lib/rcap/cap_1_0/resource.rb +2 -0
  25. data/lib/rcap/cap_1_1/alert.rb +4 -2
  26. data/lib/rcap/cap_1_1/area.rb +2 -0
  27. data/lib/rcap/cap_1_1/circle.rb +2 -0
  28. data/lib/rcap/cap_1_1/event_code.rb +3 -1
  29. data/lib/rcap/cap_1_1/geocode.rb +3 -1
  30. data/lib/rcap/cap_1_1/info.rb +34 -32
  31. data/lib/rcap/cap_1_1/parameter.rb +2 -0
  32. data/lib/rcap/cap_1_1/point.rb +2 -0
  33. data/lib/rcap/cap_1_1/polygon.rb +2 -0
  34. data/lib/rcap/cap_1_1/resource.rb +6 -4
  35. data/lib/rcap/cap_1_2/alert.rb +4 -2
  36. data/lib/rcap/cap_1_2/area.rb +2 -0
  37. data/lib/rcap/cap_1_2/circle.rb +2 -0
  38. data/lib/rcap/cap_1_2/event_code.rb +3 -1
  39. data/lib/rcap/cap_1_2/geocode.rb +3 -1
  40. data/lib/rcap/cap_1_2/info.rb +42 -38
  41. data/lib/rcap/cap_1_2/parameter.rb +2 -0
  42. data/lib/rcap/cap_1_2/point.rb +2 -0
  43. data/lib/rcap/cap_1_2/polygon.rb +2 -0
  44. data/lib/rcap/cap_1_2/resource.rb +8 -5
  45. data/lib/rcap/config.rb +2 -0
  46. data/lib/rcap/custom_validators.rb +11 -11
  47. data/lib/rcap/extensions/array.rb +2 -0
  48. data/lib/rcap/extensions/date.rb +3 -1
  49. data/lib/rcap/extensions/date_time.rb +4 -1
  50. data/lib/rcap/extensions/float.rb +2 -0
  51. data/lib/rcap/extensions/integer.rb +2 -0
  52. data/lib/rcap/extensions/nil_class.rb +2 -0
  53. data/lib/rcap/extensions/string.rb +3 -1
  54. data/lib/rcap/extensions/time.rb +3 -0
  55. data/lib/rcap/formatters/yaml.rb +3 -2
  56. data/lib/rcap/info.rb +2 -0
  57. data/lib/rcap/utilities.rb +7 -9
  58. data/lib/rcap/validation.rb +11 -9
  59. data/lib/rcap/version.rb +3 -1
  60. metadata +3 -4
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RCAP
2
4
  module Base
3
5
  class Parameter
@@ -14,9 +16,9 @@ module RCAP
14
16
  NAME_ELEMENT_NAME = 'valueName'
15
17
  VALUE_ELEMENT_NAME = 'value'
16
18
 
17
- XPATH = "cap:#{ XML_ELEMENT_NAME }"
18
- NAME_XPATH = "cap:#{ NAME_ELEMENT_NAME }"
19
- VALUE_XPATH = "cap:#{ VALUE_ELEMENT_NAME }"
19
+ XPATH = "cap:#{XML_ELEMENT_NAME}"
20
+ NAME_XPATH = "cap:#{NAME_ELEMENT_NAME}"
21
+ VALUE_XPATH = "cap:#{VALUE_ELEMENT_NAME}"
20
22
 
21
23
  # @param [Hash] attributes
22
24
  # @option attributes [Symbol] :name Parameter name
@@ -40,7 +42,7 @@ module RCAP
40
42
 
41
43
  # @return [String]
42
44
  def inspect
43
- "#{ @name }: #{ @value }"
45
+ "#{@name}: #{@value}"
44
46
  end
45
47
 
46
48
  # Returns a string representation of the parameter of the form
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RCAP
2
4
  module Base
3
5
  class Point
@@ -29,7 +31,7 @@ module RCAP
29
31
  #
30
32
  # @return [String]
31
33
  def to_s
32
- "#{ lattitude },#{ longitude }"
34
+ "#{lattitude},#{longitude}"
33
35
  end
34
36
 
35
37
  # @return [String]
@@ -68,7 +70,7 @@ module RCAP
68
70
 
69
71
  # @return [Array(Numeric, Numeric)]
70
72
  def to_a
71
- Array.new.tap do |array|
73
+ [].tap do |array|
72
74
  array[LATTITUDE_INDEX] = lattitude
73
75
  array[LONGITUDE_INDEX] = longitude
74
76
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RCAP
2
4
  module Base
3
5
  class Polygon
@@ -11,12 +13,12 @@ module RCAP
11
13
  validates_equality_of_first_and_last(:points, allow_empty: true)
12
14
 
13
15
  XML_ELEMENT_NAME = 'polygon'
14
- XPATH = "cap:#{ XML_ELEMENT_NAME }"
16
+ XPATH = "cap:#{XML_ELEMENT_NAME}"
15
17
 
16
18
  # @param [Hash] attributes
17
19
  # @option attributes [Array<Point>] :points Collection of {Point} objects
18
20
  def initialize
19
- @points = []
21
+ @points = []
20
22
  yield(self) if block_given?
21
23
  end
22
24
 
@@ -42,7 +44,7 @@ module RCAP
42
44
 
43
45
  # @return [String]
44
46
  def inspect
45
- "(#{ @points.map { |point| point.inspect }.join(', ')})"
47
+ "(#{@points.map(&:inspect).join(', ')})"
46
48
  end
47
49
 
48
50
  # @return [REXML::Element]
@@ -83,7 +85,7 @@ module RCAP
83
85
 
84
86
  # @return [Array<Array(Numeric,Numeric)>]
85
87
  def self.parse_polygon_string(polygon_string)
86
- polygon_string.split(' ').map { |coordinate_string| coordinate_string.split(',').map { |coordinate| coordinate.to_f } }
88
+ polygon_string.split(' ').map { |coordinate_string| coordinate_string.split(',').map(&:to_f) }
87
89
  end
88
90
 
89
91
  # @return [Polygon]
@@ -108,7 +110,7 @@ module RCAP
108
110
  to_yaml_data.to_yaml(options)
109
111
  end
110
112
 
111
- POINTS_KEY = 'points'
113
+ POINTS_KEY = 'points'
112
114
 
113
115
  # @return [Polygon]
114
116
  def self.from_h(polygon_hash)
@@ -124,7 +126,7 @@ module RCAP
124
126
 
125
127
  # @return [Hash]
126
128
  def to_h
127
- { POINTS_KEY => @points.map { |point| point.to_a } }
129
+ { POINTS_KEY => @points.map(&:to_a) }
128
130
  end
129
131
  end
130
132
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RCAP
2
4
  module Base
3
5
  class Resource
@@ -23,12 +25,12 @@ module RCAP
23
25
  DIGEST_ELEMENT_NAME = 'digest'
24
26
  RESOURCE_DESC_ELEMENT_NAME = 'resourceDesc'
25
27
 
26
- XPATH = "cap:#{ XML_ELEMENT_NAME }"
27
- MIME_TYPE_XPATH = "cap:#{ MIME_TYPE_ELEMENT_NAME }"
28
- SIZE_XPATH = "cap:#{ SIZE_ELEMENT_NAME }"
29
- URI_XPATH = "cap:#{ URI_ELEMENT_NAME }"
30
- DIGEST_XPATH = "cap:#{ DIGEST_ELEMENT_NAME }"
31
- RESOURCE_DESC_XPATH = "cap:#{ RESOURCE_DESC_ELEMENT_NAME }"
28
+ XPATH = "cap:#{XML_ELEMENT_NAME}"
29
+ MIME_TYPE_XPATH = "cap:#{MIME_TYPE_ELEMENT_NAME}"
30
+ SIZE_XPATH = "cap:#{SIZE_ELEMENT_NAME}"
31
+ URI_XPATH = "cap:#{URI_ELEMENT_NAME}"
32
+ DIGEST_XPATH = "cap:#{DIGEST_ELEMENT_NAME}"
33
+ RESOURCE_DESC_XPATH = "cap:#{RESOURCE_DESC_ELEMENT_NAME}"
32
34
 
33
35
  # @param [Hash{Symbol => Object}] attributes
34
36
  # @option attributes [String] :mime_type
@@ -86,9 +88,7 @@ module RCAP
86
88
  # If size is defined returns the size in kilobytes
87
89
  # @return [Float]
88
90
  def size_in_kb
89
- if @size
90
- @size.to_f / 1024
91
- end
91
+ @size.to_f / 1024 if @size
92
92
  end
93
93
 
94
94
  # @return [String]
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RCAP
2
4
  module CAP_1_0
3
5
  # An Alert object is valid if
@@ -25,7 +27,7 @@ module RCAP
25
27
  Info
26
28
  end
27
29
 
28
- PASSWORD_ELEMENT_NAME = 'password'
30
+ PASSWORD_ELEMENT_NAME = 'password'
29
31
 
30
32
  # @return [REXML::Element]
31
33
  def to_xml_element
@@ -61,29 +63,29 @@ module RCAP
61
63
 
62
64
  # @return [String]
63
65
  def inspect
64
- alert_inspect = ["CAP Version: #{ CAP_VERSION }",
65
- "Identifier: #{ @identifier }",
66
- "Sender: #{ @sender }",
67
- "Sent: #{ @sent }",
68
- "Status: #{ @status }",
69
- "Message Type: #{ @msg_type }",
70
- "Password: #{ @password }",
71
- "Source: #{ @source }",
72
- "Scope: #{ @scope }",
73
- "Restriction: #{ @restriction }",
74
- "Addresses: #{ @addresses.to_s_for_cap }",
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}",
75
77
  'Codes:',
76
78
  @codes.map { |code| ' ' + code }.join("\n"),
77
- "Note: #{ @note }",
78
- "References:",
79
- @references.join("\n "),
80
- "Incidents: #{ @incidents.join(' ')}",
79
+ "Note: #{@note}",
80
+ 'References:',
81
+ @references.join("\n "),
82
+ "Incidents: #{@incidents.join(' ')}",
81
83
  'Information:',
82
84
  @infos.map { |info| ' ' + info.to_s }.join("\n")].join("\n")
83
85
  RCAP.format_lines_for_inspect('ALERT', alert_inspect)
84
86
  end
85
87
 
86
- PASSWORD_XPATH = "cap:#{ PASSWORD_ELEMENT_NAME }"
88
+ PASSWORD_XPATH = "cap:#{PASSWORD_ELEMENT_NAME}"
87
89
 
88
90
  # @param [REXML::Element] alert_xml_element
89
91
  # @return [RCAP::CAP_1_0::Alert]
@@ -93,7 +95,7 @@ module RCAP
93
95
  end
94
96
  end
95
97
 
96
- PASSWORD_YAML = 'Password'
98
+ PASSWORD_YAML = 'Password'
97
99
 
98
100
  # Returns a string containing the YAML representation of the alert.
99
101
  #
@@ -125,7 +127,7 @@ module RCAP
125
127
  end
126
128
  end
127
129
 
128
- PASSWORD_KEY = 'password'
130
+ PASSWORD_KEY = 'password'
129
131
 
130
132
  # Returns a Hash representation of an Alert object
131
133
  #
@@ -146,7 +148,7 @@ module RCAP
146
148
  [NOTE_KEY, @note],
147
149
  [REFERENCES_KEY, @references],
148
150
  [INCIDENTS_KEY, @incidents],
149
- [INFOS_KEY, @infos.map { |info| info.to_h }])
151
+ [INFOS_KEY, @infos.map(&:to_h)])
150
152
  end
151
153
 
152
154
  # Initialises an Alert object from a Hash produced by Alert#to_h
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RCAP
2
4
  module CAP_1_0
3
5
  # An Area object is valid if
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RCAP
2
4
  module CAP_1_0
3
5
  # A Circle object is valid if
@@ -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,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RCAP
2
4
  module CAP_1_0
3
5
  # In Info object is valid if
@@ -9,7 +11,7 @@ module RCAP
9
11
  # * all Resource objects in the resources collection are valid
10
12
  # * all Area objects in the areas collection are valid
11
13
  class Info < RCAP::Base::Info
12
- 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(', ')}")
13
15
 
14
16
  # @return [String]
15
17
  def xmlns
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RCAP
2
4
  module CAP_1_0
3
5
  # A Parameter object is valid if
@@ -6,7 +8,7 @@ module RCAP
6
8
  # @return [REXML::Element]
7
9
  def to_xml_element
8
10
  xml_element = REXML::Element.new(self.class::XML_ELEMENT_NAME)
9
- xml_element.add_text("#{ @name }=#{ @value }")
11
+ xml_element.add_text("#{@name}=#{@value}")
10
12
  xml_element
11
13
  end
12
14
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RCAP
2
4
  module CAP_1_0
3
5
  # A Point object is valid if
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RCAP
2
4
  module CAP_1_0
3
5
  # A Polygon object is valid if
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RCAP
2
4
  module CAP_1_0
3
5
  # A Resource object is valid if
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RCAP
2
4
  module CAP_1_1
3
5
  # An Alert object is valid if
@@ -12,9 +14,9 @@ module RCAP
12
14
  XMLNS = 'urn:oasis:names:tc:emergency:cap:1.1'
13
15
  CAP_VERSION = '1.1'
14
16
 
15
- STATUS_DRAFT = 'Draft'
17
+ STATUS_DRAFT = 'Draft'
16
18
  # Valid values for status
17
- 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
18
20
 
19
21
  # @return [String]
20
22
  def xmlns
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RCAP
2
4
  module CAP_1_1
3
5
  # An Area object is valid if
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RCAP
2
4
  module CAP_1_1
3
5
  # A Circle object is valid if
@@ -1,9 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RCAP
2
4
  module CAP_1_1
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_1
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
  def xmlns
9
11
  Alert::XMLNS
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RCAP
2
4
  module CAP_1_1
3
5
  # In Info object is valid if
@@ -19,16 +21,16 @@ module RCAP
19
21
  # Valid values for response_type
20
22
  VALID_RESPONSE_TYPES = [RESPONSE_TYPE_SHELTER, RESPONSE_TYPE_EVACUATE,
21
23
  RESPONSE_TYPE_PREPARE, RESPONSE_TYPE_EXECUTE, RESPONSE_TYPE_MONITOR,
22
- RESPONSE_TYPE_ASSESS, RESPONSE_TYPE_NONE]
24
+ RESPONSE_TYPE_ASSESS, RESPONSE_TYPE_NONE].freeze
23
25
 
24
26
  CERTAINTY_OBSERVED = 'Observed'
25
27
  # Valid valies for certainty
26
28
  VALID_CERTAINTIES = [CERTAINTY_OBSERVED, CERTAINTY_LIKELY,
27
- CERTAINTY_POSSIBLE, CERTAINTY_UNLIKELY, CERTAINTY_UNKNOWN]
29
+ CERTAINTY_POSSIBLE, CERTAINTY_UNLIKELY, CERTAINTY_UNKNOWN].freeze
28
30
 
29
31
  validates_length_of(:categories, minimum: 1)
30
32
  validates_inclusion_of_members_of(:response_types, in: VALID_RESPONSE_TYPES, allow_blank: true)
31
- validates_inclusion_of(:certainty, allow_nil: true, in: VALID_CERTAINTIES, message: "can only be assigned the following values: #{ VALID_CERTAINTIES.join(', ') }")
33
+ validates_inclusion_of(:certainty, allow_nil: true, in: VALID_CERTAINTIES, message: "can only be assigned the following values: #{VALID_CERTAINTIES.join(', ')}")
32
34
 
33
35
  # @return [Array<String>] Collection of textual response types; elements must be from {VALID_RESPONSE_TYPES}
34
36
  attr_reader(:response_types)
@@ -64,7 +66,7 @@ module RCAP
64
66
  # @option attributes [Array<Resource>] :resources Collection of {Resource} objects
65
67
  # @option attributes [Array<Area>] :areas Collection of {Area} objects
66
68
  def initialize
67
- @response_types = []
69
+ @response_types = []
68
70
  super
69
71
  end
70
72
 
@@ -89,7 +91,7 @@ module RCAP
89
91
  end
90
92
 
91
93
  RESPONSE_TYPE_ELEMENT_NAME = 'responseType'
92
- RESPONSE_TYPE_XPATH = "cap:#{ RESPONSE_TYPE_ELEMENT_NAME }"
94
+ RESPONSE_TYPE_XPATH = "cap:#{RESPONSE_TYPE_ELEMENT_NAME}"
93
95
 
94
96
  # @return [REXML::Element]
95
97
  def to_xml_element
@@ -147,27 +149,27 @@ module RCAP
147
149
 
148
150
  # @return [String]
149
151
  def inspect
150
- info_inspect = "Language: #{ @language }\n"\
151
- "Categories: #{ @categories.to_s_for_cap }\n"\
152
- "Event: #{ @event }\n"\
153
- "Response Types: #{ @response_types.to_s_for_cap }\n"\
154
- "Urgency: #{ @urgency }\n"\
155
- "Severity: #{ @severity }\n"\
156
- "Certainty: #{ @certainty }\n"\
157
- "Audience: #{ @audience }\n"\
158
- "Event Codes: #{ @event_codes.inspect }\n"\
159
- "Effective: #{ @effective }\n"\
160
- "Onset: #{ @onset }\n"\
161
- "Expires: #{ @expires }\n"\
162
- "Sender Name: #{ @sender_name }\n"\
163
- "Headline: #{ @headline }\n"\
164
- "Description:\n" + @description.to_s.lines.map { |line| ' ' + line }.join("\n") + "\n"\
165
- "Instruction: #{ @instruction }\n"\
166
- "Web: #{ @web }\n"\
167
- "Contact: #{ @contact }\n"\
168
- "Parameters:\n" + @parameters.map { |parameter| ' ' + parameter.inspect }.join("\n") + "\n"\
169
- "Resources:\n" + @resources.map { |resource| ' ' + resource.inspect }.join("\n") + "\n"\
170
- "Area:\n" + @areas.map { |area| " #{ area }" }.join("\n") + "\n"
152
+ info_inspect = "Language: #{@language}\n"\
153
+ "Categories: #{@categories.to_s_for_cap}\n"\
154
+ "Event: #{@event}\n"\
155
+ "Response Types: #{@response_types.to_s_for_cap}\n"\
156
+ "Urgency: #{@urgency}\n"\
157
+ "Severity: #{@severity}\n"\
158
+ "Certainty: #{@certainty}\n"\
159
+ "Audience: #{@audience}\n"\
160
+ "Event Codes: #{@event_codes.inspect}\n"\
161
+ "Effective: #{@effective}\n"\
162
+ "Onset: #{@onset}\n"\
163
+ "Expires: #{@expires}\n"\
164
+ "Sender Name: #{@sender_name}\n"\
165
+ "Headline: #{@headline}\n"\
166
+ "Description:\n" + @description.to_s.lines.map { |line| ' ' + line }.join("\n") + "\n"\
167
+ "Instruction: #{@instruction}\n"\
168
+ "Web: #{@web}\n"\
169
+ "Contact: #{@contact}\n"\
170
+ "Parameters:\n" + @parameters.map { |parameter| ' ' + parameter.inspect }.join("\n") + "\n"\
171
+ "Resources:\n" + @resources.map { |resource| ' ' + resource.inspect }.join("\n") + "\n"\
172
+ "Area:\n" + @areas.map { |area| " #{area}" }.join("\n") + "\n"
171
173
  RCAP.format_lines_for_inspect('INFO', info_inspect)
172
174
  end
173
175
 
@@ -176,14 +178,14 @@ module RCAP
176
178
  #
177
179
  # @return [String]
178
180
  def to_s
179
- "#{ @event }(#{ @urgency }/#{ @severity }/#{ @certainty })"
181
+ "#{@event}(#{@urgency}/#{@severity}/#{@certainty})"
180
182
  end
181
183
 
182
184
  RESPONSE_TYPES_YAML = 'Response Types'
183
185
 
184
186
  # @return [Hash]
185
187
  def to_yaml_data
186
- parameter_to_hash = lambda { |hash, parameter| hash.merge(parameter.name => parameter.value) }
188
+ parameter_to_hash = ->(hash, parameter) { hash.merge(parameter.name => parameter.value) }
187
189
 
188
190
  RCAP.attribute_values_to_hash([LANGUAGE_YAML, @language],
189
191
  [CATEGORIES_YAML, @categories],
@@ -244,10 +246,10 @@ module RCAP
244
246
  [INSTRUCTION_KEY, @instruction],
245
247
  [WEB_KEY, @web],
246
248
  [CONTACT_KEY, @contact],
247
- [RESOURCES_KEY, @resources.map { |resource| resource.to_h }],
248
- [EVENT_CODES_KEY, @event_codes.map { |event_code| event_code.to_h }],
249
- [PARAMETERS_KEY, @parameters.map { |parameter| parameter.to_h }],
250
- [AREAS_KEY, @areas.map { |area| area.to_h }])
249
+ [RESOURCES_KEY, @resources.map(&:to_h)],
250
+ [EVENT_CODES_KEY, @event_codes.map(&:to_h)],
251
+ [PARAMETERS_KEY, @parameters.map(&:to_h)],
252
+ [AREAS_KEY, @areas.map(&:to_h)])
251
253
  end
252
254
 
253
255
  # @param [Hash] info_hash