Minor: rewrite with standard functions

This commit is contained in:
Nikolay Krasko
2016-12-29 16:43:57 +03:00
parent 76b0b785c5
commit 35631dc2df
@@ -21,20 +21,16 @@ import org.jetbrains.kotlin.psi.KtScript
import org.jetbrains.kotlin.utils.addToStdlib.lastIndexOfOrNull import org.jetbrains.kotlin.utils.addToStdlib.lastIndexOfOrNull
object ScriptNameUtil { object ScriptNameUtil {
fun fileNameWithExtensionStripped(script: KtScript, vararg extensions: String): Name = fun fileNameWithExtensionStripped(script: KtScript, vararg extensions: String): Name =
Name.identifier(generateNameByFileName(script.getContainingKtFile().name, *extensions)) Name.identifier(generateNameByFileName(script.containingKtFile.name, *extensions))
fun generateNameByFileName(fileName: String, vararg extensions: String): String { fun generateNameByFileName(filePath: String, vararg extensions: String): String {
val nameStart = fileName.lastIndexOf('/').let { if (it < 0) 0 else it + 1 } val fileName = filePath.substringAfterLast('/')
val nameEnd = extensions.asSequence() val nameWithoutExtension = extensions.asSequence()
.map { if (it.startsWith('.')) it else ".$it" } .map { if (it.startsWith('.')) it else ".$it" }
.firstOrNull { fileName.endsWith(it) } .firstOrNull { fileName.endsWith(it) }?.let { fileName.removeSuffix(it) }
?.let { fileName.length - it.length } ?: fileName
?: fileName.lastIndexOf('.').let { if (it < 0) fileName.length else it } return nameWithoutExtension
?: fileName.length
return fileName
.substring(nameStart, nameEnd)
.replace('.', '_') .replace('.', '_')
.capitalize() .capitalize()
} }