Преглед изворни кода

Merge pull request #266 from MhdHejazi/stable

Swift 4 support.
Damian Kołakowski пре 8 година
родитељ
комит
647e5df84e
3 измењених фајлова са 14 додато и 14 уклоњено
  1. 6 6
      Sources/HttpParser.swift
  2. 4 4
      Sources/HttpRouter.swift
  3. 4 4
      Sources/Scopes.swift

+ 6 - 6
Sources/HttpParser.swift

@@ -33,27 +33,27 @@ public class HttpParser {
     }
     
     private func extractQueryParams(_ url: String) -> [(String, String)] {
-        guard let questionMark = url.characters.index(of: "?") else {
+        guard let questionMark = url.index(of: "?") else {
             return []
         }
-        let queryStart = url.characters.index(after: questionMark)
+        let queryStart = url.index(after: questionMark)
         guard url.endIndex > queryStart else {
             return []
         }
-        let query = String(url.characters[queryStart..<url.endIndex])
+        let query = String(url[queryStart..<url.endIndex])
         return query.components(separatedBy: "&")
             .reduce([(String, String)]()) { (c, s) -> [(String, String)] in
-                guard let nameEndIndex = s.characters.index(of: "=") else {
+                guard let nameEndIndex = s.index(of: "=") else {
                     return c
                 }
-                guard let name = String(s.characters[s.startIndex..<nameEndIndex]).removingPercentEncoding else {
+                guard let name = String(s[s.startIndex..<nameEndIndex]).removingPercentEncoding else {
                     return c
                 }
                 let valueStartIndex = s.index(nameEndIndex, offsetBy: 1)
                 guard valueStartIndex < s.endIndex else {
                     return c + [(name, "")]
                 }
-                guard let value = String(s.characters[valueStartIndex..<s.endIndex]).removingPercentEncoding else {
+                guard let value = String(s[valueStartIndex..<s.endIndex]).removingPercentEncoding else {
                     return c + [(name, "")]
                 }
                 return c + [(name, value)]

+ 4 - 4
Sources/HttpRouter.swift

@@ -83,7 +83,7 @@ open class HttpRouter {
     private func findHandler(_ node: inout Node, params: inout [String: String], generator: inout IndexingIterator<[String]>) -> ((HttpRequest) -> HttpResponse)? {
         guard let pathToken = generator.next()?.removingPercentEncoding else {
             // if it's the last element of the requested URL, check if there is a pattern with variable tail.
-            if let variableNode = node.nodes.filter({ $0.0.characters.first == ":" }).first {
+            if let variableNode = node.nodes.filter({ $0.0.first == ":" }).first {
                 if variableNode.value.nodes.isEmpty {
                     params[variableNode.0] = ""
                     return variableNode.value.handler
@@ -91,13 +91,13 @@ open class HttpRouter {
             }
             return node.handler
         }
-        let variableNodes = node.nodes.filter { $0.0.characters.first == ":" }
+        let variableNodes = node.nodes.filter { $0.0.first == ":" }
         if let variableNode = variableNodes.first {
             if variableNode.1.nodes.count == 0 {
                 // if it's the last element of the pattern and it's a variable, stop the search and
                 // append a tail as a value for the variable.
                 let tail = generator.joined(separator: "/")
-                if tail.characters.count > 0 {
+                if tail.count > 0 {
                     params[variableNode.0] = pathToken + "/" + tail
                 } else {
                     params[variableNode.0] = pathToken
@@ -135,7 +135,7 @@ open class HttpRouter {
 extension String {
     
     public func split(_ separator: Character) -> [String] {
-        return self.characters.split { $0 == separator }.map(String.init)
+        return self.split { $0 == separator }.map(String.init)
     }
     
 }

+ 4 - 4
Sources/Scopes.swift

@@ -727,11 +727,11 @@ private func evaluate(_ node: String, _ attrs: [String: String?] = [:], _ c: Clo
         mergedAttributes.updateValue(item.element.1, forKey: item.element.0)
     }
     
-    output = output + mergedAttributes.reduce("") {
-        if let value = $0.1.1 {
-            return $0.0 + " \($0.1.0)=\"\(value)\""
+    output = output + mergedAttributes.reduce("") { result, item in
+        if let value = item.value {
+            return result + " \(item.key)=\"\(value)\""
         } else {
-            return $0.0
+            return result
         }
     }