Module: RCAP::Alert
- Defined in:
- lib/rcap/alert.rb
Constant Summary
- XMLNS_KEY =
"xmlns"
- YAML_CAP_VERSION_KEY =
"CAP Version"
- JSON_CAP_VERSION_KEY =
"cap_version"
- CAP_NAMESPACES =
[ RCAP::CAP_1_0::Alert::XMLNS, RCAP::CAP_1_1::Alert::XMLNS, RCAP::CAP_1_2::Alert::XMLNS ]
Class Method Summary (collapse)
-
+ (RCAP::CAP_1_0::Alert, ...) from_h(hash)
Initialise a RCAP Alert from a Ruby hash produced by CAP_1_2::Alert#to_h.
-
+ (RCAP::CAP_1_0::Alert, ...) from_json(json)
Initialise a RCAP Alert from a JSON document produced by CAP_1_2::Alert#to_json.
-
+ (RCAP::CAP_1_0::Alert, ...) from_xml(xml, namespace_key = nil)
Initialise a RCAP Alert from a XML document.
-
+ (RCAP::CAP_1_0::Alert, ...) from_yaml(yaml)
Initialise a RCAP Alert from a YAML document produced by CAP_1_2::Alert#to_yaml.
Class Method Details
+ (RCAP::CAP_1_0::Alert, ...) from_h(hash)
Initialise a RCAP Alert from a Ruby hash produced by CAP_1_2::Alert#to_h. The cap_version key is inspected and a CAP 1.0, 1.1 or 1.2 Alert is instantiated accordingly.
69 70 71 72 73 74 75 76 77 78 |
# File 'lib/rcap/alert.rb', line 69 def self.from_h( hash ) case hash[ JSON_CAP_VERSION_KEY ] when CAP_1_0::Alert::CAP_VERSION CAP_1_0::Alert.from_h( hash ) when CAP_1_1::Alert::CAP_VERSION CAP_1_1::Alert.from_h( hash ) else CAP_1_2::Alert.from_h( hash ) end end |
+ (RCAP::CAP_1_0::Alert, ...) from_json(json)
Initialise a RCAP Alert from a JSON document produced by CAP_1_2::Alert#to_json. The version of the document is inspected and a CAP 1.0, 1.1 or 1.2 Alert is instantiated accordingly.
58 59 60 61 |
# File 'lib/rcap/alert.rb', line 58 def self.from_json( json ) json_hash = JSON.parse( json.to_s ) self.from_h( json_hash ) end |
+ (RCAP::CAP_1_0::Alert, ...) from_xml(xml, namespace_key = nil)
Initialise a RCAP Alert from a XML document.
18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/rcap/alert.rb', line 18 def self.from_xml( xml, namespace_key = nil ) xml_document = REXML::Document.new( xml ) document_namespaces = xml_document.root.namespaces.invert namespace = namespace_key || CAP_NAMESPACES.find{ |namepsace| document_namespaces[ namepsace ]} case namespace when CAP_1_0::Alert::XMLNS CAP_1_0::Alert.from_xml_document( xml_document ) when CAP_1_1::Alert::XMLNS CAP_1_1::Alert.from_xml_document( xml_document ) else CAP_1_2::Alert.from_xml_document( xml_document ) end end |
+ (RCAP::CAP_1_0::Alert, ...) from_yaml(yaml)
Initialise a RCAP Alert from a YAML document produced by CAP_1_2::Alert#to_yaml. The version of the document is inspected and a CAP 1.0, 1.1 or 1.2 Alert is instantiated accordingly.
39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/rcap/alert.rb', line 39 def self.from_yaml( yaml ) yaml_data = YAML.load( yaml ) case yaml_data[ YAML_CAP_VERSION_KEY ] when CAP_1_0::Alert::CAP_VERSION CAP_1_0::Alert.from_yaml_data( yaml_data ) when CAP_1_1::Alert::CAP_VERSION CAP_1_1::Alert.from_yaml_data( yaml_data ) else CAP_1_2::Alert.from_yaml_data( yaml_data ) end end |