Class: Lutaml::Hal::Link

Inherits:
Model::Serializable
  • Object
show all
Defined in:
lib/lutaml/hal/link.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#_global_register_idObject

Returns the value of attribute _global_register_id.



8
9
10
# File 'lib/lutaml/hal/link.rb', line 8

def _global_register_id
  @_global_register_id
end

#parent_resourceObject

Returns the value of attribute parent_resource.



8
9
10
# File 'lib/lutaml/hal/link.rb', line 8

def parent_resource
  @parent_resource
end

Instance Method Details

#realize(register: nil, parent_resource: nil, force_refresh: false) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/lutaml/hal/link.rb', line 19

def realize(register: nil, parent_resource: nil, force_refresh: false)
  effective_parent = parent_resource || @parent_resource

  register = find_register(register)
  raise "No register provided for link resolution (class: #{self.class}, href: #{href})" if register.nil?

  if !force_refresh && effective_parent && (embedded_content = check_embedded_content(effective_parent, register))
    register.cache_manager&.set(href, nil, embedded_content)
    return embedded_content
  end

  register.cache_manager&.invalidate(href) if force_refresh

  Hal.debug_log "Resolving link href: #{href} using register"
  register.resolve_and_cast(self, href)
end