class Wire::ValidateCommand
Validate Command reads yaml, parses model elements and runs a number of consistency checks
Attributes
errors[RW]
array of errors
validations[RW]
array of validations
Public Class Methods
new()
click to toggle source
initializes an empty error list
# File lib/wire/commands/validate_command.rb, line 19 def initialize @errors = [] @validations = [NetworksValidation, AppGroupValidation] end
Public Instance Methods
run_on_project()
click to toggle source
runs validation on given project returns
> list of errors
¶ ↑
# File lib/wire/commands/validate_command.rb, line 27 def run_on_project @errors = [] # run validations against it # TODO: Move validation classes to class level definition @validations.each do |val_clazz| (@errors << run_validation(@project, val_clazz)).flatten! end if @errors.size == 0 outputs 'VALIDATE', 'OK, model is consistent.', :ok else outputs 'VALIDATE', 'ERROR, detected inconsistencies:', :error @errors.each do |val_error| outputs 'VALIDATE', val_error.to_s, :error end end @errors end
run_validation(project, validation_class)
click to toggle source
run a validation of given validation_class
against the model
params:
project
-
project model object, to validate
validation_class
-
class object of validation, i.e.
NetworksValidation
returns: list of errors from validation object
# File lib/wire/commands/validate_command.rb, line 57 def run_validation(project, validation_class) $log.debug "Running validation class #{validation_class}" val_object = validation_class.new(project) val_object.run_validations val_object.errors end