Skip to content

Commit

Permalink
Fix the bad merge for issue 57
Browse files Browse the repository at this point in the history
  • Loading branch information
jdiazcano committed Apr 29, 2019
1 parent f5e5805 commit db1460b
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 10 deletions.
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
package com.jdiazcano.cfg4k.loaders

import java.util.*
import com.jdiazcano.cfg4k.core.ConfigObject

private val DEFAULT_TRANSFORMERS = mutableListOf<(String) -> String>(
{ key -> key.replace('_', '.') },
{ key -> key.replace('-', '.') },
{ key -> key.toLowerCase(Locale.getDefault()) }
{ key -> key.replace('-', '.') }
)

/**
Expand All @@ -16,13 +15,23 @@ open class EnvironmentConfigLoader(
protected val transformations: MutableList<(String) -> String> = DEFAULT_TRANSFORMERS
) : DefaultConfigLoader(System.getenv().transformice(transformations).toProperties().toConfig()) {

override fun get(key: String): ConfigObject? {
transformations.forEach {
val transformed = it(key).toUpperCase()
val value = super.get(transformed)
if (value != null) {
return value
}
}

return null
}

override fun reload() {
root = System.getenv().transformice(transformations).toProperties().toConfig()
}
}

private fun Map<String, String>.transformice(transformations: MutableList<(String) -> String>) = map { (key, value) ->
transformations.fold(key) { transformedKey, transformer ->
transformer(transformedKey)
} to value
transformations.fold(key) { transformedKey, transformer -> transformer(transformedKey) } to value
}.toMap()
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
package com.jdiazcano.cfg4k.loaders

import com.jdiazcano.cfg4k.core.toConfig
import com.jdiazcano.cfg4k.providers.ProxyConfigProvider
import com.jdiazcano.cfg4k.providers.bind
import com.jdiazcano.cfg4k.providers.get
import io.kotlintest.Spec
import io.kotlintest.TestCase
import io.kotlintest.TestResult
Expand Down Expand Up @@ -33,7 +30,7 @@ class EnvironmentConfigLoaderTest: StringSpec() {
val loader by lazy { EnvironmentConfigLoader() }

"it should be good in the loader" {
loader.get("properties.groupone.keyone").shouldBe("1".toConfig())
loader.get("properties.groupone.keyone") shouldBe "1".toConfig()
}

"null if not found" {
Expand Down

0 comments on commit db1460b

Please sign in to comment.