Class: Oscal::V1_2_1::PlanOfActionAndMilestones
- Inherits:
-
Base
- Object
- Lutaml::Model::Serializable
- Base
- Oscal::V1_2_1::PlanOfActionAndMilestones
- Defined in:
- lib/oscal/v1_2_1/all_models.rb
Class Method Summary collapse
- .of_json(doc, options = {}) ⇒ Object
- .of_yaml(doc, options = {}) ⇒ Object
- .to_json(instance, options = {}) ⇒ Object
- .to_yaml(instance, options = {}) ⇒ Object
Instance Method Summary collapse
- #json_assembly_soa_from_back_matter_back_matter(instance, value) ⇒ Object
- #json_assembly_soa_from_import_ssp_import_ssp(instance, value) ⇒ Object
- #json_assembly_soa_from_local_definitions_local_definitions(instance, value) ⇒ Object
- #json_assembly_soa_from_metadata_metadata(instance, value) ⇒ Object
- #json_assembly_soa_to_back_matter_back_matter(instance, doc) ⇒ Object
- #json_assembly_soa_to_import_ssp_import_ssp(instance, doc) ⇒ Object
- #json_assembly_soa_to_local_definitions_local_definitions(instance, doc) ⇒ Object
- #json_assembly_soa_to_metadata_metadata(instance, doc) ⇒ Object
- #json_from_system_id_system_id(instance, value) ⇒ Object
- #json_to_system_id_system_id(instance, doc) ⇒ Object
- #to_json(options = {}) ⇒ Object
- #to_yaml(options = {}) ⇒ Object
- #validate_occurrences ⇒ Object
Methods inherited from Base
Class Method Details
.of_json(doc, options = {}) ⇒ Object
16168 16169 16170 16171 16172 16173 16174 |
# File 'lib/oscal/v1_2_1/all_models.rb', line 16168 def self.of_json(doc, = {}) if doc.is_a?(Hash) && doc.key?("plan-of-action-and-milestones") super(doc["plan-of-action-and-milestones"], ) else super(doc, ) end end |
.of_yaml(doc, options = {}) ⇒ Object
16181 16182 16183 16184 16185 16186 16187 |
# File 'lib/oscal/v1_2_1/all_models.rb', line 16181 def self.of_yaml(doc, = {}) if doc.is_a?(Hash) && doc.key?("plan-of-action-and-milestones") super(doc["plan-of-action-and-milestones"], ) else super(doc, ) end end |
.to_json(instance, options = {}) ⇒ Object
16176 16177 16178 16179 |
# File 'lib/oscal/v1_2_1/all_models.rb', line 16176 def self.to_json(instance, = {}) json_str = super(instance, ) { "plan-of-action-and-milestones" => JSON.parse(json_str) }.to_json end |
.to_yaml(instance, options = {}) ⇒ Object
16189 16190 16191 16192 16193 |
# File 'lib/oscal/v1_2_1/all_models.rb', line 16189 def self.to_yaml(instance, = {}) yaml_str = super(instance, ) data = YAML.safe_load(yaml_str, permitted_classes: [Date, Time, Symbol]) { "plan-of-action-and-milestones" => data }.to_yaml end |
Instance Method Details
#json_assembly_soa_from_back_matter_back_matter(instance, value) ⇒ Object
16094 16095 16096 16097 16098 16099 16100 16101 16102 |
# File 'lib/oscal/v1_2_1/all_models.rb', line 16094 def json_assembly_soa_from_back_matter_back_matter(instance, value) items = case value when Hash then [value] when Array then value else return end parsed = items.map { |item| Oscal::V1_2_1::BackMatter.of_json(item.is_a?(Hash) ? item : {}) } instance.instance_variable_set(:@back_matter, parsed) end |
#json_assembly_soa_from_import_ssp_import_ssp(instance, value) ⇒ Object
16118 16119 16120 16121 16122 16123 16124 16125 16126 |
# File 'lib/oscal/v1_2_1/all_models.rb', line 16118 def json_assembly_soa_from_import_ssp_import_ssp(instance, value) items = case value when Hash then [value] when Array then value else return end parsed = items.map { |item| Oscal::V1_2_1::ImportSsp.of_json(item.is_a?(Hash) ? item : {}) } instance.instance_variable_set(:@import_ssp, parsed) end |
#json_assembly_soa_from_local_definitions_local_definitions(instance, value) ⇒ Object
16128 16129 16130 16131 16132 16133 16134 16135 16136 |
# File 'lib/oscal/v1_2_1/all_models.rb', line 16128 def json_assembly_soa_from_local_definitions_local_definitions(instance, value) items = case value when Hash then [value] when Array then value else return end parsed = items.map { |item| Oscal::V1_2_1::LocalDefinitions.of_json(item.is_a?(Hash) ? item : {}) } instance.instance_variable_set(:@local_definitions, parsed) end |
#json_assembly_soa_from_metadata_metadata(instance, value) ⇒ Object
16070 16071 16072 16073 16074 16075 16076 16077 16078 |
# File 'lib/oscal/v1_2_1/all_models.rb', line 16070 def (instance, value) items = case value when Hash then [value] when Array then value else return end parsed = items.map { |item| Oscal::V1_2_1::Metadata.of_json(item.is_a?(Hash) ? item : {}) } instance.instance_variable_set(:@metadata, parsed) end |
#json_assembly_soa_to_back_matter_back_matter(instance, doc) ⇒ Object
16080 16081 16082 16083 16084 16085 16086 16087 16088 16089 16090 16091 16092 |
# File 'lib/oscal/v1_2_1/all_models.rb', line 16080 def json_assembly_soa_to_back_matter_back_matter(instance, doc) current = instance.instance_variable_get(:@back_matter) if current.is_a?(Array) result = current.map do |item| if item.is_a?(Lutaml::Model::Serializable) Oscal::V1_2_1::BackMatter.as_json(item) else item end end doc["back-matter"] = result.length == 1 ? result.first : result end end |
#json_assembly_soa_to_import_ssp_import_ssp(instance, doc) ⇒ Object
16104 16105 16106 16107 16108 16109 16110 16111 16112 16113 16114 16115 16116 |
# File 'lib/oscal/v1_2_1/all_models.rb', line 16104 def json_assembly_soa_to_import_ssp_import_ssp(instance, doc) current = instance.instance_variable_get(:@import_ssp) if current.is_a?(Array) result = current.map do |item| if item.is_a?(Lutaml::Model::Serializable) Oscal::V1_2_1::ImportSsp.as_json(item) else item end end doc["import-ssp"] = result.length == 1 ? result.first : result end end |
#json_assembly_soa_to_local_definitions_local_definitions(instance, doc) ⇒ Object
16138 16139 16140 16141 16142 16143 16144 16145 16146 16147 16148 16149 16150 |
# File 'lib/oscal/v1_2_1/all_models.rb', line 16138 def json_assembly_soa_to_local_definitions_local_definitions(instance, doc) current = instance.instance_variable_get(:@local_definitions) if current.is_a?(Array) result = current.map do |item| if item.is_a?(Lutaml::Model::Serializable) Oscal::V1_2_1::LocalDefinitions.as_json(item) else item end end doc["local-definitions"] = result.length == 1 ? result.first : result end end |
#json_assembly_soa_to_metadata_metadata(instance, doc) ⇒ Object
16056 16057 16058 16059 16060 16061 16062 16063 16064 16065 16066 16067 16068 |
# File 'lib/oscal/v1_2_1/all_models.rb', line 16056 def (instance, doc) current = instance.instance_variable_get(:@metadata) if current.is_a?(Array) result = current.map do |item| if item.is_a?(Lutaml::Model::Serializable) Oscal::V1_2_1::Metadata.as_json(item) else item end end doc["metadata"] = result.length == 1 ? result.first : result end end |
#json_from_system_id_system_id(instance, value) ⇒ Object
16152 16153 16154 16155 16156 16157 16158 16159 16160 16161 16162 16163 16164 16165 16166 |
# File 'lib/oscal/v1_2_1/all_models.rb', line 16152 def json_from_system_id_system_id(instance, value) if value.is_a?(Array) parsed = value.map { |v| Oscal::V1_2_1::SystemId.of_json(v) } instance.instance_variable_set(:@system_id, parsed) elsif value.is_a?(Hash) if value.empty? inst = Oscal::V1_2_1::SystemId.new(content: "") instance.instance_variable_set(:@system_id, inst) else instance.instance_variable_set(:@system_id, Oscal::V1_2_1::SystemId.of_json(value)) end elsif value instance.instance_variable_set(:@system_id, Oscal::V1_2_1::SystemId.of_json(value)) end end |
#json_to_system_id_system_id(instance, doc) ⇒ Object
16042 16043 16044 16045 16046 16047 16048 16049 16050 16051 16052 16053 16054 |
# File 'lib/oscal/v1_2_1/all_models.rb', line 16042 def json_to_system_id_system_id(instance, doc) current = instance.instance_variable_get(:@system_id) if current.is_a?(Array) doc["system-id"] = current.map { |item| item.respond_to?(:content) ? item.content : item } elsif current if current.is_a?(Lutaml::Model::Serializable) doc["system-id"] = Oscal::V1_2_1::SystemId.as_json(current) else val = current.respond_to?(:content) ? current.content : current doc["system-id"] = val end end end |
#to_json(options = {}) ⇒ Object
16195 16196 16197 |
# File 'lib/oscal/v1_2_1/all_models.rb', line 16195 def to_json( = {}) self.class.to_json(self, ) end |
#to_yaml(options = {}) ⇒ Object
16199 16200 16201 |
# File 'lib/oscal/v1_2_1/all_models.rb', line 16199 def to_yaml( = {}) self.class.to_yaml(self, ) end |
#validate_occurrences ⇒ Object
16203 16204 16205 |
# File 'lib/oscal/v1_2_1/all_models.rb', line 16203 def validate_occurrences Metaschema::ConstraintValidator.validate_occurrences(self, self.class.instance_variable_get(:@occurrence_constraints)) end |