Class: Oscal::V1_2_1::Catalog
- 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
9782 9783 9784 |
# File 'lib/oscal/v1_2_1/all_models.rb', line 9782 def self. @metaschema_constraints end |
.of_json(doc, options = {}) ⇒ Object
9747 9748 9749 9750 9751 9752 9753 |
# File 'lib/oscal/v1_2_1/all_models.rb', line 9747 def self.of_json(doc, = {}) if doc.is_a?(Hash) && doc.key?("catalog") super(doc["catalog"], ) else super(doc, ) end end |
.of_yaml(doc, options = {}) ⇒ Object
9760 9761 9762 9763 9764 9765 9766 |
# File 'lib/oscal/v1_2_1/all_models.rb', line 9760 def self.of_yaml(doc, = {}) if doc.is_a?(Hash) && doc.key?("catalog") super(doc["catalog"], ) else super(doc, ) end end |
.to_json(instance, options = {}) ⇒ Object
9755 9756 9757 9758 |
# File 'lib/oscal/v1_2_1/all_models.rb', line 9755 def self.to_json(instance, = {}) json_str = super(instance, ) { "catalog" => JSON.parse(json_str) }.to_json end |
.to_yaml(instance, options = {}) ⇒ Object
9768 9769 9770 9771 9772 |
# File 'lib/oscal/v1_2_1/all_models.rb', line 9768 def self.to_yaml(instance, = {}) yaml_str = super(instance, ) data = YAML.safe_load(yaml_str, permitted_classes: [Date, Time, Symbol]) { "catalog" => data }.to_yaml end |
Instance Method Details
#json_assembly_soa_from_back_matter_back_matter(instance, value) ⇒ Object
9713 9714 9715 9716 9717 9718 9719 9720 9721 |
# File 'lib/oscal/v1_2_1/all_models.rb', line 9713 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
9723 9724 9725 9726 9727 9728 9729 9730 9731 |
# File 'lib/oscal/v1_2_1/all_models.rb', line 9723 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
9733 9734 9735 9736 9737 9738 9739 9740 9741 9742 9743 9744 9745 |
# File 'lib/oscal/v1_2_1/all_models.rb', line 9733 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
9699 9700 9701 9702 9703 9704 9705 9706 9707 9708 9709 9710 9711 |
# File 'lib/oscal/v1_2_1/all_models.rb', line 9699 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
9774 9775 9776 |
# File 'lib/oscal/v1_2_1/all_models.rb', line 9774 def to_json( = {}) self.class.to_json(self, ) end |
#to_yaml(options = {}) ⇒ Object
9778 9779 9780 |
# File 'lib/oscal/v1_2_1/all_models.rb', line 9778 def to_yaml( = {}) self.class.to_yaml(self, ) end |
#validate_constraints ⇒ Object
9786 9787 9788 9789 |
# File 'lib/oscal/v1_2_1/all_models.rb', line 9786 def validate_constraints validator = Metaschema::ConstraintValidator.new validator.validate(self, self.class.) end |
#validate_occurrences ⇒ Object
9791 9792 9793 |
# File 'lib/oscal/v1_2_1/all_models.rb', line 9791 def validate_occurrences Metaschema::ConstraintValidator.validate_occurrences(self, self.class.instance_variable_get(:@occurrence_constraints)) end |