class Stacker::Resolver

Attributes

parameters[R]
region[R]

Public Class Methods

new(region, parameters) click to toggle source
# File lib/stacker/resolver.rb, line 6
def initialize region, parameters
  @region, @parameters = region, parameters
end

Public Instance Methods

dependencies() click to toggle source
# File lib/stacker/resolver.rb, line 10
def dependencies
  @dependencies ||= parameters.values.flatten.select { |value|
    value.is_a?(Hash)
  }.map { |ref|
    "#{ref.fetch('Stack')}.#{ref.fetch('Output')}"
  }
end
resolved() click to toggle source
# File lib/stacker/resolver.rb, line 18
def resolved
  @resolved ||= Hash[parameters.map do |name, value|
    if value.is_a? Hash
      value = resolve_reference(value)
    elsif value.is_a? Array
      value = value.map do |ref|
        ref.is_a?(Hash) ? resolve_reference(ref) : ref
      end.join ','
    end
    [ name, value ]
  end]
end

Private Instance Methods

resolve_reference(ref) click to toggle source
# File lib/stacker/resolver.rb, line 33
def resolve_reference(ref)
  stack = region.stack ref.fetch('Stack')
  stack.outputs.fetch ref.fetch('Output')
end