From 1616c7b37d5076b3f3abbf8fe895d796e40c29fa Mon Sep 17 00:00:00 2001 From: JeremyStarTM Date: Sat, 11 May 2024 02:48:12 +0200 Subject: [PATCH] Allow minimum_matches = -1 --- docs/docs/reference/classes/validationsingle.md | 2 +- src/classes/validationsingle.gd | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/docs/docs/reference/classes/validationsingle.md b/docs/docs/reference/classes/validationsingle.md index c7e61d7..b30357b 100644 --- a/docs/docs/reference/classes/validationsingle.md +++ b/docs/docs/reference/classes/validationsingle.md @@ -50,7 +50,7 @@ Applies to **float**. Checks whenether at least one value matches `data`. Applies to all data types. ### *CoreValidationSingle* contains(*Array[String]* values, *int* minimum_matches = *1*) -Ensures that [param data] contains at least <`minimum_matches`> values. \ +Ensures that [param data] contains at least <`minimum_matches`> (or all if set to `-1`) values. \ Applies to **String** & **StringName**. ### *CoreValidationSingle* matches_regex(*String* regex_string) Matches a regular expression against `data`. \ diff --git a/src/classes/validationsingle.gd b/src/classes/validationsingle.gd index 5bc337b..10eb244 100644 --- a/src/classes/validationsingle.gd +++ b/src/classes/validationsingle.gd @@ -144,6 +144,9 @@ func evaluate() -> bool: logger.warn("Can't determine if data contains values as data is not of type String or StringName") continue + # Set 'minimum_matches' to the amount of values if set to '-1' + if rule["minimum_matches"] == -1: rule["minimum_matches"] = rule["values"].size() + var successes: int = 0 for value in rule["values"]: if data.contains(value): @@ -277,7 +280,7 @@ func has_values(values: Array) -> CoreValidationSingle: rules.append({ "type": CoreTypes.ValidationType.HAS_VALUES, "values": values }) return self -## Ensures that [param data] contains at least <[code]minimum_matches[/code]> values.[br] +## Ensures that [param data] contains at least <[code]minimum_matches[/code]> (or all if set to [code]-1[/code]) values.[br] ## Applies to [String] & [StringName]. func contains(values: Array[String], minimum_matches: int = 1) -> CoreValidationSingle: rules.append({ "type": CoreTypes.ValidationType.HAS_VALUES, "values": values, "minimum_matches": minimum_matches })