class Bosh::Template::EvaluationLink

Attributes

instances[R]
properties[R]

Public Class Methods

new( instances, properties, group_name, group_type, default_network, deployment_name, root_domain, dns_encoder, use_short_dns ) click to toggle source
# File lib/bosh/template/evaluation_link.rb, line 11
def initialize(
  instances,
  properties,
  group_name,
  group_type,
  default_network,
  deployment_name,
  root_domain,
  dns_encoder,
  use_short_dns
)
  @instances = instances
  @properties = properties
  @group_name = group_name
  @group_type = group_type
  @default_network = default_network
  @deployment_name = deployment_name
  @root_domain = root_domain
  @dns_encoder = dns_encoder
  @use_short_dns = use_short_dns
end

Public Instance Methods

address(criteria = {}) click to toggle source
# File lib/bosh/template/evaluation_link.rb, line 59
def address(criteria = {})
  raise NotImplementedError, 'link.address requires bosh director' if @dns_encoder.nil?

  full_criteria = criteria.merge(
    group_name: @group_name,
    group_type: @group_type,
    default_network: @default_network,
    deployment_name: @deployment_name,
    root_domain: @root_domain,
  )
  @dns_encoder.encode_query(full_criteria, @use_short_dns)
end
if_p(*names) { |*values| ... } click to toggle source
# File lib/bosh/template/evaluation_link.rb, line 46
def if_p(*names)
  values = names.map do |name|
    value = lookup_property(@properties, name)
    return Bosh::Template::EvaluationContext::ActiveElseBlock.new(self) if value.nil?

    value
  end

  yield(*values)

  Bosh::Template::EvaluationContext::InactiveElseBlock.new
end
p(*args) click to toggle source
# File lib/bosh/template/evaluation_link.rb, line 33
def p(*args)
  names = Array(args[0])

  names.each do |name|
    result = lookup_property(@properties, name)
    return result unless result.nil?
  end

  return args[1] if args.length == 2

  raise UnknownProperty, names
end