Coverage Summary for Class: AutolinkExtension (io.heapy.kotmark.ext.autolink)

Class Method, % Branch, % Line, % Instruction, %
AutolinkExtension 66.7% (2/3) 75% (3/4) 100% (16/16)
AutolinkExtension$Companion 100% (1/1) 100% (1/1) 100% (5/5)
AutolinkExtension$Configuration 100% (3/3) 100% (2/2) 100% (5/5) 100% (32/32)
Total 85.7% (6/7) 100% (2/2) 90% (9/10) 100% (53/53)


 package io.heapy.kotmark.ext.autolink
 
 import io.heapy.kotmark.Extension
 import io.heapy.kotmark.ExtensionsBuilder
 import io.heapy.kotmark.KotmarkDsl
 import io.heapy.kotmark.ext.autolink.internal.AutolinkPostProcessor
 import io.heapy.kotmark.parser.Parser
 import kotlin.jvm.JvmStatic
 
 class AutolinkExtension private constructor(configuration: Configuration) : Parser.ParserExtension {
     private val linkTypes = configuration.linkTypes.toSet()
 
     override fun extend(parserConfiguration: Parser.Configuration) {
         parserConfiguration.postProcessor(AutolinkPostProcessor(linkTypes))
     }
 
     @KotmarkDsl
     class Configuration internal constructor() {
         var linkTypes: Set<AutolinkType> = AutolinkType.entries.toSet()
             set(value) {
                 require(value.isNotEmpty()) { "linkTypes must not be empty" }
                 field = value.toSet()
             }
 
         internal fun create(): AutolinkExtension = AutolinkExtension(this)
     }
 
     companion object {
         @JvmStatic
         fun create(): Extension = autolinkExtension()
     }
 }
 
 /** Creates [AutolinkExtension] with the supplied configuration. */
 fun autolinkExtension(configure: AutolinkExtension.Configuration.() -> Unit = {}): AutolinkExtension =
     AutolinkExtension.Configuration().apply(configure).create()
 
 /** Creates and appends [AutolinkExtension] with the supplied configuration. */
 fun ExtensionsBuilder.autolink(configure: AutolinkExtension.Configuration.() -> Unit = {}) {
     add(autolinkExtension(configure))
 }