class Moonshot::StackParameter

Attributes

default[R]
description[R]
name[R]

Public Class Methods

new(name, default: nil, use_previous: false, description: '') click to toggle source
# File lib/moonshot/stack_parameter.rb, line 7
def initialize(name, default: nil, use_previous: false, description: '')
  @default      = default
  @description  = description
  @name         = name
  @use_previous = use_previous
  @value        = nil
end

Public Instance Methods

default?() click to toggle source

Does this Stack Parameter have a default value that will be used?

# File lib/moonshot/stack_parameter.rb, line 16
def default?
  !@default.nil?
end
set(value) click to toggle source
# File lib/moonshot/stack_parameter.rb, line 29
def set(value)
  @value = value
  @use_previous = false
end
set?() click to toggle source

Has the user provided a value for this parameter?

# File lib/moonshot/stack_parameter.rb, line 25
def set?
  !@value.nil?
end
to_cf() click to toggle source
# File lib/moonshot/stack_parameter.rb, line 52
def to_cf
  result = { parameter_key: @name }

  if use_previous?
    result[:use_previous_value] = true
  else
    result[:parameter_value] = value
  end

  result
end
use_previous!(value) click to toggle source
# File lib/moonshot/stack_parameter.rb, line 34
def use_previous!(value)
  if @value
    raise "Value already set for StackParameter #{@name}, cannot use previous value!"
  end

  # Make the current value available to plugins.
  @value = value
  @use_previous = true
end
use_previous?() click to toggle source
# File lib/moonshot/stack_parameter.rb, line 20
def use_previous?
  @use_previous ? true : false
end
value() click to toggle source
# File lib/moonshot/stack_parameter.rb, line 44
def value
  unless @value || default?
    raise "No value set and no default for StackParameter #{@name}!"
  end

  @value || default
end