class Lutaml::Hal::Resource
def create_link_set_class
The "links" class holds the `_links` object which contains
def create_link_set_class parent_klass_name = name.split('::')[0..-2].join('::') child_klass_name = "#{name.split('::').last}LinkSet" klass_name = [parent_klass_name, child_klass_name].join('::') Hal.debug_log "Creating link set class #{klass_name}" # Check if the LinkSet class is already defined, return if so return Object.const_get(klass_name) if Object.const_defined?(klass_name) # Define the LinkSet class dynamically as a normal Lutaml::Model class # since it is not a Resource. klass = Class.new(Lutaml::Hal::LinkSet) parent_klass = !parent_klass_name.empty? ? Object.const_get(parent_klass_name) : Object parent_klass.const_set(child_klass_name, klass) # Define the LinkSet class with mapping inside the current class class_eval do attribute :links, klass key_value do map '_links', to: :links end end end