Method: RCAP::Base::Alert.from_yaml_data

Defined in:
lib/rcap/base/alert.rb

.from_yaml_data(alert_yaml_data) ⇒ Alert

Initialise an Alert object from a hash reutrned from YAML.load.

Parameters:

  • alert_yaml_data (hash)

Returns:



328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
# File 'lib/rcap/base/alert.rb', line 328

def self.from_yaml_data(alert_yaml_data)
  new do |alert|
    alert.identifier  = RCAP.strip_if_given(alert_yaml_data[ IDENTIFIER_YAML])
    alert.sender      = RCAP.strip_if_given(alert_yaml_data[ SENDER_YAML])
    alert.sent        = RCAP.parse_datetime(alert_yaml_data[ SENT_YAML])
    alert.status      = RCAP.strip_if_given(alert_yaml_data[ STATUS_YAML])
    alert.msg_type    = RCAP.strip_if_given(alert_yaml_data[ MSG_TYPE_YAML])
    alert.source      = RCAP.strip_if_given(alert_yaml_data[ SOURCE_YAML])
    alert.scope       = RCAP.strip_if_given(alert_yaml_data[ SCOPE_YAML])
    alert.restriction = RCAP.strip_if_given(alert_yaml_data[ RESTRICTION_YAML])
    Array(alert_yaml_data[ ADDRESSES_YAML]).each do |address|
      alert.addresses << address.strip
    end
    Array(alert_yaml_data[ CODES_YAML]).each do |code|
      alert.codes << code.strip
    end
    alert.note        = alert_yaml_data[ NOTE_YAML]
    Array(alert_yaml_data[ REFERENCES_YAML]).each do |reference|
      alert.references << reference.strip
    end
    Array(alert_yaml_data[ INCIDENTS_YAML]).each do |incident|
      alert.incidents << incident.strip
    end
    Array(alert_yaml_data[ INFOS_YAML]).each do |info_yaml_data|
      alert.infos <<  alert.info_class.from_yaml_data(info_yaml_data)
    end
  end
end