Skip to content

Commit

Permalink
* Fix generator value modifiers.
Browse files Browse the repository at this point in the history
* Avoid reserved Kotlin keywords in generator.
* Fix Kotlin compiler flags.
  • Loading branch information
Bojan committed Aug 9, 2022
1 parent bd49138 commit 72b0629
Show file tree
Hide file tree
Showing 13 changed files with 42 additions and 20 deletions.
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,14 @@
Change Log
==========

## Version 1.3.6

_2022-08-09_

* Fix generator value modifiers.
* Avoid reserved Kotlin keywords in generator.
* Fix Kotlin compiler flags.

## Version 1.3.5

_2022-08-05_
Expand Down
12 changes: 6 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ buildscript {
mavenCentral()
}
dependencies {
classpath "com.infinum.collar:collar-plugin:1.3.5"
classpath "com.infinum.collar:collar-plugin:1.3.6"
}
}
```
Expand All @@ -42,7 +42,7 @@ buildscript {
mavenCentral()
}
dependencies {
classpath("com.infinum.collar:collar-plugin:1.3.5")
classpath("com.infinum.collar:collar-plugin:1.3.6")
}
}
```
Expand Down Expand Up @@ -261,13 +261,13 @@ You can search, filter and clear all sent analytics.
In your app `build.gradle` or `build.gradle.kts` add:
**Groovy**
```gradle
debugImplementation "com.infinum.collar:collar-ui:1.3.5"
releaseImplementation "com.infinum.collar:collar-ui-no-op:1.3.5"
debugImplementation "com.infinum.collar:collar-ui:1.3.6"
releaseImplementation "com.infinum.collar:collar-ui-no-op:1.3.6"
```
**KotlinDSL**
```kotlin
debugImplementation("com.infinum.collar:collar-ui:1.3.5")
releaseImplementation("com.infinum.collar:collar-ui-no-op:1.3.5")
debugImplementation("com.infinum.collar:collar-ui:1.3.6")
releaseImplementation("com.infinum.collar:collar-ui-no-op:1.3.6")
```

In order to start tracking with UI you must use _LiveCollector_ as in this example:
Expand Down
2 changes: 1 addition & 1 deletion config.gradle
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
ext {
def major = 1
def minor = 3
def patch = 5
def patch = 6

buildConfig = [
"minSdk" : 19,
Expand Down
2 changes: 1 addition & 1 deletion generator/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ compileKotlin {
jvmTarget = "1.8"
freeCompilerArgs += [
'-Xjvm-default=all',
'-Xopt-in=kotlinx.serialization.ExperimentalSerializationApi'
'-opt-in=kotlinx.serialization.ExperimentalSerializationApi'
]
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package com.infinum.collar.generator.extensions
import com.infinum.collar.generator.models.DataType
import java.util.Locale

internal fun String.toCamelCase(): String = split(" ", "_")
internal fun String.toCamelCase(capitalize: Boolean = true): String = split(" ", "_")
.joinToString("") {
it.replaceFirstChar { value ->
if (value.isLowerCase()) {
Expand All @@ -13,6 +13,9 @@ internal fun String.toCamelCase(): String = split(" ", "_")
}
}
}
.replaceFirstChar {
if (capitalize) it.uppercase() else it.lowercase()
}

internal fun String.isFirstCharDigit(): Boolean = this.firstOrNull()?.isDigit() ?: false

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,20 +5,21 @@ import com.squareup.kotlinpoet.KModifier
import com.squareup.kotlinpoet.PropertySpec
import com.squareup.kotlinpoet.TypeSpec

internal fun TypeSpec.Builder.addValue() =
this.primaryConstructor(
internal fun TypeSpec.Builder.addValue(parameterName: String = "parameter"): TypeSpec.Builder {
return this.primaryConstructor(
FunSpec.constructorBuilder()
.addParameter("value", String::class, KModifier.PRIVATE)
.addParameter(parameterName, String::class)
.build()
)
.addProperty(
PropertySpec.builder("value", String::class)
.initializer("value")
PropertySpec.builder(parameterName, String::class)
.initializer(parameterName)
.build()
)
.addFunction(
FunSpec.builder("toString")
.addModifiers(KModifier.OVERRIDE)
.addStatement("return value")
.addStatement("return $parameterName")
.build()
)
}
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,9 @@ internal class EventsGenerator(
if (parameter.values?.isNotEmpty() == true) {
val enumBuilder = TypeSpec.enumBuilder(
parameter.name.toCamelCase()
).addValue()
).addValue(
parameter.name.toCamelCase(capitalize = false)
)

parameter.values.forEach { value ->
enumBuilder.addEnumConstant(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,9 @@ internal class UserPropertiesGenerator(
if (userProperty.values?.isNotEmpty() == true) {
val enumBuilder = TypeSpec.enumBuilder(
userProperty.name.toCamelCase()
).addValue()
).addValue(
userProperty.name.toCamelCase(capitalize = false)
)

userProperty.values.forEach { value ->
enumBuilder.addEnumConstant(
Expand Down
2 changes: 1 addition & 1 deletion gradle/libs.versions.toml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[versions]
collar = "1.3.5"
collar = "1.3.6"
gradle = "7.2.2"
lint = "30.2.1"
kotlin = "1.7.10"
Expand Down
2 changes: 1 addition & 1 deletion processor/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ compileKotlin {
jvmTarget = "1.8"
freeCompilerArgs += [
'-Xjvm-default=all',
'-Xopt-in=com.squareup.kotlinpoet.metadata.KotlinPoetMetadataPreview'
'-opt-in=com.squareup.kotlinpoet.metadata.KotlinPoetMetadataPreview'
]
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ internal class AnalyticsEventsSpec(

companion object {
private const val FUNCTION_TRACK_EVENT = "trackEvent"
private const val PARAMETER_NAME_EVENT = "event"

private const val STATEMENT_EVENT_CLASS_START = "is %T -> %T.%L("
private const val STATEMENT_EVENT_CLASS_END = ")"
Expand All @@ -27,6 +28,8 @@ internal class AnalyticsEventsSpec(
private val CLASS_BUNDLE = ClassName("android.os", "Bundle")
}

override fun parameterName(): String = PARAMETER_NAME_EVENT

override fun extensions(): List<FunSpec> =
listOf(
FunSpec.builder(FUNCTION_TRACK_EVENT)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,12 @@ internal class UserPropertiesSpec(

companion object {
private const val FUNCTION_TRACK_PROPERTY = "trackProperty"
private const val PARAMETER_NAME_PROPERTY = "userProperty"
private const val STATEMENT = "is %T -> %T.%L(%S, %L.%L)"
}

override fun parameterName(): String = PARAMETER_NAME_PROPERTY

override fun extensions(): List<FunSpec> =
listOf(
FunSpec.builder(FUNCTION_TRACK_PROPERTY)
Expand Down
2 changes: 1 addition & 1 deletion ui/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ android {
freeCompilerArgs += [
'-Xjvm-default=all',
'-Xexplicit-api=strict',
'-Xopt-in=kotlinx.coroutines.DelicateCoroutinesApi'
'-opt-in=kotlinx.coroutines.DelicateCoroutinesApi'
]
}
packagingOptions {
Expand Down

0 comments on commit 72b0629

Please sign in to comment.