class Aws::Templates::Utils::Parametrized::Constraint::DependsOnValue
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
Attributes
selector[R]
Selector hash
Public Class Methods
new(selector)
click to toggle source
# File lib/aws/templates/utils/parametrized/constraint/depends_on_value.rb, line 39 def initialize(selector) @selector = selector self.if(Parametrized.any) end
Protected Instance Methods
check(parameter, value, instance)
click to toggle source
# File lib/aws/templates/utils/parametrized/constraint/depends_on_value.rb, line 46 def check(parameter, value, instance) return unless selector.key?(value) instance.instance_exec( parameter, value, &selector[value] ) end