Sha256: 24c323dc4cf9e81c27574e4190c7ef8b9a796277e182020a9a2c4bed08f9b372
Contents?: true
Size: 1.6 KB
Versions: 1
Compression:
Stored size: 1.6 KB
Contents
# Note: These are experimental helpers. Their interface may change or removed entirely. module Lono::Template::Dsl::Builder::Helpers module ParamHelper # Decorate the parameter method to make smarter. def parameter(*definition) name, second, _ = definition # medium form if definition.size == 2 && second.is_a?(Hash) && second[:Conditional] # Creates: # # 1. parameter # 2. condition - used to make it optional # options = normalize_conditional_parameter_options(second) super(name, options) condition("Has#{name}", not!(equals(ref(name), ""))) else super end end # use long name to minimize method name collision def normalize_conditional_parameter_options(options) if options.is_a?(Hash) options.delete(:Conditional) options = if options.empty? "" else defaults = { Default: "" } options.reverse_merge(defaults) end end options end # Creates: # # 1. parameter # 2. condition - used to make it optional # def conditional_parameter(name, options={}) puts "DEPRECATED: Will be removed. Instead use: parameter(name, Conditional: true)" options = normalize_conditional_parameter_options(options) parameter(name, options) condition("Has#{name}", not!(equals(ref(name), ""))) end def optional_ref(name) puts "DEPRECATED: Will be removed. Instead use: ref(name, Conditional: true)" if!("Has#{name}", ref(name), ref("AWS::NoValue")) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
lono-6.1.1 | lib/lono/template/dsl/builder/helpers/param_helper.rb |