From 7b59c851e6c7ab9866237f4ae6aa75ed084dca21 Mon Sep 17 00:00:00 2001 From: Rick Brouwer Date: Fri, 6 Sep 2024 07:34:14 +0200 Subject: [PATCH] Add splitWithSeparator func Signed-off-by: Rick Brouwer --- pkg/scalers/scalersconfig/typed_config.go | 34 +++++++++-------------- 1 file changed, 13 insertions(+), 21 deletions(-) diff --git a/pkg/scalers/scalersconfig/typed_config.go b/pkg/scalers/scalersconfig/typed_config.go index a2a9ec91a57..9cba6254225 100644 --- a/pkg/scalers/scalersconfig/typed_config.go +++ b/pkg/scalers/scalersconfig/typed_config.go @@ -62,7 +62,6 @@ const ( // separators for map and slice elements const ( - elemSeparator = "," elemKeyValSeparator = "=" ) @@ -212,11 +211,7 @@ func (sc *ScalerConfig) setValue(field reflect.Value, params Params) error { enumMap[e] = true } missingMap := make(map[string]bool) - separator := elemSeparator - if params.Separator != "" { - separator = params.Separator - } - split := strings.Split(valFromConfig, separator) + split := splitWithSeparator(valFromConfig, params.Separator) for _, s := range split { s := strings.TrimSpace(s) if !enumMap[s] { @@ -232,11 +227,7 @@ func (sc *ScalerConfig) setValue(field reflect.Value, params Params) error { for _, e := range params.ExclusiveSet { exclusiveMap[e] = true } - separator := elemSeparator - if params.Separator != "" { - separator = params.Separator - } - split := strings.Split(valFromConfig, separator) + split := splitWithSeparator(valFromConfig, params.Separator) exclusiveCount := 0 for _, s := range split { s := strings.TrimSpace(s) @@ -288,11 +279,7 @@ func setConfigValueURLParams(params Params, valFromConfig string, field reflect. // setConfigValueMap is a function that sets the value of the map field func setConfigValueMap(params Params, valFromConfig string, field reflect.Value) error { field.Set(reflect.MakeMap(reflect.MapOf(field.Type().Key(), field.Type().Elem()))) - separator := elemSeparator - if params.Separator != "" { - separator = params.Separator - } - split := strings.Split(valFromConfig, separator) + split := splitWithSeparator(valFromConfig, params.Separator) for _, s := range split { s := strings.TrimSpace(s) kv := strings.Split(s, elemKeyValSeparator) @@ -330,6 +317,15 @@ func canRange(valFromConfig, elemRangeSeparator string, field reflect.Value) boo return strings.Contains(valFromConfig, elemRangeSeparator) } +// splitWithSeparator is a function that splits on default or custom separator +func splitWithSeparator(valFromConfig, customSeparator string) []string { + separator := "," + if customSeparator != "" { + separator = customSeparator + } + return strings.Split(valFromConfig, separator) +} + // setConfigValueRange is a function that sets the value of the range field func setConfigValueRange(params Params, valFromConfig string, field reflect.Value) error { rangeSplit := strings.Split(valFromConfig, params.RangeSeparator) @@ -358,11 +354,7 @@ func setConfigValueRange(params Params, valFromConfig string, field reflect.Valu // setConfigValueSlice is a function that sets the value of the slice field func setConfigValueSlice(params Params, valFromConfig string, field reflect.Value) error { elemIfc := reflect.New(field.Type().Elem()).Interface() - separator := elemSeparator - if params.Separator != "" { - separator = params.Separator - } - split := strings.Split(valFromConfig, separator) + split := splitWithSeparator(valFromConfig, params.Separator) for i, s := range split { s := strings.TrimSpace(s) if canRange(s, params.RangeSeparator, field) {