class Lutaml::Hal::Link
HAL Link representation with realization capability
def find_register(explicit_register)
def find_register(explicit_register) return explicit_register if explicit_register register_id = instance_variable_get("@#{Hal::REGISTER_ID_ATTR_NAME}") return nil if register_id.nil? register = Lutaml::Hal::GlobalRegister.instance.get(register_id) if register.nil? raise 'GlobalRegister in use but unable to find the register. '\ 'Please provide a register to the `#realize` method to resolve the link' end register end
def realize(register: nil)
If the Link does not have a register, a register needs to be provided explicitly
This method will use the global register according to the source of the Link object.
Fetch the actual resource this link points to.
def realize(register: nil) register = find_register(register) raise "No register provided for link resolution (class: #{self.class}, href: #{href})" if register.nil? Hal.debug_log "Resolving link href: #{href} using register" register.resolve_and_cast(self, href) end