2022-02-08 12:48:49 +00:00
|
|
|
package dev.inmo.jsuikit.utils
|
|
|
|
|
|
|
|
class AttributeBuilder (
|
|
|
|
val attributeName: String,
|
2022-04-15 07:06:14 +00:00
|
|
|
val parametersBuilder: ParametersBuilder
|
2022-02-08 12:48:49 +00:00
|
|
|
) {
|
2022-04-15 07:06:14 +00:00
|
|
|
fun build(): Pair<String, String> = parametersBuilder.build().run {
|
|
|
|
Pair(
|
|
|
|
attributeName, toList().joinToString(";") {
|
|
|
|
"${it.first}${it.second ?.let { ": $it" } ?: ""}"
|
|
|
|
}
|
|
|
|
)
|
2022-02-08 19:26:33 +00:00
|
|
|
}
|
2022-02-08 12:48:49 +00:00
|
|
|
}
|
|
|
|
|
2022-04-15 07:06:14 +00:00
|
|
|
inline fun buildAttribute(
|
|
|
|
attributeName: String,
|
|
|
|
skipNullValues: Boolean = true,
|
|
|
|
block: ParametersBuilder.() -> Unit
|
|
|
|
) = AttributeBuilder(
|
2022-02-08 19:26:33 +00:00
|
|
|
attributeName,
|
2022-04-15 07:06:14 +00:00
|
|
|
ParametersBuilder(skipNullValues)
|
|
|
|
).apply {
|
|
|
|
parametersBuilder.block()
|
|
|
|
}.build()
|