Class: Oscal::V1_2_1::Risk
- Defined in:
- lib/oscal/v1_2_1/all_models.rb
Class Method Summary collapse
Instance Method Summary collapse
- #json_assembly_soa_from_risk_log_risk_log(instance, value) ⇒ Object
- #json_assembly_soa_to_risk_log_risk_log(instance, doc) ⇒ Object
- #json_from_risk_status_status(instance, value) ⇒ Object
- #json_soa_from_threat_id_threat_ids(instance, value) ⇒ Object
- #json_soa_to_threat_id_threat_ids(instance, doc) ⇒ Object
- #json_to_risk_status_status(instance, doc) ⇒ Object
- #validate_constraints ⇒ Object
- #validate_occurrences ⇒ Object
Methods inherited from Base
Class Method Details
.metaschema_constraints ⇒ Object
15182 15183 15184 |
# File 'lib/oscal/v1_2_1/all_models.rb', line 15182 def self. @metaschema_constraints end |
Instance Method Details
#json_assembly_soa_from_risk_log_risk_log(instance, value) ⇒ Object
15172 15173 15174 15175 15176 15177 15178 15179 15180 |
# File 'lib/oscal/v1_2_1/all_models.rb', line 15172 def json_assembly_soa_from_risk_log_risk_log(instance, value) items = case value when Hash then [value] when Array then value else return end parsed = items.map { |item| Oscal::V1_2_1::RiskRiskLog.of_json(item.is_a?(Hash) ? item : {}) } instance.instance_variable_set(:@risk_log, parsed) end |
#json_assembly_soa_to_risk_log_risk_log(instance, doc) ⇒ Object
15158 15159 15160 15161 15162 15163 15164 15165 15166 15167 15168 15169 15170 |
# File 'lib/oscal/v1_2_1/all_models.rb', line 15158 def json_assembly_soa_to_risk_log_risk_log(instance, doc) current = instance.instance_variable_get(:@risk_log) if current.is_a?(Array) result = current.map do |item| if item.is_a?(Lutaml::Model::Serializable) Oscal::V1_2_1::RiskRiskLog.as_json(item) else item end end doc["risk-log"] = result.length == 1 ? result.first : result end end |
#json_from_risk_status_status(instance, value) ⇒ Object
15097 15098 15099 15100 15101 15102 15103 15104 15105 15106 15107 15108 15109 15110 15111 |
# File 'lib/oscal/v1_2_1/all_models.rb', line 15097 def json_from_risk_status_status(instance, value) if value.is_a?(Array) parsed = value.map { |v| Oscal::V1_2_1::RiskStatus.of_json(v) } instance.instance_variable_set(:@risk_status, parsed) elsif value.is_a?(Hash) if value.empty? inst = Oscal::V1_2_1::RiskStatus.new(content: "") instance.instance_variable_set(:@risk_status, inst) else instance.instance_variable_set(:@risk_status, Oscal::V1_2_1::RiskStatus.of_json(value)) end elsif value instance.instance_variable_set(:@risk_status, Oscal::V1_2_1::RiskStatus.of_json(value)) end end |
#json_soa_from_threat_id_threat_ids(instance, value) ⇒ Object
15127 15128 15129 15130 15131 15132 15133 15134 15135 15136 15137 15138 15139 15140 15141 15142 |
# File 'lib/oscal/v1_2_1/all_models.rb', line 15127 def json_soa_from_threat_id_threat_ids(instance, value) items = case value when Hash then [value] when Array then value when String then [value] else return end parsed = items.map do |item| case item when Hash then Oscal::V1_2_1::ThreatId.of_json(item) when String then Oscal::V1_2_1::ThreatId.of_json(item) else item end end instance.instance_variable_set(:@threat_id, parsed) end |
#json_soa_to_threat_id_threat_ids(instance, doc) ⇒ Object
15144 15145 15146 15147 15148 15149 15150 15151 15152 15153 15154 15155 15156 |
# File 'lib/oscal/v1_2_1/all_models.rb', line 15144 def json_soa_to_threat_id_threat_ids(instance, doc) current = instance.instance_variable_get(:@threat_id) if current.is_a?(Array) result = current.map do |item| if item.is_a?(Lutaml::Model::Serializable) Oscal::V1_2_1::ThreatId.as_json(item) else item end end doc["threat-ids"] = result.length == 1 ? result.first : result end end |
#json_to_risk_status_status(instance, doc) ⇒ Object
15113 15114 15115 15116 15117 15118 15119 15120 15121 15122 15123 15124 15125 |
# File 'lib/oscal/v1_2_1/all_models.rb', line 15113 def json_to_risk_status_status(instance, doc) current = instance.instance_variable_get(:@risk_status) if current.is_a?(Array) doc["status"] = current.map { |item| item.respond_to?(:content) ? item.content : item } elsif current if current.is_a?(Lutaml::Model::Serializable) doc["status"] = Oscal::V1_2_1::RiskStatus.as_json(current) else val = current.respond_to?(:content) ? current.content : current doc["status"] = val end end end |
#validate_constraints ⇒ Object
15186 15187 15188 15189 |
# File 'lib/oscal/v1_2_1/all_models.rb', line 15186 def validate_constraints validator = Metaschema::ConstraintValidator.new validator.validate(self, self.class.) end |
#validate_occurrences ⇒ Object
15191 15192 15193 |
# File 'lib/oscal/v1_2_1/all_models.rb', line 15191 def validate_occurrences Metaschema::ConstraintValidator.validate_occurrences(self, self.class.instance_variable_get(:@occurrence_constraints)) end |