Class: HalClient::CurieResolver

Inherits:
Object
  • Object
show all
Defined in:
lib/hal_client/curie_resolver.rb

Overview

Expands CURIEs to fully qualified URLs using a set of curie definitions.

Instance Method Summary collapse

Constructor Details

#initialize(curie_defs) ⇒ CurieResolver

Initialize new CurieResolver

curie_defs - Array of curie definition links (per the HAL spec)



11
12
13
14
# File 'lib/hal_client/curie_resolver.rb', line 11

def initialize(curie_defs)
  curie_defs = [curie_defs].flatten
  @namespaces = interpret curie_defs
end

Instance Method Details

#resolve(curie_or_uri) ⇒ Object

Returns a an expanded version of ‘curie_or_uri` or the input. The input is returned when `curie_or_uri` is not a curie or is a curie whose namespace is not recognized.

curie_or_uri - the (potential) curie to resolve



21
22
23
24
25
26
27
28
29
# File 'lib/hal_client/curie_resolver.rb', line 21

def resolve(curie_or_uri)
  ns, short_name = split_curie curie_or_uri

  if ns && (namespaces.has_key? ns)
    namespaces[ns].expand(rel: short_name).to_s
  else
    curie_or_uri
  end
end