Class: Hashira::Analysis::Resolver

Inherits:
Object
  • Object
show all
Defined in:
lib/hashira/analysis/resolver.rb

Instance Method Summary collapse

Constructor Details

#initialize(registry, catalog, placement) ⇒ Resolver

Returns a new instance of Resolver.



4
5
6
7
8
# File 'lib/hashira/analysis/resolver.rb', line 4

def initialize(registry, catalog, placement)
  @registry = registry
  @catalog = catalog
  @placement = placement
end

Instance Method Details

#pinpoint(segments) ⇒ Object



16
17
18
19
# File 'lib/hashira/analysis/resolver.rb', line 16

def pinpoint(segments)
  return if @placement.skip?(segments)
  qualify(descend([], segments))
end

#resolve(segments, nesting) ⇒ Object



10
11
12
13
14
# File 'lib/hashira/analysis/resolver.rb', line 10

def resolve(segments, nesting)
  return if @placement.skip?(segments)
  scoped = nesting.reverse_each.filter_map { descend(it, segments) }.first
  scoped ? qualify(scoped) : @registry.package(@catalog.strip(segments))
end