Class: Lutaml::Model::KeyValueTransform
- Defined in:
- lib/lutaml/model/transform/key_value_transform.rb
Direct Known Subclasses
HashAdapter::Transform, Json::Transform, Jsonl::Transform, Toml::Transform, Yaml::Transform, Yamls::Transform
Instance Attribute Summary
Attributes inherited from Transform
#attributes, #context, #register
Instance Method Summary collapse
- #data_to_model(data, format, options = {}) ⇒ Object
- #model_to_data(instance, format, options = {}) ⇒ Object
Methods inherited from Transform
data_to_model, #initialize, #model_class, model_to_data
Constructor Details
This class inherits a constructor from Lutaml::Model::Transform
Instance Method Details
#data_to_model(data, format, options = {}) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/lutaml/model/transform/key_value_transform.rb', line 4 def data_to_model(data, format, = {}) instance = if model_class.include?(Lutaml::Model::Serialize) model_class.new({}, register: register) else model_class.new(register) end mappings = extract_mappings(, format) Utils.add_if_present(, :key_mappings, mappings.key_mappings) Utils.add_if_present(, :value_mappings, mappings.value_mappings) mappings.mappings.each do |rule| process_mapping_rule(data, instance, format, rule, ) end instance end |
#model_to_data(instance, format, options = {}) ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/lutaml/model/transform/key_value_transform.rb', line 22 def model_to_data(instance, format, = {}) mappings = extract_mappings(, format) hash = {} mappings.mappings.each do |rule| next unless valid_mapping?(rule, ) process_rule!(instance, rule, hash, format, mappings, ) end hash.keys == [""] ? hash[""] : hash end |