Commit 31a52675 authored by Dapperstout's avatar Dapperstout

Update Quick to version 0.6.0 and Nimble to 2.0.0-rc.3

parent b9d0fcb7
......@@ -13,11 +13,11 @@ pod 'OpenSSL-Framework', '~> 1.0.201'
pod 'NetUtils', '~> 1.0'
target 'PulseTests' do
pod 'Quick', '~> 0.5.0'
pod 'Nimble', '2.0.0-rc.2'
pod 'Quick', '~> 0.6.0'
pod 'Nimble', '2.0.0-rc.3'
end
target 'PulseIntegrationTests' do
pod 'Quick', '~> 0.5.0'
pod 'Nimble', '2.0.0-rc.2'
pod 'Quick', '~> 0.6.0'
pod 'Nimble', '2.0.0-rc.3'
end
......@@ -4,9 +4,9 @@ PODS:
- IGDigest (1.1.2)
- lz4 (128)
- NetUtils (1.3.1)
- Nimble (2.0.0-rc.2)
- Nimble (2.0.0-rc.3)
- OpenSSL-Framework (1.0.201)
- Quick (0.5.1)
- Quick (0.6.0)
- SwiftBytes (0.2.0)
DEPENDENCIES:
......@@ -15,9 +15,9 @@ DEPENDENCIES:
- IGDigest (~> 1.1.0)
- lz4 (~> 128)
- NetUtils (~> 1.0)
- Nimble (= 2.0.0-rc.2)
- Nimble (= 2.0.0-rc.3)
- OpenSSL-Framework (~> 1.0.201)
- Quick (~> 0.5.0)
- Quick (~> 0.6.0)
- SwiftBytes (~> 0.2.0)
SPEC CHECKSUMS:
......@@ -26,9 +26,9 @@ SPEC CHECKSUMS:
IGDigest: 066753c10f3f1b593b00037b9ee93dc96b9e7762
lz4: 5e066195ca751d552becaa026f8fe213ff738adf
NetUtils: 1be01b817b5aa7460054d7d1d15be557018f69ed
Nimble: e3cf5e73a491daf21c2bc88783dbfc55ce8b8e02
Nimble: 9dff98ee195ffe7351d3b2fb01d3a1420fd97948
OpenSSL-Framework: f10c6aa8a92f69fca94303c3774b4773860a9690
Quick: 7426537a99e75076d6930c5b6da58006e4a9f38a
Quick: 563686dbcf0ae0f9f7401ac9cd2d786ee1b7f3d7
SwiftBytes: a700beb32d020abedd3fc3bb4f0e3b5444cb18b6
COCOAPODS: 0.38.2
......@@ -4,9 +4,9 @@ PODS:
- IGDigest (1.1.2)
- lz4 (128)
- NetUtils (1.3.1)
- Nimble (2.0.0-rc.2)
- Nimble (2.0.0-rc.3)
- OpenSSL-Framework (1.0.201)
- Quick (0.5.1)
- Quick (0.6.0)
- SwiftBytes (0.2.0)
DEPENDENCIES:
......@@ -15,9 +15,9 @@ DEPENDENCIES:
- IGDigest (~> 1.1.0)
- lz4 (~> 128)
- NetUtils (~> 1.0)
- Nimble (= 2.0.0-rc.2)
- Nimble (= 2.0.0-rc.3)
- OpenSSL-Framework (~> 1.0.201)
- Quick (~> 0.5.0)
- Quick (~> 0.6.0)
- SwiftBytes (~> 0.2.0)
SPEC CHECKSUMS:
......@@ -26,9 +26,9 @@ SPEC CHECKSUMS:
IGDigest: 066753c10f3f1b593b00037b9ee93dc96b9e7762
lz4: 5e066195ca751d552becaa026f8fe213ff738adf
NetUtils: 1be01b817b5aa7460054d7d1d15be557018f69ed
Nimble: e3cf5e73a491daf21c2bc88783dbfc55ce8b8e02
Nimble: 9dff98ee195ffe7351d3b2fb01d3a1420fd97948
OpenSSL-Framework: f10c6aa8a92f69fca94303c3774b4773860a9690
Quick: 7426537a99e75076d6930c5b6da58006e4a9f38a
Quick: 563686dbcf0ae0f9f7401ac9cd2d786ee1b7f3d7
SwiftBytes: a700beb32d020abedd3fc3bb4f0e3b5444cb18b6
COCOAPODS: 0.38.2
......@@ -37,7 +37,7 @@ public class FailureMessage: NSObject {
var lines: [String] = (str as NSString).componentsSeparatedByString("\n") as [String]
let whitespace = NSCharacterSet.whitespaceAndNewlineCharacterSet()
lines = lines.map { line in line.stringByTrimmingCharactersInSet(whitespace) }
return "".join(lines)
return lines.joinWithSeparator("")
}
internal func computeStringValue() -> String {
......
......@@ -2,14 +2,14 @@ import Foundation
internal let DefaultDelta = 0.0001
internal func isCloseTo(actualValue: Double?, expectedValue: Double, delta: Double, failureMessage: FailureMessage) -> Bool {
internal func isCloseTo(actualValue: NMBDoubleConvertible?, expectedValue: NMBDoubleConvertible, delta: Double, failureMessage: FailureMessage) -> Bool {
failureMessage.postfixMessage = "be close to <\(stringify(expectedValue))> (within \(stringify(delta)))"
if actualValue != nil {
failureMessage.actualValue = "<\(stringify(actualValue!))>"
} else {
failureMessage.actualValue = "<nil>"
}
return actualValue != nil && abs(actualValue! - expectedValue) < delta
return actualValue != nil && abs(actualValue!.doubleValue - expectedValue.doubleValue) < delta
}
/// A Nimble matcher that succeeds when a value is close to another. This is used for floating
......@@ -28,7 +28,7 @@ public func beCloseTo(expectedValue: Double, within delta: Double = DefaultDelta
/// @see equal
public func beCloseTo(expectedValue: NMBDoubleConvertible, within delta: Double = DefaultDelta) -> NonNilMatcherFunc<NMBDoubleConvertible> {
return NonNilMatcherFunc { actualExpression, failureMessage in
return isCloseTo(try actualExpression.evaluate()?.doubleValue, expectedValue: expectedValue.doubleValue, delta: delta, failureMessage: failureMessage)
return isCloseTo(try actualExpression.evaluate(), expectedValue: expectedValue, delta: delta, failureMessage: failureMessage)
}
}
......
......@@ -39,7 +39,45 @@ extension NSArray : NMBOrderedCollection {}
@objc public protocol NMBDoubleConvertible {
var doubleValue: CDouble { get }
}
extension NSNumber : NMBDoubleConvertible { }
extension NSNumber : NMBDoubleConvertible {
}
private let dateFormatter: NSDateFormatter = {
let formatter = NSDateFormatter()
formatter.dateFormat = "yyyy-MM-dd HH:mm:ss.SSSS"
formatter.locale = NSLocale(localeIdentifier: "en_US_POSIX")
return formatter
}()
extension NSDate: NMBDoubleConvertible {
public var doubleValue: CDouble {
get {
return self.timeIntervalSinceReferenceDate
}
}
}
extension NMBDoubleConvertible {
public var stringRepresentation: String {
get {
if let date = self as? NSDate {
return dateFormatter.stringFromDate(date)
}
if let debugStringConvertible = self as? CustomDebugStringConvertible {
return debugStringConvertible.debugDescription
}
if let stringConvertible = self as? CustomStringConvertible {
return stringConvertible.description
}
return ""
}
}
}
/// Protocol for types to support beLessThan(), beLessThanOrEqualTo(),
/// beGreaterThan(), beGreaterThanOrEqualTo(), and equal() matchers.
......
......@@ -35,9 +35,10 @@ internal class RunPromise {
}
}
let killQueue = dispatch_queue_create("nimble.waitUntil.queue", DISPATCH_QUEUE_SERIAL)
internal func stopRunLoop(runLoop: NSRunLoop, delay: NSTimeInterval) -> RunPromise {
let promise = RunPromise()
let killQueue = dispatch_queue_create("nimble.waitUntil.queue", DISPATCH_QUEUE_SERIAL)
let killTimeOffset = Int64(CDouble(delay) * CDouble(NSEC_PER_SEC))
let killTime = dispatch_time(DISPATCH_TIME_NOW, killTimeOffset)
dispatch_after(killTime, killQueue) {
......@@ -58,7 +59,9 @@ internal func pollBlock(pollInterval pollInterval: NSTimeInterval, timeoutInterv
// trigger run loop to make sure enqueued tasks don't block our assertion polling
// the stop run loop task above will abort us if necessary
runLoop.runUntilDate(startDate)
promise.succeed()
dispatch_sync(killQueue) {
promise.succeed()
}
if promise.didFail {
return .Timeout
......
......@@ -29,7 +29,7 @@ internal func stringify<S: SequenceType>(value: S) -> String {
strings.append(stringify(value))
}
} while value != nil
let str = ", ".join(strings)
let str = strings.joinWithSeparator(", ")
return "[\(str)]"
}
......@@ -47,6 +47,13 @@ internal func stringify<T>(value: T) -> String {
return String(value)
}
internal func stringify(value: NMBDoubleConvertible) -> String {
if let value = value as? Double {
return NSString(format: "%.4f", (value)).description
}
return value.stringRepresentation
}
internal func stringify<T>(value: T?) -> String {
if let unboxed = value {
return stringify(unboxed)
......
......@@ -14,8 +14,8 @@
#define NIMBLE_SHORT(PROTO, ORIGINAL) FOUNDATION_STATIC_INLINE PROTO { return (ORIGINAL); }
#endif
NIMBLE_EXPORT NMBExpectation *NMB_expect(id(^actualBlock)(), const char *file, unsigned int line);
NIMBLE_EXPORT NMBExpectation *NMB_expectAction(void(^actualBlock)(), const char *file, unsigned int line);
NIMBLE_EXPORT NMBExpectation *NMB_expect(id(^actualBlock)(), NSString *file, NSUInteger line);
NIMBLE_EXPORT NMBExpectation *NMB_expectAction(void(^actualBlock)(), NSString *file, NSUInteger line);
NIMBLE_EXPORT id<NMBMatcher> NMB_equal(id expectedValue);
NIMBLE_SHORT(id<NMBMatcher> equal(id expectedValue),
......@@ -112,13 +112,17 @@ typedef void (^NMBWaitUntilBlock)(void (^action)(void (^)(void)));
NIMBLE_EXPORT NMBWaitUntilTimeoutBlock NMB_waitUntilTimeoutBuilder(NSString *file, NSUInteger line);
NIMBLE_EXPORT NMBWaitUntilBlock NMB_waitUntilBuilder(NSString *file, NSUInteger line);
NIMBLE_EXPORT void NMB_failWithMessage(NSString *msg, NSString *file, NSUInteger line);
#define NMB_waitUntilTimeout NMB_waitUntilTimeoutBuilder(@(__FILE__), __LINE__)
#define NMB_waitUntil NMB_waitUntilBuilder(@(__FILE__), __LINE__)
#ifndef NIMBLE_DISABLE_SHORT_SYNTAX
#define expect(...) NMB_expect(^id{ return (__VA_ARGS__); }, __FILE__, __LINE__)
#define expectAction(BLOCK) NMB_expectAction((BLOCK), __FILE__, __LINE__)
#define fail() NMB_expectAction((BLOCK), __FILE__, __LINE__)
#define expect(...) NMB_expect(^id{ return (__VA_ARGS__); }, @(__FILE__), __LINE__)
#define expectAction(BLOCK) NMB_expectAction((BLOCK), @(__FILE__), __LINE__)
#define failWithMessage(msg) NMB_failWithMessage(msg, @(__FILE__), __LINE__)
#define fail() failWithMessage(@"fail() always fails")
#define waitUntilTimeout NMB_waitUntilTimeout
#define waitUntil NMB_waitUntil
......
......@@ -9,20 +9,24 @@ SWIFT_CLASS("_TtC6Nimble7NMBWait")
@end
NIMBLE_EXPORT NMBExpectation *NMB_expect(id(^actualBlock)(), const char *file, unsigned int line) {
NIMBLE_EXPORT NMBExpectation *NMB_expect(id(^actualBlock)(), NSString *file, NSUInteger line) {
return [[NMBExpectation alloc] initWithActualBlock:actualBlock
negative:NO
file:[[NSString alloc] initWithFormat:@"%s", file]
file:file
line:line];
}
NIMBLE_EXPORT NMBExpectation *NMB_expectAction(void(^actualBlock)(), const char *file, unsigned int line) {
NIMBLE_EXPORT NMBExpectation *NMB_expectAction(void(^actualBlock)(), NSString *file, NSUInteger line) {
return NMB_expect(^id{
actualBlock();
return nil;
}, file, line);
}
NIMBLE_EXPORT void NMB_failWithMessage(NSString *msg, NSString *file, NSUInteger line) {
return [NMBExpectation failWithMessage:msg file:file line:line];
}
NIMBLE_EXPORT id<NMBMatcher> NMB_beAnInstanceOf(Class expectedClass) {
return [NMBObjCMatcher beAnInstanceOfMatcher:expectedClass];
}
......
......@@ -652,19 +652,24 @@ expect(actual).to(beNil());
## Swift Error Handling
If you're using Swift 2.0+, you can use the `throwAnError` matcher to check if an error is thrown.
If you're using Swift 2.0+, you can use the `throwError` matcher to check if an error is thrown.
```swift
// Swift
// Passes if somethingThatThrows() throws an ErrorType:
expect{ try somethingThatThrows() }.to(throwAnError())
expect{ try somethingThatThrows() }.to(throwError())
// Passes if somethingThatThrows() throws an error with a given domain:
expect{ try somethingThatThrows() }.to(throwAnError { error in
let nserror = error as NSError
expect(nserror.domain).to(equal(NSInternalInconsistencyException))
expect{ try somethingThatThrows() }.to(throwError { (error: ErrorType) in
expect(error._domain).to(equal(NSCocoaErrorDomain))
})
// Passes if somethingThatThrows() throws an error with a given case:
expect{ try somethingThatThrows() }.to(throwError(NSCocoaError.PropertyListReadCorruptError))
// Passes if somethingThatThrows() throws an error with a given type:
expect{ try somethingThatThrows() }.to(throwError(errorType: MyError.self))
```
Note: This feature is only available in Swift.
......@@ -685,7 +690,7 @@ expect(actual).to(raiseException(named: name, reason: reason))
// Passes if actual raises an exception and it passes expectations in the block
// (in this case, if name begins with 'a r')
expect { exception.raise() }.to(raiseException { exception in
expect { exception.raise() }.to(raiseException { (exception: NSException) in
expect(exception.name).to(beginWith("a r"))
})
```
......@@ -1057,9 +1062,12 @@ extension NMBObjCMatcher {
Quick and Nimble, follow [the installation instructions in the Quick
README](https://github.com/Quick/Quick#how-to-install-quick).
Nimble can currently be installed in one of two ways: using CocoaPods, or with git submodules. The master branch of
Nimble supports Swift 1.2. For Swift 1.1 support, use the `swift-1.1`
branch.
Nimble can currently be installed in one of two ways: using CocoaPods, or with
git submodules.
- The `swift-2.0` branch support Swift 2.0.
- The `master` branch of Nimble supports Swift 1.2.
- For Swift 1.1 support, use the `swift-1.1` branch.
## Installing Nimble as a Submodule
......@@ -1078,8 +1086,9 @@ install just Nimble.
## Installing Nimble via CocoaPods
To use Nimble in CocoaPods to test your iOS or OS X applications, update CocoaPods to Version 0.36.0.
Then add Nimble to your podfile and add the ```use_frameworks!``` line to enable Swift support for Cocoapods.
To use Nimble in CocoaPods to test your iOS or OS X applications, add Nimble to
your podfile and add the ```use_frameworks!``` line to enable Swift support for
Cocoapods.
```ruby
platform :ios, '8.0'
......@@ -1090,8 +1099,10 @@ source 'https://github.com/CocoaPods/Specs.git'
target 'YOUR_APP_NAME_HERE_Tests', :exclusive => true do
use_frameworks!
# If you're using Swift 1.2 (Xcode 6.3 beta), use this:
pod 'Nimble', '~> 0.4.0'
# If you're using Swift 2.0 (Xcode 7), use this:
pod 'Nimble', '2.0.0-rc.2'
# If you're using Swift 1.2 (Xcode 6), use this:
pod 'Nimble', '~> 1.0.0'
# Otherwise, use this commented out line for Swift 1.1 (Xcode 6.2):
# pod 'Nimble', '~> 0.3.0'
end
......
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -11,9 +11,9 @@ final public class Callsite: NSObject {
/**
The line number on which an example is defined.
*/
public let line: Int
public let line: UInt
internal init(file: String, line: Int) {
internal init(file: String, line: UInt) {
self.file = file
self.line = line
}
......
......@@ -127,7 +127,7 @@ public func afterEach(closure: AfterExampleWithMetadataClosure) {
- parameter file: The absolute path to the file containing the example. A sensible default is provided.
- parameter line: The line containing the example. A sensible default is provided.
*/
public func it(description: String, flags: FilterFlags = [:], file: String = __FILE__, line: Int = __LINE__, closure: () -> ()) {
public func it(description: String, flags: FilterFlags = [:], file: String = __FILE__, line: UInt = __LINE__, closure: () -> ()) {
World.sharedWorld().it(description, flags: flags, file: file, line: line, closure: closure)
}
......@@ -143,7 +143,7 @@ public func it(description: String, flags: FilterFlags = [:], file: String = __F
- parameter file: The absolute path to the file containing the current example group. A sensible default is provided.
- parameter line: The line containing the current example group. A sensible default is provided.
*/
public func itBehavesLike(name: String, flags: FilterFlags = [:], file: String = __FILE__, line: Int = __LINE__) {
public func itBehavesLike(name: String, flags: FilterFlags = [:], file: String = __FILE__, line: UInt = __LINE__) {
itBehavesLike(name, flags: flags, file: file, line: line, sharedExampleContext: { return [:] })
}
......@@ -163,7 +163,7 @@ public func itBehavesLike(name: String, flags: FilterFlags = [:], file: String =
- parameter file: The absolute path to the file containing the current example group. A sensible default is provided.
- parameter line: The line containing the current example group. A sensible default is provided.
*/
public func itBehavesLike(name: String, flags: FilterFlags = [:], file: String = __FILE__, line: Int = __LINE__, sharedExampleContext: SharedExampleContext) {
public func itBehavesLike(name: String, flags: FilterFlags = [:], file: String = __FILE__, line: UInt = __LINE__, sharedExampleContext: SharedExampleContext) {
World.sharedWorld().itBehavesLike(name, sharedExampleContext: sharedExampleContext, flags: flags, file: file, line: line)
}
......@@ -198,7 +198,7 @@ public func xcontext(description: String, flags: FilterFlags, closure: () -> ())
Use this to quickly mark an `it` closure as pending.
This disables the example and ensures the code within the closure is never run.
*/
public func xit(description: String, flags: FilterFlags = [:], file: String = __FILE__, line: Int = __LINE__, closure: () -> ()) {
public func xit(description: String, flags: FilterFlags = [:], file: String = __FILE__, line: UInt = __LINE__, closure: () -> ()) {
World.sharedWorld().xit(description, flags: flags, file: file, line: line, closure: closure)
}
......@@ -222,6 +222,6 @@ public func fcontext(description: String, flags: FilterFlags = [:], closure: ()
Use this to quickly focus an `it` closure, focusing the example.
If any examples in the test suite are focused, only those examples are executed.
*/
public func fit(description: String, flags: FilterFlags = [:], file: String = __FILE__, line: Int = __LINE__, closure: () -> ()) {
public func fit(description: String, flags: FilterFlags = [:], file: String = __FILE__, line: UInt = __LINE__, closure: () -> ()) {
World.sharedWorld().fit(description, flags: flags, file: file, line: line, closure: closure)
}
......@@ -12,9 +12,9 @@
- (void)beforeEachWithMetadata:(void (^ __nonnull)(ExampleMetadata * __nonnull))closure;
- (void)afterEach:(void (^ __nonnull)(void))closure;
- (void)afterEachWithMetadata:(void (^ __nonnull)(ExampleMetadata * __nonnull))closure;
- (void)itWithDescription:(NSString * __nonnull)description flags:(NSDictionary * __nonnull)flags file:(NSString * __nonnull)file line:(NSInteger)line closure:(void (^ __nonnull)(void))closure;
- (void)fitWithDescription:(NSString * __nonnull)description flags:(NSDictionary * __nonnull)flags file:(NSString * __nonnull)file line:(NSInteger)line closure:(void (^ __nonnull)(void))closure;
- (void)xitWithDescription:(NSString * __nonnull)description flags:(NSDictionary * __nonnull)flags file:(NSString * __nonnull)file line:(NSInteger)line closure:(void (^ __nonnull)(void))closure;
- (void)itBehavesLikeSharedExampleNamed:(NSString * __nonnull)name sharedExampleContext:(NSDictionary * __nonnull (^ __nonnull)(void))sharedExampleContext flags:(NSDictionary * __nonnull)flags file:(NSString * __nonnull)file line:(NSInteger)line;
- (void)itWithDescription:(NSString * __nonnull)description flags:(NSDictionary * __nonnull)flags file:(NSString * __nonnull)file line:(NSUInteger)line closure:(void (^ __nonnull)(void))closure;
- (void)fitWithDescription:(NSString * __nonnull)description flags:(NSDictionary * __nonnull)flags file:(NSString * __nonnull)file line:(NSUInteger)line closure:(void (^ __nonnull)(void))closure;
- (void)xitWithDescription:(NSString * __nonnull)description flags:(NSDictionary * __nonnull)flags file:(NSString * __nonnull)file line:(NSUInteger)line closure:(void (^ __nonnull)(void))closure;
- (void)itBehavesLikeSharedExampleNamed:(NSString * __nonnull)name sharedExampleContext:(NSDictionary * __nonnull (^ __nonnull)(void))sharedExampleContext flags:(NSDictionary * __nonnull)flags file:(NSString * __nonnull)file line:(NSUInteger)line;
- (void)pending:(NSString * __nonnull)description closure:(void (^ __nonnull)(void))closure;
@end
......@@ -59,28 +59,28 @@ extension World {
}
@objc(itWithDescription:flags:file:line:closure:)
internal func it(description: String, flags: FilterFlags, file: String, line: Int, closure: () -> ()) {
internal func it(description: String, flags: FilterFlags, file: String, line: UInt, closure: () -> ()) {
let callsite = Callsite(file: file, line: line)
let example = Example(description: description, callsite: callsite, flags: flags, closure: closure)
currentExampleGroup!.appendExample(example)
}
@objc(fitWithDescription:flags:file:line:closure:)
internal func fit(description: String, flags: FilterFlags, file: String, line: Int, closure: () -> ()) {
internal func fit(description: String, flags: FilterFlags, file: String, line: UInt, closure: () -> ()) {
var focusedFlags = flags
focusedFlags[Filter.focused] = true
self.it(description, flags: focusedFlags, file: file, line: line, closure: closure)
}
@objc(xitWithDescription:flags:file:line:closure:)
internal func xit(description: String, flags: FilterFlags, file: String, line: Int, closure: () -> ()) {
internal func xit(description: String, flags: FilterFlags, file: String, line: UInt, closure: () -> ()) {
var pendingFlags = flags
pendingFlags[Filter.pending] = true
self.it(description, flags: pendingFlags, file: file, line: line, closure: closure)
}
@objc(itBehavesLikeSharedExampleNamed:sharedExampleContext:flags:file:line:)
internal func itBehavesLike(name: String, sharedExampleContext: SharedExampleContext, flags: FilterFlags, file: String, line: Int) {
internal func itBehavesLike(name: String, sharedExampleContext: SharedExampleContext, flags: FilterFlags, file: String, line: UInt) {
let callsite = Callsite(file: file, line: line)
let closure = World.sharedWorld().sharedExample(name)
......
......@@ -30,7 +30,7 @@ final public class ExampleGroup: NSObject {
public var examples: [Example] {
var examples = childExamples
for group in childGroups {
examples.extend(group.examples)
examples.appendContentsOf(group.examples)
}
return examples
}
......@@ -59,7 +59,7 @@ final public class ExampleGroup: NSObject {
internal var befores: [BeforeExampleWithMetadataClosure] {
var closures = Array(hooks.befores.reverse())
walkUp() { (group: ExampleGroup) -> () in
closures.extend(Array(group.hooks.befores.reverse()))
closures.appendContentsOf(Array(group.hooks.befores.reverse()))
}
return Array(closures.reverse())
}
......@@ -67,7 +67,7 @@ final public class ExampleGroup: NSObject {
internal var afters: [AfterExampleWithMetadataClosure] {
var closures = hooks.afters
walkUp() { (group: ExampleGroup) -> () in
closures.extend(group.hooks.afters)
closures.appendContentsOf(group.hooks.afters)
}
return closures
}
......
......@@ -15,7 +15,7 @@
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>2.0.0-rc.2</string>
<string>2.0.0-rc.3</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
......
#include "Nimble.xcconfig"
ENABLE_BITCODE = ${NIMBLE_ENABLE_BITCODE}
FRAMEWORK_SEARCH_PATHS = ${NIMBLE_FRAMEWORK_SEARCH_PATHS}
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/Nimble" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/OpenSSL-Framework" "${PODS_ROOT}/Headers/Public/OpenSSL-Framework/openssl"
......
NIMBLE_ENABLE_BITCODE = NO
NIMBLE_FRAMEWORK_SEARCH_PATHS = $(inherited) "$(SDKROOT)/Developer/Library/Frameworks" "$(PLATFORM_DIR)/Developer/Library/Frameworks"
NIMBLE_OTHER_LDFLAGS = -framework "XCTest"
\ No newline at end of file
......@@ -15,7 +15,7 @@
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>0.5.1</string>
<string>0.6.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment