// // ChipCountParser.swift // TournamentStats // // Created by Laurent Morvillier on 27/06/2019. // Copyright © 2019 Stax River. All rights reserved. // import Foundation import RealmSwift import Realm enum ChipCountColumns : CaseIterable { case rank case player case chipcount case trend case city case state case country } class ChipCountParser { static func start() -> ChipCountManager { let realm = try! Realm() var ccm = ChipCountManager(chipCounts: [], totalChips: 0.0) try! realm.write { let resourceName = "chipcount" let path: String? = Bundle.main.path(forResource: resourceName, ofType: "") if let path = path { do { let data = try String(contentsOfFile: path, encoding: .utf8) ccm = ChipCountParser.parse(realm: realm, data: data) } catch { print(error) } } else { print("could not find path for chipcount") } } return ccm } static func parse(realm: Realm, data: String) -> ChipCountManager { // cleanup raw data let rawRows = data.split(separator: "\n") var rows = rawRows.map { String($0) } rows = rows.filter { !$0.isEmpty } let columns = ChipCountColumns.allCases let numberOfColumns = columns.count let formatter = Formatter.importData var playerName: String = "" var totalChips: Double = 0.0 var ccs: [ChipCount] = [] for i in 0..