clean up code style

This commit is contained in:
Lukas Schmidt 2015-09-07 20:25:13 +02:00
parent 12f607e3c3
commit 91cc683b5b
4 changed files with 21 additions and 19 deletions

View File

@ -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)
} }

View File

@ -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)
} }

View File

@ -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")

View File

@ -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 {