class CfnDsl::ExternalParameters

Handles all external parameters

Attributes

parameters[R]

Public Class Methods

current() click to toggle source
# File lib/cfndsl/external_parameters.rb, line 23
def current
  @current || refresh!
end
defaults(params = {}) click to toggle source
# File lib/cfndsl/external_parameters.rb, line 17
def defaults(params = {})
  @defaults ||= {}
  @defaults.merge! params
  @defaults
end
new() click to toggle source
# File lib/cfndsl/external_parameters.rb, line 32
def initialize
  @parameters = self.class.defaults.clone
end
refresh!() click to toggle source
# File lib/cfndsl/external_parameters.rb, line 27
def refresh!
  @current = new
end

Public Instance Methods

[](key)
Alias for: get_param
get_param(key) click to toggle source
# File lib/cfndsl/external_parameters.rb, line 44
def get_param(key)
  parameters[key.to_sym]
end
Also aliased as: []
load_file(fname) click to toggle source
# File lib/cfndsl/external_parameters.rb, line 53
def load_file(fname)
  format = File.extname fname
  case format
  when /ya?ml/
    params = YAML.load_file fname
  when /json/
    params = JSON.parse File.read(fname)
  else
    raise "Unrecognized extension #{format}"
  end
  if CfnDsl.disable_deep_merge?
    params.each { |key, val| set_param(key, val) }
  else
    x = {}
    params.map { |k, v| x[k.to_sym] = v }
    merge_param(x)
  end
end
merge_param(xray) click to toggle source
# File lib/cfndsl/external_parameters.rb, line 40
def merge_param(xray)
  parameters.deep_merge!(xray)
end
set_param(key, val) click to toggle source
# File lib/cfndsl/external_parameters.rb, line 36
def set_param(key, val)
  parameters[key.to_sym] = val
end
to_h() click to toggle source
# File lib/cfndsl/external_parameters.rb, line 49
def to_h
  parameters
end