Class: Aws::Templates::Utils::Parametrized::Constraint::DependsOnValue

Inherits:
Aws::Templates::Utils::Parametrized::Constraint show all
Defined in:
lib/aws/templates/utils/parametrized/constraint/depends_on_value.rb

Overview

Switch-like variant check

Recursive check implementing switch-based semantics for defining checks need to be performed depending on parameter’s value.

Example

class Piece
  include Aws::Templates::Utils::Parametrized
  parameter :param2
  parameter :param1,
    :constraint => depends_on_value(
      1 => lambda { |v| raise 'Too big' if param2 > 3 },
      2 => lambda { |v| raise 'Too small' if param2 < 2 }
    )
end

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from Aws::Templates::Utils::Parametrized::Constraint

#check_wrapper, #if, #pre_condition, #to_proc

Constructor Details

#initialize(selector) ⇒ DependsOnValue

Returns a new instance of DependsOnValue.



39
40
41
42
# File 'lib/aws/templates/utils/parametrized/constraint/depends_on_value.rb', line 39

def initialize(selector)
  @selector = selector
  self.if(Parametrized.any)
end

Instance Attribute Details

#selectorObject (readonly)

Selector hash



37
38
39
# File 'lib/aws/templates/utils/parametrized/constraint/depends_on_value.rb', line 37

def selector
  @selector
end