Class: Etna::Clients::Magma::AttributeActionsValidator

Inherits:
ValidatorBase
  • Object
show all
Defined in:
lib/etna/clients/magma/workflows/json_validators.rb

Instance Attribute Summary collapse

Attributes inherited from ValidatorBase

#errors

Instance Method Summary collapse

Methods inherited from ValidatorBase

#check_in_set, #check_key, #check_key_empty, #check_valid_name_with_numbers, #format_errors, #model_exists_in_project?, #name_regex_no_numbers, #name_regex_with_numbers, #nil_or_empty?, #valid?, #validate!

Constructor Details

#initialize(actions, project_models) ⇒ AttributeActionsValidator

Returns a new instance of AttributeActionsValidator.



418
419
420
421
422
# File 'lib/etna/clients/magma/workflows/json_validators.rb', line 418

def initialize(actions, project_models)
  super()
  @actions = actions
  @project_models = project_models
end

Instance Attribute Details

#actionsObject (readonly)

Returns the value of attribute actions.



416
417
418
# File 'lib/etna/clients/magma/workflows/json_validators.rb', line 416

def actions
  @actions
end

#project_modelsObject (readonly)

Returns the value of attribute project_models.



416
417
418
# File 'lib/etna/clients/magma/workflows/json_validators.rb', line 416

def project_models
  @project_models
end

Instance Method Details

#camelize(action_name) ⇒ Object



442
443
444
# File 'lib/etna/clients/magma/workflows/json_validators.rb', line 442

def camelize(action_name)
  action_name.split('_').map(&:capitalize).join('')
end

#clazz_name(action_name) ⇒ Object



446
447
448
# File 'lib/etna/clients/magma/workflows/json_validators.rb', line 446

def clazz_name(action_name)
  "Etna::Clients::Magma::#{camelize(action_name)}ActionValidator"
end

#project_model_namesObject



424
425
426
# File 'lib/etna/clients/magma/workflows/json_validators.rb', line 424

def project_model_names
  project_models.all.map(&:template).map(&:name)
end

#validateObject



428
429
430
# File 'lib/etna/clients/magma/workflows/json_validators.rb', line 428

def validate
  validate_actions
end

#validate_actionsObject



432
433
434
435
436
437
438
439
440
# File 'lib/etna/clients/magma/workflows/json_validators.rb', line 432

def validate_actions
  actions.each do |action|
    clazz = Object.const_get(clazz_name(action.action_name))
    validator = clazz.new(action, project_models)
    validator.validate

    @errors += validator.errors unless validator.valid?
  end
end