Skip to content

Commit 0d463d1

Browse files
committed
draft
1 parent 96aa18f commit 0d463d1

File tree

4 files changed

+16
-12
lines changed

4 files changed

+16
-12
lines changed

src/main/kotlin/dsl/FsmSpec.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ class FsmSpec(
55
val initialState: String
66
) {
77

8-
fun add(transitionRecipe: TransitionSpec.() -> TransitionSpec): FsmSpec {
8+
fun add(transitionRecipe: TransitionSpec.() -> Unit): FsmSpec {
99
transitions.add(Transition.create(transitionRecipe))
1010
return this
1111
}

src/main/kotlin/dsl/Transition.kt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,8 @@ package dsl
33
data class Transition(val event: Event, val stateFlow: StateFlow) {
44

55
companion object {
6-
fun create(transitionSpec: TransitionSpec.() -> TransitionSpec): Transition {
7-
return TransitionSpec()
8-
.transitionSpec()
6+
fun create(transitionSpec: TransitionSpec.() -> Unit): Transition {
7+
return TransitionSpec().apply(transitionSpec)
98
.build()
109
}
1110
}

src/main/kotlin/dsl/TransitionSpec.kt

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,16 @@ class TransitionSpec(
66
private var stateTo: String = ""
77
) {
88

9-
fun on(event: String): TransitionSpec {
9+
fun on(event: String) {
1010
this.event = event
11-
return this
1211
}
1312

14-
fun from(state: String): TransitionSpec {
13+
fun from(state: String) {
1514
stateFrom = state
16-
return this
1715
}
1816

19-
fun into(state: String): TransitionSpec {
17+
fun into(state: String) {
2018
stateTo = state
21-
return this
2219
}
2320

2421
fun build(): Transition {

src/test/kotlin/dsl/FsmTest.kt

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,16 @@ class FsmTest {
99
fun a() {
1010
// when:
1111
val fsm = Fsm.create(initialState = "locked") {
12-
add { on("coin").from("locked").into("unlocked") }
13-
add { on("pass").from("unlocked").into("locked") }
12+
add {
13+
on("coin")
14+
from("locked")
15+
into("unlocked")
16+
}
17+
add {
18+
on("pass")
19+
from("unlocked")
20+
into("locked")
21+
}
1422
}
1523

1624
// then:

0 commit comments

Comments
 (0)