더북(TheBook)
private fun startTheApplication(
    user: String,
    listName: String,
    items: List<String>
) {
    val toDoList = ToDoList(ListName(listName), items.map(::ToDoItem))
    val lists = mapOf(User(user) to listOf(toDoList) )
    val server = Zettai(lists).asServer(Jetty(8081)) // 메인 함수와는 다른 포트 사용
    server.start()
}

이제 응답을 제대로 파싱할 수 있다. 나중에 더 잘 처리하겠지만, 지금은 몇 가지 정규표현식을 사용해 HTML에서 이름을 추출할 수 있다.

private fun parseResponse(html: String): ToDoList {
    val nameRegex = "<h2>.*<".toRegex()
    val listName = ListName(extractListName(nameRegex, html))
    val itemsRegex = "<td>.*?<".toRegex()
    val items = itemsRegex.findAll(html)
        .map { ToDoItem(extractItemDesc(it)) }.toList()
    return ToDoList(listName,items)
}

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.