Class: Glossarist::UrnResolver

Inherits:
Object
  • Object
show all
Defined in:
lib/glossarist/urn_resolver.rb

Constant Summary collapse

ELECTROPEDIA_BASE =
"https://www.electropedia.org/iev/iev.nsf/display?openform&ievref="
ISO_OBP_BASE =
"https://www.iso.org/obp/ui/#"

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeUrnResolver

Returns a new instance of UrnResolver.



8
9
10
11
# File 'lib/glossarist/urn_resolver.rb', line 8

def initialize
  @schemes = {}
  register_default_schemes
end

Class Method Details

.instanceObject



26
27
28
# File 'lib/glossarist/urn_resolver.rb', line 26

def instance
  @instance ||= new
end

.resolve(urn_or_reference) ⇒ Object



30
31
32
# File 'lib/glossarist/urn_resolver.rb', line 30

def resolve(urn_or_reference)
  instance.resolve(urn_or_reference)
end

Instance Method Details

#register_scheme(prefix, &block) ⇒ Object



21
22
23
# File 'lib/glossarist/urn_resolver.rb', line 21

def register_scheme(prefix, &block)
  @schemes[prefix] = block
end

#resolve(urn_or_reference) ⇒ Object



13
14
15
16
17
18
19
# File 'lib/glossarist/urn_resolver.rb', line 13

def resolve(urn_or_reference)
  urn = to_urn(urn_or_reference)
  return nil unless urn

  _, resolver = @schemes.find { |prefix, _| urn.start_with?(prefix) }
  resolver&.call(urn)
end