0001 // 0002 // String+Misc.swift 0003 // Swifter 0004 // 0005 // Copyright (c) 2014-2016 Damian KoĊakowski. All rights reserved. 0006 // 0007 0008 #if os(Linux) 0009 import Glibc 0010 #else 0011 import Foundation 0012 #endif 0013 0014 extension String { 0015 0016 public func split(separator: Character) -> [String] { 0017 return self.characters.split { $0 == separator }.map(String.init) 0018 } 0019 0020 public func split
HttpHandlers+Files.swift:58 let rangeStringExploded = rangeString.split("-")HttpParser.swift:24 let statusLineTokens = statusLine.split(" ")HttpParser.swift:40 guard let query = url.split("?").last else {HttpParser.swift:43 return query.split("&").reduce([(String, String)]()) { (c, s) -> [(String, String)] inHttpRequest.swift:24 return headerValue.split(",").filter({ $0.trim().lowercaseString == token }).count > 0HttpRequest.swift:31 let contentTypeHeaderTokens = contentTypeHeader.split(";").map { $0.trim() }HttpRequest.swift:35 return String.fromUInt8(body).split("&").map { param -> (String, String) inHttpRequest.swift:36 let tokens = param.split("=")HttpRequest.swift:63 let headerValueParams = header.value.split(";").map { $0.trim() }HttpRequest.swift:79 let contentTypeHeaderTokens = contentTypeHeader.split(";").map { $0.trim() }HttpRequest.swift:85 let tokens = $0.split("=")HttpRequest.swift:115 let tokens = line.split(":")HttpRouter.swift:39 var pathSegments = stripQuery(path).split("/")HttpRouter.swift:51 let pathSegments = (method + "/" + stripQuery(path)).split("/")HttpRouter.swift:58 let pathSegments = ("*/" + stripQuery(path)).split("/")HttpRouter.swift:109 if let path = path.split("?").first {(maxSplit: Int = Int.max, separator: Character) -> [String] { 0021 return self.characters.split(maxSplit) { $0 == separator }.map(String.init) 0022 } 0023 0024 public func replace
HttpParser.swift:44 let tokens = s.split(1, separator: "=")HttpParser.swift:65 let headerTokens = headerLine.split(1, separator: ":")HttpRequest.swift:65 let parameterTokens = token.split(1, separator: "=")(old: Character, _ new: Character) -> String { 0025 var buffer = [Character]() 0026 self.characters.forEach { buffer.append($0 == old ? new : $0) } 0027 return String(buffer) 0028 } 0029 0030 public func unquote
HttpRequest.swift:38 return (name.replace("+", " ").removePercentEncoding(),HttpRequest.swift:39 value.replace("+", " ").removePercentEncoding())() -> String { 0031 var scalars = self.unicodeScalars; 0032 if scalars.first == "\"" && scalars.last == "\"" && scalars.count >= 2 { 0033 scalars.removeFirst(); 0034 scalars.removeLast(); 0035 return String(scalars) 0036 } 0037 return self 0038 } 0039 0040 public func trim
HttpRequest.swift:51 return valueFor("content-disposition", parameter: "name")?.unquote()HttpRequest.swift:55 return valueFor("content-disposition", parameter: "filename")?.unquote()() -> String { 0041 var scalars = self.unicodeScalars 0042 while let _ = scalars.first?.asWhitespace() { scalars.removeFirst() } 0043 while let _ = scalars.last?.asWhitespace() { scalars.removeLast() } 0044 return String(scalars) 0045 } 0046 0047 public static func fromUInt8
HttpParser.swift:67 headers[name.lowercaseString] = value.trim()HttpParser.swift:74 return "keep-alive" == value.trim()HttpRequest.swift:24 return headerValue.split(",").filter({ $0.trim().lowercaseString == token }).count > 0HttpRequest.swift:31 let contentTypeHeaderTokens = contentTypeHeader.split(";").map { $0.trim() }HttpRequest.swift:63 let headerValueParams = header.value.split(";").map { $0.trim() }HttpRequest.swift:79 let contentTypeHeaderTokens = contentTypeHeader.split(";").map { $0.trim() }HttpRequest.swift:117 headers[name.lowercaseString] = value.trim()(array: [UInt8]) -> String { 0048 // Apple changes the definition of String(data: .... ) every release so let's stay with 'fromUInt8(...)' wrapper. 0049 return array.reduce("", combine: { $0.0 + String(UnicodeScalar($0.1)) }) 0050 } 0051 0052 public func removePercentEncoding
HttpHandlers+WebSockets.swift:31 handleText(session, String.fromUInt8(frame.payload))HttpRequest.swift:35 return String.fromUInt8(body).split("&").map { param -> (String, String) inString+BASE64.swift:48 return String.fromUInt8(result)String+Misc.swift:64 output.appendContentsOf(String.fromUInt8(decodeBuffer))String+Misc.swift:72 output.appendContentsOf(String.fromUInt8(decodeBuffer))String+Misc.swift:79 output.appendContentsOf(String.fromUInt8(decodeBuffer))() -> String { 0053 var scalars = self.unicodeScalars 0054 var output = "" 0055 var decodeBuffer = [UInt8]() 0056 while let scalar = scalars.popFirst() { 0057 if scalar == "%" { 0058 let first = scalars.popFirst() 0059 let secon = scalars.popFirst() 0060 if let first = first?.asAlpha(), secon = secon?.asAlpha() { 0061 decodeBuffer.append(first*16+secon) 0062 } else { 0063 if !decodeBuffer.isEmpty { 0064 output.appendContentsOf(String.fromUInt8(decodeBuffer)) 0065 decodeBuffer.removeAll() 0066 } 0067 if let first = first { output.append(Character(first)) } 0068 if let secon = secon { output.append(Character(secon)) } 0069 } 0070 } else { 0071 if !decodeBuffer.isEmpty { 0072 output.appendContentsOf(String.fromUInt8(decodeBuffer)) 0073 decodeBuffer.removeAll() 0074 } 0075 output.append(Character(scalar)) 0076 } 0077 } 0078 if !decodeBuffer.isEmpty { 0079 output.appendContentsOf(String.fromUInt8(decodeBuffer)) 0080 decodeBuffer.removeAll() 0081 } 0082 return output 0083 } 0084 } 0085 0086 extension UnicodeScalar { 0087 0088 public func asWhitespace
HttpParser.swift:46 return c + [(name.removePercentEncoding(), value.removePercentEncoding())]HttpParser.swift:46 return c + [(name.removePercentEncoding(), value.removePercentEncoding())]HttpRequest.swift:38 return (name.replace("+", " ").removePercentEncoding(),HttpRequest.swift:39 value.replace("+", " ").removePercentEncoding())() -> UInt8? { 0089 if self.value >= 9 && self.value <= 13 { 0090 return UInt8(self.value) 0091 } 0092 if self.value == 32 { 0093 return UInt8(self.value) 0094 } 0095 return nil 0096 } 0097 0098 public func asAlpha
String+Misc.swift:42 while let _ = scalars.first?.asWhitespace() { scalars.removeFirst() }String+Misc.swift:43 while let _ = scalars.last?.asWhitespace() { scalars.removeLast() }() -> UInt8? { 0099 if self.value >= 48 && self.value <= 57 { 0100 return UInt8(self.value) - 48 0101 } 0102 if self.value >= 97 && self.value <= 102 { 0103 return UInt8(self.value) - 87 0104 } 0105 if self.value >= 65 && self.value <= 70 { 0106 return UInt8(self.value) - 55 0107 } 0108 return nil 0109 } 0110 } 0111
String+Misc.swift:60 if let first = first?.asAlpha(), secon = secon?.asAlpha() {String+Misc.swift:60 if let first = first?.asAlpha(), secon = secon?.asAlpha() {