Because _gitlab_urlencode() is a simple string replacement, it is
not very extensible and does not handle more than one replacement.
This commit rewrites _gitlab_urlencode() to use an associative
array to store replacement patterns, allowing the function to be
easily extended. For testing, this commit also adds a pattern to
escape comma (',') characters in URLs.
}
_gitlab_urlencode() {
- local str="$1"
+ local str="$1"
- echo "${str//\//%2F}"
+ declare -A patterns
+ local pattern
+
+ patterns["/"]="%2F"
+ patterns[","]="%2C"
+
+ for pattern in "${!patterns[@]}"; do
+ local replace
+
+ replace="${patterns[$pattern]}"
+ str="${str//"$pattern"/"$replace"}"
+ done
+
+ echo "$str"
+ return 0
}
_gitlab_get() {