Class: Oscal::V1_2_1::InsertControls

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



11217
11218
11219
11220
11221
11222
11223
11224
11225
# File 'lib/oscal/v1_2_1/all_models.rb', line 11217

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



11227
11228
11229
11230
11231
11232
11233
11234
11235
11236
11237
11238
11239
# File 'lib/oscal/v1_2_1/all_models.rb', line 11227

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