Skip to content

Commit e7b50d0

Browse files
committed
Reorganize swift files
1 parent 6da9eda commit e7b50d0

File tree

4 files changed

+101
-84
lines changed

4 files changed

+101
-84
lines changed

APIKit.xcodeproj/project.pbxproj

+12
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,10 @@
3232
7F45FD711A94DA2B006863BB /* LlamaKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7F45FD1C1A94D1B4006863BB /* LlamaKit.framework */; };
3333
7F45FD721A94DA2B006863BB /* LlamaKit.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 7F45FD1C1A94D1B4006863BB /* LlamaKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
3434
7F45FD741A94E832006863BB /* Models.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7F45FD731A94E832006863BB /* Models.swift */; };
35+
7F68ABDA1AC4412E00688D68 /* Request.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7F68ABD91AC4412E00688D68 /* Request.swift */; };
36+
7F68ABDB1AC4412E00688D68 /* Request.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7F68ABD91AC4412E00688D68 /* Request.swift */; };
37+
7F68ABDD1AC4414500688D68 /* Method.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7F68ABDC1AC4414500688D68 /* Method.swift */; };
38+
7F68ABDE1AC4414500688D68 /* Method.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7F68ABDC1AC4414500688D68 /* Method.swift */; };
3539
7FAC25A01AA2C03400E92500 /* OHHTTPStubs.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7FAC259E1AA2C01100E92500 /* OHHTTPStubs.framework */; };
3640
7FAC25A11AA2C04000E92500 /* OHHTTPStubs.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7FAC259C1AA2C00600E92500 /* OHHTTPStubs.framework */; };
3741
7FAC25A21AA2C1D500E92500 /* OHHTTPStubs.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = 7FAC259C1AA2C00600E92500 /* OHHTTPStubs.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
@@ -134,6 +138,8 @@
134138
7F45FD561A94D9A9006863BB /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = "<group>"; };
135139
7F45FD6A1A94D9F9006863BB /* GitHub.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GitHub.swift; sourceTree = "<group>"; };
136140
7F45FD731A94E832006863BB /* Models.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Models.swift; sourceTree = "<group>"; };
141+
7F68ABD91AC4412E00688D68 /* Request.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Request.swift; sourceTree = "<group>"; };
142+
7F68ABDC1AC4414500688D68 /* Method.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Method.swift; sourceTree = "<group>"; };
137143
7FAC259C1AA2C00600E92500 /* OHHTTPStubs.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = OHHTTPStubs.framework; sourceTree = "<group>"; };
138144
7FAC259E1AA2C01100E92500 /* OHHTTPStubs.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = OHHTTPStubs.framework; sourceTree = "<group>"; };
139145
7FCBE9DC1A9734880075AFD9 /* RequestBodyBuilder.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RequestBodyBuilder.swift; sourceTree = "<group>"; };
@@ -224,6 +230,8 @@
224230
children = (
225231
7F45FCE21A94D02C006863BB /* APIKit.h */,
226232
7F45FD171A94D085006863BB /* API.swift */,
233+
7F68ABD91AC4412E00688D68 /* Request.swift */,
234+
7F68ABDC1AC4414500688D68 /* Method.swift */,
227235
7F0869A51A978BCA001AD3E1 /* URLEncodedSerialization.swift */,
228236
7FCBE9DC1A9734880075AFD9 /* RequestBodyBuilder.swift */,
229237
7FCBE9DF1A9734950075AFD9 /* ResponseBodyParser.swift */,
@@ -538,6 +546,8 @@
538546
files = (
539547
7FCBE9DD1A9734880075AFD9 /* RequestBodyBuilder.swift in Sources */,
540548
7F45FD181A94D085006863BB /* API.swift in Sources */,
549+
7F68ABDD1AC4414500688D68 /* Method.swift in Sources */,
550+
7F68ABDA1AC4412E00688D68 /* Request.swift in Sources */,
541551
7FCBE9E01A9734950075AFD9 /* ResponseBodyParser.swift in Sources */,
542552
7F0869A61A978BCA001AD3E1 /* URLEncodedSerialization.swift in Sources */,
543553
);
@@ -549,6 +559,8 @@
549559
files = (
550560
7FCBE9DE1A9734880075AFD9 /* RequestBodyBuilder.swift in Sources */,
551561
7F0869A81A979088001AD3E1 /* API.swift in Sources */,
562+
7F68ABDE1AC4414500688D68 /* Method.swift in Sources */,
563+
7F68ABDB1AC4412E00688D68 /* Request.swift in Sources */,
552564
7FCBE9E11A9734950075AFD9 /* ResponseBodyParser.swift in Sources */,
553565
7F0869A71A978BCA001AD3E1 /* URLEncodedSerialization.swift in Sources */,
554566
);

APIKit/API.swift

+67-84
Original file line numberDiff line numberDiff line change
@@ -6,88 +6,6 @@ import LlamaKit
66

77
public let APIKitErrorDomain = "APIKitErrorDomain"
88

9-
public protocol Request {
10-
typealias Response: Any
11-
12-
var URLRequest: NSURLRequest? { get }
13-
14-
func responseFromObject(object: AnyObject) -> Response?
15-
}
16-
17-
public enum Method: String {
18-
case GET = "GET"
19-
case POST = "POST"
20-
case PUT = "PUT"
21-
case HEAD = "HEAD"
22-
case DELETE = "DELETE"
23-
case PATCH = "PATCH"
24-
case TRACE = "TRACE"
25-
case OPTIONS = "OPTIONS"
26-
case CONNECT = "CONNECT"
27-
}
28-
29-
private var taskRequestKey = 0
30-
private var dataTaskResponseBufferKey = 0
31-
private var dataTaskCompletionHandlerKey = 0
32-
33-
private extension NSURLSessionDataTask {
34-
// `var request: Request?` is not available in both of Swift 1.1 and 1.2
35-
// ("protocol can only be used as a generic constraint")
36-
private var request: Any? {
37-
get {
38-
return (objc_getAssociatedObject(self, &taskRequestKey) as? Box<Any>)?.unbox
39-
}
40-
41-
set {
42-
if let value = newValue {
43-
objc_setAssociatedObject(self, &taskRequestKey, Box(value), UInt(OBJC_ASSOCIATION_RETAIN_NONATOMIC))
44-
} else {
45-
objc_setAssociatedObject(self, &taskRequestKey, nil, UInt(OBJC_ASSOCIATION_RETAIN_NONATOMIC))
46-
}
47-
}
48-
}
49-
50-
private var responseBuffer: NSMutableData {
51-
if let responseBuffer = objc_getAssociatedObject(self, &dataTaskResponseBufferKey) as? NSMutableData {
52-
return responseBuffer
53-
} else {
54-
let responseBuffer = NSMutableData()
55-
objc_setAssociatedObject(self, &dataTaskResponseBufferKey, responseBuffer, UInt(OBJC_ASSOCIATION_RETAIN_NONATOMIC))
56-
return responseBuffer
57-
}
58-
}
59-
60-
private var completionHandler: ((NSData, NSURLResponse?, NSError?) -> Void)? {
61-
get {
62-
return (objc_getAssociatedObject(self, &dataTaskCompletionHandlerKey) as? Box<(NSData, NSURLResponse?, NSError?) -> Void>)?.unbox
63-
}
64-
65-
set {
66-
if let value = newValue {
67-
objc_setAssociatedObject(self, &dataTaskCompletionHandlerKey, Box(value), UInt(OBJC_ASSOCIATION_RETAIN_NONATOMIC))
68-
} else {
69-
objc_setAssociatedObject(self, &dataTaskCompletionHandlerKey, nil, UInt(OBJC_ASSOCIATION_RETAIN_NONATOMIC))
70-
}
71-
}
72-
}
73-
}
74-
75-
extension NSURLSessionDownloadTask {
76-
private var request: Any? {
77-
get {
78-
return (objc_getAssociatedObject(self, &taskRequestKey) as? Box<Any>)?.unbox
79-
}
80-
81-
set {
82-
if let value = newValue {
83-
objc_setAssociatedObject(self, &taskRequestKey, Box(value), UInt(OBJC_ASSOCIATION_RETAIN_NONATOMIC))
84-
} else {
85-
objc_setAssociatedObject(self, &taskRequestKey, nil, UInt(OBJC_ASSOCIATION_RETAIN_NONATOMIC))
86-
}
87-
}
88-
}
89-
}
90-
919
// use private, global scope variable until we can use stored class var in Swift 1.2
9210
private let internalDefaultURLSession = NSURLSession(
9311
configuration: NSURLSessionConfiguration.defaultSessionConfiguration(),
@@ -249,15 +167,16 @@ public class API {
249167
}
250168
}
251169

170+
// MARK: - default implementation of URLSessionDelegate
252171
public class URLSessionDelegate: NSObject, NSURLSessionDelegate, NSURLSessionDataDelegate {
253-
// MARK: - NSURLSessionTaskDelegate
172+
// MARK: NSURLSessionTaskDelegate
254173
public func URLSession(session: NSURLSession, task: NSURLSessionTask, didCompleteWithError connectionError: NSError?) {
255174
if let dataTask = task as? NSURLSessionDataTask {
256175
dataTask.completionHandler?(dataTask.responseBuffer, dataTask.response, connectionError)
257176
}
258177
}
259178

260-
// MARK: - NSURLSessionDataDelegate
179+
// MARK: NSURLSessionDataDelegate
261180
public func URLSession(session: NSURLSession, dataTask: NSURLSessionDataTask, didReceiveData data: NSData) {
262181
dataTask.responseBuffer.appendData(data)
263182
}
@@ -266,3 +185,67 @@ public class URLSessionDelegate: NSObject, NSURLSessionDelegate, NSURLSessionDat
266185
downloadTask.request = dataTask.request
267186
}
268187
}
188+
189+
// MARK: - NSURLSessionTask extensions
190+
private var taskRequestKey = 0
191+
private var dataTaskResponseBufferKey = 0
192+
private var dataTaskCompletionHandlerKey = 0
193+
194+
private extension NSURLSessionDataTask {
195+
// `var request: Request?` is not available in both of Swift 1.1 and 1.2
196+
// ("protocol can only be used as a generic constraint")
197+
private var request: Any? {
198+
get {
199+
return (objc_getAssociatedObject(self, &taskRequestKey) as? Box<Any>)?.unbox
200+
}
201+
202+
set {
203+
if let value = newValue {
204+
objc_setAssociatedObject(self, &taskRequestKey, Box(value), UInt(OBJC_ASSOCIATION_RETAIN_NONATOMIC))
205+
} else {
206+
objc_setAssociatedObject(self, &taskRequestKey, nil, UInt(OBJC_ASSOCIATION_RETAIN_NONATOMIC))
207+
}
208+
}
209+
}
210+
211+
private var responseBuffer: NSMutableData {
212+
if let responseBuffer = objc_getAssociatedObject(self, &dataTaskResponseBufferKey) as? NSMutableData {
213+
return responseBuffer
214+
} else {
215+
let responseBuffer = NSMutableData()
216+
objc_setAssociatedObject(self, &dataTaskResponseBufferKey, responseBuffer, UInt(OBJC_ASSOCIATION_RETAIN_NONATOMIC))
217+
return responseBuffer
218+
}
219+
}
220+
221+
private var completionHandler: ((NSData, NSURLResponse?, NSError?) -> Void)? {
222+
get {
223+
return (objc_getAssociatedObject(self, &dataTaskCompletionHandlerKey) as? Box<(NSData, NSURLResponse?, NSError?) -> Void>)?.unbox
224+
}
225+
226+
set {
227+
if let value = newValue {
228+
objc_setAssociatedObject(self, &dataTaskCompletionHandlerKey, Box(value), UInt(OBJC_ASSOCIATION_RETAIN_NONATOMIC))
229+
} else {
230+
objc_setAssociatedObject(self, &dataTaskCompletionHandlerKey, nil, UInt(OBJC_ASSOCIATION_RETAIN_NONATOMIC))
231+
}
232+
}
233+
}
234+
}
235+
236+
extension NSURLSessionDownloadTask {
237+
private var request: Any? {
238+
get {
239+
return (objc_getAssociatedObject(self, &taskRequestKey) as? Box<Any>)?.unbox
240+
}
241+
242+
set {
243+
if let value = newValue {
244+
objc_setAssociatedObject(self, &taskRequestKey, Box(value), UInt(OBJC_ASSOCIATION_RETAIN_NONATOMIC))
245+
} else {
246+
objc_setAssociatedObject(self, &taskRequestKey, nil, UInt(OBJC_ASSOCIATION_RETAIN_NONATOMIC))
247+
}
248+
}
249+
}
250+
}
251+

APIKit/Method.swift

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import Foundation
2+
3+
public enum Method: String {
4+
case GET = "GET"
5+
case POST = "POST"
6+
case PUT = "PUT"
7+
case HEAD = "HEAD"
8+
case DELETE = "DELETE"
9+
case PATCH = "PATCH"
10+
case TRACE = "TRACE"
11+
case OPTIONS = "OPTIONS"
12+
case CONNECT = "CONNECT"
13+
}

APIKit/Request.swift

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import Foundation
2+
3+
public protocol Request {
4+
typealias Response: Any
5+
6+
var URLRequest: NSURLRequest? { get }
7+
8+
func responseFromObject(object: AnyObject) -> Response?
9+
}

0 commit comments

Comments
 (0)