class Aws::Templates::Utils::Parametrized::Constraint::Requires

Check presence of parameters if the condition is met

Requires presence of the methods passed as dependencies in the current scope with non-nil returning values. Default condition for the value is not to be nil. The condition can be either a block or a value.

Example

class Piece
  include Aws::Templates::Utils::Parametrized
  parameter :param2
  parameter :param1, :constraint => requires(:param2)
end

i = Piece.new(:param2 => 1)
i.param1 # => nil
i = Piece.new(:param1 => 1)
i.param1 # raise ParameterValueInvalid
i = Piece.new(:param1 => 2, :param2 => 1)
i.param1 # => 2

Attributes

dependencies[R]

Public Class Methods

new(dependencies) click to toggle source
# File lib/aws/templates/utils/parametrized/constraint/requires.rb, line 33
def initialize(dependencies)
  @dependencies = dependencies
end

Protected Instance Methods

check(parameter, value, instance) click to toggle source
# File lib/aws/templates/utils/parametrized/constraint/requires.rb, line 39
def check(parameter, value, instance)
  dependencies.each do |pname|
    next unless instance.send(pname).nil?

    raise(
      "#{pname} is required when #{parameter.name} value " \
      "is set to #{value.inspect}"
    )
  end
end