class Lono::Template::Strategy::Dsl::Builder::Section::Output

Public Instance Methods

standarize(definition) click to toggle source

Value is the only required property: amzn.to/2xbhmk3

# File lib/lono/template/strategy/dsl/builder/section/output.rb, line 12
def standarize(definition)
  first, second, _ = definition
  if definition.size == 1 && first.is_a?(Hash) # long form
    first # pass through
  elsif definition.size == 2 && second.is_a?(Hash) # medium form
    if second.key?(:value) || second.key?("Value")
      logical_id, properties = first, second
    else
      logical_id = first
      properties = {Value: second}
    end
    { logical_id => properties }
  elsif definition.size == 2 && (second.is_a?(String) || second.nil?) # short form
    logical_id = first
    properties = second.is_a?(String) ? { Value: second } : {}
    { logical_id => properties }
  elsif definition.size == 1
    logical_id = first.to_s
    properties = { Value: ref(logical_id) }
    { logical_id => properties }
  else # I dont know what form
    raise "Invalid form provided. definition #{definition.inspect}"
  end
end
template() click to toggle source
# File lib/lono/template/strategy/dsl/builder/section/output.rb, line 7
def template
  camelize(standarize(@definition))
end