use pattern matching, thanks @NachoSoto

This commit is contained in:
Erik 2015-12-03 21:01:43 -05:00
parent bb26ae8637
commit ccad13a1ed

View File

@ -60,41 +60,41 @@ public enum SocketIOClientOption: ClientOption {
} }
static func keyValueToSocketIOClientOption(key: String, value: AnyObject) -> SocketIOClientOption? { static func keyValueToSocketIOClientOption(key: String, value: AnyObject) -> SocketIOClientOption? {
switch key { switch (key, value) {
case "connectParams" where value is [String: AnyObject]: case ("connectParams", let params as [String: AnyObject]):
return .ConnectParams(value as! [String: AnyObject]) return .ConnectParams(params)
case "reconnects" where value is Bool: case ("reconnects", let reconnects as Bool):
return .Reconnects(value as! Bool) return .Reconnects(reconnects)
case "reconnectAttempts" where value is Int: case ("reconnectAttempts", let attempts as Int):
return .ReconnectAttempts(value as! Int) return .ReconnectAttempts(attempts)
case "reconnectWait" where value is Int: case ("reconnectWait", let wait as Int):
return .ReconnectWait(value as! Int) return .ReconnectWait(wait)
case "forceNew" where value is Bool: case ("forceNew", let force as Bool):
return .ForceNew(value as! Bool) return .ForceNew(force)
case "forcePolling" where value is Bool: case ("forcePolling", let force as Bool):
return .ForcePolling(value as! Bool) return .ForcePolling(force)
case "forceWebsockets" where value is Bool: case ("forceWebsockets", let force as Bool):
return .ForceWebsockets(value as! Bool) return .ForceWebsockets(force)
case "nsp" where value is String: case ("nsp", let nsp as String):
return .Nsp(value as! String) return .Nsp(nsp)
case "cookies" where value is [NSHTTPCookie]: case ("cookies", let cookies as [NSHTTPCookie]):
return .Cookies(value as! [NSHTTPCookie]) return .Cookies(cookies)
case "log" where value is Bool: case ("log", let log as Bool):
return .Log(value as! Bool) return .Log(log)
case "logger" where value is SocketLogger: case ("logger", let logger as SocketLogger):
return .Logger(value as! SocketLogger) return .Logger(logger)
case "sessionDelegate" where value is NSURLSessionDelegate: case ("sessionDelegate", let delegate as NSURLSessionDelegate):
return .SessionDelegate(value as! NSURLSessionDelegate) return .SessionDelegate(delegate)
case "path" where value is String: case ("path", let path as String):
return .Path(value as! String) return .Path(path)
case "extraHeaders" where value is [String: String]: case ("extraHeaders", let headers as [String: String]):
return .ExtraHeaders(value as! [String: String]) return .ExtraHeaders(headers)
case "handleQueue" where value is dispatch_queue_t: case ("handleQueue", let queue as dispatch_queue_t):
return .HandleQueue(value as! dispatch_queue_t) return .HandleQueue(queue)
case "voipEnabled" where value is Bool: case ("voipEnabled", let enable as Bool):
return .VoipEnabled(value as! Bool) return .VoipEnabled(enable)
case "secure" where value is Bool: case ("secure", let secure as Bool):
return .Secure(value as! Bool) return .Secure(secure)
default: default:
return nil return nil
} }