Class: Oscal::V1_2_1::ComponentDefinition
- Defined in:
- lib/oscal/v1_2_1/all_models.rb
Class Method Summary collapse
- .metaschema_constraints ⇒ Object
- .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_metadata_metadata(instance, value) ⇒ Object
- #json_assembly_soa_to_back_matter_back_matter(instance, doc) ⇒ Object
- #json_assembly_soa_to_metadata_metadata(instance, doc) ⇒ Object
- #to_json(options = {}) ⇒ Object
- #to_yaml(options = {}) ⇒ Object
- #validate_constraints ⇒ Object
- #validate_occurrences ⇒ Object
Methods inherited from Base
Class Method Details
.metaschema_constraints ⇒ Object
11898 11899 11900 |
# File 'lib/oscal/v1_2_1/all_models.rb', line 11898 def self. @metaschema_constraints end |
.of_json(doc, options = {}) ⇒ Object
11863 11864 11865 11866 11867 11868 11869 |
# File 'lib/oscal/v1_2_1/all_models.rb', line 11863 def self.of_json(doc, = {}) if doc.is_a?(Hash) && doc.key?("component-definition") super(doc["component-definition"], ) else super(doc, ) end end |
.of_yaml(doc, options = {}) ⇒ Object
11876 11877 11878 11879 11880 11881 11882 |
# File 'lib/oscal/v1_2_1/all_models.rb', line 11876 def self.of_yaml(doc, = {}) if doc.is_a?(Hash) && doc.key?("component-definition") super(doc["component-definition"], ) else super(doc, ) end end |
.to_json(instance, options = {}) ⇒ Object
11871 11872 11873 11874 |
# File 'lib/oscal/v1_2_1/all_models.rb', line 11871 def self.to_json(instance, = {}) json_str = super(instance, ) { "component-definition" => JSON.parse(json_str) }.to_json end |
.to_yaml(instance, options = {}) ⇒ Object
11884 11885 11886 11887 11888 |
# File 'lib/oscal/v1_2_1/all_models.rb', line 11884 def self.to_yaml(instance, = {}) yaml_str = super(instance, ) data = YAML.safe_load(yaml_str, permitted_classes: [Date, Time, Symbol]) { "component-definition" => data }.to_yaml end |
Instance Method Details
#json_assembly_soa_from_back_matter_back_matter(instance, value) ⇒ Object
11839 11840 11841 11842 11843 11844 11845 11846 11847 |
# File 'lib/oscal/v1_2_1/all_models.rb', line 11839 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_metadata_metadata(instance, value) ⇒ Object
11815 11816 11817 11818 11819 11820 11821 11822 11823 |
# File 'lib/oscal/v1_2_1/all_models.rb', line 11815 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
11849 11850 11851 11852 11853 11854 11855 11856 11857 11858 11859 11860 11861 |
# File 'lib/oscal/v1_2_1/all_models.rb', line 11849 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_metadata_metadata(instance, doc) ⇒ Object
11825 11826 11827 11828 11829 11830 11831 11832 11833 11834 11835 11836 11837 |
# File 'lib/oscal/v1_2_1/all_models.rb', line 11825 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 |
#to_json(options = {}) ⇒ Object
11890 11891 11892 |
# File 'lib/oscal/v1_2_1/all_models.rb', line 11890 def to_json( = {}) self.class.to_json(self, ) end |
#to_yaml(options = {}) ⇒ Object
11894 11895 11896 |
# File 'lib/oscal/v1_2_1/all_models.rb', line 11894 def to_yaml( = {}) self.class.to_yaml(self, ) end |
#validate_constraints ⇒ Object
11902 11903 11904 11905 |
# File 'lib/oscal/v1_2_1/all_models.rb', line 11902 def validate_constraints validator = Metaschema::ConstraintValidator.new validator.validate(self, self.class.) end |
#validate_occurrences ⇒ Object
11907 11908 11909 |
# File 'lib/oscal/v1_2_1/all_models.rb', line 11907 def validate_occurrences Metaschema::ConstraintValidator.validate_occurrences(self, self.class.instance_variable_get(:@occurrence_constraints)) end |