Class: Oscal::V1_2_1::Profile

Inherits:
Base
  • Object
show all
Defined in:
lib/oscal/v1_2_1/all_models.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Base

lutaml_default_register

Class Method Details

.of_json(doc, options = {}) ⇒ Object



10993
10994
10995
10996
10997
10998
10999
# File 'lib/oscal/v1_2_1/all_models.rb', line 10993

def self.of_json(doc, options = {})
  if doc.is_a?(Hash) && doc.key?("profile")
    super(doc["profile"], options)
  else
    super(doc, options)
  end
end

.of_yaml(doc, options = {}) ⇒ Object



11006
11007
11008
11009
11010
11011
11012
# File 'lib/oscal/v1_2_1/all_models.rb', line 11006

def self.of_yaml(doc, options = {})
  if doc.is_a?(Hash) && doc.key?("profile")
    super(doc["profile"], options)
  else
    super(doc, options)
  end
end

.to_json(instance, options = {}) ⇒ Object



11001
11002
11003
11004
# File 'lib/oscal/v1_2_1/all_models.rb', line 11001

def self.to_json(instance, options = {})
  json_str = super(instance, options)
  { "profile" => JSON.parse(json_str) }.to_json
end

.to_yaml(instance, options = {}) ⇒ Object



11014
11015
11016
11017
11018
# File 'lib/oscal/v1_2_1/all_models.rb', line 11014

def self.to_yaml(instance, options = {})
  yaml_str = super(instance, options)
  data = YAML.safe_load(yaml_str, permitted_classes: [Date, Time, Symbol])
  { "profile" => data }.to_yaml
end

Instance Method Details

#json_assembly_soa_from_back_matter_back_matter(instance, value) ⇒ Object



10935
10936
10937
10938
10939
10940
10941
10942
10943
# File 'lib/oscal/v1_2_1/all_models.rb', line 10935

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_merge_merge(instance, value) ⇒ Object



10945
10946
10947
10948
10949
10950
10951
10952
10953
# File 'lib/oscal/v1_2_1/all_models.rb', line 10945

def json_assembly_soa_from_merge_merge(instance, value)
  items = case value
          when Hash then [value]
          when Array then value
          else return
          end
  parsed = items.map { |item| Oscal::V1_2_1::Merge.of_json(item.is_a?(Hash) ? item : {}) }
  instance.instance_variable_set(:@merge, parsed)
end

#json_assembly_soa_from_metadata_metadata(instance, value) ⇒ Object



10911
10912
10913
10914
10915
10916
10917
10918
10919
# File 'lib/oscal/v1_2_1/all_models.rb', line 10911

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_from_modify_modify(instance, value) ⇒ Object



10969
10970
10971
10972
10973
10974
10975
10976
10977
# File 'lib/oscal/v1_2_1/all_models.rb', line 10969

def json_assembly_soa_from_modify_modify(instance, value)
  items = case value
          when Hash then [value]
          when Array then value
          else return
          end
  parsed = items.map { |item| Oscal::V1_2_1::Modify.of_json(item.is_a?(Hash) ? item : {}) }
  instance.instance_variable_set(:@modify, parsed)
end

#json_assembly_soa_to_back_matter_back_matter(instance, doc) ⇒ Object



10921
10922
10923
10924
10925
10926
10927
10928
10929
10930
10931
10932
10933
# File 'lib/oscal/v1_2_1/all_models.rb', line 10921

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_merge_merge(instance, doc) ⇒ Object



10955
10956
10957
10958
10959
10960
10961
10962
10963
10964
10965
10966
10967
# File 'lib/oscal/v1_2_1/all_models.rb', line 10955

def json_assembly_soa_to_merge_merge(instance, doc)
  current = instance.instance_variable_get(:@merge)
  if current.is_a?(Array)
    result = current.map do |item|
      if item.is_a?(Lutaml::Model::Serializable)
        Oscal::V1_2_1::Merge.as_json(item)
      else
        item
      end
    end
    doc["merge"] = result.length == 1 ? result.first : result
  end
end

#json_assembly_soa_to_metadata_metadata(instance, doc) ⇒ Object



10897
10898
10899
10900
10901
10902
10903
10904
10905
10906
10907
10908
10909
# File 'lib/oscal/v1_2_1/all_models.rb', line 10897

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_assembly_soa_to_modify_modify(instance, doc) ⇒ Object



10979
10980
10981
10982
10983
10984
10985
10986
10987
10988
10989
10990
10991
# File 'lib/oscal/v1_2_1/all_models.rb', line 10979

def json_assembly_soa_to_modify_modify(instance, doc)
  current = instance.instance_variable_get(:@modify)
  if current.is_a?(Array)
    result = current.map do |item|
      if item.is_a?(Lutaml::Model::Serializable)
        Oscal::V1_2_1::Modify.as_json(item)
      else
        item
      end
    end
    doc["modify"] = result.length == 1 ? result.first : result
  end
end

#to_json(options = {}) ⇒ Object



11020
11021
11022
# File 'lib/oscal/v1_2_1/all_models.rb', line 11020

def to_json(options = {})
  self.class.to_json(self, options)
end

#to_yaml(options = {}) ⇒ Object



11024
11025
11026
# File 'lib/oscal/v1_2_1/all_models.rb', line 11024

def to_yaml(options = {})
  self.class.to_yaml(self, options)
end

#validate_occurrencesObject



11028
11029
11030
# File 'lib/oscal/v1_2_1/all_models.rb', line 11028

def validate_occurrences
  Metaschema::ConstraintValidator.validate_occurrences(self, self.class.instance_variable_get(:@occurrence_constraints))
end