module Aws::Templates::Utils::Parametrized

'parameter' DSL to specify artifact parameters checks

The module provides the basic class-level methods to define so-called parameters. A parameter is a reader-like method of value extraction, constraints checking and transformation. Essentially, it's domain-specific extended implementation of attr_reader.

Public Instance Methods

dependencies() click to toggle source

Lazy initializer

# File lib/aws/templates/utils/parametrized.rb, line 182
def dependencies
  if @dependencies.nil?
    @dependencies = ::Set.new
    depends_on(parameter_names.map { |name| send(name) })
  end

  @dependencies
end
guarded_get(instance, parameter_object) click to toggle source
# File lib/aws/templates/utils/parametrized.rb, line 176
def guarded_get(instance, parameter_object)
  guarded_for(instance, parameter_object) { parameter_object.get(self) }
end
parameter_names() click to toggle source

Parameter names list

Instance-level alias for list_all_parameter_names

# File lib/aws/templates/utils/parametrized.rb, line 195
def parameter_names
  self.class.list_all_parameter_names
end
parameters_map() click to toggle source

Evaluate all parameters

Return parameters as a hash

# File lib/aws/templates/utils/parametrized.rb, line 211
def parameters_map
  parameter_names.each_with_object({}) { |name, obj| obj[name] = send(name) }
end
to_recursive() click to toggle source

Transforms parametrized into an instance of recursive concept

# File lib/aws/templates/utils/parametrized.rb, line 217
def to_recursive
  RecursiveAdapter.new(self)
end
unknown() click to toggle source

Class-level mixins

It's a DSL extension to declaratively define parameters.

# File lib/aws/templates/utils/parametrized.rb, line 228
class_scope do
  ##
  # List all defined parameter names
  #
  # The list includes both the class parameters and all ancestor
  # parameters.
  def list_all_parameter_names
validate() click to toggle source

Validate all parameters

Performs calculation of all specified parameters to check options validity

# File lib/aws/templates/utils/parametrized.rb, line 203
def validate
  parameter_names.each { |name| send(name) }
end