gradle-android-ribbonizer-plugin icon indicating copy to clipboard operation
gradle-android-ribbonizer-plugin copied to clipboard

Support Kotlin DSL friendly interface

Open tnj opened this issue 6 years ago • 1 comments

Fixes #28

Gradle Kotlin DSL automatically generates accessors for each Extension for static type-safe access, but it didn't play well with Ribonizer because RibobonizerExtension was not public, as described at #28 .

Also, I've modified some codes where depends on Groovy's runtime dynamic type resolution. For utilities like grayRibbonFilter(), I've specified implementation classes like ColorRibbonFilter instead of Consumer<BufferedImage> to enable access to options.

With this change, you can use Ribbonizer in Kotlin DSL, like:

ribbonizer {
    builder { variant, iconFile ->
        when (variant.buildType.name) {
            "debug" -> yellowRibbonFilter(variant, iconFile).apply { label = branchName }
            else -> grayRibbonFilter(variant, iconFile)
        }
    }
}

tnj avatar Feb 02 '19 13:02 tnj

Hi!

I understand this issue has not been merged yet. Do you plan to do it at some point in the future? I have recently moved my Gradle files to Kotlin DSL and I'd like to keep on using your library.

Thanks and regards,

pablodeafsapps avatar Sep 28 '20 15:09 pablodeafsapps