Skip to content

Commit 9296544

Browse files
committed
Add field name normalization to generateDataClasses
1 parent c09c774 commit 9296544

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed

core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/generateCode.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,8 @@ public inline fun <reified T> DataFrame<T>.generateDataClasses(
4040
markerName: String? = null,
4141
extensionProperties: Boolean = false,
4242
visibility: MarkerVisibility = MarkerVisibility.IMPLICIT_PUBLIC,
43-
useFqNames: Boolean = false
43+
useFqNames: Boolean = false,
44+
nameNormalizer: NameNormalizer = NameNormalizer.default,
4445
): CodeString {
4546
val name = markerName ?: markerName<T>()
4647
val codeGen = CodeGenerator.create(useFqNames)
@@ -68,7 +69,7 @@ public fun <T> DataFrame<T>.generateInterfaces(markerName: String): CodeString =
6869
)
6970

7071
/**
71-
* Converts delimited 'my_name', 'my name', etc, String to camelCase 'myName'
72+
* Converts delimited 'my_name', 'my name', etc., String to camelCase 'myName'
7273
*/
7374
public val NameNormalizer.Companion.default: NameNormalizer get() = NameNormalizer.from(setOf('\t', ' ', '_'))
7475

core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/codeGen/CodeGenerationTests.kt

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -330,6 +330,17 @@ class CodeGenerationTests : BaseTest() {
330330
""".trimIndent().toCodeString()
331331
}
332332

333+
@Test
334+
fun `check name normalization for generated data classes`() {
335+
dataFrameOf("my_name")(1).generateDataClasses() shouldBe """
336+
@DataSchema
337+
data class DataEntry(
338+
@ColumnName("my_name")
339+
val myName: Int
340+
)
341+
""".trimIndent().toCodeString()
342+
}
343+
333344
@Test
334345
fun patterns() {
335346
"""^[\d]""".toRegex().matches("3fds")

0 commit comments

Comments
 (0)