Class: Taketo::ServerResolver

Inherits:
NodeResolver show all
Defined in:
lib/taketo/server_resolver.rb

Instance Method Summary collapse

Methods inherited from NodeResolver

#disambiguate, #initialize

Constructor Details

This class inherits a constructor from Taketo::NodeResolver

Instance Method Details

#nodesObject Also known as: servers



7
8
9
# File 'lib/taketo/server_resolver.rb', line 7

def nodes
  super.select { |n| Taketo::Constructs::Server === n }
end

#resolveObject



12
13
14
# File 'lib/taketo/server_resolver.rb', line 12

def resolve
  resolve_by_global_alias || resolve_by_path
end

#resolve_by_global_aliasObject



16
17
18
19
20
# File 'lib/taketo/server_resolver.rb', line 16

def resolve_by_global_alias
  unless @path.to_s.empty?
    servers.select(&:global_alias).detect { |s| s.global_alias == @path.to_s }
  end
end

#resolve_by_pathObject



22
23
24
25
# File 'lib/taketo/server_resolver.rb', line 22

def resolve_by_path
  matching_servers = servers.select { |s| s.path =~ /^#@path/ }
  disambiguate(matching_servers)
end