From 5857e375632aa5dbca1edc22ebb10f8506afc134 Mon Sep 17 00:00:00 2001 From: Andrea Altea Date: Sun, 3 Mar 2019 18:39:49 +0100 Subject: [PATCH 01/17] Feat: add failed request test --- Example/PunkAPI.xcodeproj/project.pbxproj | 4 ++ Example/Tests/MockSession.swift | 34 +++++++------- Example/Tests/PunkAPIInterfaceTests.swift | 54 +++++++++++++++++++++++ 3 files changed, 77 insertions(+), 15 deletions(-) create mode 100644 Example/Tests/PunkAPIInterfaceTests.swift diff --git a/Example/PunkAPI.xcodeproj/project.pbxproj b/Example/PunkAPI.xcodeproj/project.pbxproj index eb12836..292f9b4 100644 --- a/Example/PunkAPI.xcodeproj/project.pbxproj +++ b/Example/PunkAPI.xcodeproj/project.pbxproj @@ -14,6 +14,7 @@ 607FACDD1AFB9204008FA782 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 607FACDC1AFB9204008FA782 /* Images.xcassets */; }; 607FACE01AFB9204008FA782 /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 607FACDE1AFB9204008FA782 /* LaunchScreen.xib */; }; 9761024E222B328F00C3BD6B /* BeersRequestTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9761024D222B328F00C3BD6B /* BeersRequestTests.swift */; }; + 97610250222C431300C3BD6B /* PunkAPIInterfaceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9761024F222C431300C3BD6B /* PunkAPIInterfaceTests.swift */; }; 9767CBF7221993F900E684C4 /* BeerParsingTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9767CBF6221993F800E684C4 /* BeerParsingTests.swift */; }; 9767CBFA2219958F00E684C4 /* BeerStubs.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9767CBF82219958800E684C4 /* BeerStubs.swift */; }; 9767CC092222B63700E684C4 /* URLBuildTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9767CC072222B60F00E684C4 /* URLBuildTests.swift */; }; @@ -50,6 +51,7 @@ 607FACEA1AFB9204008FA782 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 613B14F018C28CF1557EC3D5 /* Pods-PunkAPI_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-PunkAPI_Tests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-PunkAPI_Tests/Pods-PunkAPI_Tests.debug.xcconfig"; sourceTree = ""; }; 9761024D222B328F00C3BD6B /* BeersRequestTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BeersRequestTests.swift; sourceTree = ""; }; + 9761024F222C431300C3BD6B /* PunkAPIInterfaceTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PunkAPIInterfaceTests.swift; sourceTree = ""; }; 9767CBF6221993F800E684C4 /* BeerParsingTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BeerParsingTests.swift; sourceTree = ""; }; 9767CBF82219958800E684C4 /* BeerStubs.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BeerStubs.swift; sourceTree = ""; }; 9767CC072222B60F00E684C4 /* URLBuildTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = URLBuildTests.swift; sourceTree = ""; }; @@ -186,6 +188,7 @@ 9767CC032222B0C900E684C4 /* Request */ = { isa = PBXGroup; children = ( + 9761024F222C431300C3BD6B /* PunkAPIInterfaceTests.swift */, 9767CC072222B60F00E684C4 /* URLBuildTests.swift */, 9767CC0C2222BDD000E684C4 /* BeerRequestTests.swift */, 9761024D222B328F00C3BD6B /* BeersRequestTests.swift */, @@ -419,6 +422,7 @@ buildActionMask = 2147483647; files = ( 9767CC0D2222BDD000E684C4 /* BeerRequestTests.swift in Sources */, + 97610250222C431300C3BD6B /* PunkAPIInterfaceTests.swift in Sources */, 9767CC27222B299300E684C4 /* BeersRequestParametersTests.swift in Sources */, 9767CBF7221993F900E684C4 /* BeerParsingTests.swift in Sources */, 9767CC0F2223550E00E684C4 /* ConfigurationTests.swift in Sources */, diff --git a/Example/Tests/MockSession.swift b/Example/Tests/MockSession.swift index f87b155..2ca9f3d 100644 --- a/Example/Tests/MockSession.swift +++ b/Example/Tests/MockSession.swift @@ -10,17 +10,20 @@ import Foundation class MockURLSession: URLSession { - var urlCheckBlock: ((_ url: URL) -> Void)? - - var responseConfig: (data: Data?, response: HTTPURLResponse?, error: Error?)? + struct Check { + var urlCheckBlock: ((_ url: URL) -> Void)? + var responseConfig: (data: Data?, response: HTTPURLResponse?, error: Error?)? + } + + var check = Check() override func dataTask(with url: URL, completionHandler: @escaping (Data?, URLResponse?, Error?) -> Void) -> URLSessionDataTask { - if let urlCheckBlock = self.urlCheckBlock { + if let urlCheckBlock = self.check.urlCheckBlock { urlCheckBlock(url) } - return MockSessionDataTask(config: self.responseConfig, completionHandler: completionHandler) + return MockSessionDataTask(config: self.check.responseConfig, completionHandler: completionHandler) } } @@ -30,25 +33,26 @@ class MockSessionDataTask: URLSessionDataTask { case notConfigured = "Not Configured" } - - var config: (data: Data?, response: HTTPURLResponse?, error: Error?)? - - var completionHandler: (Data?, URLResponse?, Error?) -> Void - + + struct Check { + var config: (data: Data?, response: HTTPURLResponse?, error: Error?)? + var completionHandler: (Data?, URLResponse?, Error?) -> Void + } + var check: Check init(config: (data: Data?, response: HTTPURLResponse?, error: Error?)?, completionHandler: @escaping (Data?, URLResponse?, Error?) -> Void) { - self.config = config - self.completionHandler = completionHandler + self.check = Check(config: config, + completionHandler: completionHandler) } override func resume() { - guard let config = self.config else { + guard let config = self.check.config else { - completionHandler(nil, nil, DataError.notConfigured) + self.check.completionHandler(nil, nil, DataError.notConfigured) return } - completionHandler(config.data, config.response, config.error) + self.check.completionHandler(config.data, config.response, config.error) } } diff --git a/Example/Tests/PunkAPIInterfaceTests.swift b/Example/Tests/PunkAPIInterfaceTests.swift new file mode 100644 index 0000000..c3ef7ec --- /dev/null +++ b/Example/Tests/PunkAPIInterfaceTests.swift @@ -0,0 +1,54 @@ +// +// PunkAPIInterfaceTests.swift +// PunkAPI_Tests +// +// Created by Andrea Altea on 03/03/2019. +// Copyright © 2019 CocoaPods. All rights reserved. +// + +import XCTest +@testable import PunkAPI + +class PunkAPIInterfaceTests: XCTestCase { + + var mockSession: MockURLSession! + var interface: PunkAPI! + + override func setUp() { + + mockSession = MockURLSession() + let configuration = Configuration(session: mockSession, baseURL: URL(string: "https://api.test.it/v2/")!) + interface = PunkAPI(configuration: configuration) + } + + override func tearDown() { + interface = nil + } + + func testFailedRequest() { + + mockSession.check.urlCheckBlock = { url in + XCTAssert("https://api.test.it/v2/beers/1" == url.absoluteString) + } + mockSession.check.responseConfig = (nil, nil, APIError.emptyResponse) + + interface.get(BeerRequest(id: 1)) { beerResult in + switch beerResult { + + case let .failure(error): + XCTAssert(APIError.emptyResponse == error as? APIError) + + default: + XCTFail("wrong response") + } + } + } +} + +extension Configuration { + + init(session: URLSession, baseURL: URL) { + self.init(sessionConfiguration: .default, baseURL: baseURL) + self.session = session + } +} From 360cc49be58745e66ec274d751f6d73f55d50cf8 Mon Sep 17 00:00:00 2001 From: Andrea Altea Date: Sun, 3 Mar 2019 18:57:02 +0100 Subject: [PATCH 02/17] Feat: add equatable protocol to Contents --- PunkAPI/Classes/Content/Beer.swift | 2 +- PunkAPI/Classes/Content/Method.swift | 4 ++-- PunkAPI/Classes/Content/Quantity.swift | 2 +- PunkAPI/Classes/Content/Recipe.swift | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/PunkAPI/Classes/Content/Beer.swift b/PunkAPI/Classes/Content/Beer.swift index ff47cbc..258452f 100644 --- a/PunkAPI/Classes/Content/Beer.swift +++ b/PunkAPI/Classes/Content/Beer.swift @@ -7,7 +7,7 @@ import Foundation -public struct Beer: Codable { +public struct Beer: Codable, Equatable { public var id: Int public var name: String? diff --git a/PunkAPI/Classes/Content/Method.swift b/PunkAPI/Classes/Content/Method.swift index 115e75c..c5a463d 100644 --- a/PunkAPI/Classes/Content/Method.swift +++ b/PunkAPI/Classes/Content/Method.swift @@ -7,9 +7,9 @@ import Foundation -public struct Method: Codable { +public struct Method: Codable, Equatable { - public struct Step: Codable { + public struct Step: Codable, Equatable { public var temp: Temperature? public var duration: Float? } diff --git a/PunkAPI/Classes/Content/Quantity.swift b/PunkAPI/Classes/Content/Quantity.swift index 7aeaefc..557cbd5 100644 --- a/PunkAPI/Classes/Content/Quantity.swift +++ b/PunkAPI/Classes/Content/Quantity.swift @@ -7,7 +7,7 @@ import Foundation -public struct Quantity: Codable { +public struct Quantity: Codable, Equatable { public var value: Float? public var unit: String? } diff --git a/PunkAPI/Classes/Content/Recipe.swift b/PunkAPI/Classes/Content/Recipe.swift index 1b525fc..867c7d9 100644 --- a/PunkAPI/Classes/Content/Recipe.swift +++ b/PunkAPI/Classes/Content/Recipe.swift @@ -7,9 +7,9 @@ import Foundation -public struct Recipe: Codable { +public struct Recipe: Codable, Equatable { - public struct Ingredient: Codable { + public struct Ingredient: Codable, Equatable { public var name: String? public var amount: Mass? } From d6ffcbe51b48063b2d59d46e37bd3616880117f6 Mon Sep 17 00:00:00 2001 From: Andrea Altea Date: Sun, 3 Mar 2019 18:57:12 +0100 Subject: [PATCH 03/17] Feat: add tests --- Example/Tests/PunkAPIInterfaceTests.swift | 51 ++++++++++++++++++++++- 1 file changed, 50 insertions(+), 1 deletion(-) diff --git a/Example/Tests/PunkAPIInterfaceTests.swift b/Example/Tests/PunkAPIInterfaceTests.swift index c3ef7ec..8051e4d 100644 --- a/Example/Tests/PunkAPIInterfaceTests.swift +++ b/Example/Tests/PunkAPIInterfaceTests.swift @@ -9,6 +9,10 @@ import XCTest @testable import PunkAPI +enum TestError: Error { + case unknownError +} + class PunkAPIInterfaceTests: XCTestCase { var mockSession: MockURLSession! @@ -30,11 +34,30 @@ class PunkAPIInterfaceTests: XCTestCase { mockSession.check.urlCheckBlock = { url in XCTAssert("https://api.test.it/v2/beers/1" == url.absoluteString) } - mockSession.check.responseConfig = (nil, nil, APIError.emptyResponse) + mockSession.check.responseConfig = (nil, nil, TestError.unknownError) interface.get(BeerRequest(id: 1)) { beerResult in switch beerResult { + case let .failure(error): + XCTAssert(TestError.unknownError == error as? TestError) + + default: + XCTFail("wrong response") + } + } + } + + func testEmptyData() { + + mockSession.check.urlCheckBlock = { url in + XCTAssert("https://api.test.it/v2/beers/1" == url.absoluteString) + } + mockSession.check.responseConfig = (nil, nil, nil) + + interface.get(BeerRequest(id: 1)) { beerResult in + switch beerResult { + case let .failure(error): XCTAssert(APIError.emptyResponse == error as? APIError) @@ -43,6 +66,32 @@ class PunkAPIInterfaceTests: XCTestCase { } } } + + func testValidResponse() { + + mockSession.check.urlCheckBlock = { url in + XCTAssert("https://api.test.it/v2/beers/1" == url.absoluteString) + } + + guard let beerData = BeerStub.multipleFirst.data(using: .utf8) else { + XCTFail("Unable to define beerData") + return + } + mockSession.check.responseConfig = (beerData, nil, nil) + + interface.get(BeerRequest(id: 1)) { beerResult in + switch beerResult { + + case let .success(beers): + + let decodedBeers = try? JSONDecoder().decode([Beer].self, from: beerData) + XCTAssert(beers == decodedBeers) + + default: + XCTFail("wrong response") + } + } + } } extension Configuration { From 54a5a25cca9f05fa595d616d6acfdf7107e3d2f8 Mon Sep 17 00:00:00 2001 From: Andrea Altea Date: Sun, 3 Mar 2019 19:39:04 +0100 Subject: [PATCH 04/17] Chore: update readme with basic documentation --- README.md | 76 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 75 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index bdac100..dfa5245 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,81 @@ _The Punk API takes Brewdog's DIY Dog and turns it into a searchable, filterable To run the example project, clone the repo, and run `pod install` from the Example directory first. -## Requirements +## Usage +``` +let punkApi = PunkAPI(configuration: .default) + +punkApi.get(RandomBeerRequest(), queue: .main) { beersResult in } +punkApi.get(BeerRequest(id: 1), queue: .main) { beersResult in } +punkApi.get(RandomBeerRequest(), queue: .main) { beersResult in } +punkApi.get(BeersRequest(filter: [ + .abv(condition: .more, value: 3), + .beerName(value: "Punk")]), queue: .main) { beersResult in } +``` + +## API +#### `RandomBeerRequest()` +Get a random beer request +``` +punkApi.get(RandomBeerRequest(), queue: .main) { beersResult in } +``` + +#### `BeerRequest(id: 1)` +Get a beer from given id +``` +punkApi.get(BeerRequest(id: 1), queue: .main) { beersResult in } +``` + +#### `BeersRequest(filter: [])` +Get beers that match the passed in options, if no options are passed in it will return all beers in ascending order of `id`. +``` +punkApi.get(RandomBeerRequest(), queue: .main) { beersResult in } +``` +**Options** + +##### `BeersRequest.Parameter.abv(condition: .more, value: 3)` +Condition: `Condition` +Value: `Float` +Will return beers with an abv greater or lower than the passed in value. + +##### `BeersRequest.Parameter.ibu(condition: .more, value: 3)` +Condition: `Condition` +Value: `Float` +Will return beers with an ibu greater or lower than the passed in value. + +##### `BeersRequest.Parameter.ebc(condition: .more, value: 3)` +Condition: `Condition` +Value: `Float` +Will return beers with an ebc greater or lower than the passed in value. + +##### `BeersRequest.Parameter.beerName(value: "Punk")` +Value: `String` +Will return beers matching the string passed in (we use fuzzy matching to find the names). + +##### `BeersRequest.Parameter.yeast(value: "American Ale")` +Value: `String` +Will return beers which match the name of the yeast of the string passed in (we use fuzzy matching to find the yeast names). + +##### `BeersRequest.Parameter.brewed(condition: .more, value: 3)` +Condition: `Condition` +Value: `Date` +Will return beers brewed before or after the passed in date. + +##### `BeersRequest.Parameter.hops(value: "Ahtanum")` +Value: `String` +Will return beers which match the name of the hops of the string passed in (we use fuzzy matching to find the hop names). + +##### `BeersRequest.Parameter.malt(value: "American Ale")` +Value: `String` +Will return beers which match the name of the yeast of the string passed in (we use fuzzy matching to find the yeast names). + +##### `BeersRequest.Parameter.food(value: "Cheesecake")` +Value: `String` +Will return beers which match food pairings of the string passed in (we use fuzzy matching to find the foods). + +##### `BeersRequest.Parameter.ids(value: [1, 2, 4, 6])` +Value: `Array` +Will return beers which match the given ids. ## Installation From 33d872ce0ad51d41d715212b4eaa7a3d96956924 Mon Sep 17 00:00:00 2001 From: Andrea Altea Date: Sun, 3 Mar 2019 19:47:03 +0100 Subject: [PATCH 05/17] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index dfa5245..ed8f275 100644 --- a/README.md +++ b/README.md @@ -43,7 +43,7 @@ Get a beer from given id punkApi.get(BeerRequest(id: 1), queue: .main) { beersResult in } ``` -#### `BeersRequest(filter: [])` +#### `BeersRequest(filter: [BeersRequest.Parameter.beerName(value: "Punk IPA")])` Get beers that match the passed in options, if no options are passed in it will return all beers in ascending order of `id`. ``` punkApi.get(RandomBeerRequest(), queue: .main) { beersResult in } From ab7bec7a27b4420b95e713d3923788b1ae1cb25f Mon Sep 17 00:00:00 2001 From: Andrea Altea Date: Sun, 3 Mar 2019 19:58:21 +0100 Subject: [PATCH 06/17] Fix: malt parameter documentation --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index ed8f275..ac85893 100644 --- a/README.md +++ b/README.md @@ -82,9 +82,9 @@ Will return beers brewed before or after the passed in date. Value: `String` Will return beers which match the name of the hops of the string passed in (we use fuzzy matching to find the hop names). -##### `BeersRequest.Parameter.malt(value: "American Ale")` +##### `BeersRequest.Parameter.malt(value: "Extra Pale")` Value: `String` -Will return beers which match the name of the yeast of the string passed in (we use fuzzy matching to find the yeast names). +Will return beers which match the name of the malt of the string passed in (we use fuzzy matching to find the hop names). ##### `BeersRequest.Parameter.food(value: "Cheesecake")` Value: `String` From ee1728b4a455182c6d23d07900b832d2ecea1897 Mon Sep 17 00:00:00 2001 From: Andrea Altea Date: Sun, 3 Mar 2019 20:01:13 +0100 Subject: [PATCH 07/17] Chore: reorder badges --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index ac85893..5b7d18f 100644 --- a/README.md +++ b/README.md @@ -2,11 +2,11 @@ [![Version](https://img.shields.io/cocoapods/v/PunkAPI.svg?style=flat)](https://cocoapods.org/pods/PunkAPI) [![Build Status](https://travis-ci.com/Oni-zerone/PunkAPI.svg?branch=develop)](https://travis-ci.com/Oni-zerone/PunkAPI) -[![Coverage Status](https://coveralls.io/repos/github/Oni-zerone/PunkAPI/badge.svg?branch=feature%2FRandom-beer-request)](https://coveralls.io/github/Oni-zerone/PunkAPI?branch=feature%2FRandom-beer-request) [![codebeat badge](https://codebeat.co/badges/bfe75f4d-ac1f-4e09-8a25-4f836bb93428)](https://codebeat.co/projects/github-com-oni-zerone-punkapi-develop) +[![Coverage Status](https://coveralls.io/repos/github/Oni-zerone/PunkAPI/badge.svg?branch=develop)](https://coveralls.io/github/Oni-zerone/PunkAPI?branch=develop) [![Language](https://img.shields.io/badge/language-swift-orange.svg)](https://cocoapods.org/pods/PowerTools) -[![License](https://img.shields.io/cocoapods/l/PunkAPI.svg?style=flat)](https://cocoapods.org/pods/PunkAPI) [![Platform](https://img.shields.io/cocoapods/p/PunkAPI.svg?style=flat)](https://cocoapods.org/pods/PunkAPI) +[![License](https://img.shields.io/cocoapods/l/PunkAPI.svg?style=flat)](https://cocoapods.org/pods/PunkAPI) **This is a wrapper around PunkAPI v2 by [@samjbmason](https://twitter.com/samjbmason) you can find more informations about those APIs at https://punkapi.com/** From 2f6a6a4691efa419d37a78060f0cc59f65ca296c Mon Sep 17 00:00:00 2001 From: Andrea Altea Date: Mon, 4 Mar 2019 20:43:55 +0100 Subject: [PATCH 08/17] feat: define PromiseKit wrapper --- Example/Podfile.lock | 6 +- .../Pods/Local Podspecs/PunkAPI.podspec.json | 12 +- Example/Pods/Manifest.lock | 6 +- Example/Pods/Pods.xcodeproj/project.pbxproj | 244 +++++++++--------- PunkAPI.podspec | 9 +- .../Classes/PunkAPI+PromiseKit.swift | 0 6 files changed, 153 insertions(+), 124 deletions(-) create mode 100644 PunkAPI/PromiseKit/Classes/PunkAPI+PromiseKit.swift diff --git a/Example/Podfile.lock b/Example/Podfile.lock index cf454a6..67126c4 100644 --- a/Example/Podfile.lock +++ b/Example/Podfile.lock @@ -1,5 +1,7 @@ PODS: - - PunkAPI (0.1.0) + - PunkAPI (0.1.0): + - PunkAPI/API (= 0.1.0) + - PunkAPI/API (0.1.0) DEPENDENCIES: - PunkAPI (from `../`) @@ -9,7 +11,7 @@ EXTERNAL SOURCES: :path: "../" SPEC CHECKSUMS: - PunkAPI: c9891a38a2efa7a052f02d02decceb58ca87b5ed + PunkAPI: 0a5d363e20f6a26abfd6281f5a247256a95775be PODFILE CHECKSUM: 77a7edfbda92bc42f026175f2a4105df175a2c99 diff --git a/Example/Pods/Local Podspecs/PunkAPI.podspec.json b/Example/Pods/Local Podspecs/PunkAPI.podspec.json index a076944..1cb2643 100644 --- a/Example/Pods/Local Podspecs/PunkAPI.podspec.json +++ b/Example/Pods/Local Podspecs/PunkAPI.podspec.json @@ -20,5 +20,15 @@ "platforms": { "ios": "10.0" }, - "source_files": "PunkAPI/Classes/**/*" + "default_subspecs": "API", + "subspecs": [ + { + "name": "API", + "source_files": "PunkAPI/Classes/**/*" + }, + { + "name": "PromiseKit", + "source_files": "PunkAPI/PromiseKit/Classes/**/*" + } + ] } diff --git a/Example/Pods/Manifest.lock b/Example/Pods/Manifest.lock index cf454a6..67126c4 100644 --- a/Example/Pods/Manifest.lock +++ b/Example/Pods/Manifest.lock @@ -1,5 +1,7 @@ PODS: - - PunkAPI (0.1.0) + - PunkAPI (0.1.0): + - PunkAPI/API (= 0.1.0) + - PunkAPI/API (0.1.0) DEPENDENCIES: - PunkAPI (from `../`) @@ -9,7 +11,7 @@ EXTERNAL SOURCES: :path: "../" SPEC CHECKSUMS: - PunkAPI: c9891a38a2efa7a052f02d02decceb58ca87b5ed + PunkAPI: 0a5d363e20f6a26abfd6281f5a247256a95775be PODFILE CHECKSUM: 77a7edfbda92bc42f026175f2a4105df175a2c99 diff --git a/Example/Pods/Pods.xcodeproj/project.pbxproj b/Example/Pods/Pods.xcodeproj/project.pbxproj index 1f6f8ef..d517dd9 100644 --- a/Example/Pods/Pods.xcodeproj/project.pbxproj +++ b/Example/Pods/Pods.xcodeproj/project.pbxproj @@ -7,33 +7,33 @@ objects = { /* Begin PBXBuildFile section */ - 040633ED2DA398496AD631E73B9CB953 /* Beer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C6F916B3844F173B183C5BC45E825DC /* Beer.swift */; }; - 0706F758C5F2CE0E83E44396DE53B472 /* StringParameter.swift in Sources */ = {isa = PBXBuildFile; fileRef = D332B9F96F752E235840BDE2286619A5 /* StringParameter.swift */; }; - 0C4C6C5EED9509237E097606FBBF2046 /* BeerRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6968BCE43B140E358870F66D7258F957 /* BeerRequest.swift */; }; - 156976A157354FAC4A76CDD07C60C630 /* Errors.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2718DFE97DA930B98881C184088EFA6B /* Errors.swift */; }; + 040633ED2DA398496AD631E73B9CB953 /* Beer.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF088E01F58E14A65CAA7F0FE91DEA1D /* Beer.swift */; }; + 0706F758C5F2CE0E83E44396DE53B472 /* StringParameter.swift in Sources */ = {isa = PBXBuildFile; fileRef = E5CE592C73DF18A303A3D024D395DF74 /* StringParameter.swift */; }; + 0C4C6C5EED9509237E097606FBBF2046 /* BeerRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = FC9D2517181A3C56CCD7B3A402E557DB /* BeerRequest.swift */; }; + 156976A157354FAC4A76CDD07C60C630 /* Errors.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3DAFF46790930EA82EB8B14306C5CDA6 /* Errors.swift */; }; 1DEF7BF616CC3F2EF46A7F9E5514F9AC /* Pods-PunkAPI_Tests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 34E9F6D3BEDEF11CDF5DC7C24AEF5989 /* Pods-PunkAPI_Tests-dummy.m */; }; - 1F269E313E3E5E6D95C7EA4117A4EF52 /* RequestParameter.swift in Sources */ = {isa = PBXBuildFile; fileRef = E73CF54C263C0540BBD135CCBAE448F9 /* RequestParameter.swift */; }; - 4C4AB5D20013C59D1BE1A0DC0AA4A90E /* Request.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67F5B1D8A153F21971D389D7D78E3709 /* Request.swift */; }; + 1F269E313E3E5E6D95C7EA4117A4EF52 /* RequestParameter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B97F2B7F36F2E0EEC6E1C86C85DDAB1 /* RequestParameter.swift */; }; + 4C4AB5D20013C59D1BE1A0DC0AA4A90E /* Request.swift in Sources */ = {isa = PBXBuildFile; fileRef = D3A997034CD0DA5AC452F4E447256627 /* Request.swift */; }; 4DE6F5415AA32E45E1A1B40AA8194B63 /* Pods-PunkAPI_Tests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = E322AC54183F0711E107C333BF42C3CF /* Pods-PunkAPI_Tests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 4F478C6F6571A694E377026C7020B987 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D6DFF15000AFE2A371BF499E7AFDA808 /* Foundation.framework */; }; 5563E1330468FB6D76F769A6697DF682 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D6DFF15000AFE2A371BF499E7AFDA808 /* Foundation.framework */; }; - 567123199E19D2AF982C095A91F499E3 /* PunkAPI-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = AF457128C49817820875EFC37DDC2763 /* PunkAPI-dummy.m */; }; - 58196BD46A6A962CD2291747E891A4FF /* Recipe.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5FEECE1958551B13C700A5127274F0A0 /* Recipe.swift */; }; + 567123199E19D2AF982C095A91F499E3 /* PunkAPI-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = CD645A3AF35EE532D3C5D89AD7BBD24A /* PunkAPI-dummy.m */; }; + 58196BD46A6A962CD2291747E891A4FF /* Recipe.swift in Sources */ = {isa = PBXBuildFile; fileRef = F40C0B23D65DB75268C8353F68D8FF29 /* Recipe.swift */; }; 861F0ED5029160D63BEA52EEDC4F5B2D /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D6DFF15000AFE2A371BF499E7AFDA808 /* Foundation.framework */; }; - 8CA6935D75E79F06DC50B80FBFA04E52 /* BeersRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67A36C69522325B64312822D021FE1AA /* BeersRequest.swift */; }; - 94ACB62152B83DE972430EAA4B24D449 /* PunkAPI-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 5E6E75F5999AC210521146C7375A3313 /* PunkAPI-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9C1115413D21B46B31F5D70FE29CA857 /* Method.swift in Sources */ = {isa = PBXBuildFile; fileRef = 272E2F86C0B64A9624B4C3B045C95054 /* Method.swift */; }; + 8CA6935D75E79F06DC50B80FBFA04E52 /* BeersRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = AABE2DB107ACC7CBD1C173EB3949116F /* BeersRequest.swift */; }; + 94ACB62152B83DE972430EAA4B24D449 /* PunkAPI-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = A4E74E37150A9E4E047C1F5E41D00B8B /* PunkAPI-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9C1115413D21B46B31F5D70FE29CA857 /* Method.swift in Sources */ = {isa = PBXBuildFile; fileRef = 160F384341D2DF37938DB3F464CD369C /* Method.swift */; }; 9DEE51DC320AFD89F8CCE79E659D0E92 /* Pods-PunkAPI_Example-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 6ABEAC72915A583BE08AF19F226F5157 /* Pods-PunkAPI_Example-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9E26D0BC2A8D1AB927AD665EB5032162 /* PunkAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5EF39F3AF34782AC8545A51C195DF61 /* PunkAPI.swift */; }; - 9EB5A8CE4227261D6FDB84878505ACED /* RandomBeerRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = FCA6949E012F3A32EE618525D6C1C918 /* RandomBeerRequest.swift */; }; - 9F91EF3525A1E94F87950035B1DEF148 /* Result.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06A91CE54D5004C034494C163FD6F954 /* Result.swift */; }; - A2A4C282870BFE912F85DB1151BC24B3 /* DateParameter.swift in Sources */ = {isa = PBXBuildFile; fileRef = E53AB03421ECCCAC36BA6463E532AF2D /* DateParameter.swift */; }; - AA5C8E19C31A6A5CDAD11062F1625806 /* URLBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4F1A67AAC30418B7829B4645C698A64E /* URLBuilder.swift */; }; - ADCB0254782B197A401A2AAC39C0E882 /* Configuration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9E63AF47725611B0A82E5D288783A976 /* Configuration.swift */; }; + 9E26D0BC2A8D1AB927AD665EB5032162 /* PunkAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4F84F5A58AA392F811DE43B4C4355719 /* PunkAPI.swift */; }; + 9EB5A8CE4227261D6FDB84878505ACED /* RandomBeerRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 668114CF77952B58A8BCCC30E75307DB /* RandomBeerRequest.swift */; }; + 9F91EF3525A1E94F87950035B1DEF148 /* Result.swift in Sources */ = {isa = PBXBuildFile; fileRef = BC08E61BA3B9301ACCD304466C5FA9EE /* Result.swift */; }; + A2A4C282870BFE912F85DB1151BC24B3 /* DateParameter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 69BD8918FA224756AA9BDB1EDEAFFB79 /* DateParameter.swift */; }; + AA5C8E19C31A6A5CDAD11062F1625806 /* URLBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27FEF650E45E96509F830475745A5ED2 /* URLBuilder.swift */; }; + ADCB0254782B197A401A2AAC39C0E882 /* Configuration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CE2272F1836F7FB2A81272597153352 /* Configuration.swift */; }; B0D852DC953C7A0E2C1CB872F9E315BB /* Pods-PunkAPI_Example-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = A4E9F26077D1238C6BF679ED6AB0504D /* Pods-PunkAPI_Example-dummy.m */; }; - BBCC787A76C3C536D049EB6E228394FF /* Quantity.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0640B723338BC89B5BF58530FC5A3D0 /* Quantity.swift */; }; - EA2895A6DC98FCFBB5A54F5837E8304F /* FloatParameter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EB937A449C35D61D642784A44C83FF1 /* FloatParameter.swift */; }; - FAEC0D53EBA4A5BCFCDA4CB97EA975AA /* BeersRequestParameter.swift in Sources */ = {isa = PBXBuildFile; fileRef = A52B3CD426204500053E942213EDD6A6 /* BeersRequestParameter.swift */; }; + BBCC787A76C3C536D049EB6E228394FF /* Quantity.swift in Sources */ = {isa = PBXBuildFile; fileRef = A4C8D42414E49771AE4025F28552A9F2 /* Quantity.swift */; }; + EA2895A6DC98FCFBB5A54F5837E8304F /* FloatParameter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2568A0E3C875163AFF7366B44BE111CA /* FloatParameter.swift */; }; + FAEC0D53EBA4A5BCFCDA4CB97EA975AA /* BeersRequestParameter.swift in Sources */ = {isa = PBXBuildFile; fileRef = C74860045E1EF88E953842E8A12B491E /* BeersRequestParameter.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -54,58 +54,58 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 06A91CE54D5004C034494C163FD6F954 /* Result.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Result.swift; sourceTree = ""; }; + 012C8098DFF121CC7D36CD350EDFF337 /* PunkAPI.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = PunkAPI.modulemap; sourceTree = ""; }; 06BAF05CBDEA8E295E4784A5A5D4506C /* Pods-PunkAPI_Tests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-PunkAPI_Tests-acknowledgements.plist"; sourceTree = ""; }; - 073D13EDB6E52C7CA76600719DF8FCCA /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 08865B1A9072612C58080056C52A36BE /* Pods-PunkAPI_Example.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-PunkAPI_Example.modulemap"; sourceTree = ""; }; - 0C6F916B3844F173B183C5BC45E825DC /* Beer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Beer.swift; sourceTree = ""; }; - 16EF8876C605E8EC561718EF37E64EF9 /* PunkAPI-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "PunkAPI-prefix.pch"; sourceTree = ""; }; - 1E8F3184E27473ACF2CB0ECC931D49B9 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; path = README.md; sourceTree = ""; }; - 2718DFE97DA930B98881C184088EFA6B /* Errors.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Errors.swift; sourceTree = ""; }; - 272E2F86C0B64A9624B4C3B045C95054 /* Method.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Method.swift; sourceTree = ""; }; + 160F384341D2DF37938DB3F464CD369C /* Method.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Method.swift; sourceTree = ""; }; + 2568A0E3C875163AFF7366B44BE111CA /* FloatParameter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = FloatParameter.swift; sourceTree = ""; }; + 27FEF650E45E96509F830475745A5ED2 /* URLBuilder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = URLBuilder.swift; sourceTree = ""; }; 2EC29BADC6D4B129C97F077B8D1AAD24 /* Pods-PunkAPI_Example-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-PunkAPI_Example-frameworks.sh"; sourceTree = ""; }; 34E9F6D3BEDEF11CDF5DC7C24AEF5989 /* Pods-PunkAPI_Tests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-PunkAPI_Tests-dummy.m"; sourceTree = ""; }; + 3B97F2B7F36F2E0EEC6E1C86C85DDAB1 /* RequestParameter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RequestParameter.swift; sourceTree = ""; }; 3CA7DD0E0D9E3D052F0DA83C7B3B79FC /* Pods_PunkAPI_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_PunkAPI_Tests.framework; path = "Pods-PunkAPI_Tests.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; - 3EB937A449C35D61D642784A44C83FF1 /* FloatParameter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = FloatParameter.swift; sourceTree = ""; }; + 3DAFF46790930EA82EB8B14306C5CDA6 /* Errors.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Errors.swift; sourceTree = ""; }; 492C127C07A0D9D778B3D645FCDED6AC /* Pods-PunkAPI_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-PunkAPI_Tests.release.xcconfig"; sourceTree = ""; }; - 4F1A67AAC30418B7829B4645C698A64E /* URLBuilder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = URLBuilder.swift; sourceTree = ""; }; - 5E6E75F5999AC210521146C7375A3313 /* PunkAPI-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "PunkAPI-umbrella.h"; sourceTree = ""; }; - 5FEECE1958551B13C700A5127274F0A0 /* Recipe.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Recipe.swift; sourceTree = ""; }; + 4F84F5A58AA392F811DE43B4C4355719 /* PunkAPI.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PunkAPI.swift; path = PunkAPI/Classes/PunkAPI.swift; sourceTree = ""; }; + 578ED8CFFEAC4611547CE767C7193F36 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 5B0D6522C57BF3A62BF3D35273B4F8A8 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; path = README.md; sourceTree = ""; }; 608E9332AF8468043B49B03317025805 /* Pods-PunkAPI_Tests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-PunkAPI_Tests-frameworks.sh"; sourceTree = ""; }; - 67A36C69522325B64312822D021FE1AA /* BeersRequest.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BeersRequest.swift; sourceTree = ""; }; - 67F5B1D8A153F21971D389D7D78E3709 /* Request.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Request.swift; sourceTree = ""; }; - 6968BCE43B140E358870F66D7258F957 /* BeerRequest.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BeerRequest.swift; sourceTree = ""; }; + 668114CF77952B58A8BCCC30E75307DB /* RandomBeerRequest.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RandomBeerRequest.swift; sourceTree = ""; }; + 69BD8918FA224756AA9BDB1EDEAFFB79 /* DateParameter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = DateParameter.swift; sourceTree = ""; }; 6ABEAC72915A583BE08AF19F226F5157 /* Pods-PunkAPI_Example-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-PunkAPI_Example-umbrella.h"; sourceTree = ""; }; 6EDD1194CE9C142C26AD6C6803C306E4 /* Pods-PunkAPI_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-PunkAPI_Tests.debug.xcconfig"; sourceTree = ""; }; 7F7764549D1799C2D5D6A7B2D65E3550 /* Pods-PunkAPI_Example-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-PunkAPI_Example-resources.sh"; sourceTree = ""; }; 8342B62283B06E1CA90A14E1BCB6D62B /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 8458C84A594F726E1A8DB6294F78DB73 /* Pods-PunkAPI_Tests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-PunkAPI_Tests-resources.sh"; sourceTree = ""; }; + 8CE2272F1836F7FB2A81272597153352 /* Configuration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Configuration.swift; path = PunkAPI/Classes/Configuration.swift; sourceTree = ""; }; 92229C81AD3A318707A49C8449AEB2F5 /* Pods-PunkAPI_Example-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-PunkAPI_Example-acknowledgements.plist"; sourceTree = ""; }; + 92E1493E5B520A68931D56ADC863CF04 /* PunkAPI-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "PunkAPI-prefix.pch"; sourceTree = ""; }; 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - 9A4A66A2F2CD393AE19E9C41284E7A10 /* PunkAPI.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; lastKnownFileType = text; path = PunkAPI.podspec; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; 9D14926C4AE138B3C55CE27E18BE194D /* Pods-PunkAPI_Tests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-PunkAPI_Tests.modulemap"; sourceTree = ""; }; 9DDE148E1E89B985353411506461E509 /* Pods_PunkAPI_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_PunkAPI_Example.framework; path = "Pods-PunkAPI_Example.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; - 9E63AF47725611B0A82E5D288783A976 /* Configuration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Configuration.swift; path = PunkAPI/Classes/Configuration.swift; sourceTree = ""; }; + A4C8D42414E49771AE4025F28552A9F2 /* Quantity.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Quantity.swift; sourceTree = ""; }; + A4E74E37150A9E4E047C1F5E41D00B8B /* PunkAPI-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "PunkAPI-umbrella.h"; sourceTree = ""; }; A4E9F26077D1238C6BF679ED6AB0504D /* Pods-PunkAPI_Example-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-PunkAPI_Example-dummy.m"; sourceTree = ""; }; - A52B3CD426204500053E942213EDD6A6 /* BeersRequestParameter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BeersRequestParameter.swift; sourceTree = ""; }; A5D146483FC9684CF2C15F85C081EF35 /* Pods-PunkAPI_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-PunkAPI_Example.release.xcconfig"; sourceTree = ""; }; - AF457128C49817820875EFC37DDC2763 /* PunkAPI-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "PunkAPI-dummy.m"; sourceTree = ""; }; - C0640B723338BC89B5BF58530FC5A3D0 /* Quantity.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Quantity.swift; sourceTree = ""; }; - D332B9F96F752E235840BDE2286619A5 /* StringParameter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = StringParameter.swift; sourceTree = ""; }; - D5EF39F3AF34782AC8545A51C195DF61 /* PunkAPI.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PunkAPI.swift; path = PunkAPI/Classes/PunkAPI.swift; sourceTree = ""; }; + AA1778437B194C57760FA0E9D1035195 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; path = LICENSE; sourceTree = ""; }; + AABE2DB107ACC7CBD1C173EB3949116F /* BeersRequest.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BeersRequest.swift; sourceTree = ""; }; + BC08E61BA3B9301ACCD304466C5FA9EE /* Result.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Result.swift; sourceTree = ""; }; + C74860045E1EF88E953842E8A12B491E /* BeersRequestParameter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BeersRequestParameter.swift; sourceTree = ""; }; + CD645A3AF35EE532D3C5D89AD7BBD24A /* PunkAPI-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "PunkAPI-dummy.m"; sourceTree = ""; }; + D3A997034CD0DA5AC452F4E447256627 /* Request.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Request.swift; sourceTree = ""; }; D6DFF15000AFE2A371BF499E7AFDA808 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; - DEC567BAB5C34B4B7667B6C1478CE2DA /* PunkAPI.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = PunkAPI.modulemap; sourceTree = ""; }; + DC82B189006451DA104C7B574E76E1A2 /* PunkAPI.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; lastKnownFileType = text; path = PunkAPI.podspec; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; E322AC54183F0711E107C333BF42C3CF /* Pods-PunkAPI_Tests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-PunkAPI_Tests-umbrella.h"; sourceTree = ""; }; - E53AB03421ECCCAC36BA6463E532AF2D /* DateParameter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = DateParameter.swift; sourceTree = ""; }; + E5CE592C73DF18A303A3D024D395DF74 /* StringParameter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = StringParameter.swift; sourceTree = ""; }; E722B264627A535D845CCF418E225784 /* Pods-PunkAPI_Tests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-PunkAPI_Tests-acknowledgements.markdown"; sourceTree = ""; }; - E73CF54C263C0540BBD135CCBAE448F9 /* RequestParameter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RequestParameter.swift; sourceTree = ""; }; E816F7DA6C1CBE532E1590E0F05B9532 /* Pods-PunkAPI_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-PunkAPI_Example.debug.xcconfig"; sourceTree = ""; }; EAE741F8D3D7DED0544AD07D421892ED /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - F5FCAD7EA85132D2D8D1388DA3081592 /* PunkAPI.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = PunkAPI.xcconfig; sourceTree = ""; }; + F40C0B23D65DB75268C8353F68D8FF29 /* Recipe.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Recipe.swift; sourceTree = ""; }; + FA3BA90C7DD464C9C383DC0B449A4F12 /* PunkAPI.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = PunkAPI.xcconfig; sourceTree = ""; }; FA66D5ED6E33AA7DD32A8C962841F3B0 /* PunkAPI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = PunkAPI.framework; path = PunkAPI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - FAD9273D9A1D66770D45A643EDA9E88E /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; path = LICENSE; sourceTree = ""; }; FB1D3C212D7A0519F22CF554E249675E /* Pods-PunkAPI_Example-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-PunkAPI_Example-acknowledgements.markdown"; sourceTree = ""; }; - FCA6949E012F3A32EE618525D6C1C918 /* RandomBeerRequest.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RandomBeerRequest.swift; sourceTree = ""; }; + FC9D2517181A3C56CCD7B3A402E557DB /* BeerRequest.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BeerRequest.swift; sourceTree = ""; }; + FF088E01F58E14A65CAA7F0FE91DEA1D /* Beer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Beer.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -136,46 +136,51 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 0514815A5F57F1358DA701F5C9BCA5D2 /* Results */ = { + 14489482B61273AF52F0BD9D4DCDE682 /* Content */ = { isa = PBXGroup; children = ( - 2718DFE97DA930B98881C184088EFA6B /* Errors.swift */, - 06A91CE54D5004C034494C163FD6F954 /* Result.swift */, + FF088E01F58E14A65CAA7F0FE91DEA1D /* Beer.swift */, + 160F384341D2DF37938DB3F464CD369C /* Method.swift */, + A4C8D42414E49771AE4025F28552A9F2 /* Quantity.swift */, + F40C0B23D65DB75268C8353F68D8FF29 /* Recipe.swift */, ); - name = Results; - path = PunkAPI/Classes/Results; + name = Content; + path = PunkAPI/Classes/Content; sourceTree = ""; }; - 090992C0DECBC3153B28556E0B42A41B /* Request */ = { + 2B4C74F6151687B6B282EB57D951525D /* PunkAPI */ = { isa = PBXGroup; children = ( - 6968BCE43B140E358870F66D7258F957 /* BeerRequest.swift */, - 67A36C69522325B64312822D021FE1AA /* BeersRequest.swift */, - FCA6949E012F3A32EE618525D6C1C918 /* RandomBeerRequest.swift */, - 67F5B1D8A153F21971D389D7D78E3709 /* Request.swift */, - 4F1A67AAC30418B7829B4645C698A64E /* URLBuilder.swift */, - 64A82D6E12F29B9C311952C99CAAF80D /* Parameter */, + 5AEFE90FD73EE291B0A8DC5B846CACC2 /* API */, + A405E189A77153122813D6AEA2AF2BEF /* Pod */, + 870B067F1898220EDEC85A34D5C85A3E /* Support Files */, ); - name = Request; - path = PunkAPI/Classes/Request; + name = PunkAPI; + path = ../..; sourceTree = ""; }; - 1EAE5A66A94268C182B75D7DB0BFCB3F /* Pod */ = { + 37C870DAA7862B4F751A2693962A061F /* Request */ = { isa = PBXGroup; children = ( - FAD9273D9A1D66770D45A643EDA9E88E /* LICENSE */, - 9A4A66A2F2CD393AE19E9C41284E7A10 /* PunkAPI.podspec */, - 1E8F3184E27473ACF2CB0ECC931D49B9 /* README.md */, + FC9D2517181A3C56CCD7B3A402E557DB /* BeerRequest.swift */, + AABE2DB107ACC7CBD1C173EB3949116F /* BeersRequest.swift */, + 668114CF77952B58A8BCCC30E75307DB /* RandomBeerRequest.swift */, + D3A997034CD0DA5AC452F4E447256627 /* Request.swift */, + 27FEF650E45E96509F830475745A5ED2 /* URLBuilder.swift */, + B4F9D59FECBA6520DCA65AD3EF9DBBAC /* Parameter */, ); - name = Pod; + name = Request; + path = PunkAPI/Classes/Request; sourceTree = ""; }; - 3C48D264DEAC135E647F4628351B96D3 /* Development Pods */ = { + 3C5A2C687FF2711BA9F139D5439C6F42 /* Results */ = { isa = PBXGroup; children = ( - F7A6E9EE825581F4F5E91FACA3E20C0F /* PunkAPI */, + 3DAFF46790930EA82EB8B14306C5CDA6 /* Errors.swift */, + BC08E61BA3B9301ACCD304466C5FA9EE /* Result.swift */, ); - name = "Development Pods"; + name = Results; + path = PunkAPI/Classes/Results; sourceTree = ""; }; 44D5347904CF754D6785B84253F2574A /* iOS */ = { @@ -186,26 +191,33 @@ name = iOS; sourceTree = ""; }; - 5E6C37C04887F82A8C550F9B76E5B746 /* Targets Support Files */ = { + 534A0751825F5A2C93C17E95129349F5 /* Development Pods */ = { isa = PBXGroup; children = ( - 9BFECB8663CD309F9214B4311C96BCB5 /* Pods-PunkAPI_Example */, - B2D5CC793D96E6B1A0442EA2481F7DF2 /* Pods-PunkAPI_Tests */, + 2B4C74F6151687B6B282EB57D951525D /* PunkAPI */, ); - name = "Targets Support Files"; + name = "Development Pods"; sourceTree = ""; }; - 64A82D6E12F29B9C311952C99CAAF80D /* Parameter */ = { + 5AEFE90FD73EE291B0A8DC5B846CACC2 /* API */ = { isa = PBXGroup; children = ( - A52B3CD426204500053E942213EDD6A6 /* BeersRequestParameter.swift */, - E53AB03421ECCCAC36BA6463E532AF2D /* DateParameter.swift */, - 3EB937A449C35D61D642784A44C83FF1 /* FloatParameter.swift */, - E73CF54C263C0540BBD135CCBAE448F9 /* RequestParameter.swift */, - D332B9F96F752E235840BDE2286619A5 /* StringParameter.swift */, + 8CE2272F1836F7FB2A81272597153352 /* Configuration.swift */, + 4F84F5A58AA392F811DE43B4C4355719 /* PunkAPI.swift */, + 14489482B61273AF52F0BD9D4DCDE682 /* Content */, + 37C870DAA7862B4F751A2693962A061F /* Request */, + 3C5A2C687FF2711BA9F139D5439C6F42 /* Results */, ); - name = Parameter; - path = Parameter; + name = API; + sourceTree = ""; + }; + 5E6C37C04887F82A8C550F9B76E5B746 /* Targets Support Files */ = { + isa = PBXGroup; + children = ( + 9BFECB8663CD309F9214B4311C96BCB5 /* Pods-PunkAPI_Example */, + B2D5CC793D96E6B1A0442EA2481F7DF2 /* Pods-PunkAPI_Tests */, + ); + name = "Targets Support Files"; sourceTree = ""; }; 6C92B5E2C39B71B9A3D59EB753CF598A /* Products */ = { @@ -222,23 +234,25 @@ isa = PBXGroup; children = ( 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */, - 3C48D264DEAC135E647F4628351B96D3 /* Development Pods */, + 534A0751825F5A2C93C17E95129349F5 /* Development Pods */, BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */, 6C92B5E2C39B71B9A3D59EB753CF598A /* Products */, 5E6C37C04887F82A8C550F9B76E5B746 /* Targets Support Files */, ); sourceTree = ""; }; - 883B8E4B6F6171944650345EDD78EC6C /* Content */ = { + 870B067F1898220EDEC85A34D5C85A3E /* Support Files */ = { isa = PBXGroup; children = ( - 0C6F916B3844F173B183C5BC45E825DC /* Beer.swift */, - 272E2F86C0B64A9624B4C3B045C95054 /* Method.swift */, - C0640B723338BC89B5BF58530FC5A3D0 /* Quantity.swift */, - 5FEECE1958551B13C700A5127274F0A0 /* Recipe.swift */, + 578ED8CFFEAC4611547CE767C7193F36 /* Info.plist */, + 012C8098DFF121CC7D36CD350EDFF337 /* PunkAPI.modulemap */, + FA3BA90C7DD464C9C383DC0B449A4F12 /* PunkAPI.xcconfig */, + CD645A3AF35EE532D3C5D89AD7BBD24A /* PunkAPI-dummy.m */, + 92E1493E5B520A68931D56ADC863CF04 /* PunkAPI-prefix.pch */, + A4E74E37150A9E4E047C1F5E41D00B8B /* PunkAPI-umbrella.h */, ); - name = Content; - path = PunkAPI/Classes/Content; + name = "Support Files"; + path = "Example/Pods/Target Support Files/PunkAPI"; sourceTree = ""; }; 9BFECB8663CD309F9214B4311C96BCB5 /* Pods-PunkAPI_Example */ = { @@ -259,6 +273,16 @@ path = "Target Support Files/Pods-PunkAPI_Example"; sourceTree = ""; }; + A405E189A77153122813D6AEA2AF2BEF /* Pod */ = { + isa = PBXGroup; + children = ( + AA1778437B194C57760FA0E9D1035195 /* LICENSE */, + DC82B189006451DA104C7B574E76E1A2 /* PunkAPI.podspec */, + 5B0D6522C57BF3A62BF3D35273B4F8A8 /* README.md */, + ); + name = Pod; + sourceTree = ""; + }; B2D5CC793D96E6B1A0442EA2481F7DF2 /* Pods-PunkAPI_Tests */ = { isa = PBXGroup; children = ( @@ -277,41 +301,25 @@ path = "Target Support Files/Pods-PunkAPI_Tests"; sourceTree = ""; }; - BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */ = { - isa = PBXGroup; - children = ( - 44D5347904CF754D6785B84253F2574A /* iOS */, - ); - name = Frameworks; - sourceTree = ""; - }; - CB553B8B7B06165B82FCA92BD5137F9D /* Support Files */ = { + B4F9D59FECBA6520DCA65AD3EF9DBBAC /* Parameter */ = { isa = PBXGroup; children = ( - 073D13EDB6E52C7CA76600719DF8FCCA /* Info.plist */, - DEC567BAB5C34B4B7667B6C1478CE2DA /* PunkAPI.modulemap */, - F5FCAD7EA85132D2D8D1388DA3081592 /* PunkAPI.xcconfig */, - AF457128C49817820875EFC37DDC2763 /* PunkAPI-dummy.m */, - 16EF8876C605E8EC561718EF37E64EF9 /* PunkAPI-prefix.pch */, - 5E6E75F5999AC210521146C7375A3313 /* PunkAPI-umbrella.h */, + C74860045E1EF88E953842E8A12B491E /* BeersRequestParameter.swift */, + 69BD8918FA224756AA9BDB1EDEAFFB79 /* DateParameter.swift */, + 2568A0E3C875163AFF7366B44BE111CA /* FloatParameter.swift */, + 3B97F2B7F36F2E0EEC6E1C86C85DDAB1 /* RequestParameter.swift */, + E5CE592C73DF18A303A3D024D395DF74 /* StringParameter.swift */, ); - name = "Support Files"; - path = "Example/Pods/Target Support Files/PunkAPI"; + name = Parameter; + path = Parameter; sourceTree = ""; }; - F7A6E9EE825581F4F5E91FACA3E20C0F /* PunkAPI */ = { + BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */ = { isa = PBXGroup; children = ( - 9E63AF47725611B0A82E5D288783A976 /* Configuration.swift */, - D5EF39F3AF34782AC8545A51C195DF61 /* PunkAPI.swift */, - 883B8E4B6F6171944650345EDD78EC6C /* Content */, - 1EAE5A66A94268C182B75D7DB0BFCB3F /* Pod */, - 090992C0DECBC3153B28556E0B42A41B /* Request */, - 0514815A5F57F1358DA701F5C9BCA5D2 /* Results */, - CB553B8B7B06165B82FCA92BD5137F9D /* Support Files */, + 44D5347904CF754D6785B84253F2574A /* iOS */, ); - name = PunkAPI; - path = ../..; + name = Frameworks; sourceTree = ""; }; /* End PBXGroup section */ @@ -515,7 +523,7 @@ /* Begin XCBuildConfiguration section */ 0B544C28097B1323AC34E22808695EB6 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = F5FCAD7EA85132D2D8D1388DA3081592 /* PunkAPI.xcconfig */; + baseConfigurationReference = FA3BA90C7DD464C9C383DC0B449A4F12 /* PunkAPI.xcconfig */; buildSettings = { CLANG_ENABLE_OBJC_WEAK = NO; CODE_SIGN_IDENTITY = ""; @@ -814,7 +822,7 @@ }; E478EE7340C05210B36C506ACA88CC8F /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = F5FCAD7EA85132D2D8D1388DA3081592 /* PunkAPI.xcconfig */; + baseConfigurationReference = FA3BA90C7DD464C9C383DC0B449A4F12 /* PunkAPI.xcconfig */; buildSettings = { CLANG_ENABLE_OBJC_WEAK = NO; CODE_SIGN_IDENTITY = ""; diff --git a/PunkAPI.podspec b/PunkAPI.podspec index 660fbad..acedd8d 100644 --- a/PunkAPI.podspec +++ b/PunkAPI.podspec @@ -24,7 +24,14 @@ Pod::Spec.new do |s| s.ios.deployment_target = '10.0' - s.source_files = 'PunkAPI/Classes/**/*' + s.default_subspec = 'API' + s.subspec 'API' do |sp| + sp.source_files = 'PunkAPI/Classes/**/*' + end + + s.subspec 'PromiseKit' do |sp| + sp.source_files = 'PunkAPI/PromiseKit/Classes/**/*' + end # s.resource_bundles = { # 'PunkAPI' => ['PunkAPI/Assets/*.png'] diff --git a/PunkAPI/PromiseKit/Classes/PunkAPI+PromiseKit.swift b/PunkAPI/PromiseKit/Classes/PunkAPI+PromiseKit.swift new file mode 100644 index 0000000..e69de29 From abca990ab0da8d6c2c27080befd327eec3d530ce Mon Sep 17 00:00:00 2001 From: Andrea Altea Date: Mon, 4 Mar 2019 20:49:38 +0100 Subject: [PATCH 09/17] Feat: exclude pod folder --- .gitignore | 2 +- Example/fastlane/Fastfile | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 04217b7..bfa9c5c 100644 --- a/.gitignore +++ b/.gitignore @@ -34,5 +34,5 @@ Carthage/Build # Note: if you ignore the Pods directory, make sure to uncomment # `pod install` in .travis.yml # -# Pods/ +Pods/ IDEWorkspaceChecks.plist diff --git a/Example/fastlane/Fastfile b/Example/fastlane/Fastfile index 368968b..98cce8a 100644 --- a/Example/fastlane/Fastfile +++ b/Example/fastlane/Fastfile @@ -18,10 +18,16 @@ platform :ios do desc "Default CI lane" lane :ci do + update_dependencies test coverage end + desc "Update dependencies" + lane :update_dependencies do + cocoapods + end + desc "SwiftLint linting" lane :lint do swiftlint( From b4e2055d0c7927169709ad445e6e5deec5af4e4d Mon Sep 17 00:00:00 2001 From: Andrea Altea Date: Mon, 4 Mar 2019 21:01:19 +0100 Subject: [PATCH 10/17] Feat: import dependencies --- Example/Podfile | 1 + Example/Podfile.lock | 22 +- .../Pods/Local Podspecs/PunkAPI.podspec.json | 10 +- Example/Pods/Manifest.lock | 22 +- Example/Pods/Pods.xcodeproj/project.pbxproj | 869 +++++++++++++----- ...-PunkAPI_Example-acknowledgements.markdown | 24 + ...ods-PunkAPI_Example-acknowledgements.plist | 30 + .../Pods-PunkAPI_Example-frameworks.sh | 2 + .../Pods-PunkAPI_Example.debug.xcconfig | 6 +- .../Pods-PunkAPI_Example.release.xcconfig | 6 +- .../Pods-PunkAPI_Tests.debug.xcconfig | 4 +- .../Pods-PunkAPI_Tests.release.xcconfig | 4 +- .../PunkAPI/PunkAPI.xcconfig | 1 + Example/PunkAPI.xcodeproj/project.pbxproj | 2 + PunkAPI.podspec | 3 + 15 files changed, 767 insertions(+), 239 deletions(-) diff --git a/Example/Podfile b/Example/Podfile index 02a45cb..7199d65 100644 --- a/Example/Podfile +++ b/Example/Podfile @@ -2,6 +2,7 @@ use_frameworks! target 'PunkAPI_Example' do pod 'PunkAPI', :path => '../' + pod 'PunkAPI/PromiseKit', :path => '../' target 'PunkAPI_Tests' do inherit! :search_paths diff --git a/Example/Podfile.lock b/Example/Podfile.lock index 67126c4..ab97e60 100644 --- a/Example/Podfile.lock +++ b/Example/Podfile.lock @@ -1,18 +1,36 @@ PODS: + - PromiseKit (6.8.3): + - PromiseKit/CorePromise (= 6.8.3) + - PromiseKit/Foundation (= 6.8.3) + - PromiseKit/UIKit (= 6.8.3) + - PromiseKit/CorePromise (6.8.3) + - PromiseKit/Foundation (6.8.3): + - PromiseKit/CorePromise + - PromiseKit/UIKit (6.8.3): + - PromiseKit/CorePromise - PunkAPI (0.1.0): - PunkAPI/API (= 0.1.0) - PunkAPI/API (0.1.0) + - PunkAPI/PromiseKit (0.1.0): + - PromiseKit (~> 6.7) + - PunkAPI/API DEPENDENCIES: - PunkAPI (from `../`) + - PunkAPI/PromiseKit (from `../`) + +SPEC REPOS: + https://github.com/cocoapods/specs.git: + - PromiseKit EXTERNAL SOURCES: PunkAPI: :path: "../" SPEC CHECKSUMS: - PunkAPI: 0a5d363e20f6a26abfd6281f5a247256a95775be + PromiseKit: 94c6e781838c5bf4717677d0d882b0e7250c80fc + PunkAPI: d1f879329a85f6a16bdfd8c478c9da163df49b59 -PODFILE CHECKSUM: 77a7edfbda92bc42f026175f2a4105df175a2c99 +PODFILE CHECKSUM: d9ed4e87e5248c7d10fc446b945660d3abddaee1 COCOAPODS: 1.5.3 diff --git a/Example/Pods/Local Podspecs/PunkAPI.podspec.json b/Example/Pods/Local Podspecs/PunkAPI.podspec.json index 1cb2643..2ac2a00 100644 --- a/Example/Pods/Local Podspecs/PunkAPI.podspec.json +++ b/Example/Pods/Local Podspecs/PunkAPI.podspec.json @@ -28,7 +28,15 @@ }, { "name": "PromiseKit", - "source_files": "PunkAPI/PromiseKit/Classes/**/*" + "source_files": "PunkAPI/PromiseKit/Classes/**/*", + "dependencies": { + "PunkAPI/API": [ + + ], + "PromiseKit": [ + "~> 5" + ] + } } ] } diff --git a/Example/Pods/Manifest.lock b/Example/Pods/Manifest.lock index 67126c4..ab97e60 100644 --- a/Example/Pods/Manifest.lock +++ b/Example/Pods/Manifest.lock @@ -1,18 +1,36 @@ PODS: + - PromiseKit (6.8.3): + - PromiseKit/CorePromise (= 6.8.3) + - PromiseKit/Foundation (= 6.8.3) + - PromiseKit/UIKit (= 6.8.3) + - PromiseKit/CorePromise (6.8.3) + - PromiseKit/Foundation (6.8.3): + - PromiseKit/CorePromise + - PromiseKit/UIKit (6.8.3): + - PromiseKit/CorePromise - PunkAPI (0.1.0): - PunkAPI/API (= 0.1.0) - PunkAPI/API (0.1.0) + - PunkAPI/PromiseKit (0.1.0): + - PromiseKit (~> 6.7) + - PunkAPI/API DEPENDENCIES: - PunkAPI (from `../`) + - PunkAPI/PromiseKit (from `../`) + +SPEC REPOS: + https://github.com/cocoapods/specs.git: + - PromiseKit EXTERNAL SOURCES: PunkAPI: :path: "../" SPEC CHECKSUMS: - PunkAPI: 0a5d363e20f6a26abfd6281f5a247256a95775be + PromiseKit: 94c6e781838c5bf4717677d0d882b0e7250c80fc + PunkAPI: d1f879329a85f6a16bdfd8c478c9da163df49b59 -PODFILE CHECKSUM: 77a7edfbda92bc42f026175f2a4105df175a2c99 +PODFILE CHECKSUM: d9ed4e87e5248c7d10fc446b945660d3abddaee1 COCOAPODS: 1.5.3 diff --git a/Example/Pods/Pods.xcodeproj/project.pbxproj b/Example/Pods/Pods.xcodeproj/project.pbxproj index d517dd9..84192dd 100644 --- a/Example/Pods/Pods.xcodeproj/project.pbxproj +++ b/Example/Pods/Pods.xcodeproj/project.pbxproj @@ -7,208 +7,372 @@ objects = { /* Begin PBXBuildFile section */ - 040633ED2DA398496AD631E73B9CB953 /* Beer.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF088E01F58E14A65CAA7F0FE91DEA1D /* Beer.swift */; }; - 0706F758C5F2CE0E83E44396DE53B472 /* StringParameter.swift in Sources */ = {isa = PBXBuildFile; fileRef = E5CE592C73DF18A303A3D024D395DF74 /* StringParameter.swift */; }; - 0C4C6C5EED9509237E097606FBBF2046 /* BeerRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = FC9D2517181A3C56CCD7B3A402E557DB /* BeerRequest.swift */; }; - 156976A157354FAC4A76CDD07C60C630 /* Errors.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3DAFF46790930EA82EB8B14306C5CDA6 /* Errors.swift */; }; + 01F7EA7C804A279537F09574EECE019D /* NSNotificationCenter+Promise.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE159C2117ADDD04964214600F1F6A2E /* NSNotificationCenter+Promise.swift */; }; + 02472B8E5549B0692697FDB682FD86E7 /* Configuration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 56C5FF402B47F4DEE26E1045AEBC848E /* Configuration.swift */; }; + 06A4DDC6FB5F8ED351BE09F4A0780F73 /* PunkAPI-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 71B94583706C3E41DBE6A46B24A47C77 /* PunkAPI-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 070D48A7D83566AF4AD67660DBB92752 /* Thenable.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD0A5EF66DF2EF65AACB35D20BF6CE0B /* Thenable.swift */; }; + 08F3AB21149DF0DF983B5A231F139420 /* PMKUIKit.h in Headers */ = {isa = PBXBuildFile; fileRef = D4E237603232CE6CDB8B801F22D9CC65 /* PMKUIKit.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 09E957B06BAE743F2B2716C68C8ACCD0 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 99572F269A1498A570F59D4ADCF0553C /* Foundation.framework */; }; + 0F2E29ACE2C8E423818BE88BB720468A /* after.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0CE8079724D91D68DF981D4F73B81236 /* after.swift */; }; + 0F32D3B7335725FD93C772098ED7C142 /* Quantity.swift in Sources */ = {isa = PBXBuildFile; fileRef = 83782130DC20EFFFFED492CEBD276C3B /* Quantity.swift */; }; + 0F53887501097A4B90CBCC03743F1B26 /* UIViewController+AnyPromise.h in Headers */ = {isa = PBXBuildFile; fileRef = 3DB351FFFD8AF323CB8285581580EDB4 /* UIViewController+AnyPromise.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0FBB2B7CA674FD4C3FEAA2A9884F0DA8 /* race.m in Sources */ = {isa = PBXBuildFile; fileRef = 9FCC4945A48CAADB8E4352866756F96B /* race.m */; }; + 172EBDB4A812D2E93D93248599F16312 /* CustomStringConvertible.swift in Sources */ = {isa = PBXBuildFile; fileRef = 63F24C2211A04E05160997AD14913055 /* CustomStringConvertible.swift */; }; + 1831BD30A66287C0759B2128FE34064A /* Recipe.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB1E65FB934F825EBFFEDFFAE8C5F6D1 /* Recipe.swift */; }; + 1ADA31252FE64A1969636FF652618E16 /* PMKFoundation.h in Headers */ = {isa = PBXBuildFile; fileRef = 2CD7342142002D3010BD0AC171DF55FA /* PMKFoundation.h */; settings = {ATTRIBUTES = (Public, ); }; }; 1DEF7BF616CC3F2EF46A7F9E5514F9AC /* Pods-PunkAPI_Tests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 34E9F6D3BEDEF11CDF5DC7C24AEF5989 /* Pods-PunkAPI_Tests-dummy.m */; }; - 1F269E313E3E5E6D95C7EA4117A4EF52 /* RequestParameter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B97F2B7F36F2E0EEC6E1C86C85DDAB1 /* RequestParameter.swift */; }; - 4C4AB5D20013C59D1BE1A0DC0AA4A90E /* Request.swift in Sources */ = {isa = PBXBuildFile; fileRef = D3A997034CD0DA5AC452F4E447256627 /* Request.swift */; }; + 24027E8733EF28332290944D0F788CF5 /* UIView+AnyPromise.m in Sources */ = {isa = PBXBuildFile; fileRef = 83C0214C18581BD1D86EE9AC66E60B92 /* UIView+AnyPromise.m */; }; + 2436D7EA6327EAABF3D0B10998B05F69 /* Catchable.swift in Sources */ = {isa = PBXBuildFile; fileRef = E4EBC02D888108EA83DDED5C1EE051C3 /* Catchable.swift */; }; + 25751B90DBF194A1B337C70ED1BEDB83 /* FloatParameter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 338B74C182C66AE9E22234DD0F2CEE2B /* FloatParameter.swift */; }; + 26C41E61EC6F20C31FFE522279A83425 /* NSObject+Promise.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5816B100CF7C82AD9AC9F31CFAB12F1E /* NSObject+Promise.swift */; }; + 27906F2BA19A6ACCDA4A887F23951EA6 /* PromiseKit-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D4C2916A6894900F01F60C725EFB9BD /* PromiseKit-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2D3E0C305BA95A7666D13C5EBF01D3E1 /* UIViewController+AnyPromise.m in Sources */ = {isa = PBXBuildFile; fileRef = 3145E8C06A1D5836B680BF11CFB66EC5 /* UIViewController+AnyPromise.m */; }; + 40FCB436919F48915414A01EECBDDD37 /* Error.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7269ED1718D686AA0357712B26248F75 /* Error.swift */; }; + 4ACCBAFA96D5171F75EAF88E1D072BA3 /* PunkAPI+PromiseKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D119C19C752F263ED96A1E5FA18396C /* PunkAPI+PromiseKit.swift */; }; + 4C2D7E3758F85115DC1B466988E05C1F /* NSNotificationCenter+AnyPromise.h in Headers */ = {isa = PBXBuildFile; fileRef = DE9D5682937CDBBA920DE96E10D91532 /* NSNotificationCenter+AnyPromise.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4D36EB370CDD1F070B3FD0A75FC76AF9 /* NSURLSession+AnyPromise.m in Sources */ = {isa = PBXBuildFile; fileRef = FC449A5FAF6331620BF5177F51F1AEC6 /* NSURLSession+AnyPromise.m */; }; + 4D4352D5CFC17FA7E3988396752F4415 /* AnyPromise.h in Headers */ = {isa = PBXBuildFile; fileRef = E7910310000B3228C0DD9A6CF825F0FA /* AnyPromise.h */; settings = {ATTRIBUTES = (Public, ); }; }; 4DE6F5415AA32E45E1A1B40AA8194B63 /* Pods-PunkAPI_Tests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = E322AC54183F0711E107C333BF42C3CF /* Pods-PunkAPI_Tests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4F478C6F6571A694E377026C7020B987 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D6DFF15000AFE2A371BF499E7AFDA808 /* Foundation.framework */; }; - 5563E1330468FB6D76F769A6697DF682 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D6DFF15000AFE2A371BF499E7AFDA808 /* Foundation.framework */; }; - 567123199E19D2AF982C095A91F499E3 /* PunkAPI-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = CD645A3AF35EE532D3C5D89AD7BBD24A /* PunkAPI-dummy.m */; }; - 58196BD46A6A962CD2291747E891A4FF /* Recipe.swift in Sources */ = {isa = PBXBuildFile; fileRef = F40C0B23D65DB75268C8353F68D8FF29 /* Recipe.swift */; }; - 861F0ED5029160D63BEA52EEDC4F5B2D /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D6DFF15000AFE2A371BF499E7AFDA808 /* Foundation.framework */; }; - 8CA6935D75E79F06DC50B80FBFA04E52 /* BeersRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = AABE2DB107ACC7CBD1C173EB3949116F /* BeersRequest.swift */; }; - 94ACB62152B83DE972430EAA4B24D449 /* PunkAPI-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = A4E74E37150A9E4E047C1F5E41D00B8B /* PunkAPI-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9C1115413D21B46B31F5D70FE29CA857 /* Method.swift in Sources */ = {isa = PBXBuildFile; fileRef = 160F384341D2DF37938DB3F464CD369C /* Method.swift */; }; - 9DEE51DC320AFD89F8CCE79E659D0E92 /* Pods-PunkAPI_Example-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 6ABEAC72915A583BE08AF19F226F5157 /* Pods-PunkAPI_Example-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9E26D0BC2A8D1AB927AD665EB5032162 /* PunkAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4F84F5A58AA392F811DE43B4C4355719 /* PunkAPI.swift */; }; - 9EB5A8CE4227261D6FDB84878505ACED /* RandomBeerRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 668114CF77952B58A8BCCC30E75307DB /* RandomBeerRequest.swift */; }; - 9F91EF3525A1E94F87950035B1DEF148 /* Result.swift in Sources */ = {isa = PBXBuildFile; fileRef = BC08E61BA3B9301ACCD304466C5FA9EE /* Result.swift */; }; - A2A4C282870BFE912F85DB1151BC24B3 /* DateParameter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 69BD8918FA224756AA9BDB1EDEAFFB79 /* DateParameter.swift */; }; - AA5C8E19C31A6A5CDAD11062F1625806 /* URLBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27FEF650E45E96509F830475745A5ED2 /* URLBuilder.swift */; }; - ADCB0254782B197A401A2AAC39C0E882 /* Configuration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CE2272F1836F7FB2A81272597153352 /* Configuration.swift */; }; - B0D852DC953C7A0E2C1CB872F9E315BB /* Pods-PunkAPI_Example-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = A4E9F26077D1238C6BF679ED6AB0504D /* Pods-PunkAPI_Example-dummy.m */; }; - BBCC787A76C3C536D049EB6E228394FF /* Quantity.swift in Sources */ = {isa = PBXBuildFile; fileRef = A4C8D42414E49771AE4025F28552A9F2 /* Quantity.swift */; }; - EA2895A6DC98FCFBB5A54F5837E8304F /* FloatParameter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2568A0E3C875163AFF7366B44BE111CA /* FloatParameter.swift */; }; - FAEC0D53EBA4A5BCFCDA4CB97EA975AA /* BeersRequestParameter.swift in Sources */ = {isa = PBXBuildFile; fileRef = C74860045E1EF88E953842E8A12B491E /* BeersRequestParameter.swift */; }; + 57E0CD3511363411484C4B0878921755 /* BeersRequestParameter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8F8E032F0F9007C139DC9B9239CE20BD /* BeersRequestParameter.swift */; }; + 59260A59372ED44A3DBA99E70B23905B /* NSTask+AnyPromise.m in Sources */ = {isa = PBXBuildFile; fileRef = 54F99442FADF50BC2A5093D2D95212FA /* NSTask+AnyPromise.m */; }; + 593DCA1E6B867E5800DAA4DF5800D147 /* fwd.h in Headers */ = {isa = PBXBuildFile; fileRef = 01D201169A2BE9DE450CBA4C211C5C3A /* fwd.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5D00FE34F6A0C1DCADDB9857D21CC1AE /* PromiseKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2FC8EFF828D027F8BD1B3ACD578CA6F2 /* PromiseKit.framework */; }; + 5D2F451C16A6EC694C2D9A6F3F8FDF95 /* PromiseKit-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = E4561FDB00ED2321B948FAC6666A718E /* PromiseKit-dummy.m */; }; + 64C486ECC97BF99F08CDA920EBDBFEBA /* NSNotificationCenter+AnyPromise.m in Sources */ = {isa = PBXBuildFile; fileRef = FA9841DAA41FE5E0AB59557D82554613 /* NSNotificationCenter+AnyPromise.m */; }; + 651C28051D5E01EAD7882BD3795F04CA /* when.m in Sources */ = {isa = PBXBuildFile; fileRef = ABCD2D69559CBD68B9AE2BA9E8396105 /* when.m */; }; + 6538256C284CD57B10E4CF91ED17F829 /* BeerRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13CFDAEEB5D4BA9835FBA19CA02E2FBC /* BeerRequest.swift */; }; + 6CB8F130EAFD8B0E4043DF2B27807B4C /* DateParameter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8FFE58E4A0978CF1B93972ABD864A831 /* DateParameter.swift */; }; + 70493D1E26FD42CE223793FE075EC790 /* Resolver.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDE1D90107DFC2E58EB8B9190008E204 /* Resolver.swift */; }; + 74BE66ED7B581E0EA1B4B5D4B9113A99 /* UIViewPropertyAnimator+Promise.swift in Sources */ = {isa = PBXBuildFile; fileRef = F5B99D7EE62DACA8F7027BE56F379F53 /* UIViewPropertyAnimator+Promise.swift */; }; + 75265F37BB61B5757278161812CA7678 /* Errors.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5D74569BB6EF5C66DDA7E7313766E46B /* Errors.swift */; }; + 75DDA913F1CBDE220361A48A487E3A0F /* Pods-PunkAPI_Example-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 6ABEAC72915A583BE08AF19F226F5157 /* Pods-PunkAPI_Example-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 75F663B71647CC4A846663F1B8DE52C7 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 99572F269A1498A570F59D4ADCF0553C /* Foundation.framework */; }; + 7919467CBC1E5953165FAE38168582F6 /* BeersRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0DE9B6B40110E54DC655EC335B72535B /* BeersRequest.swift */; }; + 7C382B358D066CE8ACD2FCC01FBD2750 /* AnyPromise.swift in Sources */ = {isa = PBXBuildFile; fileRef = 17A67B67A79B7B46960846FCED030F45 /* AnyPromise.swift */; }; + 7D19EC3D7E4EAD1F8EA934A3F7FECE9C /* RequestParameter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4D0839C355C8709467AAAFFC446542A1 /* RequestParameter.swift */; }; + 839FB49A7523EEDD04EAD8EF79530E82 /* AnyPromise.m in Sources */ = {isa = PBXBuildFile; fileRef = 78604CD766AC31AE1FC216488C4686BB /* AnyPromise.m */; }; + 861F0ED5029160D63BEA52EEDC4F5B2D /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 99572F269A1498A570F59D4ADCF0553C /* Foundation.framework */; }; + 8B17411562B30AEF3E199C090EDB6B21 /* Pods-PunkAPI_Example-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = A4E9F26077D1238C6BF679ED6AB0504D /* Pods-PunkAPI_Example-dummy.m */; }; + 8E8FDE93066C2BEF245D7132347D8F8E /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1C454D228EC4BC69229D24F231FAB36E /* UIKit.framework */; }; + 913C822D6D17D06AB8C8AA0F23051B6E /* dispatch_promise.m in Sources */ = {isa = PBXBuildFile; fileRef = 8B50B7D9202500AF7B971A57CCCCF39E /* dispatch_promise.m */; }; + 915367CE5E9131B3637F1709033BBF39 /* URLBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = CACE6AB6C65BD1E7764770C43B2AE400 /* URLBuilder.swift */; }; + 935DE8680BB896A2E8B3081231844257 /* race.swift in Sources */ = {isa = PBXBuildFile; fileRef = C190EA248469E08774E68EC4B1EC0615 /* race.swift */; }; + 971CAC3876F300CDC5B6ABC731E9A9E2 /* Process+Promise.swift in Sources */ = {isa = PBXBuildFile; fileRef = BE8E34065F5BBC48EFFDE8EA9EC1643B /* Process+Promise.swift */; }; + 9AAD5ECFEDFB2027E671B2CC9F6F1A50 /* Promise.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98FA43FC0191DE1A582BF062E85B2754 /* Promise.swift */; }; + 9E92235D15570A553E28D0E22DDD4EA3 /* Method.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34F6E07A838D21F8FBE9315AEF1F96F3 /* Method.swift */; }; + 9EB5F27C997FE10A1C85B3D5EFFB4067 /* afterlife.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0608F35670869E2F60CFDD955AF93AD1 /* afterlife.swift */; }; + A4962D081D6136E8C397E251837BBC11 /* Configuration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3427C748CA34B4EA024AA9C19A052DB5 /* Configuration.swift */; }; + A50E5D49EEFF6BE1B323C839DE822629 /* PunkAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7F1046E540164A0639312B96A76C279F /* PunkAPI.swift */; }; + A6433725C19E3574169F12153F1FCFE9 /* StringParameter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 000FC1494158285A69F5F9663FEF4811 /* StringParameter.swift */; }; + A92EB293F6D451F01587E89FF86CA81E /* UIView+Promise.swift in Sources */ = {isa = PBXBuildFile; fileRef = FC656384B5A49D200E3C067B0D2357BE /* UIView+Promise.swift */; }; + AABEEA16EA2B4E05356A108415F11678 /* RandomBeerRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C0617D0E6093B7C70B547683F05D675 /* RandomBeerRequest.swift */; }; + ADEDD0E7CD87A69AFB6AE0A0CDFC24B5 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 99572F269A1498A570F59D4ADCF0553C /* Foundation.framework */; }; + B2062A0722C34907EE592310FC126A31 /* Guarantee.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8BE9D10C30B26AE2A2C699E4CC9972DF /* Guarantee.swift */; }; + B68E8FA40095D9549055CF357C4509FB /* after.m in Sources */ = {isa = PBXBuildFile; fileRef = 9AF7DC478A6A102FE06C1637B8B64C3E /* after.m */; }; + B7FFC8343027BECAA609891D5AD7DFDD /* NSURLSession+Promise.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19D7265E6AC1527971566FF761B55437 /* NSURLSession+Promise.swift */; }; + B9D6178CEE40D20A80ADF4775CDEC893 /* Beer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 955578B0E2335B3C44601DD9775B95F2 /* Beer.swift */; }; + BA22301B45C2F428772B84D0F76FE65C /* PunkAPI-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = BD6B117F6ACB8285753F78BDE4DDEC13 /* PunkAPI-dummy.m */; }; + BA4E3D2C305E0BD7E9DEF85187EB3ADF /* NSURLSession+AnyPromise.h in Headers */ = {isa = PBXBuildFile; fileRef = 6B9103B26E856C2CD28B69EDF6A454CC /* NSURLSession+AnyPromise.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BA638090C327BDF47A47D405235D9F78 /* Request.swift in Sources */ = {isa = PBXBuildFile; fileRef = EFC052CE2DE77A1E160607F2F5843B1F /* Request.swift */; }; + BCBDAB64778E8C541797EF7A673E90E1 /* UIView+AnyPromise.h in Headers */ = {isa = PBXBuildFile; fileRef = DB7EB936DE5904B3CC0043F883F5FB2F /* UIView+AnyPromise.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C23DBD788DB3D60F57DC0B5AB01A4ECA /* hang.m in Sources */ = {isa = PBXBuildFile; fileRef = 8BE435045FBAE2F9A049DD7BBD8519B0 /* hang.m */; }; + C3AD7B6E7C0A48F892D4055D759795A3 /* LogEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8147F05A1A334F1543D39A8D69F62105 /* LogEvent.swift */; }; + C5F22E146B052C36756388DB821E9FA5 /* when.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B9748CF622DCEFE46BA5851B62BF9E7 /* when.swift */; }; + C8089EDA2D90237F2610675F67CD4DA1 /* Result.swift in Sources */ = {isa = PBXBuildFile; fileRef = D6891C161346DDB613BD47476F74F0D4 /* Result.swift */; }; + C8CCEB9CCD7CECBA1F6B1A2BC00B0C74 /* Deprecations.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98FF193A9C0CEE705317CD27E63B0E6E /* Deprecations.swift */; }; + CBA05274211E298535EC409A7D12CF5B /* NSTask+AnyPromise.h in Headers */ = {isa = PBXBuildFile; fileRef = 873850F807A9BCB767872109FDDD19E3 /* NSTask+AnyPromise.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CDD84A94BAAFC4D07112A52B88CF8FE4 /* hang.swift in Sources */ = {isa = PBXBuildFile; fileRef = 198B013D7E8AC7023BD181580AA462E5 /* hang.swift */; }; + CEDB564EEFF477F48D6757A05D2D05E6 /* join.m in Sources */ = {isa = PBXBuildFile; fileRef = 9D06E12BA1CD0860078D96040140AF4A /* join.m */; }; + D18519DD7B9E5B7A46AF2B825F15DD86 /* Box.swift in Sources */ = {isa = PBXBuildFile; fileRef = CA33C1E7093D56341189B45587825C56 /* Box.swift */; }; + DF62DD29D72A20E7A39829B73571DF10 /* firstly.swift in Sources */ = {isa = PBXBuildFile; fileRef = 441E213E2FA64EF054145E94F275EEBF /* firstly.swift */; }; + E898B8B2FE5D7B90610060B7A45E922B /* PromiseKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E056B50EFBB3B8A85BA6218F9144F2A /* PromiseKit.h */; settings = {ATTRIBUTES = (Public, ); }; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 1BD9253D912BA229A3617AE941991ACC /* PBXContainerItemProxy */ = { + 26AB40795B0BA17DA83D7BA25EA5107F /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = 0B28CB22AF32F9C8EECB28CD3ECA03E5; + remoteInfo = "Pods-PunkAPI_Example"; + }; + 3C72E880575CAD9B6035DFFA5DC766BC /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = B344F2607551E00B1FC1B085E8A11FDC; + remoteInfo = PromiseKit; + }; + AAF2411498599E3CDA7F706A6F6C4567 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; - remoteGlobalIDString = 104A4972E6668483EF3BA6EE08D840AF; + remoteGlobalIDString = 633627D39F05C0456424588734F86181; remoteInfo = PunkAPI; }; - 26AB40795B0BA17DA83D7BA25EA5107F /* PBXContainerItemProxy */ = { + D5D9F0799CC51E691E8706369781CAEE /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; - remoteGlobalIDString = C1DB41E820BFF9D57C1A713EEC3A7C98; - remoteInfo = "Pods-PunkAPI_Example"; + remoteGlobalIDString = B344F2607551E00B1FC1B085E8A11FDC; + remoteInfo = PromiseKit; }; /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 012C8098DFF121CC7D36CD350EDFF337 /* PunkAPI.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = PunkAPI.modulemap; sourceTree = ""; }; + 000FC1494158285A69F5F9663FEF4811 /* StringParameter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = StringParameter.swift; sourceTree = ""; }; + 01D201169A2BE9DE450CBA4C211C5C3A /* fwd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = fwd.h; path = Sources/fwd.h; sourceTree = ""; }; + 031E9D87765ED99586243ABF6EE98A9B /* PunkAPI.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; lastKnownFileType = text; path = PunkAPI.podspec; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 0608F35670869E2F60CFDD955AF93AD1 /* afterlife.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = afterlife.swift; path = Extensions/Foundation/Sources/afterlife.swift; sourceTree = ""; }; 06BAF05CBDEA8E295E4784A5A5D4506C /* Pods-PunkAPI_Tests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-PunkAPI_Tests-acknowledgements.plist"; sourceTree = ""; }; 08865B1A9072612C58080056C52A36BE /* Pods-PunkAPI_Example.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-PunkAPI_Example.modulemap"; sourceTree = ""; }; - 160F384341D2DF37938DB3F464CD369C /* Method.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Method.swift; sourceTree = ""; }; - 2568A0E3C875163AFF7366B44BE111CA /* FloatParameter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = FloatParameter.swift; sourceTree = ""; }; - 27FEF650E45E96509F830475745A5ED2 /* URLBuilder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = URLBuilder.swift; sourceTree = ""; }; + 0CE8079724D91D68DF981D4F73B81236 /* after.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = after.swift; path = Sources/after.swift; sourceTree = ""; }; + 0DE9B6B40110E54DC655EC335B72535B /* BeersRequest.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BeersRequest.swift; sourceTree = ""; }; + 12E7AF8510617B50291BB606B8EC5937 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; path = LICENSE; sourceTree = ""; }; + 13CFDAEEB5D4BA9835FBA19CA02E2FBC /* BeerRequest.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BeerRequest.swift; sourceTree = ""; }; + 16B75C8892AD7BAC189E5BB2C844425E /* PromiseKit.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = PromiseKit.xcconfig; sourceTree = ""; }; + 17A67B67A79B7B46960846FCED030F45 /* AnyPromise.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AnyPromise.swift; path = Sources/AnyPromise.swift; sourceTree = ""; }; + 198B013D7E8AC7023BD181580AA462E5 /* hang.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = hang.swift; path = Sources/hang.swift; sourceTree = ""; }; + 19D7265E6AC1527971566FF761B55437 /* NSURLSession+Promise.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NSURLSession+Promise.swift"; path = "Extensions/Foundation/Sources/NSURLSession+Promise.swift"; sourceTree = ""; }; + 1C0617D0E6093B7C70B547683F05D675 /* RandomBeerRequest.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RandomBeerRequest.swift; sourceTree = ""; }; + 1C0709F4C234AF68FC7147BA98CB7E3D /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; path = README.md; sourceTree = ""; }; + 1C454D228EC4BC69229D24F231FAB36E /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.0.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; }; + 1E056B50EFBB3B8A85BA6218F9144F2A /* PromiseKit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PromiseKit.h; path = Sources/PromiseKit.h; sourceTree = ""; }; + 25BD36BBC98A8C5284F4608C71A271F2 /* Pods_PunkAPI_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_PunkAPI_Tests.framework; path = "Pods-PunkAPI_Tests.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; + 2CD7342142002D3010BD0AC171DF55FA /* PMKFoundation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PMKFoundation.h; path = Extensions/Foundation/Sources/PMKFoundation.h; sourceTree = ""; }; + 2DC4458F387E8E8DFE11F3689A91AB75 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 2EC29BADC6D4B129C97F077B8D1AAD24 /* Pods-PunkAPI_Example-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-PunkAPI_Example-frameworks.sh"; sourceTree = ""; }; + 2FC8EFF828D027F8BD1B3ACD578CA6F2 /* PromiseKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = PromiseKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 3145E8C06A1D5836B680BF11CFB66EC5 /* UIViewController+AnyPromise.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIViewController+AnyPromise.m"; path = "Extensions/UIKit/Sources/UIViewController+AnyPromise.m"; sourceTree = ""; }; + 338B74C182C66AE9E22234DD0F2CEE2B /* FloatParameter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = FloatParameter.swift; sourceTree = ""; }; + 33F25F130B030DB47EE5703BC95455CE /* PunkAPI.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = PunkAPI.xcconfig; sourceTree = ""; }; + 3427C748CA34B4EA024AA9C19A052DB5 /* Configuration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Configuration.swift; path = Sources/Configuration.swift; sourceTree = ""; }; 34E9F6D3BEDEF11CDF5DC7C24AEF5989 /* Pods-PunkAPI_Tests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-PunkAPI_Tests-dummy.m"; sourceTree = ""; }; - 3B97F2B7F36F2E0EEC6E1C86C85DDAB1 /* RequestParameter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RequestParameter.swift; sourceTree = ""; }; - 3CA7DD0E0D9E3D052F0DA83C7B3B79FC /* Pods_PunkAPI_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_PunkAPI_Tests.framework; path = "Pods-PunkAPI_Tests.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; - 3DAFF46790930EA82EB8B14306C5CDA6 /* Errors.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Errors.swift; sourceTree = ""; }; + 34F6E07A838D21F8FBE9315AEF1F96F3 /* Method.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Method.swift; sourceTree = ""; }; + 3B9748CF622DCEFE46BA5851B62BF9E7 /* when.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = when.swift; path = Sources/when.swift; sourceTree = ""; }; + 3C4145CFA845CF93F3DD7C5EC37FB725 /* Pods_PunkAPI_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_PunkAPI_Example.framework; path = "Pods-PunkAPI_Example.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; + 3D4C2916A6894900F01F60C725EFB9BD /* PromiseKit-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "PromiseKit-umbrella.h"; sourceTree = ""; }; + 3DB351FFFD8AF323CB8285581580EDB4 /* UIViewController+AnyPromise.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIViewController+AnyPromise.h"; path = "Extensions/UIKit/Sources/UIViewController+AnyPromise.h"; sourceTree = ""; }; + 441E213E2FA64EF054145E94F275EEBF /* firstly.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = firstly.swift; path = Sources/firstly.swift; sourceTree = ""; }; 492C127C07A0D9D778B3D645FCDED6AC /* Pods-PunkAPI_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-PunkAPI_Tests.release.xcconfig"; sourceTree = ""; }; - 4F84F5A58AA392F811DE43B4C4355719 /* PunkAPI.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PunkAPI.swift; path = PunkAPI/Classes/PunkAPI.swift; sourceTree = ""; }; - 578ED8CFFEAC4611547CE767C7193F36 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 5B0D6522C57BF3A62BF3D35273B4F8A8 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; path = README.md; sourceTree = ""; }; + 4BAD9FD45F8978CCEE638C055682907C /* PromiseKit-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "PromiseKit-prefix.pch"; sourceTree = ""; }; + 4D0839C355C8709467AAAFFC446542A1 /* RequestParameter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RequestParameter.swift; sourceTree = ""; }; + 54F99442FADF50BC2A5093D2D95212FA /* NSTask+AnyPromise.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSTask+AnyPromise.m"; path = "Extensions/Foundation/Sources/NSTask+AnyPromise.m"; sourceTree = ""; }; + 56C5FF402B47F4DEE26E1045AEBC848E /* Configuration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Configuration.swift; path = PunkAPI/Classes/Configuration.swift; sourceTree = ""; }; + 5816B100CF7C82AD9AC9F31CFAB12F1E /* NSObject+Promise.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NSObject+Promise.swift"; path = "Extensions/Foundation/Sources/NSObject+Promise.swift"; sourceTree = ""; }; + 5D74569BB6EF5C66DDA7E7313766E46B /* Errors.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Errors.swift; sourceTree = ""; }; 608E9332AF8468043B49B03317025805 /* Pods-PunkAPI_Tests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-PunkAPI_Tests-frameworks.sh"; sourceTree = ""; }; - 668114CF77952B58A8BCCC30E75307DB /* RandomBeerRequest.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RandomBeerRequest.swift; sourceTree = ""; }; - 69BD8918FA224756AA9BDB1EDEAFFB79 /* DateParameter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = DateParameter.swift; sourceTree = ""; }; + 63F24C2211A04E05160997AD14913055 /* CustomStringConvertible.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CustomStringConvertible.swift; path = Sources/CustomStringConvertible.swift; sourceTree = ""; }; 6ABEAC72915A583BE08AF19F226F5157 /* Pods-PunkAPI_Example-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-PunkAPI_Example-umbrella.h"; sourceTree = ""; }; + 6B9103B26E856C2CD28B69EDF6A454CC /* NSURLSession+AnyPromise.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSURLSession+AnyPromise.h"; path = "Extensions/Foundation/Sources/NSURLSession+AnyPromise.h"; sourceTree = ""; }; 6EDD1194CE9C142C26AD6C6803C306E4 /* Pods-PunkAPI_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-PunkAPI_Tests.debug.xcconfig"; sourceTree = ""; }; + 71B94583706C3E41DBE6A46B24A47C77 /* PunkAPI-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "PunkAPI-umbrella.h"; sourceTree = ""; }; + 7269ED1718D686AA0357712B26248F75 /* Error.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Error.swift; path = Sources/Error.swift; sourceTree = ""; }; + 78604CD766AC31AE1FC216488C4686BB /* AnyPromise.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AnyPromise.m; path = Sources/AnyPromise.m; sourceTree = ""; }; + 7F1046E540164A0639312B96A76C279F /* PunkAPI.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PunkAPI.swift; path = PunkAPI/Classes/PunkAPI.swift; sourceTree = ""; }; 7F7764549D1799C2D5D6A7B2D65E3550 /* Pods-PunkAPI_Example-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-PunkAPI_Example-resources.sh"; sourceTree = ""; }; + 8147F05A1A334F1543D39A8D69F62105 /* LogEvent.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LogEvent.swift; path = Sources/LogEvent.swift; sourceTree = ""; }; 8342B62283B06E1CA90A14E1BCB6D62B /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 83782130DC20EFFFFED492CEBD276C3B /* Quantity.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Quantity.swift; sourceTree = ""; }; + 83C0214C18581BD1D86EE9AC66E60B92 /* UIView+AnyPromise.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+AnyPromise.m"; path = "Extensions/UIKit/Sources/UIView+AnyPromise.m"; sourceTree = ""; }; 8458C84A594F726E1A8DB6294F78DB73 /* Pods-PunkAPI_Tests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-PunkAPI_Tests-resources.sh"; sourceTree = ""; }; - 8CE2272F1836F7FB2A81272597153352 /* Configuration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Configuration.swift; path = PunkAPI/Classes/Configuration.swift; sourceTree = ""; }; + 873850F807A9BCB767872109FDDD19E3 /* NSTask+AnyPromise.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSTask+AnyPromise.h"; path = "Extensions/Foundation/Sources/NSTask+AnyPromise.h"; sourceTree = ""; }; + 8B50B7D9202500AF7B971A57CCCCF39E /* dispatch_promise.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = dispatch_promise.m; path = Sources/dispatch_promise.m; sourceTree = ""; }; + 8BE435045FBAE2F9A049DD7BBD8519B0 /* hang.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = hang.m; path = Sources/hang.m; sourceTree = ""; }; + 8BE9D10C30B26AE2A2C699E4CC9972DF /* Guarantee.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Guarantee.swift; path = Sources/Guarantee.swift; sourceTree = ""; }; + 8F8E032F0F9007C139DC9B9239CE20BD /* BeersRequestParameter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BeersRequestParameter.swift; sourceTree = ""; }; + 8FFE58E4A0978CF1B93972ABD864A831 /* DateParameter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = DateParameter.swift; sourceTree = ""; }; 92229C81AD3A318707A49C8449AEB2F5 /* Pods-PunkAPI_Example-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-PunkAPI_Example-acknowledgements.plist"; sourceTree = ""; }; - 92E1493E5B520A68931D56ADC863CF04 /* PunkAPI-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "PunkAPI-prefix.pch"; sourceTree = ""; }; + 92ABD37AE95432515E13AEDBDC4B90DC /* PunkAPI.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = PunkAPI.modulemap; sourceTree = ""; }; 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 955578B0E2335B3C44601DD9775B95F2 /* Beer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Beer.swift; sourceTree = ""; }; + 98FA43FC0191DE1A582BF062E85B2754 /* Promise.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Promise.swift; path = Sources/Promise.swift; sourceTree = ""; }; + 98FF193A9C0CEE705317CD27E63B0E6E /* Deprecations.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Deprecations.swift; path = Sources/Deprecations.swift; sourceTree = ""; }; + 99572F269A1498A570F59D4ADCF0553C /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; + 9AF7DC478A6A102FE06C1637B8B64C3E /* after.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = after.m; path = Sources/after.m; sourceTree = ""; }; + 9D06E12BA1CD0860078D96040140AF4A /* join.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = join.m; path = Sources/join.m; sourceTree = ""; }; + 9D119C19C752F263ED96A1E5FA18396C /* PunkAPI+PromiseKit.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "PunkAPI+PromiseKit.swift"; path = "PunkAPI/PromiseKit/Classes/PunkAPI+PromiseKit.swift"; sourceTree = ""; }; 9D14926C4AE138B3C55CE27E18BE194D /* Pods-PunkAPI_Tests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-PunkAPI_Tests.modulemap"; sourceTree = ""; }; - 9DDE148E1E89B985353411506461E509 /* Pods_PunkAPI_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_PunkAPI_Example.framework; path = "Pods-PunkAPI_Example.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; - A4C8D42414E49771AE4025F28552A9F2 /* Quantity.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Quantity.swift; sourceTree = ""; }; - A4E74E37150A9E4E047C1F5E41D00B8B /* PunkAPI-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "PunkAPI-umbrella.h"; sourceTree = ""; }; + 9FCC4945A48CAADB8E4352866756F96B /* race.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = race.m; path = Sources/race.m; sourceTree = ""; }; A4E9F26077D1238C6BF679ED6AB0504D /* Pods-PunkAPI_Example-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-PunkAPI_Example-dummy.m"; sourceTree = ""; }; A5D146483FC9684CF2C15F85C081EF35 /* Pods-PunkAPI_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-PunkAPI_Example.release.xcconfig"; sourceTree = ""; }; - AA1778437B194C57760FA0E9D1035195 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; path = LICENSE; sourceTree = ""; }; - AABE2DB107ACC7CBD1C173EB3949116F /* BeersRequest.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BeersRequest.swift; sourceTree = ""; }; - BC08E61BA3B9301ACCD304466C5FA9EE /* Result.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Result.swift; sourceTree = ""; }; - C74860045E1EF88E953842E8A12B491E /* BeersRequestParameter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BeersRequestParameter.swift; sourceTree = ""; }; - CD645A3AF35EE532D3C5D89AD7BBD24A /* PunkAPI-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "PunkAPI-dummy.m"; sourceTree = ""; }; - D3A997034CD0DA5AC452F4E447256627 /* Request.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Request.swift; sourceTree = ""; }; - D6DFF15000AFE2A371BF499E7AFDA808 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; - DC82B189006451DA104C7B574E76E1A2 /* PunkAPI.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; lastKnownFileType = text; path = PunkAPI.podspec; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + ABCD2D69559CBD68B9AE2BA9E8396105 /* when.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = when.m; path = Sources/when.m; sourceTree = ""; }; + AC8897E3B44329386ADE827A154D0D8E /* PromiseKit.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = PromiseKit.modulemap; sourceTree = ""; }; + AE159C2117ADDD04964214600F1F6A2E /* NSNotificationCenter+Promise.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NSNotificationCenter+Promise.swift"; path = "Extensions/Foundation/Sources/NSNotificationCenter+Promise.swift"; sourceTree = ""; }; + B9D61443B6265CD950E9FAB5A4E40ACA /* PunkAPI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = PunkAPI.framework; path = PunkAPI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + BB1E65FB934F825EBFFEDFFAE8C5F6D1 /* Recipe.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Recipe.swift; sourceTree = ""; }; + BCC4EC8C827C08C7913B0A984382FF51 /* PromiseKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = PromiseKit.framework; path = PromiseKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + BD6B117F6ACB8285753F78BDE4DDEC13 /* PunkAPI-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "PunkAPI-dummy.m"; sourceTree = ""; }; + BE8E34065F5BBC48EFFDE8EA9EC1643B /* Process+Promise.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Process+Promise.swift"; path = "Extensions/Foundation/Sources/Process+Promise.swift"; sourceTree = ""; }; + C190EA248469E08774E68EC4B1EC0615 /* race.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = race.swift; path = Sources/race.swift; sourceTree = ""; }; + CA33C1E7093D56341189B45587825C56 /* Box.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Box.swift; path = Sources/Box.swift; sourceTree = ""; }; + CACE6AB6C65BD1E7764770C43B2AE400 /* URLBuilder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = URLBuilder.swift; sourceTree = ""; }; + CDE1D90107DFC2E58EB8B9190008E204 /* Resolver.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Resolver.swift; path = Sources/Resolver.swift; sourceTree = ""; }; + D4E237603232CE6CDB8B801F22D9CC65 /* PMKUIKit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PMKUIKit.h; path = Extensions/UIKit/Sources/PMKUIKit.h; sourceTree = ""; }; + D6891C161346DDB613BD47476F74F0D4 /* Result.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Result.swift; sourceTree = ""; }; + DB7EB936DE5904B3CC0043F883F5FB2F /* UIView+AnyPromise.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+AnyPromise.h"; path = "Extensions/UIKit/Sources/UIView+AnyPromise.h"; sourceTree = ""; }; + DE9D5682937CDBBA920DE96E10D91532 /* NSNotificationCenter+AnyPromise.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSNotificationCenter+AnyPromise.h"; path = "Extensions/Foundation/Sources/NSNotificationCenter+AnyPromise.h"; sourceTree = ""; }; E322AC54183F0711E107C333BF42C3CF /* Pods-PunkAPI_Tests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-PunkAPI_Tests-umbrella.h"; sourceTree = ""; }; - E5CE592C73DF18A303A3D024D395DF74 /* StringParameter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = StringParameter.swift; sourceTree = ""; }; + E4561FDB00ED2321B948FAC6666A718E /* PromiseKit-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "PromiseKit-dummy.m"; sourceTree = ""; }; + E4EBC02D888108EA83DDED5C1EE051C3 /* Catchable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Catchable.swift; path = Sources/Catchable.swift; sourceTree = ""; }; E722B264627A535D845CCF418E225784 /* Pods-PunkAPI_Tests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-PunkAPI_Tests-acknowledgements.markdown"; sourceTree = ""; }; + E7910310000B3228C0DD9A6CF825F0FA /* AnyPromise.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AnyPromise.h; path = Sources/AnyPromise.h; sourceTree = ""; }; E816F7DA6C1CBE532E1590E0F05B9532 /* Pods-PunkAPI_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-PunkAPI_Example.debug.xcconfig"; sourceTree = ""; }; + EA1FBD8FEEF12E6096A557A7489A79D8 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; EAE741F8D3D7DED0544AD07D421892ED /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - F40C0B23D65DB75268C8353F68D8FF29 /* Recipe.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Recipe.swift; sourceTree = ""; }; - FA3BA90C7DD464C9C383DC0B449A4F12 /* PunkAPI.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = PunkAPI.xcconfig; sourceTree = ""; }; - FA66D5ED6E33AA7DD32A8C962841F3B0 /* PunkAPI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = PunkAPI.framework; path = PunkAPI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + EFC052CE2DE77A1E160607F2F5843B1F /* Request.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Request.swift; sourceTree = ""; }; + F5B99D7EE62DACA8F7027BE56F379F53 /* UIViewPropertyAnimator+Promise.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UIViewPropertyAnimator+Promise.swift"; path = "Extensions/UIKit/Sources/UIViewPropertyAnimator+Promise.swift"; sourceTree = ""; }; + FA9841DAA41FE5E0AB59557D82554613 /* NSNotificationCenter+AnyPromise.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSNotificationCenter+AnyPromise.m"; path = "Extensions/Foundation/Sources/NSNotificationCenter+AnyPromise.m"; sourceTree = ""; }; FB1D3C212D7A0519F22CF554E249675E /* Pods-PunkAPI_Example-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-PunkAPI_Example-acknowledgements.markdown"; sourceTree = ""; }; - FC9D2517181A3C56CCD7B3A402E557DB /* BeerRequest.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BeerRequest.swift; sourceTree = ""; }; - FF088E01F58E14A65CAA7F0FE91DEA1D /* Beer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Beer.swift; sourceTree = ""; }; + FC21633A674D1E59F816E60F9C0BC58D /* PunkAPI-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "PunkAPI-prefix.pch"; sourceTree = ""; }; + FC449A5FAF6331620BF5177F51F1AEC6 /* NSURLSession+AnyPromise.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSURLSession+AnyPromise.m"; path = "Extensions/Foundation/Sources/NSURLSession+AnyPromise.m"; sourceTree = ""; }; + FC656384B5A49D200E3C067B0D2357BE /* UIView+Promise.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UIView+Promise.swift"; path = "Extensions/UIKit/Sources/UIView+Promise.swift"; sourceTree = ""; }; + FD0A5EF66DF2EF65AACB35D20BF6CE0B /* Thenable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Thenable.swift; path = Sources/Thenable.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 2AC16E9D9907618B6A4F41C69D4587F0 /* Frameworks */ = { + 4232A01524473D49778737EAFBD4A8E6 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 75F663B71647CC4A846663F1B8DE52C7 /* Foundation.framework in Frameworks */, + 5D00FE34F6A0C1DCADDB9857D21CC1AE /* PromiseKit.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 76E7A3CBB25A47B13596EDBA2CE7AB07 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 4F478C6F6571A694E377026C7020B987 /* Foundation.framework in Frameworks */, + 861F0ED5029160D63BEA52EEDC4F5B2D /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 64469F9A8CDA0C6CFDD8BA665E002A2F /* Frameworks */ = { + 8582A0EE669AE5D3E9C21E598D7DFBD0 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 5563E1330468FB6D76F769A6697DF682 /* Foundation.framework in Frameworks */, + 09E957B06BAE743F2B2716C68C8ACCD0 /* Foundation.framework in Frameworks */, + 8E8FDE93066C2BEF245D7132347D8F8E /* UIKit.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 76E7A3CBB25A47B13596EDBA2CE7AB07 /* Frameworks */ = { + 96C3C606F11EA93C80818752D1C68B85 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 861F0ED5029160D63BEA52EEDC4F5B2D /* Foundation.framework in Frameworks */, + ADEDD0E7CD87A69AFB6AE0A0CDFC24B5 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 14489482B61273AF52F0BD9D4DCDE682 /* Content */ = { + 015E7F59854FC4F0B837F7118574BF3B /* API */ = { isa = PBXGroup; children = ( - FF088E01F58E14A65CAA7F0FE91DEA1D /* Beer.swift */, - 160F384341D2DF37938DB3F464CD369C /* Method.swift */, - A4C8D42414E49771AE4025F28552A9F2 /* Quantity.swift */, - F40C0B23D65DB75268C8353F68D8FF29 /* Recipe.swift */, + 56C5FF402B47F4DEE26E1045AEBC848E /* Configuration.swift */, + 7F1046E540164A0639312B96A76C279F /* PunkAPI.swift */, + 19FDCF3617876B5B2737C3C9E5698911 /* Content */, + B694938C7D857C6278FAB9ED4917046D /* Request */, + FD98F142B1BF862D73283B0B49575F17 /* Results */, ); - name = Content; - path = PunkAPI/Classes/Content; + name = API; sourceTree = ""; }; - 2B4C74F6151687B6B282EB57D951525D /* PunkAPI */ = { + 19FDCF3617876B5B2737C3C9E5698911 /* Content */ = { isa = PBXGroup; children = ( - 5AEFE90FD73EE291B0A8DC5B846CACC2 /* API */, - A405E189A77153122813D6AEA2AF2BEF /* Pod */, - 870B067F1898220EDEC85A34D5C85A3E /* Support Files */, + 955578B0E2335B3C44601DD9775B95F2 /* Beer.swift */, + 34F6E07A838D21F8FBE9315AEF1F96F3 /* Method.swift */, + 83782130DC20EFFFFED492CEBD276C3B /* Quantity.swift */, + BB1E65FB934F825EBFFEDFFAE8C5F6D1 /* Recipe.swift */, ); - name = PunkAPI; - path = ../..; + name = Content; + path = PunkAPI/Classes/Content; sourceTree = ""; }; - 37C870DAA7862B4F751A2693962A061F /* Request */ = { + 21187443271B3F8F3C15053DF3E393B0 /* CorePromise */ = { isa = PBXGroup; children = ( - FC9D2517181A3C56CCD7B3A402E557DB /* BeerRequest.swift */, - AABE2DB107ACC7CBD1C173EB3949116F /* BeersRequest.swift */, - 668114CF77952B58A8BCCC30E75307DB /* RandomBeerRequest.swift */, - D3A997034CD0DA5AC452F4E447256627 /* Request.swift */, - 27FEF650E45E96509F830475745A5ED2 /* URLBuilder.swift */, - B4F9D59FECBA6520DCA65AD3EF9DBBAC /* Parameter */, + 9AF7DC478A6A102FE06C1637B8B64C3E /* after.m */, + 0CE8079724D91D68DF981D4F73B81236 /* after.swift */, + E7910310000B3228C0DD9A6CF825F0FA /* AnyPromise.h */, + 78604CD766AC31AE1FC216488C4686BB /* AnyPromise.m */, + 17A67B67A79B7B46960846FCED030F45 /* AnyPromise.swift */, + CA33C1E7093D56341189B45587825C56 /* Box.swift */, + E4EBC02D888108EA83DDED5C1EE051C3 /* Catchable.swift */, + 3427C748CA34B4EA024AA9C19A052DB5 /* Configuration.swift */, + 63F24C2211A04E05160997AD14913055 /* CustomStringConvertible.swift */, + 98FF193A9C0CEE705317CD27E63B0E6E /* Deprecations.swift */, + 8B50B7D9202500AF7B971A57CCCCF39E /* dispatch_promise.m */, + 7269ED1718D686AA0357712B26248F75 /* Error.swift */, + 441E213E2FA64EF054145E94F275EEBF /* firstly.swift */, + 01D201169A2BE9DE450CBA4C211C5C3A /* fwd.h */, + 8BE9D10C30B26AE2A2C699E4CC9972DF /* Guarantee.swift */, + 8BE435045FBAE2F9A049DD7BBD8519B0 /* hang.m */, + 198B013D7E8AC7023BD181580AA462E5 /* hang.swift */, + 9D06E12BA1CD0860078D96040140AF4A /* join.m */, + 8147F05A1A334F1543D39A8D69F62105 /* LogEvent.swift */, + 98FA43FC0191DE1A582BF062E85B2754 /* Promise.swift */, + 1E056B50EFBB3B8A85BA6218F9144F2A /* PromiseKit.h */, + 9FCC4945A48CAADB8E4352866756F96B /* race.m */, + C190EA248469E08774E68EC4B1EC0615 /* race.swift */, + CDE1D90107DFC2E58EB8B9190008E204 /* Resolver.swift */, + FD0A5EF66DF2EF65AACB35D20BF6CE0B /* Thenable.swift */, + ABCD2D69559CBD68B9AE2BA9E8396105 /* when.m */, + 3B9748CF622DCEFE46BA5851B62BF9E7 /* when.swift */, ); - name = Request; - path = PunkAPI/Classes/Request; + name = CorePromise; sourceTree = ""; }; - 3C5A2C687FF2711BA9F139D5439C6F42 /* Results */ = { + 22B127E42F39558F04041002F928DA82 /* UIKit */ = { isa = PBXGroup; children = ( - 3DAFF46790930EA82EB8B14306C5CDA6 /* Errors.swift */, - BC08E61BA3B9301ACCD304466C5FA9EE /* Result.swift */, + D4E237603232CE6CDB8B801F22D9CC65 /* PMKUIKit.h */, + DB7EB936DE5904B3CC0043F883F5FB2F /* UIView+AnyPromise.h */, + 83C0214C18581BD1D86EE9AC66E60B92 /* UIView+AnyPromise.m */, + FC656384B5A49D200E3C067B0D2357BE /* UIView+Promise.swift */, + 3DB351FFFD8AF323CB8285581580EDB4 /* UIViewController+AnyPromise.h */, + 3145E8C06A1D5836B680BF11CFB66EC5 /* UIViewController+AnyPromise.m */, + F5B99D7EE62DACA8F7027BE56F379F53 /* UIViewPropertyAnimator+Promise.swift */, ); - name = Results; - path = PunkAPI/Classes/Results; + name = UIKit; sourceTree = ""; }; - 44D5347904CF754D6785B84253F2574A /* iOS */ = { + 464D5AB0DA9CF567D9C48EF05F05B051 /* Support Files */ = { isa = PBXGroup; children = ( - D6DFF15000AFE2A371BF499E7AFDA808 /* Foundation.framework */, + 2DC4458F387E8E8DFE11F3689A91AB75 /* Info.plist */, + AC8897E3B44329386ADE827A154D0D8E /* PromiseKit.modulemap */, + 16B75C8892AD7BAC189E5BB2C844425E /* PromiseKit.xcconfig */, + E4561FDB00ED2321B948FAC6666A718E /* PromiseKit-dummy.m */, + 4BAD9FD45F8978CCEE638C055682907C /* PromiseKit-prefix.pch */, + 3D4C2916A6894900F01F60C725EFB9BD /* PromiseKit-umbrella.h */, ); - name = iOS; + name = "Support Files"; + path = "../Target Support Files/PromiseKit"; sourceTree = ""; }; - 534A0751825F5A2C93C17E95129349F5 /* Development Pods */ = { + 46DB0ABB09CCB8789216B0CC2C2B1FF2 /* iOS */ = { isa = PBXGroup; children = ( - 2B4C74F6151687B6B282EB57D951525D /* PunkAPI */, + 99572F269A1498A570F59D4ADCF0553C /* Foundation.framework */, + 1C454D228EC4BC69229D24F231FAB36E /* UIKit.framework */, ); - name = "Development Pods"; + name = iOS; sourceTree = ""; }; - 5AEFE90FD73EE291B0A8DC5B846CACC2 /* API */ = { + 57D4A410A7C95958CF34C320C9319605 /* PromiseKit */ = { isa = PBXGroup; children = ( - 8CE2272F1836F7FB2A81272597153352 /* Configuration.swift */, - 4F84F5A58AA392F811DE43B4C4355719 /* PunkAPI.swift */, - 14489482B61273AF52F0BD9D4DCDE682 /* Content */, - 37C870DAA7862B4F751A2693962A061F /* Request */, - 3C5A2C687FF2711BA9F139D5439C6F42 /* Results */, + 21187443271B3F8F3C15053DF3E393B0 /* CorePromise */, + 8354BB6D1EF2725EC742F3C182CA1C29 /* Foundation */, + 464D5AB0DA9CF567D9C48EF05F05B051 /* Support Files */, + 22B127E42F39558F04041002F928DA82 /* UIKit */, ); - name = API; + name = PromiseKit; + path = PromiseKit; sourceTree = ""; }; 5E6C37C04887F82A8C550F9B76E5B746 /* Targets Support Files */ = { @@ -220,39 +384,74 @@ name = "Targets Support Files"; sourceTree = ""; }; - 6C92B5E2C39B71B9A3D59EB753CF598A /* Products */ = { + 715209AFAEF2E0AC582ED892AE74DF1C /* Development Pods */ = { isa = PBXGroup; children = ( - 9DDE148E1E89B985353411506461E509 /* Pods_PunkAPI_Example.framework */, - 3CA7DD0E0D9E3D052F0DA83C7B3B79FC /* Pods_PunkAPI_Tests.framework */, - FA66D5ED6E33AA7DD32A8C962841F3B0 /* PunkAPI.framework */, + E6F3C1834EE972B231A0597E1A1B1C57 /* PunkAPI */, ); - name = Products; + name = "Development Pods"; + sourceTree = ""; + }; + 759CF00917A7B15FEDE4F645BEFFB8A3 /* Pod */ = { + isa = PBXGroup; + children = ( + 12E7AF8510617B50291BB606B8EC5937 /* LICENSE */, + 031E9D87765ED99586243ABF6EE98A9B /* PunkAPI.podspec */, + 1C0709F4C234AF68FC7147BA98CB7E3D /* README.md */, + ); + name = Pod; + sourceTree = ""; + }; + 7A06F823CB2E36CA569A90BE1F4FE667 /* PromiseKit */ = { + isa = PBXGroup; + children = ( + 9D119C19C752F263ED96A1E5FA18396C /* PunkAPI+PromiseKit.swift */, + ); + name = PromiseKit; sourceTree = ""; }; 7DB346D0F39D3F0E887471402A8071AB = { isa = PBXGroup; children = ( 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */, - 534A0751825F5A2C93C17E95129349F5 /* Development Pods */, - BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */, - 6C92B5E2C39B71B9A3D59EB753CF598A /* Products */, + 715209AFAEF2E0AC582ED892AE74DF1C /* Development Pods */, + C69F30C9FE05B37836E697D7128DA24B /* Frameworks */, + FAB4E1FC590183F21CDAF73E20C408D9 /* Pods */, + E50CD89276D9A281E2DACA8825A70B80 /* Products */, 5E6C37C04887F82A8C550F9B76E5B746 /* Targets Support Files */, ); sourceTree = ""; }; - 870B067F1898220EDEC85A34D5C85A3E /* Support Files */ = { + 8354BB6D1EF2725EC742F3C182CA1C29 /* Foundation */ = { isa = PBXGroup; children = ( - 578ED8CFFEAC4611547CE767C7193F36 /* Info.plist */, - 012C8098DFF121CC7D36CD350EDFF337 /* PunkAPI.modulemap */, - FA3BA90C7DD464C9C383DC0B449A4F12 /* PunkAPI.xcconfig */, - CD645A3AF35EE532D3C5D89AD7BBD24A /* PunkAPI-dummy.m */, - 92E1493E5B520A68931D56ADC863CF04 /* PunkAPI-prefix.pch */, - A4E74E37150A9E4E047C1F5E41D00B8B /* PunkAPI-umbrella.h */, + 0608F35670869E2F60CFDD955AF93AD1 /* afterlife.swift */, + DE9D5682937CDBBA920DE96E10D91532 /* NSNotificationCenter+AnyPromise.h */, + FA9841DAA41FE5E0AB59557D82554613 /* NSNotificationCenter+AnyPromise.m */, + AE159C2117ADDD04964214600F1F6A2E /* NSNotificationCenter+Promise.swift */, + 5816B100CF7C82AD9AC9F31CFAB12F1E /* NSObject+Promise.swift */, + 873850F807A9BCB767872109FDDD19E3 /* NSTask+AnyPromise.h */, + 54F99442FADF50BC2A5093D2D95212FA /* NSTask+AnyPromise.m */, + 6B9103B26E856C2CD28B69EDF6A454CC /* NSURLSession+AnyPromise.h */, + FC449A5FAF6331620BF5177F51F1AEC6 /* NSURLSession+AnyPromise.m */, + 19D7265E6AC1527971566FF761B55437 /* NSURLSession+Promise.swift */, + 2CD7342142002D3010BD0AC171DF55FA /* PMKFoundation.h */, + BE8E34065F5BBC48EFFDE8EA9EC1643B /* Process+Promise.swift */, ); - name = "Support Files"; - path = "Example/Pods/Target Support Files/PunkAPI"; + name = Foundation; + sourceTree = ""; + }; + 9B354D48E03980FB6515613290BCE3D5 /* Parameter */ = { + isa = PBXGroup; + children = ( + 8F8E032F0F9007C139DC9B9239CE20BD /* BeersRequestParameter.swift */, + 8FFE58E4A0978CF1B93972ABD864A831 /* DateParameter.swift */, + 338B74C182C66AE9E22234DD0F2CEE2B /* FloatParameter.swift */, + 4D0839C355C8709467AAAFFC446542A1 /* RequestParameter.swift */, + 000FC1494158285A69F5F9663FEF4811 /* StringParameter.swift */, + ); + name = Parameter; + path = Parameter; sourceTree = ""; }; 9BFECB8663CD309F9214B4311C96BCB5 /* Pods-PunkAPI_Example */ = { @@ -273,16 +472,6 @@ path = "Target Support Files/Pods-PunkAPI_Example"; sourceTree = ""; }; - A405E189A77153122813D6AEA2AF2BEF /* Pod */ = { - isa = PBXGroup; - children = ( - AA1778437B194C57760FA0E9D1035195 /* LICENSE */, - DC82B189006451DA104C7B574E76E1A2 /* PunkAPI.podspec */, - 5B0D6522C57BF3A62BF3D35273B4F8A8 /* README.md */, - ); - name = Pod; - sourceTree = ""; - }; B2D5CC793D96E6B1A0442EA2481F7DF2 /* Pods-PunkAPI_Tests */ = { isa = PBXGroup; children = ( @@ -301,35 +490,110 @@ path = "Target Support Files/Pods-PunkAPI_Tests"; sourceTree = ""; }; - B4F9D59FECBA6520DCA65AD3EF9DBBAC /* Parameter */ = { + B694938C7D857C6278FAB9ED4917046D /* Request */ = { isa = PBXGroup; children = ( - C74860045E1EF88E953842E8A12B491E /* BeersRequestParameter.swift */, - 69BD8918FA224756AA9BDB1EDEAFFB79 /* DateParameter.swift */, - 2568A0E3C875163AFF7366B44BE111CA /* FloatParameter.swift */, - 3B97F2B7F36F2E0EEC6E1C86C85DDAB1 /* RequestParameter.swift */, - E5CE592C73DF18A303A3D024D395DF74 /* StringParameter.swift */, + 13CFDAEEB5D4BA9835FBA19CA02E2FBC /* BeerRequest.swift */, + 0DE9B6B40110E54DC655EC335B72535B /* BeersRequest.swift */, + 1C0617D0E6093B7C70B547683F05D675 /* RandomBeerRequest.swift */, + EFC052CE2DE77A1E160607F2F5843B1F /* Request.swift */, + CACE6AB6C65BD1E7764770C43B2AE400 /* URLBuilder.swift */, + 9B354D48E03980FB6515613290BCE3D5 /* Parameter */, ); - name = Parameter; - path = Parameter; + name = Request; + path = PunkAPI/Classes/Request; sourceTree = ""; }; - BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */ = { + C69F30C9FE05B37836E697D7128DA24B /* Frameworks */ = { isa = PBXGroup; children = ( - 44D5347904CF754D6785B84253F2574A /* iOS */, + 2FC8EFF828D027F8BD1B3ACD578CA6F2 /* PromiseKit.framework */, + 46DB0ABB09CCB8789216B0CC2C2B1FF2 /* iOS */, ); name = Frameworks; sourceTree = ""; }; + E50CD89276D9A281E2DACA8825A70B80 /* Products */ = { + isa = PBXGroup; + children = ( + 3C4145CFA845CF93F3DD7C5EC37FB725 /* Pods_PunkAPI_Example.framework */, + 25BD36BBC98A8C5284F4608C71A271F2 /* Pods_PunkAPI_Tests.framework */, + BCC4EC8C827C08C7913B0A984382FF51 /* PromiseKit.framework */, + B9D61443B6265CD950E9FAB5A4E40ACA /* PunkAPI.framework */, + ); + name = Products; + sourceTree = ""; + }; + E6F3C1834EE972B231A0597E1A1B1C57 /* PunkAPI */ = { + isa = PBXGroup; + children = ( + 015E7F59854FC4F0B837F7118574BF3B /* API */, + 759CF00917A7B15FEDE4F645BEFFB8A3 /* Pod */, + 7A06F823CB2E36CA569A90BE1F4FE667 /* PromiseKit */, + F3E2ED8DA0D6219142E2641B02408F61 /* Support Files */, + ); + name = PunkAPI; + path = ../..; + sourceTree = ""; + }; + F3E2ED8DA0D6219142E2641B02408F61 /* Support Files */ = { + isa = PBXGroup; + children = ( + EA1FBD8FEEF12E6096A557A7489A79D8 /* Info.plist */, + 92ABD37AE95432515E13AEDBDC4B90DC /* PunkAPI.modulemap */, + 33F25F130B030DB47EE5703BC95455CE /* PunkAPI.xcconfig */, + BD6B117F6ACB8285753F78BDE4DDEC13 /* PunkAPI-dummy.m */, + FC21633A674D1E59F816E60F9C0BC58D /* PunkAPI-prefix.pch */, + 71B94583706C3E41DBE6A46B24A47C77 /* PunkAPI-umbrella.h */, + ); + name = "Support Files"; + path = "Example/Pods/Target Support Files/PunkAPI"; + sourceTree = ""; + }; + FAB4E1FC590183F21CDAF73E20C408D9 /* Pods */ = { + isa = PBXGroup; + children = ( + 57D4A410A7C95958CF34C320C9319605 /* PromiseKit */, + ); + name = Pods; + sourceTree = ""; + }; + FD98F142B1BF862D73283B0B49575F17 /* Results */ = { + isa = PBXGroup; + children = ( + 5D74569BB6EF5C66DDA7E7313766E46B /* Errors.swift */, + D6891C161346DDB613BD47476F74F0D4 /* Result.swift */, + ); + name = Results; + path = PunkAPI/Classes/Results; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ - 6BAF60135FDFD6B381631C7BED9969B3 /* Headers */ = { + 024AAFC8224197E41D6742F5DFCB8B68 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 94ACB62152B83DE972430EAA4B24D449 /* PunkAPI-umbrella.h in Headers */, + 75DDA913F1CBDE220361A48A487E3A0F /* Pods-PunkAPI_Example-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 2684FE562CA79FD8CD67C9D0BE30ACB9 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 4D4352D5CFC17FA7E3988396752F4415 /* AnyPromise.h in Headers */, + 593DCA1E6B867E5800DAA4DF5800D147 /* fwd.h in Headers */, + 4C2D7E3758F85115DC1B466988E05C1F /* NSNotificationCenter+AnyPromise.h in Headers */, + CBA05274211E298535EC409A7D12CF5B /* NSTask+AnyPromise.h in Headers */, + BA4E3D2C305E0BD7E9DEF85187EB3ADF /* NSURLSession+AnyPromise.h in Headers */, + 1ADA31252FE64A1969636FF652618E16 /* PMKFoundation.h in Headers */, + 08F3AB21149DF0DF983B5A231F139420 /* PMKUIKit.h in Headers */, + 27906F2BA19A6ACCDA4A887F23951EA6 /* PromiseKit-umbrella.h in Headers */, + E898B8B2FE5D7B90610060B7A45E922B /* PromiseKit.h in Headers */, + BCBDAB64778E8C541797EF7A673E90E1 /* UIView+AnyPromise.h in Headers */, + 0F53887501097A4B90CBCC03743F1B26 /* UIViewController+AnyPromise.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -341,52 +605,72 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - E95C4D0DC25D5A98B2A4C4AAFDAD0596 /* Headers */ = { + F439CF312306CF9E3CCED4321846845D /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 9DEE51DC320AFD89F8CCE79E659D0E92 /* Pods-PunkAPI_Example-umbrella.h in Headers */, + 06A4DDC6FB5F8ED351BE09F4A0780F73 /* PunkAPI-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ - 104A4972E6668483EF3BA6EE08D840AF /* PunkAPI */ = { + 0B28CB22AF32F9C8EECB28CD3ECA03E5 /* Pods-PunkAPI_Example */ = { + isa = PBXNativeTarget; + buildConfigurationList = 0E3D0BF668A5638E3751E301AAFBD91A /* Build configuration list for PBXNativeTarget "Pods-PunkAPI_Example" */; + buildPhases = ( + 024AAFC8224197E41D6742F5DFCB8B68 /* Headers */, + CDECD9343585C7B4385D0DD319267726 /* Sources */, + 96C3C606F11EA93C80818752D1C68B85 /* Frameworks */, + 006D0C25A0EC61B919DA09A4C599FAD7 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 73F9CDF61565F7075F49D4A81263D7A1 /* PBXTargetDependency */, + C6921AF0DCD281D8E47D593C1C4751B1 /* PBXTargetDependency */, + ); + name = "Pods-PunkAPI_Example"; + productName = "Pods-PunkAPI_Example"; + productReference = 3C4145CFA845CF93F3DD7C5EC37FB725 /* Pods_PunkAPI_Example.framework */; + productType = "com.apple.product-type.framework"; + }; + 633627D39F05C0456424588734F86181 /* PunkAPI */ = { isa = PBXNativeTarget; - buildConfigurationList = C5CFB8D87EAAD43FF2A708011ADF9DF5 /* Build configuration list for PBXNativeTarget "PunkAPI" */; + buildConfigurationList = C6BB740D3F17C065E28CFB841E34FF55 /* Build configuration list for PBXNativeTarget "PunkAPI" */; buildPhases = ( - 6BAF60135FDFD6B381631C7BED9969B3 /* Headers */, - 86F73B177785FEBCB3F340D791903737 /* Sources */, - 64469F9A8CDA0C6CFDD8BA665E002A2F /* Frameworks */, - 971F83F24AFBDD4CF88BD6ED289EEB1C /* Resources */, + F439CF312306CF9E3CCED4321846845D /* Headers */, + 33C56A40CEFFC5A5B29959D1151B7C24 /* Sources */, + 4232A01524473D49778737EAFBD4A8E6 /* Frameworks */, + 0E30303E0315716C9D4FEAD4564CD380 /* Resources */, ); buildRules = ( ); dependencies = ( + 10E71022264998A90D4D2DE32399B609 /* PBXTargetDependency */, ); name = PunkAPI; productName = PunkAPI; - productReference = FA66D5ED6E33AA7DD32A8C962841F3B0 /* PunkAPI.framework */; + productReference = B9D61443B6265CD950E9FAB5A4E40ACA /* PunkAPI.framework */; productType = "com.apple.product-type.framework"; }; - C1DB41E820BFF9D57C1A713EEC3A7C98 /* Pods-PunkAPI_Example */ = { + B344F2607551E00B1FC1B085E8A11FDC /* PromiseKit */ = { isa = PBXNativeTarget; - buildConfigurationList = B97836D74BBC103F707A992128BA2EBA /* Build configuration list for PBXNativeTarget "Pods-PunkAPI_Example" */; + buildConfigurationList = 85C2279E3569F29CFD8DD66BF0F4F284 /* Build configuration list for PBXNativeTarget "PromiseKit" */; buildPhases = ( - E95C4D0DC25D5A98B2A4C4AAFDAD0596 /* Headers */, - AEF952ACEC65192DB68BBAE0B794131A /* Sources */, - 2AC16E9D9907618B6A4F41C69D4587F0 /* Frameworks */, - C0A4E0BED8488FF565D86ADC701B8084 /* Resources */, + 2684FE562CA79FD8CD67C9D0BE30ACB9 /* Headers */, + 50D565549CAC6A2B6507DB0250D6E57B /* Sources */, + 8582A0EE669AE5D3E9C21E598D7DFBD0 /* Frameworks */, + B8B5F0EE20EA833D96DFC9E599993DDD /* Resources */, ); buildRules = ( ); dependencies = ( - AC80DFE7429FC940D34413A8CD236866 /* PBXTargetDependency */, ); - name = "Pods-PunkAPI_Example"; - productName = "Pods-PunkAPI_Example"; - productReference = 9DDE148E1E89B985353411506461E509 /* Pods_PunkAPI_Example.framework */; + name = PromiseKit; + productName = PromiseKit; + productReference = BCC4EC8C827C08C7913B0A984382FF51 /* PromiseKit.framework */; productType = "com.apple.product-type.framework"; }; D4B40E035E9C8A43CF581FE371EB5EA1 /* Pods-PunkAPI_Tests */ = { @@ -405,7 +689,7 @@ ); name = "Pods-PunkAPI_Tests"; productName = "Pods-PunkAPI_Tests"; - productReference = 3CA7DD0E0D9E3D052F0DA83C7B3B79FC /* Pods_PunkAPI_Tests.framework */; + productReference = 25BD36BBC98A8C5284F4608C71A271F2 /* Pods_PunkAPI_Tests.framework */; productType = "com.apple.product-type.framework"; }; /* End PBXNativeTarget section */ @@ -425,33 +709,41 @@ en, ); mainGroup = 7DB346D0F39D3F0E887471402A8071AB; - productRefGroup = 6C92B5E2C39B71B9A3D59EB753CF598A /* Products */; + productRefGroup = E50CD89276D9A281E2DACA8825A70B80 /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( - C1DB41E820BFF9D57C1A713EEC3A7C98 /* Pods-PunkAPI_Example */, + 0B28CB22AF32F9C8EECB28CD3ECA03E5 /* Pods-PunkAPI_Example */, D4B40E035E9C8A43CF581FE371EB5EA1 /* Pods-PunkAPI_Tests */, - 104A4972E6668483EF3BA6EE08D840AF /* PunkAPI */, + B344F2607551E00B1FC1B085E8A11FDC /* PromiseKit */, + 633627D39F05C0456424588734F86181 /* PunkAPI */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ - 6822401903D7AFC3F5ECA9D7C022FFB9 /* Resources */ = { + 006D0C25A0EC61B919DA09A4C599FAD7 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0E30303E0315716C9D4FEAD4564CD380 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - 971F83F24AFBDD4CF88BD6ED289EEB1C /* Resources */ = { + 6822401903D7AFC3F5ECA9D7C022FFB9 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - C0A4E0BED8488FF565D86ADC701B8084 /* Resources */ = { + B8B5F0EE20EA833D96DFC9E599993DDD /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( @@ -461,69 +753,126 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - 7D76001470C4ECFAD45A4E50C07DF2B8 /* Sources */ = { + 33C56A40CEFFC5A5B29959D1151B7C24 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 1DEF7BF616CC3F2EF46A7F9E5514F9AC /* Pods-PunkAPI_Tests-dummy.m in Sources */, + B9D6178CEE40D20A80ADF4775CDEC893 /* Beer.swift in Sources */, + 6538256C284CD57B10E4CF91ED17F829 /* BeerRequest.swift in Sources */, + 7919467CBC1E5953165FAE38168582F6 /* BeersRequest.swift in Sources */, + 57E0CD3511363411484C4B0878921755 /* BeersRequestParameter.swift in Sources */, + 02472B8E5549B0692697FDB682FD86E7 /* Configuration.swift in Sources */, + 6CB8F130EAFD8B0E4043DF2B27807B4C /* DateParameter.swift in Sources */, + 75265F37BB61B5757278161812CA7678 /* Errors.swift in Sources */, + 25751B90DBF194A1B337C70ED1BEDB83 /* FloatParameter.swift in Sources */, + 9E92235D15570A553E28D0E22DDD4EA3 /* Method.swift in Sources */, + 4ACCBAFA96D5171F75EAF88E1D072BA3 /* PunkAPI+PromiseKit.swift in Sources */, + BA22301B45C2F428772B84D0F76FE65C /* PunkAPI-dummy.m in Sources */, + A50E5D49EEFF6BE1B323C839DE822629 /* PunkAPI.swift in Sources */, + 0F32D3B7335725FD93C772098ED7C142 /* Quantity.swift in Sources */, + AABEEA16EA2B4E05356A108415F11678 /* RandomBeerRequest.swift in Sources */, + 1831BD30A66287C0759B2128FE34064A /* Recipe.swift in Sources */, + BA638090C327BDF47A47D405235D9F78 /* Request.swift in Sources */, + 7D19EC3D7E4EAD1F8EA934A3F7FECE9C /* RequestParameter.swift in Sources */, + C8089EDA2D90237F2610675F67CD4DA1 /* Result.swift in Sources */, + A6433725C19E3574169F12153F1FCFE9 /* StringParameter.swift in Sources */, + 915367CE5E9131B3637F1709033BBF39 /* URLBuilder.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 86F73B177785FEBCB3F340D791903737 /* Sources */ = { + 50D565549CAC6A2B6507DB0250D6E57B /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 040633ED2DA398496AD631E73B9CB953 /* Beer.swift in Sources */, - 0C4C6C5EED9509237E097606FBBF2046 /* BeerRequest.swift in Sources */, - 8CA6935D75E79F06DC50B80FBFA04E52 /* BeersRequest.swift in Sources */, - FAEC0D53EBA4A5BCFCDA4CB97EA975AA /* BeersRequestParameter.swift in Sources */, - ADCB0254782B197A401A2AAC39C0E882 /* Configuration.swift in Sources */, - A2A4C282870BFE912F85DB1151BC24B3 /* DateParameter.swift in Sources */, - 156976A157354FAC4A76CDD07C60C630 /* Errors.swift in Sources */, - EA2895A6DC98FCFBB5A54F5837E8304F /* FloatParameter.swift in Sources */, - 9C1115413D21B46B31F5D70FE29CA857 /* Method.swift in Sources */, - 567123199E19D2AF982C095A91F499E3 /* PunkAPI-dummy.m in Sources */, - 9E26D0BC2A8D1AB927AD665EB5032162 /* PunkAPI.swift in Sources */, - BBCC787A76C3C536D049EB6E228394FF /* Quantity.swift in Sources */, - 9EB5A8CE4227261D6FDB84878505ACED /* RandomBeerRequest.swift in Sources */, - 58196BD46A6A962CD2291747E891A4FF /* Recipe.swift in Sources */, - 4C4AB5D20013C59D1BE1A0DC0AA4A90E /* Request.swift in Sources */, - 1F269E313E3E5E6D95C7EA4117A4EF52 /* RequestParameter.swift in Sources */, - 9F91EF3525A1E94F87950035B1DEF148 /* Result.swift in Sources */, - 0706F758C5F2CE0E83E44396DE53B472 /* StringParameter.swift in Sources */, - AA5C8E19C31A6A5CDAD11062F1625806 /* URLBuilder.swift in Sources */, + B68E8FA40095D9549055CF357C4509FB /* after.m in Sources */, + 0F2E29ACE2C8E423818BE88BB720468A /* after.swift in Sources */, + 9EB5F27C997FE10A1C85B3D5EFFB4067 /* afterlife.swift in Sources */, + 839FB49A7523EEDD04EAD8EF79530E82 /* AnyPromise.m in Sources */, + 7C382B358D066CE8ACD2FCC01FBD2750 /* AnyPromise.swift in Sources */, + D18519DD7B9E5B7A46AF2B825F15DD86 /* Box.swift in Sources */, + 2436D7EA6327EAABF3D0B10998B05F69 /* Catchable.swift in Sources */, + A4962D081D6136E8C397E251837BBC11 /* Configuration.swift in Sources */, + 172EBDB4A812D2E93D93248599F16312 /* CustomStringConvertible.swift in Sources */, + C8CCEB9CCD7CECBA1F6B1A2BC00B0C74 /* Deprecations.swift in Sources */, + 913C822D6D17D06AB8C8AA0F23051B6E /* dispatch_promise.m in Sources */, + 40FCB436919F48915414A01EECBDDD37 /* Error.swift in Sources */, + DF62DD29D72A20E7A39829B73571DF10 /* firstly.swift in Sources */, + B2062A0722C34907EE592310FC126A31 /* Guarantee.swift in Sources */, + C23DBD788DB3D60F57DC0B5AB01A4ECA /* hang.m in Sources */, + CDD84A94BAAFC4D07112A52B88CF8FE4 /* hang.swift in Sources */, + CEDB564EEFF477F48D6757A05D2D05E6 /* join.m in Sources */, + C3AD7B6E7C0A48F892D4055D759795A3 /* LogEvent.swift in Sources */, + 64C486ECC97BF99F08CDA920EBDBFEBA /* NSNotificationCenter+AnyPromise.m in Sources */, + 01F7EA7C804A279537F09574EECE019D /* NSNotificationCenter+Promise.swift in Sources */, + 26C41E61EC6F20C31FFE522279A83425 /* NSObject+Promise.swift in Sources */, + 59260A59372ED44A3DBA99E70B23905B /* NSTask+AnyPromise.m in Sources */, + 4D36EB370CDD1F070B3FD0A75FC76AF9 /* NSURLSession+AnyPromise.m in Sources */, + B7FFC8343027BECAA609891D5AD7DFDD /* NSURLSession+Promise.swift in Sources */, + 971CAC3876F300CDC5B6ABC731E9A9E2 /* Process+Promise.swift in Sources */, + 9AAD5ECFEDFB2027E671B2CC9F6F1A50 /* Promise.swift in Sources */, + 5D2F451C16A6EC694C2D9A6F3F8FDF95 /* PromiseKit-dummy.m in Sources */, + 0FBB2B7CA674FD4C3FEAA2A9884F0DA8 /* race.m in Sources */, + 935DE8680BB896A2E8B3081231844257 /* race.swift in Sources */, + 70493D1E26FD42CE223793FE075EC790 /* Resolver.swift in Sources */, + 070D48A7D83566AF4AD67660DBB92752 /* Thenable.swift in Sources */, + 24027E8733EF28332290944D0F788CF5 /* UIView+AnyPromise.m in Sources */, + A92EB293F6D451F01587E89FF86CA81E /* UIView+Promise.swift in Sources */, + 2D3E0C305BA95A7666D13C5EBF01D3E1 /* UIViewController+AnyPromise.m in Sources */, + 74BE66ED7B581E0EA1B4B5D4B9113A99 /* UIViewPropertyAnimator+Promise.swift in Sources */, + 651C28051D5E01EAD7882BD3795F04CA /* when.m in Sources */, + C5F22E146B052C36756388DB821E9FA5 /* when.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - AEF952ACEC65192DB68BBAE0B794131A /* Sources */ = { + 7D76001470C4ECFAD45A4E50C07DF2B8 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - B0D852DC953C7A0E2C1CB872F9E315BB /* Pods-PunkAPI_Example-dummy.m in Sources */, + 1DEF7BF616CC3F2EF46A7F9E5514F9AC /* Pods-PunkAPI_Tests-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + CDECD9343585C7B4385D0DD319267726 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 8B17411562B30AEF3E199C090EDB6B21 /* Pods-PunkAPI_Example-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ + 10E71022264998A90D4D2DE32399B609 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = PromiseKit; + target = B344F2607551E00B1FC1B085E8A11FDC /* PromiseKit */; + targetProxy = 3C72E880575CAD9B6035DFFA5DC766BC /* PBXContainerItemProxy */; + }; 4F84539F116C2CCA3F4B274DE3A3066E /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = "Pods-PunkAPI_Example"; - target = C1DB41E820BFF9D57C1A713EEC3A7C98 /* Pods-PunkAPI_Example */; + target = 0B28CB22AF32F9C8EECB28CD3ECA03E5 /* Pods-PunkAPI_Example */; targetProxy = 26AB40795B0BA17DA83D7BA25EA5107F /* PBXContainerItemProxy */; }; - AC80DFE7429FC940D34413A8CD236866 /* PBXTargetDependency */ = { + 73F9CDF61565F7075F49D4A81263D7A1 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = PromiseKit; + target = B344F2607551E00B1FC1B085E8A11FDC /* PromiseKit */; + targetProxy = D5D9F0799CC51E691E8706369781CAEE /* PBXContainerItemProxy */; + }; + C6921AF0DCD281D8E47D593C1C4751B1 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = PunkAPI; - target = 104A4972E6668483EF3BA6EE08D840AF /* PunkAPI */; - targetProxy = 1BD9253D912BA229A3617AE941991ACC /* PBXContainerItemProxy */; + target = 633627D39F05C0456424588734F86181 /* PunkAPI */; + targetProxy = AAF2411498599E3CDA7F706A6F6C4567 /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ - 0B544C28097B1323AC34E22808695EB6 /* Release */ = { + 06A2EE36DD74B138B5DCC7F33C73A151 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = FA3BA90C7DD464C9C383DC0B449A4F12 /* PunkAPI.xcconfig */; + baseConfigurationReference = 33F25F130B030DB47EE5703BC95455CE /* PunkAPI.xcconfig */; buildSettings = { CLANG_ENABLE_OBJC_WEAK = NO; CODE_SIGN_IDENTITY = ""; @@ -548,15 +897,14 @@ SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; SWIFT_VERSION = 4.2; TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Release; + name = Debug; }; - 0F7F14A2385ED2D3C3346A495562A023 /* Debug */ = { + 0F22273F03EE95F14066E6C9325049EC /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = E816F7DA6C1CBE532E1590E0F05B9532 /* Pods-PunkAPI_Example.debug.xcconfig */; + baseConfigurationReference = A5D146483FC9684CF2C15F85C081EF35 /* Pods-PunkAPI_Example.release.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CLANG_ENABLE_OBJC_WEAK = NO; @@ -583,6 +931,38 @@ SDKROOT = iphoneos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 2F9AFD149ADC93147FAD29DE628A9320 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 16B75C8892AD7BAC189E5BB2C844425E /* PromiseKit.xcconfig */; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/PromiseKit/PromiseKit-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/PromiseKit/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/PromiseKit/PromiseKit.modulemap"; + PRODUCT_MODULE_NAME = PromiseKit; + PRODUCT_NAME = PromiseKit; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 4.2; + TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; @@ -688,9 +1068,9 @@ }; name = Debug; }; - A6182063646965CD3A9B8CBF97BA24A3 /* Release */ = { + 98DF155A938C111A19D075BC4C15F9D9 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = A5D146483FC9684CF2C15F85C081EF35 /* Pods-PunkAPI_Example.release.xcconfig */; + baseConfigurationReference = E816F7DA6C1CBE532E1590E0F05B9532 /* Pods-PunkAPI_Example.debug.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CLANG_ENABLE_OBJC_WEAK = NO; @@ -717,6 +1097,38 @@ SDKROOT = iphoneos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 9E9DD49B5C6387869FDE76780DBAA552 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 33F25F130B030DB47EE5703BC95455CE /* PunkAPI.xcconfig */; + buildSettings = { + CLANG_ENABLE_OBJC_WEAK = NO; + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/PunkAPI/PunkAPI-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/PunkAPI/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/PunkAPI/PunkAPI.modulemap"; + PRODUCT_MODULE_NAME = PunkAPI; + PRODUCT_NAME = PunkAPI; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 4.2; + TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; @@ -820,11 +1232,10 @@ }; name = Release; }; - E478EE7340C05210B36C506ACA88CC8F /* Debug */ = { + DB5DBA12DF236CDE9FC15AE6A71D0C8F /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = FA3BA90C7DD464C9C383DC0B449A4F12 /* PunkAPI.xcconfig */; + baseConfigurationReference = 16B75C8892AD7BAC189E5BB2C844425E /* PromiseKit.xcconfig */; buildSettings = { - CLANG_ENABLE_OBJC_WEAK = NO; CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -834,27 +1245,37 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/PunkAPI/PunkAPI-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/PunkAPI/Info.plist"; + GCC_PREFIX_HEADER = "Target Support Files/PromiseKit/PromiseKit-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/PromiseKit/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/PunkAPI/PunkAPI.modulemap"; - PRODUCT_MODULE_NAME = PunkAPI; - PRODUCT_NAME = PunkAPI; + MODULEMAP_FILE = "Target Support Files/PromiseKit/PromiseKit.modulemap"; + PRODUCT_MODULE_NAME = PromiseKit; + PRODUCT_NAME = PromiseKit; SDKROOT = iphoneos; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; SWIFT_VERSION = 4.2; TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Debug; + name = Release; }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ + 0E3D0BF668A5638E3751E301AAFBD91A /* Build configuration list for PBXNativeTarget "Pods-PunkAPI_Example" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 98DF155A938C111A19D075BC4C15F9D9 /* Debug */, + 0F22273F03EE95F14066E6C9325049EC /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -873,20 +1294,20 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - B97836D74BBC103F707A992128BA2EBA /* Build configuration list for PBXNativeTarget "Pods-PunkAPI_Example" */ = { + 85C2279E3569F29CFD8DD66BF0F4F284 /* Build configuration list for PBXNativeTarget "PromiseKit" */ = { isa = XCConfigurationList; buildConfigurations = ( - 0F7F14A2385ED2D3C3346A495562A023 /* Debug */, - A6182063646965CD3A9B8CBF97BA24A3 /* Release */, + 2F9AFD149ADC93147FAD29DE628A9320 /* Debug */, + DB5DBA12DF236CDE9FC15AE6A71D0C8F /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - C5CFB8D87EAAD43FF2A708011ADF9DF5 /* Build configuration list for PBXNativeTarget "PunkAPI" */ = { + C6BB740D3F17C065E28CFB841E34FF55 /* Build configuration list for PBXNativeTarget "PunkAPI" */ = { isa = XCConfigurationList; buildConfigurations = ( - E478EE7340C05210B36C506ACA88CC8F /* Debug */, - 0B544C28097B1323AC34E22808695EB6 /* Release */, + 06A2EE36DD74B138B5DCC7F33C73A151 /* Debug */, + 9E9DD49B5C6387869FDE76780DBAA552 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; diff --git a/Example/Pods/Target Support Files/Pods-PunkAPI_Example/Pods-PunkAPI_Example-acknowledgements.markdown b/Example/Pods/Target Support Files/Pods-PunkAPI_Example/Pods-PunkAPI_Example-acknowledgements.markdown index d23ace9..b19fa19 100644 --- a/Example/Pods/Target Support Files/Pods-PunkAPI_Example/Pods-PunkAPI_Example-acknowledgements.markdown +++ b/Example/Pods/Target Support Files/Pods-PunkAPI_Example/Pods-PunkAPI_Example-acknowledgements.markdown @@ -1,6 +1,30 @@ # Acknowledgements This application makes use of the following third party libraries: +## PromiseKit + +Copyright 2016-present, Max Howell; mxcl@me.com + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + ## PunkAPI Copyright (c) 2019 acct= diff --git a/Example/Pods/Target Support Files/Pods-PunkAPI_Example/Pods-PunkAPI_Example-acknowledgements.plist b/Example/Pods/Target Support Files/Pods-PunkAPI_Example/Pods-PunkAPI_Example-acknowledgements.plist index 8ef8216..86e0daa 100644 --- a/Example/Pods/Target Support Files/Pods-PunkAPI_Example/Pods-PunkAPI_Example-acknowledgements.plist +++ b/Example/Pods/Target Support Files/Pods-PunkAPI_Example/Pods-PunkAPI_Example-acknowledgements.plist @@ -12,6 +12,36 @@ Type PSGroupSpecifier + + FooterText + Copyright 2016-present, Max Howell; mxcl@me.com + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + License + MIT + Title + PromiseKit + Type + PSGroupSpecifier + FooterText Copyright (c) 2019 acct<blob>=<NULL> <oni.zerone@gmail.com> diff --git a/Example/Pods/Target Support Files/Pods-PunkAPI_Example/Pods-PunkAPI_Example-frameworks.sh b/Example/Pods/Target Support Files/Pods-PunkAPI_Example/Pods-PunkAPI_Example-frameworks.sh index 7684ffc..c4ac73b 100755 --- a/Example/Pods/Target Support Files/Pods-PunkAPI_Example/Pods-PunkAPI_Example-frameworks.sh +++ b/Example/Pods/Target Support Files/Pods-PunkAPI_Example/Pods-PunkAPI_Example-frameworks.sh @@ -143,9 +143,11 @@ strip_invalid_archs() { if [[ "$CONFIGURATION" == "Debug" ]]; then + install_framework "${BUILT_PRODUCTS_DIR}/PromiseKit/PromiseKit.framework" install_framework "${BUILT_PRODUCTS_DIR}/PunkAPI/PunkAPI.framework" fi if [[ "$CONFIGURATION" == "Release" ]]; then + install_framework "${BUILT_PRODUCTS_DIR}/PromiseKit/PromiseKit.framework" install_framework "${BUILT_PRODUCTS_DIR}/PunkAPI/PunkAPI.framework" fi if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then diff --git a/Example/Pods/Target Support Files/Pods-PunkAPI_Example/Pods-PunkAPI_Example.debug.xcconfig b/Example/Pods/Target Support Files/Pods-PunkAPI_Example/Pods-PunkAPI_Example.debug.xcconfig index b09d6b7..72d144a 100644 --- a/Example/Pods/Target Support Files/Pods-PunkAPI_Example/Pods-PunkAPI_Example.debug.xcconfig +++ b/Example/Pods/Target Support Files/Pods-PunkAPI_Example/Pods-PunkAPI_Example.debug.xcconfig @@ -1,9 +1,9 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/PunkAPI" +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/PromiseKit" "${PODS_CONFIGURATION_BUILD_DIR}/PunkAPI" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/PunkAPI/PunkAPI.framework/Headers" -OTHER_LDFLAGS = $(inherited) -framework "PunkAPI" +OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/PromiseKit/PromiseKit.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/PunkAPI/PunkAPI.framework/Headers" +OTHER_LDFLAGS = $(inherited) -framework "PromiseKit" -framework "PunkAPI" OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) diff --git a/Example/Pods/Target Support Files/Pods-PunkAPI_Example/Pods-PunkAPI_Example.release.xcconfig b/Example/Pods/Target Support Files/Pods-PunkAPI_Example/Pods-PunkAPI_Example.release.xcconfig index b09d6b7..72d144a 100644 --- a/Example/Pods/Target Support Files/Pods-PunkAPI_Example/Pods-PunkAPI_Example.release.xcconfig +++ b/Example/Pods/Target Support Files/Pods-PunkAPI_Example/Pods-PunkAPI_Example.release.xcconfig @@ -1,9 +1,9 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/PunkAPI" +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/PromiseKit" "${PODS_CONFIGURATION_BUILD_DIR}/PunkAPI" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/PunkAPI/PunkAPI.framework/Headers" -OTHER_LDFLAGS = $(inherited) -framework "PunkAPI" +OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/PromiseKit/PromiseKit.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/PunkAPI/PunkAPI.framework/Headers" +OTHER_LDFLAGS = $(inherited) -framework "PromiseKit" -framework "PunkAPI" OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) diff --git a/Example/Pods/Target Support Files/Pods-PunkAPI_Tests/Pods-PunkAPI_Tests.debug.xcconfig b/Example/Pods/Target Support Files/Pods-PunkAPI_Tests/Pods-PunkAPI_Tests.debug.xcconfig index 179485a..f7a66e0 100644 --- a/Example/Pods/Target Support Files/Pods-PunkAPI_Tests/Pods-PunkAPI_Tests.debug.xcconfig +++ b/Example/Pods/Target Support Files/Pods-PunkAPI_Tests/Pods-PunkAPI_Tests.debug.xcconfig @@ -1,7 +1,7 @@ -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/PunkAPI" +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/PromiseKit" "${PODS_CONFIGURATION_BUILD_DIR}/PunkAPI" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/PunkAPI/PunkAPI.framework/Headers" +OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/PromiseKit/PromiseKit.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/PunkAPI/PunkAPI.framework/Headers" PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_PODFILE_DIR_PATH = ${SRCROOT}/. diff --git a/Example/Pods/Target Support Files/Pods-PunkAPI_Tests/Pods-PunkAPI_Tests.release.xcconfig b/Example/Pods/Target Support Files/Pods-PunkAPI_Tests/Pods-PunkAPI_Tests.release.xcconfig index 179485a..f7a66e0 100644 --- a/Example/Pods/Target Support Files/Pods-PunkAPI_Tests/Pods-PunkAPI_Tests.release.xcconfig +++ b/Example/Pods/Target Support Files/Pods-PunkAPI_Tests/Pods-PunkAPI_Tests.release.xcconfig @@ -1,7 +1,7 @@ -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/PunkAPI" +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/PromiseKit" "${PODS_CONFIGURATION_BUILD_DIR}/PunkAPI" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/PunkAPI/PunkAPI.framework/Headers" +OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/PromiseKit/PromiseKit.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/PunkAPI/PunkAPI.framework/Headers" PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_PODFILE_DIR_PATH = ${SRCROOT}/. diff --git a/Example/Pods/Target Support Files/PunkAPI/PunkAPI.xcconfig b/Example/Pods/Target Support Files/PunkAPI/PunkAPI.xcconfig index c450857..d1c8df8 100644 --- a/Example/Pods/Target Support Files/PunkAPI/PunkAPI.xcconfig +++ b/Example/Pods/Target Support Files/PunkAPI/PunkAPI.xcconfig @@ -1,4 +1,5 @@ CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/PunkAPI +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/PromiseKit" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" PODS_BUILD_DIR = ${BUILD_DIR} diff --git a/Example/PunkAPI.xcodeproj/project.pbxproj b/Example/PunkAPI.xcodeproj/project.pbxproj index 292f9b4..6997b28 100644 --- a/Example/PunkAPI.xcodeproj/project.pbxproj +++ b/Example/PunkAPI.xcodeproj/project.pbxproj @@ -392,12 +392,14 @@ ); inputPaths = ( "${SRCROOT}/Pods/Target Support Files/Pods-PunkAPI_Example/Pods-PunkAPI_Example-frameworks.sh", + "${BUILT_PRODUCTS_DIR}/PromiseKit/PromiseKit.framework", "${BUILT_PRODUCTS_DIR}/PunkAPI/PunkAPI.framework", ); name = "[CP] Embed Pods Frameworks"; outputFileListPaths = ( ); outputPaths = ( + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/PromiseKit.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/PunkAPI.framework", ); runOnlyForDeploymentPostprocessing = 0; diff --git a/PunkAPI.podspec b/PunkAPI.podspec index acedd8d..efcdae6 100644 --- a/PunkAPI.podspec +++ b/PunkAPI.podspec @@ -31,6 +31,9 @@ Pod::Spec.new do |s| s.subspec 'PromiseKit' do |sp| sp.source_files = 'PunkAPI/PromiseKit/Classes/**/*' + + sp.dependency 'PunkAPI/API' + sp.dependency 'PromiseKit', '~> 6.8' end # s.resource_bundles = { From 66d1000fc2d98abcefcbe19081fac24cdc508650 Mon Sep 17 00:00:00 2001 From: Andrea Altea Date: Mon, 4 Mar 2019 21:21:43 +0100 Subject: [PATCH 11/17] feat: try fix fastfile --- Example/fastlane/Fastfile | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Example/fastlane/Fastfile b/Example/fastlane/Fastfile index 98cce8a..de3a5fb 100644 --- a/Example/fastlane/Fastfile +++ b/Example/fastlane/Fastfile @@ -19,13 +19,17 @@ platform :ios do desc "Default CI lane" lane :ci do update_dependencies + lint + pod_lint test coverage end desc "Update dependencies" lane :update_dependencies do - cocoapods + cocoapods( + repo_update: true + ) end desc "SwiftLint linting" From 1b8d9c18ec202a790591aaf96ce4243d47b0d7ac Mon Sep 17 00:00:00 2001 From: Andrea Altea Date: Mon, 4 Mar 2019 21:42:58 +0100 Subject: [PATCH 12/17] fix: remove fastlane lint --- Example/fastlane/Fastfile | 1 - 1 file changed, 1 deletion(-) diff --git a/Example/fastlane/Fastfile b/Example/fastlane/Fastfile index de3a5fb..eacc460 100644 --- a/Example/fastlane/Fastfile +++ b/Example/fastlane/Fastfile @@ -19,7 +19,6 @@ platform :ios do desc "Default CI lane" lane :ci do update_dependencies - lint pod_lint test coverage From 56557551c9d544a7d6141521724517f9d91006fe Mon Sep 17 00:00:00 2001 From: Andrea Altea Date: Mon, 4 Mar 2019 22:20:58 +0100 Subject: [PATCH 13/17] Feat: add extension to provide Promise wrapped get call --- Example/PunkAPI/Base.lproj/Main.storyboard | 12 ++++++++- Example/PunkAPI/ViewController.swift | 12 +++++++++ .../Classes/PunkAPI+PromiseKit.swift | 25 +++++++++++++++++++ 3 files changed, 48 insertions(+), 1 deletion(-) diff --git a/Example/PunkAPI/Base.lproj/Main.storyboard b/Example/PunkAPI/Base.lproj/Main.storyboard index 39512a4..4c69e1f 100644 --- a/Example/PunkAPI/Base.lproj/Main.storyboard +++ b/Example/PunkAPI/Base.lproj/Main.storyboard @@ -29,20 +29,30 @@ + + + + diff --git a/Example/PunkAPI/ViewController.swift b/Example/PunkAPI/ViewController.swift index 74c7deb..51b212d 100644 --- a/Example/PunkAPI/ViewController.swift +++ b/Example/PunkAPI/ViewController.swift @@ -8,6 +8,7 @@ import UIKit import PunkAPI +import PromiseKit class ViewController: UIViewController { @@ -46,4 +47,15 @@ class ViewController: UIViewController { } } } + + @IBAction func loadRandomBeer(_ sender: Any) { + + let request = RandomBeerRequest() + PunkAPI().get(request) + .done { [weak self] beers in + self?.label.text = beers.first?.name + }.catch { [weak self] error in + self?.label.text = error.localizedDescription + } + } } diff --git a/PunkAPI/PromiseKit/Classes/PunkAPI+PromiseKit.swift b/PunkAPI/PromiseKit/Classes/PunkAPI+PromiseKit.swift index e69de29..87e3a89 100644 --- a/PunkAPI/PromiseKit/Classes/PunkAPI+PromiseKit.swift +++ b/PunkAPI/PromiseKit/Classes/PunkAPI+PromiseKit.swift @@ -0,0 +1,25 @@ +// +// PunkAPI+PromiseKit.swift +// PunkAPI +// +// Created by Andrea Altea on 17/02/2019. +// + +import Foundation +import PromiseKit + +public extension PunkAPI { + public func get(_ request: Request) -> Promise<[Beer]> { + return Promise { resolver in + self.get(request) { result in + switch result { + case let .success(beers): + resolver.fulfill(beers) + + case let .failure(error): + resolver.reject(error) + } + } + } + } +} From 507295159c380d621fc51929c14da496aaad82b0 Mon Sep 17 00:00:00 2001 From: Andrea Altea Date: Mon, 4 Mar 2019 22:30:38 +0100 Subject: [PATCH 14/17] Fix: split method to reduce indentation level --- .../Classes/PunkAPI+PromiseKit.swift | 21 ++++++++++++------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/PunkAPI/PromiseKit/Classes/PunkAPI+PromiseKit.swift b/PunkAPI/PromiseKit/Classes/PunkAPI+PromiseKit.swift index 87e3a89..523c009 100644 --- a/PunkAPI/PromiseKit/Classes/PunkAPI+PromiseKit.swift +++ b/PunkAPI/PromiseKit/Classes/PunkAPI+PromiseKit.swift @@ -11,14 +11,19 @@ import PromiseKit public extension PunkAPI { public func get(_ request: Request) -> Promise<[Beer]> { return Promise { resolver in - self.get(request) { result in - switch result { - case let .success(beers): - resolver.fulfill(beers) - - case let .failure(error): - resolver.reject(error) - } + self.perform(request, resolver: resolver) + } + } + + fileprivate func perform(_ request: Request, resolver: Resolver<[Beer]>) { + + self.get(request) { result in + switch result { + case let .success(beers): + resolver.fulfill(beers) + + case let .failure(error): + resolver.reject(error) } } } From b7f1da5b4840934d8112876c1ceac6279fc50c29 Mon Sep 17 00:00:00 2001 From: Andrea Altea Date: Mon, 4 Mar 2019 22:59:06 +0100 Subject: [PATCH 15/17] Feat: add wrapper tests --- Example/PunkAPI.xcodeproj/project.pbxproj | 4 + .../Tests/PunkAPIPromiseInterfaceTests.swift | 80 +++++++++++++++++++ 2 files changed, 84 insertions(+) create mode 100644 Example/Tests/PunkAPIPromiseInterfaceTests.swift diff --git a/Example/PunkAPI.xcodeproj/project.pbxproj b/Example/PunkAPI.xcodeproj/project.pbxproj index 6997b28..eaae8a4 100644 --- a/Example/PunkAPI.xcodeproj/project.pbxproj +++ b/Example/PunkAPI.xcodeproj/project.pbxproj @@ -15,6 +15,7 @@ 607FACE01AFB9204008FA782 /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 607FACDE1AFB9204008FA782 /* LaunchScreen.xib */; }; 9761024E222B328F00C3BD6B /* BeersRequestTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9761024D222B328F00C3BD6B /* BeersRequestTests.swift */; }; 97610250222C431300C3BD6B /* PunkAPIInterfaceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9761024F222C431300C3BD6B /* PunkAPIInterfaceTests.swift */; }; + 9761025C222DD5BB00C3BD6B /* PunkAPIPromiseInterfaceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9761025B222DD5BB00C3BD6B /* PunkAPIPromiseInterfaceTests.swift */; }; 9767CBF7221993F900E684C4 /* BeerParsingTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9767CBF6221993F800E684C4 /* BeerParsingTests.swift */; }; 9767CBFA2219958F00E684C4 /* BeerStubs.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9767CBF82219958800E684C4 /* BeerStubs.swift */; }; 9767CC092222B63700E684C4 /* URLBuildTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9767CC072222B60F00E684C4 /* URLBuildTests.swift */; }; @@ -52,6 +53,7 @@ 613B14F018C28CF1557EC3D5 /* Pods-PunkAPI_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-PunkAPI_Tests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-PunkAPI_Tests/Pods-PunkAPI_Tests.debug.xcconfig"; sourceTree = ""; }; 9761024D222B328F00C3BD6B /* BeersRequestTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BeersRequestTests.swift; sourceTree = ""; }; 9761024F222C431300C3BD6B /* PunkAPIInterfaceTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PunkAPIInterfaceTests.swift; sourceTree = ""; }; + 9761025B222DD5BB00C3BD6B /* PunkAPIPromiseInterfaceTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PunkAPIPromiseInterfaceTests.swift; sourceTree = ""; }; 9767CBF6221993F800E684C4 /* BeerParsingTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BeerParsingTests.swift; sourceTree = ""; }; 9767CBF82219958800E684C4 /* BeerStubs.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BeerStubs.swift; sourceTree = ""; }; 9767CC072222B60F00E684C4 /* URLBuildTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = URLBuildTests.swift; sourceTree = ""; }; @@ -195,6 +197,7 @@ 9767CC25222B286F00E684C4 /* BeersRequestParametersTests.swift */, 9767CC0A2222BB1E00E684C4 /* MockSession.swift */, 9767CC0E2223550E00E684C4 /* ConfigurationTests.swift */, + 9761025B222DD5BB00C3BD6B /* PunkAPIPromiseInterfaceTests.swift */, ); name = Request; sourceTree = ""; @@ -423,6 +426,7 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 9761025C222DD5BB00C3BD6B /* PunkAPIPromiseInterfaceTests.swift in Sources */, 9767CC0D2222BDD000E684C4 /* BeerRequestTests.swift in Sources */, 97610250222C431300C3BD6B /* PunkAPIInterfaceTests.swift in Sources */, 9767CC27222B299300E684C4 /* BeersRequestParametersTests.swift in Sources */, diff --git a/Example/Tests/PunkAPIPromiseInterfaceTests.swift b/Example/Tests/PunkAPIPromiseInterfaceTests.swift new file mode 100644 index 0000000..9ca83b5 --- /dev/null +++ b/Example/Tests/PunkAPIPromiseInterfaceTests.swift @@ -0,0 +1,80 @@ +// +// PunkAPIPromiseInterfaceTests.swift +// PunkAPI_Tests +// +// Created by Andrea Altea on 04/03/2019. +// Copyright © 2019 CocoaPods. All rights reserved. +// + +import XCTest +import PromiseKit +@testable import PunkAPI + +class PunkAPIPromiseInterfaceTests: XCTestCase { + + var mockSession: MockURLSession! + var interface: PunkAPI! + + override func setUp() { + + mockSession = MockURLSession() + let configuration = Configuration(session: mockSession, baseURL: URL(string: "https://api.test.it/v2/")!) + interface = PunkAPI(configuration: configuration) + } + + override func tearDown() { + interface = nil + } + + func testFailedRequest() { + + mockSession.check.urlCheckBlock = { url in + XCTAssert("https://api.test.it/v2/beers/1" == url.absoluteString) + } + mockSession.check.responseConfig = (nil, nil, TestError.unknownError) + + interface.get(BeerRequest(id: 1)) + .done { (beers) in + XCTFail("wrong response") + }.catch { (error) in + XCTAssert(TestError.unknownError == error as? TestError) + + } + } + + func testEmptyData() { + + mockSession.check.urlCheckBlock = { url in + XCTAssert("https://api.test.it/v2/beers/1" == url.absoluteString) + } + mockSession.check.responseConfig = (nil, nil, nil) + + interface.get(BeerRequest(id: 1)) + .done { (beers) in + XCTFail("wrong response") + }.catch { (error) in + XCTAssert(APIError.emptyResponse == error as? APIError) + } + } + + func testValidResponse() { + + mockSession.check.urlCheckBlock = { url in + XCTAssert("https://api.test.it/v2/beers/1" == url.absoluteString) + } + + guard let beerData = BeerStub.multipleFirst.data(using: .utf8) else { + XCTFail("Unable to define beerData") + return + } + mockSession.check.responseConfig = (beerData, nil, nil) + + interface.get(BeerRequest(id: 1)) + .done { (beers) in + let decodedBeers = try? JSONDecoder().decode([Beer].self, from: beerData) + XCTAssert(beers == decodedBeers) + }.catch { (error) in + XCTFail("wrong response") + } + } +} From 98cd852dfa666b53176fb65c01bca395f5c63290 Mon Sep 17 00:00:00 2001 From: Andrea Altea Date: Mon, 4 Mar 2019 23:07:30 +0100 Subject: [PATCH 16/17] Update issue templates --- .github/ISSUE_TEMPLATE/bug_report.md | 38 +++++++++++++++++++++++ .github/ISSUE_TEMPLATE/feature_request.md | 20 ++++++++++++ 2 files changed, 58 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.md create mode 100644 .github/ISSUE_TEMPLATE/feature_request.md diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..dd84ea7 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,38 @@ +--- +name: Bug report +about: Create a report to help us improve +title: '' +labels: '' +assignees: '' + +--- + +**Describe the bug** +A clear and concise description of what the bug is. + +**To Reproduce** +Steps to reproduce the behavior: +1. Go to '...' +2. Click on '....' +3. Scroll down to '....' +4. See error + +**Expected behavior** +A clear and concise description of what you expected to happen. + +**Screenshots** +If applicable, add screenshots to help explain your problem. + +**Desktop (please complete the following information):** + - OS: [e.g. iOS] + - Browser [e.g. chrome, safari] + - Version [e.g. 22] + +**Smartphone (please complete the following information):** + - Device: [e.g. iPhone6] + - OS: [e.g. iOS8.1] + - Browser [e.g. stock browser, safari] + - Version [e.g. 22] + +**Additional context** +Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000..bbcbbe7 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,20 @@ +--- +name: Feature request +about: Suggest an idea for this project +title: '' +labels: '' +assignees: '' + +--- + +**Is your feature request related to a problem? Please describe.** +A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] + +**Describe the solution you'd like** +A clear and concise description of what you want to happen. + +**Describe alternatives you've considered** +A clear and concise description of any alternative solutions or features you've considered. + +**Additional context** +Add any other context or screenshots about the feature request here. From 69bfebe816269870fe68c427a03ca4760f49bd0a Mon Sep 17 00:00:00 2001 From: Andrea Altea Date: Wed, 6 Mar 2019 20:06:58 +0100 Subject: [PATCH 17/17] Chore: bump version number --- Example/Podfile | 1 + Example/Podfile.lock | 14 +++++++------- Example/Pods/Local Podspecs/PunkAPI.podspec.json | 6 +++--- Example/Pods/Manifest.lock | 14 +++++++------- .../Pods/Target Support Files/PunkAPI/Info.plist | 2 +- PunkAPI.podspec | 2 +- 6 files changed, 20 insertions(+), 19 deletions(-) diff --git a/Example/Podfile b/Example/Podfile index 7199d65..40d92c5 100644 --- a/Example/Podfile +++ b/Example/Podfile @@ -1,4 +1,5 @@ use_frameworks! +platform :ios, '10.0' target 'PunkAPI_Example' do pod 'PunkAPI', :path => '../' diff --git a/Example/Podfile.lock b/Example/Podfile.lock index ab97e60..081273f 100644 --- a/Example/Podfile.lock +++ b/Example/Podfile.lock @@ -8,11 +8,11 @@ PODS: - PromiseKit/CorePromise - PromiseKit/UIKit (6.8.3): - PromiseKit/CorePromise - - PunkAPI (0.1.0): - - PunkAPI/API (= 0.1.0) - - PunkAPI/API (0.1.0) - - PunkAPI/PromiseKit (0.1.0): - - PromiseKit (~> 6.7) + - PunkAPI (0.2.0): + - PunkAPI/API (= 0.2.0) + - PunkAPI/API (0.2.0) + - PunkAPI/PromiseKit (0.2.0): + - PromiseKit (~> 6.8) - PunkAPI/API DEPENDENCIES: @@ -29,8 +29,8 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: PromiseKit: 94c6e781838c5bf4717677d0d882b0e7250c80fc - PunkAPI: d1f879329a85f6a16bdfd8c478c9da163df49b59 + PunkAPI: bf0b12efdfe84e986d7f3f2d9057e3cbcb007deb -PODFILE CHECKSUM: d9ed4e87e5248c7d10fc446b945660d3abddaee1 +PODFILE CHECKSUM: 140a1cf5c3e09e71ebdc08b298d32d1373675b44 COCOAPODS: 1.5.3 diff --git a/Example/Pods/Local Podspecs/PunkAPI.podspec.json b/Example/Pods/Local Podspecs/PunkAPI.podspec.json index 2ac2a00..d679fc2 100644 --- a/Example/Pods/Local Podspecs/PunkAPI.podspec.json +++ b/Example/Pods/Local Podspecs/PunkAPI.podspec.json @@ -1,6 +1,6 @@ { "name": "PunkAPI", - "version": "0.1.0", + "version": "0.2.0", "summary": "A little swift wrapper for PunkAPI by @samjbmason", "swift_version": "4.2", "description": "\"Have you ever wanted to search through Brewdog's expansive back catalogue of beer in a programmatic way? Maybe build a tool that pairs beer with food, or search beers with an abv of more than 4%? Well now your prayers have been answered!\"", @@ -14,7 +14,7 @@ }, "source": { "git": "https://github.com/Oni-zerone/PunkAPI.git", - "tag": "0.1.0" + "tag": "0.2.0" }, "social_media_url": "https://twitter.com/Oni_zerone", "platforms": { @@ -34,7 +34,7 @@ ], "PromiseKit": [ - "~> 5" + "~> 6.8" ] } } diff --git a/Example/Pods/Manifest.lock b/Example/Pods/Manifest.lock index ab97e60..081273f 100644 --- a/Example/Pods/Manifest.lock +++ b/Example/Pods/Manifest.lock @@ -8,11 +8,11 @@ PODS: - PromiseKit/CorePromise - PromiseKit/UIKit (6.8.3): - PromiseKit/CorePromise - - PunkAPI (0.1.0): - - PunkAPI/API (= 0.1.0) - - PunkAPI/API (0.1.0) - - PunkAPI/PromiseKit (0.1.0): - - PromiseKit (~> 6.7) + - PunkAPI (0.2.0): + - PunkAPI/API (= 0.2.0) + - PunkAPI/API (0.2.0) + - PunkAPI/PromiseKit (0.2.0): + - PromiseKit (~> 6.8) - PunkAPI/API DEPENDENCIES: @@ -29,8 +29,8 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: PromiseKit: 94c6e781838c5bf4717677d0d882b0e7250c80fc - PunkAPI: d1f879329a85f6a16bdfd8c478c9da163df49b59 + PunkAPI: bf0b12efdfe84e986d7f3f2d9057e3cbcb007deb -PODFILE CHECKSUM: d9ed4e87e5248c7d10fc446b945660d3abddaee1 +PODFILE CHECKSUM: 140a1cf5c3e09e71ebdc08b298d32d1373675b44 COCOAPODS: 1.5.3 diff --git a/Example/Pods/Target Support Files/PunkAPI/Info.plist b/Example/Pods/Target Support Files/PunkAPI/Info.plist index 161a9d3..0d7bfa2 100644 --- a/Example/Pods/Target Support Files/PunkAPI/Info.plist +++ b/Example/Pods/Target Support Files/PunkAPI/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 0.1.0 + 0.2.0 CFBundleSignature ???? CFBundleVersion diff --git a/PunkAPI.podspec b/PunkAPI.podspec index efcdae6..8d77ac1 100644 --- a/PunkAPI.podspec +++ b/PunkAPI.podspec @@ -8,7 +8,7 @@ Pod::Spec.new do |s| s.name = 'PunkAPI' - s.version = '0.1.0' + s.version = '0.2.0' s.summary = 'A little swift wrapper for PunkAPI by @samjbmason' s.swift_version = '4.2'