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? {
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
}