demo-money-project/src/main/kotlin/com/example/demo/domain/MoneyConfig.kt
2020-08-26 18:08:09 +07:00

30 lines
799 B
Kotlin

package com.example.demo.domain
object MoneyConfig {
private const val SPLIT_ORD_1 = ','
private const val SPLIT_ORD_2 = '='
fun parse(config: String): Map<String, Double> {
val result = mutableMapOf<String, Double>()
val rates = config.split(SPLIT_ORD_1)
/**
* USD=1
* KHR=4000
* EUR=0.99
*
* USD -> currency
* 1 -> value
*/
rates.map { i ->
val temp = i.split(SPLIT_ORD_2)
if (temp.size == 2) {
val currency = temp[0]
val value = temp[1].toDouble()
result.put(currency, value)
} else {
throw IllegalArgumentException("invalid value!")
}
}
return result
}
}