Skip to content

Commit 2d958ef

Browse files
committed
style: Refine dependency extensions
1 parent 77aa485 commit 2d958ef

File tree

2 files changed

+32
-31
lines changed

2 files changed

+32
-31
lines changed

src/main/kotlin/dependencies/Dependencies.kt

+21-13
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,14 @@ import org.gradle.api.artifacts.repositories.MavenArtifactRepository
99
import org.gradle.api.plugins.ExtraPropertiesExtension
1010
import org.gradle.api.provider.Provider
1111
import org.gradle.kotlin.dsl.KotlinClosure0
12-
import org.gradle.kotlin.dsl.closureOf
1312
import org.gradle.kotlin.dsl.extra
1413
import org.gradle.kotlin.dsl.maven
1514
import ru.endlesscode.bukkitgradle.bukkit
1615
import ru.endlesscode.bukkitgradle.meta.util.MinecraftVersion
1716
import ru.endlesscode.bukkitgradle.meta.util.parsedApiVersion
1817

18+
private typealias RepositoryClosure = Closure<MavenArtifactRepository>
19+
1920
internal object Dependencies {
2021

2122
const val URL_SPIGOT = "https://hub.spigotmc.org/nexus/content/repositories/snapshots/"
@@ -50,15 +51,15 @@ internal object Dependencies {
5051

5152
private fun addGroovyExtensions() {
5253
val repoExtra = repoHandler.extra
53-
repoExtra["spigot"] = closureOf<Any?> { repoHandler.addRepo("Spigot", URL_SPIGOT) }
54-
repoExtra["sk89q"] = closureOf<Any?> { repoHandler.addRepo("sk89q", URL_SK89Q) }
55-
repoExtra["papermc"] = closureOf<Any?> { repoHandler.addRepo("PaperMC", URL_PAPERMC) }
56-
repoExtra["dmulloy2"] = closureOf<Any?> { repoHandler.addRepo("dmulloy2", URL_DMULLOY2) }
57-
repoExtra["md5"] = closureOf<Any?> { repoHandler.addRepo("md5", URL_MD5) }
58-
repoExtra["jitpack"] = closureOf<Any?> { repoHandler.addRepo("jitpack", URL_JITPACK) }
59-
repoExtra["placeholderapi"] = closureOf<Any?> { repoHandler.addRepo("PlaceholderAPI", URL_PLACEHOLDERAPI) }
60-
repoExtra["aikar"] = closureOf<Any?> { repoHandler.addRepo("aikar", URL_AIKAR) }
61-
repoExtra["codemc"] = closureOf<Any?> { repoHandler.addRepo("codemc", URL_CODEMC) }
54+
repoExtra["spigot"] = repoHandler.repositoryClosure("Spigot", URL_SPIGOT)
55+
repoExtra["sk89q"] = repoHandler.repositoryClosure("sk89q", URL_SK89Q)
56+
repoExtra["papermc"] = repoHandler.repositoryClosure("PaperMC", URL_PAPERMC)
57+
repoExtra["dmulloy2"] = repoHandler.repositoryClosure("dmulloy2", URL_DMULLOY2)
58+
repoExtra["md5"] = repoHandler.repositoryClosure("md5", URL_MD5)
59+
repoExtra["jitpack"] = repoHandler.repositoryClosure("jitpack", URL_JITPACK)
60+
repoExtra["placeholderapi"] = repoHandler.repositoryClosure("PlaceholderAPI", URL_PLACEHOLDERAPI)
61+
repoExtra["aikar"] = repoHandler.repositoryClosure("aikar", URL_AIKAR)
62+
repoExtra["codemc"] = repoHandler.repositoryClosure("codemc", URL_CODEMC)
6263

6364
val depExtra = depHandler.extra
6465
depExtra["spigot"] = depClosureOf { depHandler.api("org.spigotmc", "spigot", "mavenLocal") }
@@ -67,12 +68,18 @@ internal object Dependencies {
6768
depExtra["paperApi"] = depClosureOf { depHandler.api(resolvePaperGroupId(), "paper-api", "papermc") }
6869
}
6970

71+
private fun RepositoryHandler.repositoryClosure(name: String, url: String): RepositoryClosure =
72+
object : RepositoryClosure(this, this) {
73+
@Suppress("unused") // to be called dynamically by Groovy
74+
fun doCall() = (delegate as RepositoryHandler).addRepo(name, url)
75+
}
76+
7077
fun RepositoryHandler.addRepo(
7178
repoName: String,
7279
repoUrl: String,
7380
configure: MavenArtifactRepository.() -> Unit = {}
74-
) {
75-
maven(repoUrl) {
81+
): MavenArtifactRepository {
82+
return maven(repoUrl) {
7683
name = repoName
7784
configure()
7885
}
@@ -89,7 +96,8 @@ internal object Dependencies {
8996
if (repo == "mavenLocal") {
9097
repoHandler.mavenLocal()
9198
} else {
92-
(repoHandler.extra[repo] as Closure<*>).call(repoHandler)
99+
@Suppress("UNCHECKED_CAST")
100+
(repoHandler.extra[repo] as RepositoryClosure).call()
93101
}
94102
}
95103

src/main/kotlin/dependencies/DependenciesExtensions.kt

+11-18
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
@file:Suppress("SpellCheckingInspection")
2+
13
package ru.endlesscode.bukkitgradle.dependencies
24

35
import org.gradle.api.artifacts.dsl.DependencyHandler
@@ -16,41 +18,32 @@ import ru.endlesscode.bukkitgradle.dependencies.Dependencies.addRepo
1618
import ru.endlesscode.bukkitgradle.dependencies.Dependencies.api
1719
import ru.endlesscode.bukkitgradle.dependencies.Dependencies.resolvePaperGroupId
1820

19-
public fun RepositoryHandler.spigot(configure: MavenArtifactRepository.() -> Unit = {}) {
21+
public fun RepositoryHandler.spigot(configure: MavenArtifactRepository.() -> Unit = {}): MavenArtifactRepository =
2022
addRepo("Spigot", URL_SPIGOT, configure)
21-
}
2223

23-
public fun RepositoryHandler.sk89q(configure: MavenArtifactRepository.() -> Unit = {}) {
24+
public fun RepositoryHandler.sk89q(configure: MavenArtifactRepository.() -> Unit = {}): MavenArtifactRepository =
2425
addRepo("sk89q", URL_SK89Q, configure)
25-
}
2626

27-
public fun RepositoryHandler.papermc(configure: MavenArtifactRepository.() -> Unit = {}) {
27+
public fun RepositoryHandler.papermc(configure: MavenArtifactRepository.() -> Unit = {}): MavenArtifactRepository =
2828
addRepo("PaperMC", URL_PAPERMC, configure)
29-
}
3029

31-
public fun RepositoryHandler.dmulloy2(configure: MavenArtifactRepository.() -> Unit = {}) {
30+
public fun RepositoryHandler.dmulloy2(configure: MavenArtifactRepository.() -> Unit = {}): MavenArtifactRepository =
3231
addRepo("dmulloy2", URL_DMULLOY2, configure)
33-
}
3432

35-
public fun RepositoryHandler.md5(configure: MavenArtifactRepository.() -> Unit = {}) {
33+
public fun RepositoryHandler.md5(configure: MavenArtifactRepository.() -> Unit = {}): MavenArtifactRepository =
3634
addRepo("md5", URL_MD5, configure)
37-
}
3835

39-
public fun RepositoryHandler.jitpack(configure: MavenArtifactRepository.() -> Unit = {}) {
36+
public fun RepositoryHandler.jitpack(configure: MavenArtifactRepository.() -> Unit = {}): MavenArtifactRepository =
4037
addRepo("jitpack", URL_JITPACK, configure)
41-
}
4238

43-
public fun RepositoryHandler.placeholderApi(configure: MavenArtifactRepository.() -> Unit = {}) {
39+
public fun RepositoryHandler.placeholderApi(configure: MavenArtifactRepository.() -> Unit = {}): MavenArtifactRepository =
4440
addRepo("PlaceholderAPI", URL_PLACEHOLDERAPI, configure)
45-
}
4641

47-
public fun RepositoryHandler.aikar(configure: MavenArtifactRepository.() -> Unit = {}) {
42+
public fun RepositoryHandler.aikar(configure: MavenArtifactRepository.() -> Unit = {}): MavenArtifactRepository =
4843
addRepo("aikar", URL_AIKAR, configure)
49-
}
5044

51-
public fun RepositoryHandler.codemc(configure: MavenArtifactRepository.() -> Unit = {}) {
45+
public fun RepositoryHandler.codemc(configure: MavenArtifactRepository.() -> Unit = {}): MavenArtifactRepository =
5246
addRepo("codemc", URL_CODEMC, configure)
53-
}
5447

5548
public val DependencyHandler.spigot: String
5649
get() = api("org.spigotmc", "spigot", "mavenLocal")

0 commit comments

Comments
 (0)