Răsfoiți Sursa

Changes responseData to "requestBody".
Fixed compilation errors.
Quick fix for '<unknown>:0: error: cannot invoke 'subscript' with an argument list of type '($T5, Builtin.RawPointer)''

Damian Kołakowski 11 ani în urmă
părinte
comite
86ee0cfbe6

+ 8 - 9
Common/HttpParser.swift

@@ -10,10 +10,10 @@ import Foundation
 class HttpParser {
     
     class func err(reason:String) -> NSError {
-        return NSError.errorWithDomain("HTTP_PARSER", code: 0, userInfo:[NSLocalizedFailureReasonErrorKey : reason])
+        return NSError(domain: "HTTP_PARSER", code: 0, userInfo:[NSLocalizedFailureReasonErrorKey : reason])
     }
 
-    func nextHttpRequest(socket: CInt, error:NSErrorPointer = nil) -> HttpRequest? { //(String, String, Dictionary<String, String>)? {
+    func nextHttpRequest(socket: CInt, error:NSErrorPointer = nil) -> HttpRequest? {
         if let statusLine = nextLine(socket, error: error) {
             let statusTokens = split(statusLine, { $0 == " " })
             println(statusTokens)
@@ -24,17 +24,16 @@ class HttpParser {
             let method = statusTokens[0]
             let path = statusTokens[1]
             if let headers = nextHeaders(socket, error: error) {
-                var responseString = ""
-                while let line = nextLine(socket, error: error)
-                {
+                var requestBody = ""
+                while let line = nextLine(socket, error: error) {
                     if line.isEmpty {
                         break
                     }
-                    responseString += line
+                    requestBody += line
                 }
-                println(responseString)
-                let responseData = responseString.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: true)
-                return HttpRequest(url: path, method: method, headers: headers, responseData: responseData)
+                println(requestBody)
+                let body = requestBody.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: true)
+                return HttpRequest(url: path, method: method, headers: headers, body: body)
             }
         }
         return nil

+ 1 - 1
Common/HttpRequest.swift

@@ -12,5 +12,5 @@ struct HttpRequest {
     let url: String
     let method: String
     let headers: Dictionary<String, String>
-	let responseData: NSData?
+	let body: NSData?
 }

+ 20 - 20
Common/HttpServer.swift

@@ -28,7 +28,7 @@ class HttpServer
             return nil
         }
         set ( newValue ) {
-            if let regex: NSRegularExpression = NSRegularExpression.regularExpressionWithPattern(path, options: expressionOptions, error: nil) {
+            if let regex: NSRegularExpression = NSRegularExpression(pattern: path, options: expressionOptions, error: nil) {
                 if let newHandler = newValue {
                     handlers.append(expression: regex, handler: newHandler)
                 }
@@ -36,25 +36,25 @@ class HttpServer
         }
     }
     
-    subscript (path: String) -> String {
-        get {
-            return path
-        }
-        set ( directoryPath ) {
-            if let regex = NSRegularExpression.regularExpressionWithPattern(path, options: expressionOptions, error: nil) {
-                handlers.append(expression: regex, handler: { request in
-                    let result = regex.firstMatchInString(request.url, options: self.matchingOptions, range: NSMakeRange(0, request.url.lengthOfBytesUsingEncoding(NSASCIIStringEncoding)))
-                    let nsPath: NSString = request.url
-                    let filesPath = directoryPath.stringByExpandingTildeInPath
-                        .stringByAppendingPathComponent(nsPath.substringWithRange(result!.rangeAtIndex(1)))
-                    if let fileBody = String.stringWithContentsOfFile(filesPath, encoding: NSASCIIStringEncoding, error: nil) {
-                        return HttpResponse.OK(.RAW(fileBody))
-                    }
-                    return HttpResponse.NotFound
-                })
-            }
-        }
-    }
+//    subscript (asdasd: String) -> String {
+//        get {
+//            return asdasd
+//        }
+//        set ( directoryPath ) {
+//            if let regex = NSRegularExpression(pattern: asdasd, options: expressionOptions, error: nil) {
+//                handlers.append(expression: regex, handler: { request in
+//                    let result = regex.firstMatchInString(request.url, options: self.matchingOptions, range: NSMakeRange(0, request.url.lengthOfBytesUsingEncoding(NSASCIIStringEncoding)))
+//                    let nsPath: NSString = request.url
+//                    let filesPath = directoryPath.stringByExpandingTildeInPath
+//                        .stringByAppendingPathComponent(nsPath.substringWithRange(result!.rangeAtIndex(1)))
+//                    if let fileBody = String(contentsOfFile: filesPath, encoding: NSUTF8StringEncoding, error: nil) {
+//                        return HttpResponse.OK(.RAW(fileBody))
+//                    }
+//                    return HttpResponse.NotFound
+//                })
+//            }
+//        }
+//    }
     
     func routes() -> Array<String> {
         var results = [String]()

+ 2 - 2
Common/Socket.swift

@@ -14,9 +14,9 @@ struct Socket {
     static func socketLastError(reason:String) -> NSError {
         let errorCode = errno
         if let errorText = String.fromCString(UnsafePointer(strerror(errorCode))) {
-            return NSError.errorWithDomain("SOCKET", code: Int(errorCode), userInfo: [NSLocalizedFailureReasonErrorKey : reason, NSLocalizedDescriptionKey : errorText])
+            return NSError(domain: "SOCKET", code: Int(errorCode), userInfo: [NSLocalizedFailureReasonErrorKey : reason, NSLocalizedDescriptionKey : errorText])
         }
-        return NSError.errorWithDomain("SOCKET", code: Int(errorCode), userInfo: nil)
+        return NSError(domain: "SOCKET", code: Int(errorCode), userInfo: nil)
     }
     
     static func tcpForListen(port: in_port_t = 8080, error:NSErrorPointer = nil) -> CInt? {

+ 9 - 9
Swifter.xcodeproj/project.xcworkspace/xcshareddata/Swifter.xccheckout

@@ -10,31 +10,31 @@
 	<string>Swifter</string>
 	<key>IDESourceControlProjectOriginsDictionary</key>
 	<dict>
-		<key>9BA50FC1-8933-46EC-8469-51B02ED36C86</key>
-		<string>ssh://github.com/glock45/swifter.git</string>
+		<key>75224C288D14A799245F99223249EF48FF5DC280</key>
+		<string>github.com:glock45/swifter.git</string>
 	</dict>
 	<key>IDESourceControlProjectPath</key>
-	<string>Swifter.xcodeproj/project.xcworkspace</string>
+	<string>Swifter.xcodeproj</string>
 	<key>IDESourceControlProjectRelativeInstallPathDictionary</key>
 	<dict>
-		<key>9BA50FC1-8933-46EC-8469-51B02ED36C86</key>
+		<key>75224C288D14A799245F99223249EF48FF5DC280</key>
 		<string>../..</string>
 	</dict>
 	<key>IDESourceControlProjectURL</key>
-	<string>ssh://github.com/glock45/swifter.git</string>
+	<string>github.com:glock45/swifter.git</string>
 	<key>IDESourceControlProjectVersion</key>
-	<integer>110</integer>
+	<integer>111</integer>
 	<key>IDESourceControlProjectWCCIdentifier</key>
-	<string>9BA50FC1-8933-46EC-8469-51B02ED36C86</string>
+	<string>75224C288D14A799245F99223249EF48FF5DC280</string>
 	<key>IDESourceControlProjectWCConfigurations</key>
 	<array>
 		<dict>
 			<key>IDESourceControlRepositoryExtensionIdentifierKey</key>
 			<string>public.vcs.git</string>
 			<key>IDESourceControlWCCIdentifierKey</key>
-			<string>9BA50FC1-8933-46EC-8469-51B02ED36C86</string>
+			<string>75224C288D14A799245F99223249EF48FF5DC280</string>
 			<key>IDESourceControlWCCName</key>
-			<string>Swifter</string>
+			<string>swifter</string>
 		</dict>
 	</array>
 </dict>

BIN
Swifter.xcodeproj/project.xcworkspace/xcuserdata/damiankolakowski.xcuserdatad/UserInterfaceState.xcuserstate


+ 108 - 58
Swifter.xcodeproj/xcuserdata/damiankolakowski.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist

@@ -199,42 +199,42 @@
             shouldBeEnabled = "No"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
-            filePath = "Common/HttpServer.swift"
-            timestampString = "430108876.844745"
+            filePath = "Common/HttpResponse.swift"
+            timestampString = "430110038.828632"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "44"
-            endingLineNumber = "44"
-            landmarkName = "HttpServer"
-            landmarkType = "3">
+            startingLineNumber = "35"
+            endingLineNumber = "35"
+            landmarkName = "data()"
+            landmarkType = "5">
             <Locations>
                <Location
                   shouldBeEnabled = "No"
                   ignoreCount = "0"
                   continueAfterRunningActions = "No"
-                  symbolName = "SwifterOSX.HttpServer.subscript.setter (Swift.String) -&gt; Swift.String"
+                  symbolName = "SwifterOSX.HttpResponseBody.data (SwifterOSX.HttpResponseBody)() -&gt; Swift.Optional&lt;Swift.String&gt;"
                   moduleName = "SwifterOSX"
-                  urlString = "file:///Users/damiankolakowski/Desktop/Swifter/Common/HttpServer.swift"
-                  timestampString = "430108980.866628"
+                  urlString = "file:///Users/damiankolakowski/Desktop/Swifter/Common/HttpResponse.swift"
+                  timestampString = "430110038.833456"
                   startingColumnNumber = "9223372036854775807"
                   endingColumnNumber = "9223372036854775807"
-                  startingLineNumber = "44"
-                  endingLineNumber = "44"
-                  offsetFromSymbolStart = "43">
+                  startingLineNumber = "35"
+                  endingLineNumber = "35"
+                  offsetFromSymbolStart = "3084">
                </Location>
                <Location
                   shouldBeEnabled = "No"
                   ignoreCount = "0"
                   continueAfterRunningActions = "No"
-                  symbolName = "SwifterOSX.HttpServer.subscript.setter (Swift.String) -&gt; Swift.String"
+                  symbolName = "SwifterOSX.HttpResponseBody.data (SwifterOSX.HttpResponseBody)() -&gt; Swift.Optional&lt;Swift.String&gt;"
                   moduleName = "SwifterOSX"
-                  urlString = "file:///Users/damiankolakowski/Desktop/Swifter/Common/HttpServer.swift"
-                  timestampString = "430108980.866808"
+                  urlString = "file:///Users/damiankolakowski/Desktop/Swifter/Common/HttpResponse.swift"
+                  timestampString = "430110038.833645"
                   startingColumnNumber = "9223372036854775807"
                   endingColumnNumber = "9223372036854775807"
-                  startingLineNumber = "44"
-                  endingLineNumber = "44"
-                  offsetFromSymbolStart = "850">
+                  startingLineNumber = "35"
+                  endingLineNumber = "35"
+                  offsetFromSymbolStart = "3643">
                </Location>
             </Locations>
          </BreakpointContent>
@@ -246,13 +246,13 @@
             ignoreCount = "0"
             continueAfterRunningActions = "No"
             filePath = "Common/HttpServer.swift"
-            timestampString = "430111339.558837"
+            timestampString = "437337013.97942"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "46"
-            endingLineNumber = "46"
-            landmarkName = "HttpServer"
-            landmarkType = "3">
+            startingLineNumber = "68"
+            endingLineNumber = "68"
+            landmarkName = "start(listenPort:error:)"
+            landmarkType = "5">
          </BreakpointContent>
       </BreakpointProxy>
       <BreakpointProxy
@@ -261,44 +261,94 @@
             shouldBeEnabled = "No"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
-            filePath = "Common/HttpResponse.swift"
-            timestampString = "430110038.828632"
+            filePath = "Common/HttpServer.swift"
+            timestampString = "437337022.402616"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "35"
-            endingLineNumber = "35"
-            landmarkName = "data()"
+            startingLineNumber = "70"
+            endingLineNumber = "70"
+            landmarkName = "start(listenPort:error:)"
+            landmarkType = "5">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "Common/HttpServer.swift"
+            timestampString = "437337567.88339"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "72"
+            endingLineNumber = "72"
+            landmarkName = "start(listenPort:error:)"
+            landmarkType = "5">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "Common/HttpServer.swift"
+            timestampString = "437337586.685501"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "74"
+            endingLineNumber = "74"
+            landmarkName = "start(listenPort:error:)"
+            landmarkType = "5">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "Common/HttpServer.swift"
+            timestampString = "437337595.019408"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "76"
+            endingLineNumber = "76"
+            landmarkName = "start(listenPort:error:)"
+            landmarkType = "5">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "Common/HttpServer.swift"
+            timestampString = "437337595.807238"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "78"
+            endingLineNumber = "78"
+            landmarkName = "start(listenPort:error:)"
+            landmarkType = "5">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "Common/HttpServer.swift"
+            timestampString = "437337638.220209"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "79"
+            endingLineNumber = "79"
+            landmarkName = "start(listenPort:error:)"
             landmarkType = "5">
-            <Locations>
-               <Location
-                  shouldBeEnabled = "No"
-                  ignoreCount = "0"
-                  continueAfterRunningActions = "No"
-                  symbolName = "SwifterOSX.HttpResponseBody.data (SwifterOSX.HttpResponseBody)() -&gt; Swift.Optional&lt;Swift.String&gt;"
-                  moduleName = "SwifterOSX"
-                  urlString = "file:///Users/damiankolakowski/Desktop/Swifter/Common/HttpResponse.swift"
-                  timestampString = "430110038.833456"
-                  startingColumnNumber = "9223372036854775807"
-                  endingColumnNumber = "9223372036854775807"
-                  startingLineNumber = "35"
-                  endingLineNumber = "35"
-                  offsetFromSymbolStart = "3084">
-               </Location>
-               <Location
-                  shouldBeEnabled = "No"
-                  ignoreCount = "0"
-                  continueAfterRunningActions = "No"
-                  symbolName = "SwifterOSX.HttpResponseBody.data (SwifterOSX.HttpResponseBody)() -&gt; Swift.Optional&lt;Swift.String&gt;"
-                  moduleName = "SwifterOSX"
-                  urlString = "file:///Users/damiankolakowski/Desktop/Swifter/Common/HttpResponse.swift"
-                  timestampString = "430110038.833645"
-                  startingColumnNumber = "9223372036854775807"
-                  endingColumnNumber = "9223372036854775807"
-                  startingLineNumber = "35"
-                  endingLineNumber = "35"
-                  offsetFromSymbolStart = "3643">
-               </Location>
-            </Locations>
          </BreakpointContent>
       </BreakpointProxy>
    </Breakpoints>

+ 3 - 3
Swifter/AppDelegate.swift

@@ -16,9 +16,9 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
     let server: HttpServer = HttpServer()
     
     func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: NSDictionary?) -> Bool {
-        if let resDir = NSBundle.mainBundle().resourcePath {
-            server["/resources/(.+)"] = resDir
-        }
+//        if let resDir = NSBundle.mainBundle().resourcePath {
+//            server["/resources/(.+)"] = resDir
+//        }
         server["/test"] = { request in
             var headersInfo = ""
             for (name, value) in request.headers {

+ 1 - 1
SwifterOSX/main.swift

@@ -10,7 +10,7 @@ import Foundation
 
 let server: HttpServer = HttpServer()
 
-server["/resources/(.+)"] = "~/"
+//server["/resources/(.+)"] = "~/"
 
 server["/test"] = { request in
     var headersInfo = ""