Class: Oscal::V1_2_1::AssessmentSubject

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



14179
14180
14181
14182
14183
14184
14185
14186
14187
# File 'lib/oscal/v1_2_1/all_models.rb', line 14179

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



14189
14190
14191
14192
14193
14194
14195
14196
14197
14198
14199
14200
14201
# File 'lib/oscal/v1_2_1/all_models.rb', line 14189

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

#json_from_remarks_remarks(instance, value) ⇒ Object



14203
14204
14205
14206
14207
14208
14209
14210
14211
14212
14213
14214
14215
14216
14217
# File 'lib/oscal/v1_2_1/all_models.rb', line 14203

def json_from_remarks_remarks(instance, value)
  if value.is_a?(Array)
    parsed = value.map { |v| Oscal::V1_2_1::Remarks.of_json(v) }
    instance.instance_variable_set(:@remarks, parsed)
  elsif value.is_a?(Hash)
    if value.empty?
      inst = Oscal::V1_2_1::Remarks.new(content: "")
      instance.instance_variable_set(:@remarks, inst)
    else
      instance.instance_variable_set(:@remarks, Oscal::V1_2_1::Remarks.of_json(value))
    end
  elsif value
    instance.instance_variable_set(:@remarks, Oscal::V1_2_1::Remarks.of_json(value))
  end
end

#json_to_remarks_remarks(instance, doc) ⇒ Object



14219
14220
14221
14222
14223
14224
14225
14226
14227
14228
14229
14230
14231
# File 'lib/oscal/v1_2_1/all_models.rb', line 14219

def json_to_remarks_remarks(instance, doc)
  current = instance.instance_variable_get(:@remarks)
  if current.is_a?(Array)
    doc["remarks"] = current.map { |item| item.respond_to?(:content) ? item.content : item }
  elsif current
    if current.is_a?(Lutaml::Model::Serializable)
      doc["remarks"] = Oscal::V1_2_1::Remarks.as_json(current)
    else
      val = current.respond_to?(:content) ? current.content : current
      doc["remarks"] = val
    end
  end
end

#validate_occurrencesObject



14233
14234
14235
# File 'lib/oscal/v1_2_1/all_models.rb', line 14233

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