Class: Aws::Templates::Utils::Parametrized::Constraint::Requires

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

Overview

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

Instance Attribute Summary collapse

Instance Method Summary collapse

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

#check_wrapper, #to_proc

Constructor Details

#initialize(dependencies) ⇒ Requires

Returns a new instance of Requires.



157
158
159
160
# File 'lib/aws/templates/utils/parametrized/constraints.rb', line 157

def initialize(dependencies)
  @dependencies = dependencies
  @condition = method(:not_nil?)
end

Instance Attribute Details

#conditionObject (readonly)

Returns the value of attribute condition.



155
156
157
# File 'lib/aws/templates/utils/parametrized/constraints.rb', line 155

def condition
  @condition
end

#dependenciesObject (readonly)

Returns the value of attribute dependencies.



154
155
156
# File 'lib/aws/templates/utils/parametrized/constraints.rb', line 154

def dependencies
  @dependencies
end

Instance Method Details

#if(*params, &blk) ⇒ Object



162
163
164
165
166
167
168
169
170
171
# File 'lib/aws/templates/utils/parametrized/constraints.rb', line 162

def if(*params, &blk)
  if params.empty?
    @condition = blk
  else
    test = params.first
    @condition = ->(v) { v == test }
  end

  self
end