Sha256: cf696307b40c70f31854eb4dc945345b82499b73873a5e3bebb5f37bd2e51ff4

Contents?: true

Size: 892 Bytes

Versions: 2

Compression:

Stored size: 892 Bytes

Contents

# Note: These are experimental helpers. Their interface may change or removed entirely.
module Lono::Template::Dsl::Builder::Helpers
  module ParamHelper
    # Creates:
    #
    #    1. parameter
    #    2. condition - used to make it optional
    #
    def conditional_parameter(name, options={})
      options = normalize_conditional_parameter_options(options)
      parameter(name, options)
      condition("Has#{name}", not!(equals(ref(name), "")))
    end

    # use long name to minimize method name collision
    def normalize_conditional_parameter_options(options)
      if options.is_a?(Hash)
        options = if options.empty?
          ""
        else
          defaults = { Default: "" }
          options.reverse_merge(defaults)
        end
      end

      options
    end

    def optional_ref(name)
      if!("Has#{name}", ref(name), ref("AWS::NoValue"))
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
lono-6.0.1 lib/lono/template/dsl/builder/helpers/param_helper.rb
lono-6.0.0 lib/lono/template/dsl/builder/helpers/param_helper.rb