From ccad13a1edb9858574a23f8449407c75b3d29e45 Mon Sep 17 00:00:00 2001 From: Erik Date: Thu, 3 Dec 2015 21:01:43 -0500 Subject: [PATCH] use pattern matching, thanks @NachoSoto --- Source/SocketIOClientOption.swift | 70 +++++++++++++++---------------- 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/Source/SocketIOClientOption.swift b/Source/SocketIOClientOption.swift index 784a06b..80d24a7 100644 --- a/Source/SocketIOClientOption.swift +++ b/Source/SocketIOClientOption.swift @@ -60,41 +60,41 @@ public enum SocketIOClientOption: ClientOption { } static func keyValueToSocketIOClientOption(key: String, value: AnyObject) -> SocketIOClientOption? { - switch key { - case "connectParams" where value is [String: AnyObject]: - return .ConnectParams(value as! [String: AnyObject]) - case "reconnects" where value is Bool: - return .Reconnects(value as! Bool) - case "reconnectAttempts" where value is Int: - return .ReconnectAttempts(value as! Int) - case "reconnectWait" where value is Int: - return .ReconnectWait(value as! Int) - case "forceNew" where value is Bool: - return .ForceNew(value as! Bool) - case "forcePolling" where value is Bool: - return .ForcePolling(value as! Bool) - case "forceWebsockets" where value is Bool: - return .ForceWebsockets(value as! Bool) - case "nsp" where value is String: - return .Nsp(value as! String) - case "cookies" where value is [NSHTTPCookie]: - return .Cookies(value as! [NSHTTPCookie]) - case "log" where value is Bool: - return .Log(value as! Bool) - case "logger" where value is SocketLogger: - return .Logger(value as! SocketLogger) - case "sessionDelegate" where value is NSURLSessionDelegate: - return .SessionDelegate(value as! NSURLSessionDelegate) - case "path" where value is String: - return .Path(value as! String) - case "extraHeaders" where value is [String: String]: - return .ExtraHeaders(value as! [String: String]) - case "handleQueue" where value is dispatch_queue_t: - return .HandleQueue(value as! dispatch_queue_t) - case "voipEnabled" where value is Bool: - return .VoipEnabled(value as! Bool) - case "secure" where value is Bool: - return .Secure(value as! Bool) + switch (key, value) { + case ("connectParams", let params as [String: AnyObject]): + return .ConnectParams(params) + case ("reconnects", let reconnects as Bool): + return .Reconnects(reconnects) + case ("reconnectAttempts", let attempts as Int): + return .ReconnectAttempts(attempts) + case ("reconnectWait", let wait as Int): + return .ReconnectWait(wait) + case ("forceNew", let force as Bool): + return .ForceNew(force) + case ("forcePolling", let force as Bool): + return .ForcePolling(force) + case ("forceWebsockets", let force as Bool): + return .ForceWebsockets(force) + case ("nsp", let nsp as String): + return .Nsp(nsp) + case ("cookies", let cookies as [NSHTTPCookie]): + return .Cookies(cookies) + case ("log", let log as Bool): + return .Log(log) + case ("logger", let logger as SocketLogger): + return .Logger(logger) + case ("sessionDelegate", let delegate as NSURLSessionDelegate): + return .SessionDelegate(delegate) + case ("path", let path as String): + return .Path(path) + case ("extraHeaders", let headers as [String: String]): + return .ExtraHeaders(headers) + case ("handleQueue", let queue as dispatch_queue_t): + return .HandleQueue(queue) + case ("voipEnabled", let enable as Bool): + return .VoipEnabled(enable) + case ("secure", let secure as Bool): + return .Secure(secure) default: return nil }