Class: Oscal::V1_2_1::ParameterSelection

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



9534
9535
9536
9537
9538
9539
9540
9541
9542
9543
9544
9545
9546
9547
9548
9549
# File 'lib/oscal/v1_2_1/all_models.rb', line 9534

def json_soa_from_choice_choice(instance, value)
  items = case value
          when Hash then [value]
          when Array then value
          when String then [value]
          else return
          end
  parsed = items.map do |item|
    case item
    when Hash then Oscal::V1_2_1::ParameterSelectionChoice.of_json(item)
    when String then Oscal::V1_2_1::ParameterSelectionChoice.of_json(item)
    else item
    end
  end
  instance.instance_variable_set(:@choice, parsed)
end

#json_soa_to_choice_choice(instance, doc) ⇒ Object



9551
9552
9553
9554
9555
9556
9557
9558
9559
9560
9561
9562
9563
# File 'lib/oscal/v1_2_1/all_models.rb', line 9551

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