Skip to content

Commit bd9bcd2

Browse files
Duncan McGregordmcg
authored andcommitted
table-reader.29 : introduce functional parameter
1 parent ac80ab9 commit bd9bcd2

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

src/main/java/travelator/tablereader/table-reading.kt

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,11 @@ fun readTable(
1515
lines: List<String>,
1616
headerProvider: (Int) -> String = Int::toString
1717
): List<Map<String, String>> =
18-
lines.map { parseLine(it, headerProvider) }
18+
lines.map {
19+
parseLine(it, headerProvider) { line -> // <1>
20+
line.splitFields(",")
21+
}
22+
}
1923

2024
private fun headerProviderFrom(header: String): (Int) -> String {
2125
val headers = header.splitFields(",")
@@ -24,9 +28,10 @@ private fun headerProviderFrom(header: String): (Int) -> String {
2428

2529
private fun parseLine(
2630
line: String,
27-
headerProvider: (Int) -> String
31+
headerProvider: (Int) -> String,
32+
splitter: (String) -> List<String>, // <2>
2833
): Map<String, String> {
29-
val values = line.splitFields(",")
34+
val values = splitter(line)
3035
val keys = values.indices.map(headerProvider)
3136
return keys.zip(values).toMap()
3237
}

0 commit comments

Comments
 (0)