// // Realm+Extensions.swift // TournamentStats // // Created by Laurent Morvillier on 02/06/2019. // Copyright © 2019 Stax River. All rights reserved. // import Foundation import Realm import RealmSwift protocol Named { var name: String { get set } } extension Realm { func getOrCreate(name: String) -> T where T : Object, T : Named { let items = self.objects(T.self).filter("name = %@", name) if let item = items.first { return item } var new = self.create(T.self) new.name = name return new } func getOrCreatePlayer(name: String, city: String, state: String, country: String) -> Player { let items = self.objects(Player.self).filter("name = %@ && city = %@ && state = %@ && country = %@", name, city, state, country) if let item = items.first { return item } let new = self.create(Player.self) new.name = name new.city = city new.country = country new.state = state return new } }