Compare commits

...

5 Commits

Author SHA1 Message Date
1239ca3256 update exposed 2021-08-09 11:23:22 +06:00
5ee5bfd1d5 updates in IetfLanguageCode 2021-08-08 22:09:33 +06:00
7229a3e198 start 0.5.19 2021-08-08 21:44:06 +06:00
bee083582f Merge pull request #83 from InsanusMokrassar/0.5.18
0.5.18
2021-08-04 11:53:40 +06:00
6ef403853c Merge pull request #82 from InsanusMokrassar/0.5.18
0.5.18
2021-08-04 11:26:06 +06:00
5 changed files with 224 additions and 213 deletions

View File

@@ -1,7 +1,15 @@
# Changelog # Changelog
## 0.5.19
* `LanguageCode`:
* `IetfLanguageCode` became as sealed class
* `IetfLanguageCode` now override `toString` and returns its code
## 0.5.18 ## 0.5.18
* `Versions`
* `Kotlin Exposed`: `0.32.1` -> `0.33.1`
* `LanguageCode`: * `LanguageCode`:
* Module has been created * Module has been created

View File

@@ -10,7 +10,7 @@ org.gradle.jvmargs=-Xmx2g
kotlin_version=1.5.21 kotlin_version=1.5.21
kotlin_coroutines_version=1.5.1 kotlin_coroutines_version=1.5.1
kotlin_serialisation_core_version=1.2.2 kotlin_serialisation_core_version=1.2.2
kotlin_exposed_version=0.32.1 kotlin_exposed_version=0.33.1
ktor_version=1.6.2 ktor_version=1.6.2
@@ -40,10 +40,10 @@ crypto_js_version=4.1.1
# Dokka # Dokka
dokka_version=1.4.32 dokka_version=1.5.0
# Project data # Project data
group=dev.inmo group=dev.inmo
version=0.5.18 version=0.5.19
android_code_version=59 android_code_version=60

View File

@@ -5,6 +5,7 @@ import kotlinx.serialization.Serializable
import kotlinx.serialization.builtins.ListSerializer import kotlinx.serialization.builtins.ListSerializer
import kotlinx.serialization.json.Json import kotlinx.serialization.json.Json
import java.io.File import java.io.File
import java.text.Normalizer
private val json = Json { private val json = Json {
ignoreUnknownKeys = true ignoreUnknownKeys = true
@@ -29,6 +30,8 @@ fun String.adaptAsTitle() = if (first().isDigit()) {
this this
} }
fun String.normalized() = Normalizer.normalize(this, Normalizer.Form.NFD).replace(Regex("[^\\p{ASCII}]"), "")
@Serializable @Serializable
private data class LanguageCodeWithTag( private data class LanguageCodeWithTag(
@SerialName("langType") @SerialName("langType")
@@ -74,11 +77,11 @@ private fun printLanguageCodeAndTags(
indents: String = " " indents: String = " "
): String = if (tag.subtags.isEmpty()) { ): String = if (tag.subtags.isEmpty()) {
"""${indents}${baseClassSerializerAnnotationName} """${indents}${baseClassSerializerAnnotationName}
${indents}object ${tag.title} : ${parent ?.title ?.let { "$it()" } ?: baseClassName} { override val code: String = "${tag.tag}" }""" ${indents}object ${tag.title} : ${parent ?.title ?: baseClassName}() { override val code: String = "${tag.tag}" }"""
} else { } else {
""" """
${indents}${baseClassSerializerAnnotationName} ${indents}${baseClassSerializerAnnotationName}
${indents}sealed class ${tag.title} : ${parent ?.title ?.let { "$it()" } ?: baseClassName} { ${indents}sealed class ${tag.title} : ${parent ?.title ?: baseClassName}() {
${indents} override val code: String = "${tag.tag}" ${indents} override val code: String = "${tag.tag}"
${tag.subtags.joinToString("\n") { printLanguageCodeAndTags(it, tag, "${indents} ") }} ${tag.subtags.joinToString("\n") { printLanguageCodeAndTags(it, tag, "${indents} ") }}
@@ -98,13 +101,15 @@ import kotlinx.serialization.Serializable
* https://datahub.io/core/language-codes/ files (base and tags) and create the whole hierarchy using it. * https://datahub.io/core/language-codes/ files (base and tags) and create the whole hierarchy using it.
*/ */
${baseClassSerializerAnnotationName} ${baseClassSerializerAnnotationName}
sealed interface $baseClassName { sealed class $baseClassName {
val code: String abstract val code: String
${tags.joinToString("\n") { printLanguageCodeAndTags(it, indents = " ") } } ${tags.joinToString("\n") { printLanguageCodeAndTags(it, indents = " ") } }
$baseClassSerializerAnnotationName $baseClassSerializerAnnotationName
data class $unknownBaseClassName (override val code: String) : $baseClassName data class $unknownBaseClassName (override val code: String) : $baseClassName()
override fun toString() = code
} }
""".trimIndent() """.trimIndent()
@@ -179,18 +184,14 @@ suspend fun main(vararg args: String) {
val subtags = unformattedSubtags.mapNotNull { val subtags = unformattedSubtags.mapNotNull {
if (it.endTag == null) { if (it.endTag == null) {
val currentSubtags = (threeLevelTags[it.subtag] ?: emptyList()).map { val currentSubtags = (threeLevelTags[it.subtag] ?: emptyList()).map {
Tag(it.endTagAsTitle!!, it.withSubtag, emptyList()) Tag(it.endTagAsTitle!!.normalized(), it.withSubtag, emptyList())
} }
Tag(it.middleTagTitle, it.withSubtag, currentSubtags) Tag(it.middleTagTitle.normalized(), it.withSubtag, currentSubtags)
} else { } else {
null null
} }
} }
Tag( Tag(it.title.normalized(), it.tag, subtags)
it.title,
it.tag,
subtags
)
} }
File(outputFolder, "LanguageCodes.kt").apply { File(outputFolder, "LanguageCodes.kt").apply {

View File

@@ -461,9 +461,9 @@ fun String.asIetfLanguageCode(): IetfLanguageCode {
IetfLanguageCode.Burmese.code -> IetfLanguageCode.Burmese IetfLanguageCode.Burmese.code -> IetfLanguageCode.Burmese
IetfLanguageCode.Burmese.MM.code -> IetfLanguageCode.Burmese.MM IetfLanguageCode.Burmese.MM.code -> IetfLanguageCode.Burmese.MM
IetfLanguageCode.Nauru.code -> IetfLanguageCode.Nauru IetfLanguageCode.Nauru.code -> IetfLanguageCode.Nauru
IetfLanguageCode.BokmålNorwegianNorwegianBokmål.code -> IetfLanguageCode.BokmålNorwegianNorwegianBokmål IetfLanguageCode.BokmalNorwegianNorwegianBokmal.code -> IetfLanguageCode.BokmalNorwegianNorwegianBokmal
IetfLanguageCode.BokmålNorwegianNorwegianBokmål.NO.code -> IetfLanguageCode.BokmålNorwegianNorwegianBokmål.NO IetfLanguageCode.BokmalNorwegianNorwegianBokmal.NO.code -> IetfLanguageCode.BokmalNorwegianNorwegianBokmal.NO
IetfLanguageCode.BokmålNorwegianNorwegianBokmål.SJ.code -> IetfLanguageCode.BokmålNorwegianNorwegianBokmål.SJ IetfLanguageCode.BokmalNorwegianNorwegianBokmal.SJ.code -> IetfLanguageCode.BokmalNorwegianNorwegianBokmal.SJ
IetfLanguageCode.NdebeleNorthNorthNdebele.code -> IetfLanguageCode.NdebeleNorthNorthNdebele IetfLanguageCode.NdebeleNorthNorthNdebele.code -> IetfLanguageCode.NdebeleNorthNorthNdebele
IetfLanguageCode.NdebeleNorthNorthNdebele.ZW.code -> IetfLanguageCode.NdebeleNorthNorthNdebele.ZW IetfLanguageCode.NdebeleNorthNorthNdebele.ZW.code -> IetfLanguageCode.NdebeleNorthNorthNdebele.ZW
IetfLanguageCode.Nepali.code -> IetfLanguageCode.Nepali IetfLanguageCode.Nepali.code -> IetfLanguageCode.Nepali
@@ -639,8 +639,8 @@ fun String.asIetfLanguageCode(): IetfLanguageCode {
IetfLanguageCode.Venda.code -> IetfLanguageCode.Venda IetfLanguageCode.Venda.code -> IetfLanguageCode.Venda
IetfLanguageCode.Vietnamese.code -> IetfLanguageCode.Vietnamese IetfLanguageCode.Vietnamese.code -> IetfLanguageCode.Vietnamese
IetfLanguageCode.Vietnamese.VN.code -> IetfLanguageCode.Vietnamese.VN IetfLanguageCode.Vietnamese.VN.code -> IetfLanguageCode.Vietnamese.VN
IetfLanguageCode.Volapük.code -> IetfLanguageCode.Volapük IetfLanguageCode.Volapuk.code -> IetfLanguageCode.Volapuk
IetfLanguageCode.Volapük.L001.code -> IetfLanguageCode.Volapük.L001 IetfLanguageCode.Volapuk.L001.code -> IetfLanguageCode.Volapuk.L001
IetfLanguageCode.Walloon.code -> IetfLanguageCode.Walloon IetfLanguageCode.Walloon.code -> IetfLanguageCode.Walloon
IetfLanguageCode.Wolof.code -> IetfLanguageCode.Wolof IetfLanguageCode.Wolof.code -> IetfLanguageCode.Wolof
IetfLanguageCode.Wolof.SN.code -> IetfLanguageCode.Wolof.SN IetfLanguageCode.Wolof.SN.code -> IetfLanguageCode.Wolof.SN