From 7ae20f5459b45ae9e700736f65b8fcd31706aac1 Mon Sep 17 00:00:00 2001 From: David Jennes Date: Wed, 24 May 2017 18:03:00 +0200 Subject: [PATCH] Better error message --- Sources/Parsers/ColorsFileParser.swift | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Sources/Parsers/ColorsFileParser.swift b/Sources/Parsers/ColorsFileParser.swift index 79d0adf..dec082b 100644 --- a/Sources/Parsers/ColorsFileParser.swift +++ b/Sources/Parsers/ColorsFileParser.swift @@ -10,17 +10,17 @@ import PathKit public enum ColorsParserError: Error, CustomStringConvertible { case invalidHexColor(string: String, key: String?) case invalidFile(reason: String) - case unsupportedFileType + case unsupportedFileType(supported: [String]) public var description: String { switch self { - case .invalidHexColor(string: let string, key: let key): + case .invalidHexColor(let string, let key): let keyInfo = key.flatMap { " for key \"\($0)\"" } ?? "" return "error: Invalid hex color \"\(string)\" found\(keyInfo)." - case .invalidFile(reason: let reason): + case .invalidFile(let reason): return "error: Unable to parse file. \(reason)" - case .unsupportedFileType: - return "error: Unsupported file type. The supported file types are CLR, TXT, XML and JSON" + case .unsupportedFileType(let supported): + return "error: Unsupported file type. The supported file types are: \(supported.joined(separator: ", "))" } } } @@ -45,7 +45,7 @@ public final class ColorsFileParser { public func parseFile(at path: Path) throws { guard let parserType = parsers[path.extension?.lowercased() ?? ""] else { - throw ColorsParserError.unsupportedFileType + throw ColorsParserError.unsupportedFileType(supported: Array(parsers.keys)) } let parser = parserType.init()