Allow excluding Kotlin source sets from transformation
This commit is contained in:
@@ -119,6 +119,33 @@ kotlinPowerAssert {
|
||||
}
|
||||
```
|
||||
|
||||
You can also exclude Gradle source sets from being transformed by the plugin,
|
||||
where those source sets can be specified by name.
|
||||
|
||||
```kotlin
|
||||
// Kotlin DSL
|
||||
configure<com.bnorm.power.PowerAssertGradleExtension> {
|
||||
excludedSourceSets = listOf(
|
||||
"commonMain",
|
||||
"jvmMain",
|
||||
"jsMain",
|
||||
"nativeMain"
|
||||
)
|
||||
}
|
||||
```
|
||||
|
||||
```groovy
|
||||
// Groovy
|
||||
kotlinPowerAssert {
|
||||
excludedSourceSets = [
|
||||
"commonMain",
|
||||
"jvmMain",
|
||||
"jsMain",
|
||||
"nativeMain"
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
## Compatibility
|
||||
|
||||
The Kotlin compiler plugin API is unstable and each new version of Kotlin can
|
||||
|
||||
+1
@@ -18,4 +18,5 @@ package com.bnorm.power
|
||||
|
||||
open class PowerAssertGradleExtension {
|
||||
var functions: List<String> = listOf("kotlin.assert")
|
||||
var excludedSourceSets: List<String> = listOf()
|
||||
}
|
||||
|
||||
+5
-1
@@ -28,7 +28,11 @@ class PowerAssertGradlePlugin : KotlinCompilerPluginSupportPlugin {
|
||||
extensions.create("kotlinPowerAssert", PowerAssertGradleExtension::class.java)
|
||||
}
|
||||
|
||||
override fun isApplicable(kotlinCompilation: KotlinCompilation<*>): Boolean = true
|
||||
override fun isApplicable(kotlinCompilation: KotlinCompilation<*>): Boolean {
|
||||
val project = kotlinCompilation.target.project
|
||||
val extension = project.extensions.getByType(PowerAssertGradleExtension::class.java)
|
||||
return extension.excludedSourceSets.none { it == kotlinCompilation.defaultSourceSet.name }
|
||||
}
|
||||
|
||||
override fun getCompilerPluginId(): String = "com.bnorm.kotlin-power-assert"
|
||||
|
||||
|
||||
@@ -66,4 +66,10 @@ configure<com.bnorm.power.PowerAssertGradleExtension> {
|
||||
"com.bnorm.power.assert",
|
||||
"com.bnorm.power.dbg"
|
||||
)
|
||||
excludedSourceSets = listOf(
|
||||
"commonMain",
|
||||
"jvmMain",
|
||||
"jsMain",
|
||||
"nativeMain"
|
||||
)
|
||||
}
|
||||
|
||||
@@ -20,6 +20,11 @@ data class Person(
|
||||
val firstName: String,
|
||||
val lastName: String,
|
||||
) {
|
||||
init {
|
||||
require(firstName.isNotBlank())
|
||||
require(lastName.isNotBlank())
|
||||
}
|
||||
|
||||
companion object {
|
||||
val UNKNOWN = listOf(Person("John", "Doe"), Person("Jane", "Doe"))
|
||||
override fun toString() = "Person.Companion"
|
||||
|
||||
@@ -63,6 +63,15 @@ class PowerAssertTest {
|
||||
)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun excludedRequire() {
|
||||
val error = assertFailsWith<IllegalArgumentException> { Person("", "") }
|
||||
assertEquals(
|
||||
actual = error.message,
|
||||
expected = "Failed requirement."
|
||||
)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun softAssert() {
|
||||
val unknown: List<Person>? = Person.UNKNOWN
|
||||
|
||||
Reference in New Issue
Block a user