class Viperaptor::ModuleValidator
Provides methods for validating module
Constants
- TARGET_TYPE_PROJECT
- TARGET_TYPE_TEST
Public Instance Methods
validate(code_module)
click to toggle source
Method validates module @param code_module [CodeModule] The instance of CodeModule
@return [Void]
# File lib/viperaptor/helpers/module_validator.rb, line 12 def validate(code_module) mandatory_fields = [COMPANY_KEY, PROJECT_NAME_KEY, XCODEPROJ_PATH_KEY] mandatory_fields.each do |field| unless code_module.instance_variable_get("@#{field}") puts "Module is broken! *#{field}* field cannot be empty, because it is mandatory.".red exit end end project_failure_fields = all_project_failure_fields(code_module) test_failure_fields = all_test_failure_fields(code_module) failure_fields = project_failure_fields + test_failure_fields if failure_fields.count > 0 puts "Module is broken! *#{failure_fields}* field cannot be empty, because it is mandatory.".red exit end end
Private Instance Methods
all_nil_mandatory_fields_for_target_type(target_type, code_module)
click to toggle source
Method which return all failure fields for target_type @param target_type [String] “project” or “test” @param code_module [CodeModule] The instance of CodeModule
@return [Array]
# File lib/viperaptor/helpers/module_validator.rb, line 61 def all_nil_mandatory_fields_for_target_type(target_type, code_module) fields = [] variable_name = "#{target_type}_targets" unless code_module.instance_variable_get("@#{variable_name}") target_const_value = Viperaptor.const_get(target_type.upcase + '_TARGET_KEY') targets_const_value = Viperaptor.const_get(target_type.upcase + '_TARGETS_KEY') fields.push(target_const_value) fields.push(targets_const_value) end variable_name = "#{target_type}_file_path" file_path_const_value = Viperaptor.const_get(target_type.upcase + '_FILE_PATH_KEY') fields.push(file_path_const_value) unless code_module.instance_variable_get("@#{variable_name}") variable_name = "#{target_type}_group_path" group_path_const_value = Viperaptor.const_get(target_type.upcase + '_GROUP_PATH_KEY') fields.push(group_path_const_value) unless code_module.instance_variable_get("@#{variable_name}") fields end
all_project_failure_fields(code_module)
click to toggle source
Method which return all project failure fields @param code_module [CodeModule] The instance of CodeModule
@return [Array]
# File lib/viperaptor/helpers/module_validator.rb, line 40 def all_project_failure_fields(code_module) return [] if !code_module.project_targets && !code_module.project_file_path && !code_module.project_group_path all_nil_mandatory_fields_for_target_type(TARGET_TYPE_PROJECT, code_module) end
all_test_failure_fields(code_module)
click to toggle source
Method which return all test failure fields @param code_module [CodeModule] The instance of CodeModule
@return [Array]
# File lib/viperaptor/helpers/module_validator.rb, line 50 def all_test_failure_fields(code_module) return [] if !code_module.test_targets && !code_module.test_file_path && !code_module.test_group_path all_nil_mandatory_fields_for_target_type(TARGET_TYPE_TEST, code_module) end