diff --git a/src/classes/validationsingle.gd b/src/classes/validationsingle.gd index dd773f2..bc2db1b 100644 --- a/src/classes/validationsingle.gd +++ b/src/classes/validationsingle.gd @@ -1,3 +1,21 @@ +# CORE FRAMEWORK SOURCE FILE +# Copyright (c) 2024 The StarOpenSource Project & Contributors +# Licensed under the GNU Affero General Public License v3 +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +## Validates some data against a set of rules. extends Node class_name CoreValidationSingle @@ -112,26 +130,13 @@ func evaluate() -> bool: # Perform check if data > rule["maximum"]: failures.append(core.stringify_variables("Data is smaller than minimum %type% value %expected%", { "type": rule["matched_against"], "expected": rule["maximum"] })) CoreTypes.ValidationType.HAS_VALUES: - # Used later var success: bool = false - if rule["all_required"]: - # Invert usage - success = true - - for value in rule["values"]: - if data != value: - # One value did not match - success = false - - if !success: failures.append("Data did not match all provided values") - else: - for value in rule["values"]: - if data == value: - # One value did match - success = true - - if !success: failures.append("Data did not match a single provided value") + for value in rule["values"]: + if data == value: + success = true + + if !success: failures.append("Data did not match a single provided value") CoreTypes.ValidationType.CONTAINS: # If not a String or StringName, skip if typeof(data) != Variant.Type.TYPE_STRING or typeof(data) != Variant.Type.TYPE_STRING_NAME: @@ -250,8 +255,8 @@ func has_maximum_value_float(maximum: float) -> CoreValidationSingle: return self # +++ values +++ -func has_values(values: Array, all_required: bool) -> CoreValidationSingle: - rules.append({ "type": CoreTypes.ValidationType.HAS_VALUES, "values": values, "all_required": all_required }) +func has_values(values: Array) -> CoreValidationSingle: + rules.append({ "type": CoreTypes.ValidationType.HAS_VALUES, "values": values }) return self func contains(values: Array[String], minimum_matches: int = 1) -> CoreValidationSingle: