Coverage Summary for Class: UrlToPathSegmentsRF (kweb.routing)

Class Class, % Method, % Branch, % Line, % Instruction, %
UrlToPathSegmentsRF 100% (1/1) 100% (3/3) 100% (2/2) 100% (4/4) 100% (63/63)


 package kweb.routing
 
 import kweb.state.ReversibleFunction
 
 internal object UrlToPathSegmentsRF : ReversibleFunction<String, List<String>>(label = "UrlToPathSegmentsRF") {
     override fun invoke(from: String): List<String> {
         return from.substringBefore('?').split('/').drop(1)
     }
 
     override fun reverse(originalUrl: String, newPath: List<String>): String {
         val queryFragment = originalUrl.substringAfter('?', missingDelimiterValue = "")
         return '/' + newPath.joinToString(separator = "/") + (if (queryFragment != "") "?$queryFragment" else "")
     }
 }