Class: Kontena::Cli::Stacks::YAML::Validations::CustomValidators::AffinitiesValidator

Inherits:
HashValidator::Validator::Base
  • Object
show all
Defined in:
lib/kontena/cli/stacks/yaml/custom_validators/affinities_validator.rb

Instance Method Summary collapse

Constructor Details

#initializeAffinitiesValidator

Returns a new instance of AffinitiesValidator.



3
4
5
# File 'lib/kontena/cli/stacks/yaml/custom_validators/affinities_validator.rb', line 3

def initialize
  super('stacks_valid_affinities')
end

Instance Method Details

#validate(key, value, validations, errors) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
# File 'lib/kontena/cli/stacks/yaml/custom_validators/affinities_validator.rb', line 7

def validate(key, value, validations, errors)
  unless value.is_a?(Array)
    errors[key] = 'affinity must be array'
    return
  end

  invalid_formats = value.find_all { |a| !a.match(/(?<=\!|\=)=/) }
  if invalid_formats.count > 0
    errors[key] = "affinity contains invalid formats: #{invalid_formats.join(', ')}"
  end
end