remove cmd prefix from commands by delegate
This commit is contained in:
parent
ae3af68dab
commit
3a56e67c24
@ -22,13 +22,22 @@ inline fun <reified A, reified R> command(overrideName: String? = null): Command
|
|||||||
class CommandDelegate<A, R>(
|
class CommandDelegate<A, R>(
|
||||||
private val argsSerializer: KSerializer<A>,
|
private val argsSerializer: KSerializer<A>,
|
||||||
private val resultSerializer: KSerializer<R>,
|
private val resultSerializer: KSerializer<R>,
|
||||||
private val overrideName: String? = null
|
private val overrideName: String? = null,
|
||||||
) {
|
) {
|
||||||
|
private var name: String = ""
|
||||||
operator fun getValue(nothing: Nothing?, property: KProperty<*>): Command<A, R> {
|
operator fun getValue(nothing: Nothing?, property: KProperty<*>): Command<A, R> {
|
||||||
|
if (name.isEmpty()) {
|
||||||
|
name = overrideName ?: removeCmd(property.name)
|
||||||
|
}
|
||||||
return Command(
|
return Command(
|
||||||
overrideName ?: property.name,
|
name,
|
||||||
argsSerializer,
|
argsSerializer,
|
||||||
resultSerializer
|
resultSerializer
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun removeCmd(name: String) =
|
||||||
|
if (name.startsWith("cmd"))
|
||||||
|
name.substring(3)
|
||||||
|
else name
|
||||||
|
@ -17,4 +17,10 @@ class ToolsTest {
|
|||||||
c[2] = 11u
|
c[2] = 11u
|
||||||
assertFalse { isValidContrail(c) }
|
assertFalse { isValidContrail(c) }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// @Test
|
||||||
|
// fun testRemoceCmd() {
|
||||||
|
// assertEquals("lalala", removeCmd("lalala"))
|
||||||
|
// assertEquals("lalala", removeCmd("cmdlalala"))
|
||||||
|
// }
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user