From 3ec1b93f8eaac874a7fdddfa9156d2e2226185a2 Mon Sep 17 00:00:00 2001 From: Erik Date: Tue, 2 Aug 2016 20:35:41 -0400 Subject: [PATCH] move extensions --- Source/SocketExtensions.swift | 69 +++++++++++++++++++++++++++++++ Source/SocketIOClientOption.swift | 69 ------------------------------- 2 files changed, 69 insertions(+), 69 deletions(-) diff --git a/Source/SocketExtensions.swift b/Source/SocketExtensions.swift index 74f032b..0cf05b3 100644 --- a/Source/SocketExtensions.swift +++ b/Source/SocketExtensions.swift @@ -41,6 +41,75 @@ extension NSCharacterSet { } } +extension NSDictionary { + private static func keyValueToSocketIOClientOption(key: String, value: AnyObject) -> SocketIOClientOption? { + switch (key, value) { + case let ("connectParams", params as [String: AnyObject]): + return .ConnectParams(params) + case let ("cookies", cookies as [NSHTTPCookie]): + return .Cookies(cookies) + case let ("doubleEncodeUTF8", encode as Bool): + return .DoubleEncodeUTF8(encode) + case let ("extraHeaders", headers as [String: String]): + return .ExtraHeaders(headers) + case let ("forceNew", force as Bool): + return .ForceNew(force) + case let ("forcePolling", force as Bool): + return .ForcePolling(force) + case let ("forceWebsockets", force as Bool): + return .ForceWebsockets(force) + case let ("handleQueue", queue as dispatch_queue_t): + return .HandleQueue(queue) + case let ("log", log as Bool): + return .Log(log) + case let ("logger", logger as SocketLogger): + return .Logger(logger) + case let ("nsp", nsp as String): + return .Nsp(nsp) + case let ("path", path as String): + return .Path(path) + case let ("reconnects", reconnects as Bool): + return .Reconnects(reconnects) + case let ("reconnectAttempts", attempts as Int): + return .ReconnectAttempts(attempts) + case let ("reconnectWait", wait as Int): + return .ReconnectWait(wait) + case let ("secure", secure as Bool): + return .Secure(secure) + case let ("security", security as SSLSecurity): + return .Security(security) + case let ("selfSigned", selfSigned as Bool): + return .SelfSigned(selfSigned) + case let ("sessionDelegate", delegate as NSURLSessionDelegate): + return .SessionDelegate(delegate) + case let ("voipEnabled", enable as Bool): + return .VoipEnabled(enable) + default: + return nil + } + } + + func toSocketOptionsSet() -> Set { + var options = Set() + + for (rawKey, value) in self { + if let key = rawKey as? String, opt = NSDictionary.keyValueToSocketIOClientOption(key, value: value) { + options.insertIgnore(opt) + } + } + + return options + } +} + +extension Set where Element : ClientOption { + mutating func insertIgnore(element: Element) { + if !contains(element) { + insert(element) + } + } +} + extension String { func toArray() throws -> [AnyObject] { guard let stringData = dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false) else { return [] } diff --git a/Source/SocketIOClientOption.swift b/Source/SocketIOClientOption.swift index d7a0d8d..bf616ff 100644 --- a/Source/SocketIOClientOption.swift +++ b/Source/SocketIOClientOption.swift @@ -156,72 +156,3 @@ public enum SocketIOClientOption : ClientOption { public func ==(lhs: SocketIOClientOption, rhs: SocketIOClientOption) -> Bool { return lhs.description == rhs.description } - -extension Set where Element : ClientOption { - mutating func insertIgnore(element: Element) { - if !contains(element) { - insert(element) - } - } -} - -extension NSDictionary { - private static func keyValueToSocketIOClientOption(key: String, value: AnyObject) -> SocketIOClientOption? { - switch (key, value) { - case let ("connectParams", params as [String: AnyObject]): - return .ConnectParams(params) - case let ("cookies", cookies as [NSHTTPCookie]): - return .Cookies(cookies) - case let ("doubleEncodeUTF8", encode as Bool): - return .DoubleEncodeUTF8(encode) - case let ("extraHeaders", headers as [String: String]): - return .ExtraHeaders(headers) - case let ("forceNew", force as Bool): - return .ForceNew(force) - case let ("forcePolling", force as Bool): - return .ForcePolling(force) - case let ("forceWebsockets", force as Bool): - return .ForceWebsockets(force) - case let ("handleQueue", queue as dispatch_queue_t): - return .HandleQueue(queue) - case let ("log", log as Bool): - return .Log(log) - case let ("logger", logger as SocketLogger): - return .Logger(logger) - case let ("nsp", nsp as String): - return .Nsp(nsp) - case let ("path", path as String): - return .Path(path) - case let ("reconnects", reconnects as Bool): - return .Reconnects(reconnects) - case let ("reconnectAttempts", attempts as Int): - return .ReconnectAttempts(attempts) - case let ("reconnectWait", wait as Int): - return .ReconnectWait(wait) - case let ("secure", secure as Bool): - return .Secure(secure) - case let ("security", security as SSLSecurity): - return .Security(security) - case let ("selfSigned", selfSigned as Bool): - return .SelfSigned(selfSigned) - case let ("sessionDelegate", delegate as NSURLSessionDelegate): - return .SessionDelegate(delegate) - case let ("voipEnabled", enable as Bool): - return .VoipEnabled(enable) - default: - return nil - } - } - - func toSocketOptionsSet() -> Set { - var options = Set() - - for (rawKey, value) in self { - if let key = rawKey as? String, opt = NSDictionary.keyValueToSocketIOClientOption(key, value: value) { - options.insertIgnore(opt) - } - } - - return options - } -}