Skip to content

Commit 03ea31b

Browse files
committedSep 11, 2021
Use optionals instead of lateinit
1 parent e593cd1 commit 03ea31b

File tree

2 files changed

+21
-13
lines changed

2 files changed

+21
-13
lines changed
 

‎danger-kotlin-library/src/main/kotlin/systems/danger/kotlin/MainDangerRunner.kt

+1-2
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ import java.util.concurrent.atomic.AtomicReference
1919
* @param jsonOutputPath the output json file path used to publish the danger results on your Pull Request
2020
*/
2121
internal class MainDangerRunner(jsonInputFilePath: FilePath, jsonOutputPath: FilePath) : DangerContext {
22-
2322
private val jsonOutputFile: File = File(jsonOutputPath)
2423

2524
val danger: DangerDSL = JsonParser.decodeJson<DSL>(jsonInputFilePath).danger
@@ -86,7 +85,7 @@ internal class MainDangerRunner(jsonInputFilePath: FilePath, jsonOutputPath: Fil
8685
}
8786

8887
override fun suggest(code: String, file: FilePath, line: Int) {
89-
if (dangerRunner.danger.onGitHub) {
88+
if (runnerInstance.danger.onGitHub) {
9089
val message = "```suggestion\n $code \n```"
9190
markdown(Violation(message, file, line))
9291
} else {

‎danger-kotlin-library/src/main/kotlin/systems/danger/kotlin/MainScript.kt

+20-11
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,16 @@ package systems.danger.kotlin
33
import systems.danger.kotlin.models.danger.DangerDSL
44
import systems.danger.kotlin.models.git.FilePath
55

6-
internal lateinit var dangerRunner: MainDangerRunner
6+
internal var dangerRunner: MainDangerRunner? = null
7+
8+
internal val runnerInstance: MainDangerRunner
9+
get() {
10+
if(dangerRunner != null) {
11+
return dangerRunner!!
12+
} else {
13+
throw IllegalArgumentException("Danger must be initialised before accessing it")
14+
}
15+
}
716

817
/**
918
* Syntactic sugar that allows you to work with a [DangerDSL] descriptor in a single Danger block.
@@ -40,7 +49,7 @@ fun Danger(args: Array<String>): DangerDSL {
4049
dangerRunner = MainDangerRunner(jsonInputFilePath, jsonOutputPath)
4150
}
4251

43-
return dangerRunner.danger
52+
return dangerRunner!!.danger
4453
}
4554

4655
/**
@@ -49,7 +58,7 @@ fun Danger(args: Array<String>): DangerDSL {
4958
* @param message the standard message
5059
*/
5160
fun message(message: String) =
52-
dangerRunner.message(message)
61+
runnerInstance.message(message)
5362

5463
/**
5564
* Adds an inline message message to the Danger report
@@ -59,15 +68,15 @@ fun message(message: String) =
5968
* @param line the line number into the target file
6069
*/
6170
fun message(message: String, file: FilePath, line: Int) =
62-
dangerRunner.message(message, file, line)
71+
runnerInstance.message(message, file, line)
6372

6473
/**
6574
* Adds an inline markdown message to the Danger report
6675
*
6776
* @param message the markdown formatted message
6877
*/
6978
fun markdown(message: String) =
70-
dangerRunner.markdown(message)
79+
runnerInstance.markdown(message)
7180

7281
/**
7382
* Adds an inline markdown message to the Danger report
@@ -77,15 +86,15 @@ fun markdown(message: String) =
7786
* @param line the line number into the target file
7887
*/
7988
fun markdown(message: String, file: FilePath, line: Int) =
80-
dangerRunner.markdown(message, file, line)
89+
runnerInstance.markdown(message, file, line)
8190

8291
/**
8392
* Adds an inline warning message to the Danger report
8493
*
8594
* @param message the warning message
8695
*/
8796
fun warn(message: String) =
88-
dangerRunner.warn(message)
97+
runnerInstance.warn(message)
8998

9099
/**
91100
* Adds an inline warning message to the Danger report
@@ -95,15 +104,15 @@ fun warn(message: String) =
95104
* @param line the line number into the target file
96105
*/
97106
fun warn(message: String, file: FilePath, line: Int) =
98-
dangerRunner.warn(message, file, line)
107+
runnerInstance.warn(message, file, line)
99108

100109
/**
101110
* Adds an inline fail message to the Danger report
102111
*
103112
* @param message the fail message
104113
*/
105114
fun fail(message: String) =
106-
dangerRunner.fail(message)
115+
runnerInstance.fail(message)
107116

108117
/**
109118
* Adds an inline fail message to the Danger report
@@ -113,7 +122,7 @@ fun fail(message: String) =
113122
* @param line the line number into the target file
114123
*/
115124
fun fail(message: String, file: FilePath, line: Int) =
116-
dangerRunner.fail(message, file, line)
125+
runnerInstance.fail(message, file, line)
117126

118127
/**
119128
* Adds an inline suggested code message to the Danger report
@@ -123,4 +132,4 @@ fun fail(message: String, file: FilePath, line: Int) =
123132
* @param line the line number into the target file
124133
*/
125134
fun suggest(code: String, file: FilePath, line: Int) =
126-
dangerRunner.suggest(code, file, line)
135+
runnerInstance.suggest(code, file, line)

0 commit comments

Comments
 (0)