From 89376e85a185bcfdb7c295805ce470c6a22cef84 Mon Sep 17 00:00:00 2001 From: Tom Hicks Date: Thu, 25 Mar 2021 01:21:45 -0700 Subject: [PATCH] Makes the SizeType initializer prefer proper case but fall back to case insensitive. --- MonsterCards/Models/Enums/SizeType.swift | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/MonsterCards/Models/Enums/SizeType.swift b/MonsterCards/Models/Enums/SizeType.swift index 98d227d..3d482c2 100644 --- a/MonsterCards/Models/Enums/SizeType.swift +++ b/MonsterCards/Models/Enums/SizeType.swift @@ -27,4 +27,26 @@ enum SizeType: String, CaseIterable, Identifiable { case .gargantuan: return "gargantuan" } } + + init?(rawValue: String) { + var match: SizeType? = nil + + for size in SizeType.allCases { + if (size.rawValue == rawValue) { + match = size + } + } + + for size in SizeType.allCases { + if (size.rawValue.lowercased() == rawValue.lowercased()) { + match = size + } + } + + if (match == nil) { + return nil + } else { + self = match! + } + } }