Class: Ace::Support::Nav::Molecules::ResourceResolver

Inherits:
Object
  • Object
show all
Defined in:
lib/ace/support/nav/molecules/resource_resolver.rb

Overview

Resolves resource URIs to file paths

Instance Method Summary collapse

Constructor Details

#initialize(handbook_scanner: nil, uri_parser: nil, protocol_scanner: nil) ⇒ ResourceResolver

Returns a new instance of ResourceResolver.



14
15
16
17
18
# File 'lib/ace/support/nav/molecules/resource_resolver.rb', line 14

def initialize(handbook_scanner: nil, uri_parser: nil, protocol_scanner: nil)
  # Support legacy handbook_scanner parameter
  @protocol_scanner = protocol_scanner || handbook_scanner || ProtocolScanner.new
  @uri_parser = uri_parser || Atoms::UriParser.new
end

Instance Method Details

#resolve(uri_string) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
# File 'lib/ace/support/nav/molecules/resource_resolver.rb', line 20

def resolve(uri_string)
  # Parse the URI
  uri = Models::ResourceUri.new(uri_string)
  return nil unless uri.valid?

  if uri.source_specific?
    resolve_source_specific(uri)
  else
    resolve_cascade(uri)
  end
end

#resolve_pattern(uri_string) ⇒ Object



32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/ace/support/nav/molecules/resource_resolver.rb', line 32

def resolve_pattern(uri_string)
  # Parse the URI
  uri = Models::ResourceUri.new(uri_string)
  return [] unless uri.valid?

  pattern = uri.path || "*"

  if uri.source_specific?
    resolve_pattern_source_specific(uri, pattern)
  else
    resolve_pattern_cascade(uri, pattern)
  end
end