Class: Oscal::V1_2_1::Import

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

Instance Method Summary collapse

Methods inherited from Base

lutaml_default_register

Instance Method Details

#json_assembly_soa_from_include_all_include_all(instance, value) ⇒ Object



11053
11054
11055
11056
11057
11058
11059
11060
11061
# File 'lib/oscal/v1_2_1/all_models.rb', line 11053

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

#json_assembly_soa_to_include_all_include_all(instance, doc) ⇒ Object



11063
11064
11065
11066
11067
11068
11069
11070
11071
11072
11073
11074
11075
# File 'lib/oscal/v1_2_1/all_models.rb', line 11063

def json_assembly_soa_to_include_all_include_all(instance, doc)
  current = instance.instance_variable_get(:@include_all)
  if current.is_a?(Array)
    result = current.map do |item|
      if item.is_a?(Lutaml::Model::Serializable)
        Oscal::V1_2_1::IncludeAll.as_json(item)
      else
        item
      end
    end
    doc["include-all"] = result.length == 1 ? result.first : result
  end
end