clean up code style
This commit is contained in:
parent
12f607e3c3
commit
91cc683b5b
@ -8,10 +8,10 @@
|
|||||||
|
|
||||||
import Foundation
|
import Foundation
|
||||||
|
|
||||||
struct GenericParser {
|
struct GenericSocketParser {
|
||||||
let message: String
|
let message: String
|
||||||
var currentIndex:Int
|
var currentIndex: Int
|
||||||
var messageCharacters: Array<Character> {
|
var messageCharacters: [Character] {
|
||||||
get {
|
get {
|
||||||
return Array(message.characters)
|
return Array(message.characters)
|
||||||
}
|
}
|
||||||
|
|||||||
@ -14,7 +14,7 @@ class SocketAckManagerTest: XCTestCase {
|
|||||||
func testAddAcks() {
|
func testAddAcks() {
|
||||||
let callbackExpection = self.expectationWithDescription("callbackExpection")
|
let callbackExpection = self.expectationWithDescription("callbackExpection")
|
||||||
let itemsArray = ["Hi", "ho"]
|
let itemsArray = ["Hi", "ho"]
|
||||||
func callback(items:NSArray?) {
|
func callback(items: NSArray?) {
|
||||||
callbackExpection.fulfill()
|
callbackExpection.fulfill()
|
||||||
items?.isEqualToArray(itemsArray)
|
items?.isEqualToArray(itemsArray)
|
||||||
}
|
}
|
||||||
|
|||||||
@ -77,7 +77,7 @@ class SocketParserTest: XCTestCase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func testGenericParser() {
|
func testGenericParser() {
|
||||||
var parser = GenericParser(message: "61-/swift,", currentIndex: 0)
|
var parser = GenericSocketParser(message: "61-/swift,", currentIndex: 0)
|
||||||
XCTAssertEqual(parser.read(1), "6")
|
XCTAssertEqual(parser.read(1), "6")
|
||||||
XCTAssertEqual(parser.currentCharacter, "1")
|
XCTAssertEqual(parser.currentCharacter, "1")
|
||||||
XCTAssertEqual(parser.readUntilStringOccurence("-"), "1")
|
XCTAssertEqual(parser.readUntilStringOccurence("-"), "1")
|
||||||
|
|||||||
@ -61,9 +61,10 @@ class SocketParser {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Translation of socket.io-client#decodeString
|
// Translation of socket.io-client#decodeString
|
||||||
static func parseString(str: String) throws -> SocketPacket {
|
static func parseString(message: String) throws -> SocketPacket {
|
||||||
var parser = GenericParser(message: str, currentIndex: 0)
|
var parser = GenericSocketParser(message: message, currentIndex: 0)
|
||||||
guard let typeString = parser.read(1), let type = SocketPacket.PacketType(str: typeString) else {
|
guard let typeString = parser.read(1),
|
||||||
|
let type = SocketPacket.PacketType(str: typeString) else {
|
||||||
throw SocketParserError.InvalidMessageType
|
throw SocketParserError.InvalidMessageType
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -71,24 +72,25 @@ class SocketParser {
|
|||||||
return SocketPacket(type: type, nsp: "/")
|
return SocketPacket(type: type, nsp: "/")
|
||||||
}
|
}
|
||||||
|
|
||||||
var nsp:String?
|
var namespace: String?
|
||||||
var placeholders = -1
|
var placeholders = -1
|
||||||
|
|
||||||
if type == .BinaryEvent || type == .BinaryAck {
|
if type == .BinaryEvent || type == .BinaryAck {
|
||||||
if let buffer = parser.readUntilStringOccurence("-"), let holders = Int(buffer) where parser.read(1)! == "-" {
|
if let buffer = parser.readUntilStringOccurence("-"), let holders = Int(buffer)
|
||||||
|
where parser.read(1)! == "-" {
|
||||||
placeholders = holders
|
placeholders = holders
|
||||||
} else {
|
} else {
|
||||||
throw SocketParserError.InvalidBinaryPalceholder
|
throw SocketParserError.InvalidBinaryPalceholder
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if parser.currentCharacter == "/" {
|
if parser.currentCharacter == "/" {
|
||||||
nsp = parser.readUntilStringOccurence(",") ?? parser.readUntilEnd()
|
namespace = parser.readUntilStringOccurence(",") ?? parser.readUntilEnd()
|
||||||
parser.currentIndex++
|
parser.currentIndex++
|
||||||
}
|
}
|
||||||
|
|
||||||
if parser.currentIndex >= parser.messageCharacters.count {
|
if parser.currentIndex >= parser.messageCharacters.count {
|
||||||
return SocketPacket(type: type, id: -1,
|
return SocketPacket(type: type, id: -1,
|
||||||
nsp: nsp ?? "/", placeholders: placeholders)
|
nsp: namespace ?? "/", placeholders: placeholders)
|
||||||
}
|
}
|
||||||
|
|
||||||
var idString = ""
|
var idString = ""
|
||||||
@ -101,12 +103,12 @@ class SocketParser {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let d = str[str.startIndex.advancedBy(parser.currentIndex + 1)...str.startIndex.advancedBy(str.characters.count - 1)]
|
let d = message[message.startIndex.advancedBy(parser.currentIndex + 1)...message.startIndex.advancedBy(message.characters.count - 1)]
|
||||||
let noPlaceholders = d["(\\{\"_placeholder\":true,\"num\":(\\d*)\\})"] ~= "\"~~$2\""
|
let noPlaceholders = d["(\\{\"_placeholder\":true,\"num\":(\\d*)\\})"] ~= "\"~~$2\""
|
||||||
let data = SocketParser.parseData(noPlaceholders) as? [AnyObject] ?? [noPlaceholders]
|
let data = parseData(noPlaceholders) as? [AnyObject] ?? [noPlaceholders]
|
||||||
|
|
||||||
return SocketPacket(type: type, data: data, id: Int(idString) ?? -1,
|
return SocketPacket(type: type, data: data, id: Int(idString) ?? -1,
|
||||||
nsp: nsp ?? "/", placeholders: placeholders)
|
nsp: namespace ?? "/", placeholders: placeholders)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Parses data for events
|
// Parses data for events
|
||||||
@ -122,13 +124,13 @@ class SocketParser {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Parses messages recieved
|
// Parses messages recieved
|
||||||
static func parseSocketMessage(stringMessage: String, socket: SocketIOClient) {
|
static func parseSocketMessage(message: String, socket: SocketIOClient) {
|
||||||
guard !stringMessage.isEmpty else { return }
|
guard !message.isEmpty else { return }
|
||||||
|
|
||||||
Logger.log("Parsing %@", type: "SocketParser", args: stringMessage)
|
Logger.log("Parsing %@", type: "SocketParser", args: message)
|
||||||
|
|
||||||
do {
|
do {
|
||||||
let pack = try parseString(stringMessage)
|
let pack = try parseString(message)
|
||||||
Logger.log("Decoded packet as: %@", type: "SocketParser", args: pack.description)
|
Logger.log("Decoded packet as: %@", type: "SocketParser", args: pack.description)
|
||||||
|
|
||||||
switch pack.type {
|
switch pack.type {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user