From f86b4b143680fd79404cf1ad9afb8e07705f2dd2 Mon Sep 17 00:00:00 2001 From: Artur Grigor Date: Mon, 20 Mar 2017 18:20:53 +0200 Subject: [PATCH 01/19] Added framework and test schemes for each supported platform. Made the schemes Shared for Carthage support. Embedded the Pods in the repo for Carthage build support. Upgraded the Podfile. Bumped the pod version. Raised the minimum deployment version to 6.0 to support bitcode. --- .gitignore | 4 - Info.plist | 24 + Podfile | 21 +- Podfile.lock | 8 +- Pods/Headers/Private/Kiwi/KWAfterAllNode.h | 1 + Pods/Headers/Private/Kiwi/KWAfterEachNode.h | 1 + Pods/Headers/Private/Kiwi/KWAny.h | 1 + Pods/Headers/Private/Kiwi/KWAsyncVerifier.h | 1 + .../Headers/Private/Kiwi/KWBeBetweenMatcher.h | 1 + Pods/Headers/Private/Kiwi/KWBeEmptyMatcher.h | 1 + .../Private/Kiwi/KWBeIdenticalToMatcher.h | 1 + .../Private/Kiwi/KWBeKindOfClassMatcher.h | 1 + .../Private/Kiwi/KWBeMemberOfClassMatcher.h | 1 + .../Private/Kiwi/KWBeSubclassOfClassMatcher.h | 1 + Pods/Headers/Private/Kiwi/KWBeTrueMatcher.h | 1 + Pods/Headers/Private/Kiwi/KWBeWithinMatcher.h | 1 + Pods/Headers/Private/Kiwi/KWBeZeroMatcher.h | 1 + Pods/Headers/Private/Kiwi/KWBeforeAllNode.h | 1 + Pods/Headers/Private/Kiwi/KWBeforeEachNode.h | 1 + Pods/Headers/Private/Kiwi/KWBlock.h | 1 + Pods/Headers/Private/Kiwi/KWBlockNode.h | 1 + .../Private/Kiwi/KWBlockRaiseMatcher.h | 1 + Pods/Headers/Private/Kiwi/KWCallSite.h | 1 + Pods/Headers/Private/Kiwi/KWCaptureSpy.h | 1 + Pods/Headers/Private/Kiwi/KWChangeMatcher.h | 1 + .../Private/Kiwi/KWConformToProtocolMatcher.h | 1 + Pods/Headers/Private/Kiwi/KWContainMatcher.h | 1 + .../Private/Kiwi/KWContainStringMatcher.h | 1 + Pods/Headers/Private/Kiwi/KWContextNode.h | 1 + Pods/Headers/Private/Kiwi/KWCountType.h | 1 + Pods/Headers/Private/Kiwi/KWDeviceInfo.h | 1 + Pods/Headers/Private/Kiwi/KWEqualMatcher.h | 1 + Pods/Headers/Private/Kiwi/KWExample.h | 1 + Pods/Headers/Private/Kiwi/KWExampleDelegate.h | 1 + Pods/Headers/Private/Kiwi/KWExampleNode.h | 1 + .../Private/Kiwi/KWExampleNodeVisitor.h | 1 + Pods/Headers/Private/Kiwi/KWExampleSuite.h | 1 + .../Private/Kiwi/KWExampleSuiteBuilder.h | 1 + Pods/Headers/Private/Kiwi/KWExistVerifier.h | 1 + Pods/Headers/Private/Kiwi/KWExpectationType.h | 1 + Pods/Headers/Private/Kiwi/KWFailure.h | 1 + Pods/Headers/Private/Kiwi/KWFormatter.h | 1 + Pods/Headers/Private/Kiwi/KWFutureObject.h | 1 + .../Private/Kiwi/KWGenericMatchEvaluator.h | 1 + Pods/Headers/Private/Kiwi/KWGenericMatcher.h | 1 + .../Private/Kiwi/KWGenericMatchingAdditions.h | 1 + Pods/Headers/Private/Kiwi/KWHaveMatcher.h | 1 + .../Headers/Private/Kiwi/KWHaveValueMatcher.h | 1 + .../Private/Kiwi/KWInequalityMatcher.h | 1 + Pods/Headers/Private/Kiwi/KWIntercept.h | 1 + .../Private/Kiwi/KWInvocationCapturer.h | 1 + Pods/Headers/Private/Kiwi/KWItNode.h | 1 + Pods/Headers/Private/Kiwi/KWLet.h | 1 + Pods/Headers/Private/Kiwi/KWLetNode.h | 1 + Pods/Headers/Private/Kiwi/KWMatchVerifier.h | 1 + Pods/Headers/Private/Kiwi/KWMatcher.h | 1 + Pods/Headers/Private/Kiwi/KWMatcherFactory.h | 1 + Pods/Headers/Private/Kiwi/KWMatchers.h | 1 + Pods/Headers/Private/Kiwi/KWMatching.h | 1 + Pods/Headers/Private/Kiwi/KWMessagePattern.h | 1 + Pods/Headers/Private/Kiwi/KWMessageSpying.h | 1 + Pods/Headers/Private/Kiwi/KWMessageTracker.h | 1 + Pods/Headers/Private/Kiwi/KWMock.h | 1 + Pods/Headers/Private/Kiwi/KWNilMatcher.h | 1 + .../Private/Kiwi/KWNotificationMatcher.h | 1 + Pods/Headers/Private/Kiwi/KWNull.h | 1 + Pods/Headers/Private/Kiwi/KWObjCUtilities.h | 1 + Pods/Headers/Private/Kiwi/KWPendingNode.h | 1 + Pods/Headers/Private/Kiwi/KWProbe.h | 1 + Pods/Headers/Private/Kiwi/KWProbePoller.h | 1 + Pods/Headers/Private/Kiwi/KWReceiveMatcher.h | 1 + .../Private/Kiwi/KWRegisterMatchersNode.h | 1 + .../Kiwi/KWRegularExpressionPatternMatcher.h | 1 + Pods/Headers/Private/Kiwi/KWReporting.h | 1 + .../Private/Kiwi/KWRespondToSelectorMatcher.h | 1 + Pods/Headers/Private/Kiwi/KWSpec.h | 1 + .../Private/Kiwi/KWStringContainsMatcher.h | 1 + .../Private/Kiwi/KWStringPrefixMatcher.h | 1 + Pods/Headers/Private/Kiwi/KWStringUtilities.h | 1 + Pods/Headers/Private/Kiwi/KWStub.h | 1 + .../Private/Kiwi/KWSuiteConfigurationBase.h | 1 + Pods/Headers/Private/Kiwi/KWSymbolicator.h | 1 + .../Private/Kiwi/KWUserDefinedMatcher.h | 1 + Pods/Headers/Private/Kiwi/KWValue.h | 1 + Pods/Headers/Private/Kiwi/KWVerifying.h | 1 + Pods/Headers/Private/Kiwi/KWWorkarounds.h | 1 + Pods/Headers/Private/Kiwi/Kiwi.h | 1 + Pods/Headers/Private/Kiwi/KiwiBlockMacros.h | 1 + Pods/Headers/Private/Kiwi/KiwiConfiguration.h | 1 + Pods/Headers/Private/Kiwi/KiwiMacros.h | 1 + .../Private/Kiwi/NSInvocation+KiwiAdditions.h | 1 + .../Private/Kiwi/NSInvocation+OCMAdditions.h | 1 + .../Kiwi/NSMethodSignature+KiwiAdditions.h | 1 + .../Private/Kiwi/NSNumber+KiwiAdditions.h | 1 + .../Private/Kiwi/NSObject+KiwiMockAdditions.h | 1 + .../Private/Kiwi/NSObject+KiwiSpyAdditions.h | 1 + .../Private/Kiwi/NSObject+KiwiStubAdditions.h | 1 + .../Kiwi/NSObject+KiwiVerifierAdditions.h | 1 + .../Kiwi/NSProxy+KiwiVerifierAdditions.h | 1 + .../Private/Kiwi/NSValue+KiwiAdditions.h | 1 + Pods/Headers/Private/TransitionKit/TKEvent.h | 1 + Pods/Headers/Private/TransitionKit/TKState.h | 1 + .../Private/TransitionKit/TKStateMachine.h | 1 + .../Private/TransitionKit/TKTransition.h | 1 + .../Private/TransitionKit/TransitionKit.h | 1 + Pods/Headers/Public/Kiwi/KWAfterAllNode.h | 1 + Pods/Headers/Public/Kiwi/KWAfterEachNode.h | 1 + Pods/Headers/Public/Kiwi/KWAny.h | 1 + Pods/Headers/Public/Kiwi/KWAsyncVerifier.h | 1 + Pods/Headers/Public/Kiwi/KWBeBetweenMatcher.h | 1 + Pods/Headers/Public/Kiwi/KWBeEmptyMatcher.h | 1 + .../Public/Kiwi/KWBeIdenticalToMatcher.h | 1 + .../Public/Kiwi/KWBeKindOfClassMatcher.h | 1 + .../Public/Kiwi/KWBeMemberOfClassMatcher.h | 1 + .../Public/Kiwi/KWBeSubclassOfClassMatcher.h | 1 + Pods/Headers/Public/Kiwi/KWBeTrueMatcher.h | 1 + Pods/Headers/Public/Kiwi/KWBeWithinMatcher.h | 1 + Pods/Headers/Public/Kiwi/KWBeZeroMatcher.h | 1 + Pods/Headers/Public/Kiwi/KWBeforeAllNode.h | 1 + Pods/Headers/Public/Kiwi/KWBeforeEachNode.h | 1 + Pods/Headers/Public/Kiwi/KWBlock.h | 1 + Pods/Headers/Public/Kiwi/KWBlockNode.h | 1 + .../Headers/Public/Kiwi/KWBlockRaiseMatcher.h | 1 + Pods/Headers/Public/Kiwi/KWCallSite.h | 1 + Pods/Headers/Public/Kiwi/KWCaptureSpy.h | 1 + Pods/Headers/Public/Kiwi/KWChangeMatcher.h | 1 + .../Public/Kiwi/KWConformToProtocolMatcher.h | 1 + Pods/Headers/Public/Kiwi/KWContainMatcher.h | 1 + .../Public/Kiwi/KWContainStringMatcher.h | 1 + Pods/Headers/Public/Kiwi/KWContextNode.h | 1 + Pods/Headers/Public/Kiwi/KWCountType.h | 1 + Pods/Headers/Public/Kiwi/KWDeviceInfo.h | 1 + Pods/Headers/Public/Kiwi/KWEqualMatcher.h | 1 + Pods/Headers/Public/Kiwi/KWExample.h | 1 + Pods/Headers/Public/Kiwi/KWExampleDelegate.h | 1 + Pods/Headers/Public/Kiwi/KWExampleNode.h | 1 + .../Public/Kiwi/KWExampleNodeVisitor.h | 1 + Pods/Headers/Public/Kiwi/KWExampleSuite.h | 1 + .../Public/Kiwi/KWExampleSuiteBuilder.h | 1 + Pods/Headers/Public/Kiwi/KWExistVerifier.h | 1 + Pods/Headers/Public/Kiwi/KWExpectationType.h | 1 + Pods/Headers/Public/Kiwi/KWFailure.h | 1 + Pods/Headers/Public/Kiwi/KWFormatter.h | 1 + Pods/Headers/Public/Kiwi/KWFutureObject.h | 1 + .../Public/Kiwi/KWGenericMatchEvaluator.h | 1 + Pods/Headers/Public/Kiwi/KWGenericMatcher.h | 1 + .../Public/Kiwi/KWGenericMatchingAdditions.h | 1 + Pods/Headers/Public/Kiwi/KWHaveMatcher.h | 1 + Pods/Headers/Public/Kiwi/KWHaveValueMatcher.h | 1 + .../Headers/Public/Kiwi/KWInequalityMatcher.h | 1 + Pods/Headers/Public/Kiwi/KWIntercept.h | 1 + .../Public/Kiwi/KWInvocationCapturer.h | 1 + Pods/Headers/Public/Kiwi/KWItNode.h | 1 + Pods/Headers/Public/Kiwi/KWLet.h | 1 + Pods/Headers/Public/Kiwi/KWLetNode.h | 1 + Pods/Headers/Public/Kiwi/KWMatchVerifier.h | 1 + Pods/Headers/Public/Kiwi/KWMatcher.h | 1 + Pods/Headers/Public/Kiwi/KWMatcherFactory.h | 1 + Pods/Headers/Public/Kiwi/KWMatchers.h | 1 + Pods/Headers/Public/Kiwi/KWMatching.h | 1 + Pods/Headers/Public/Kiwi/KWMessagePattern.h | 1 + Pods/Headers/Public/Kiwi/KWMessageSpying.h | 1 + Pods/Headers/Public/Kiwi/KWMessageTracker.h | 1 + Pods/Headers/Public/Kiwi/KWMock.h | 1 + Pods/Headers/Public/Kiwi/KWNilMatcher.h | 1 + .../Public/Kiwi/KWNotificationMatcher.h | 1 + Pods/Headers/Public/Kiwi/KWNull.h | 1 + Pods/Headers/Public/Kiwi/KWObjCUtilities.h | 1 + Pods/Headers/Public/Kiwi/KWPendingNode.h | 1 + Pods/Headers/Public/Kiwi/KWProbe.h | 1 + Pods/Headers/Public/Kiwi/KWProbePoller.h | 1 + Pods/Headers/Public/Kiwi/KWReceiveMatcher.h | 1 + .../Public/Kiwi/KWRegisterMatchersNode.h | 1 + .../Kiwi/KWRegularExpressionPatternMatcher.h | 1 + Pods/Headers/Public/Kiwi/KWReporting.h | 1 + .../Public/Kiwi/KWRespondToSelectorMatcher.h | 1 + Pods/Headers/Public/Kiwi/KWSpec.h | 1 + .../Public/Kiwi/KWStringContainsMatcher.h | 1 + .../Public/Kiwi/KWStringPrefixMatcher.h | 1 + Pods/Headers/Public/Kiwi/KWStringUtilities.h | 1 + Pods/Headers/Public/Kiwi/KWStub.h | 1 + .../Public/Kiwi/KWSuiteConfigurationBase.h | 1 + Pods/Headers/Public/Kiwi/KWSymbolicator.h | 1 + .../Public/Kiwi/KWUserDefinedMatcher.h | 1 + Pods/Headers/Public/Kiwi/KWValue.h | 1 + Pods/Headers/Public/Kiwi/KWVerifying.h | 1 + Pods/Headers/Public/Kiwi/KWWorkarounds.h | 1 + Pods/Headers/Public/Kiwi/Kiwi.h | 1 + Pods/Headers/Public/Kiwi/KiwiBlockMacros.h | 1 + Pods/Headers/Public/Kiwi/KiwiConfiguration.h | 1 + Pods/Headers/Public/Kiwi/KiwiMacros.h | 1 + .../Public/Kiwi/NSInvocation+KiwiAdditions.h | 1 + .../Public/Kiwi/NSInvocation+OCMAdditions.h | 1 + .../Kiwi/NSMethodSignature+KiwiAdditions.h | 1 + .../Public/Kiwi/NSNumber+KiwiAdditions.h | 1 + .../Public/Kiwi/NSObject+KiwiMockAdditions.h | 1 + .../Public/Kiwi/NSObject+KiwiSpyAdditions.h | 1 + .../Public/Kiwi/NSObject+KiwiStubAdditions.h | 1 + .../Kiwi/NSObject+KiwiVerifierAdditions.h | 1 + .../Kiwi/NSProxy+KiwiVerifierAdditions.h | 1 + .../Public/Kiwi/NSValue+KiwiAdditions.h | 1 + Pods/Headers/Public/TransitionKit/TKEvent.h | 1 + Pods/Headers/Public/TransitionKit/TKState.h | 1 + .../Public/TransitionKit/TKStateMachine.h | 1 + .../Public/TransitionKit/TKTransition.h | 1 + .../Public/TransitionKit/TransitionKit.h | 1 + Pods/Kiwi/Classes/Config/KWAllTestsSuite.m | 51 + .../Classes/Config/KWSuiteConfigurationBase.h | 26 + .../Classes/Config/KWSuiteConfigurationBase.m | 77 + Pods/Kiwi/Classes/Core/KWAny.h | 17 + Pods/Kiwi/Classes/Core/KWAny.m | 23 + Pods/Kiwi/Classes/Core/KWBlock.h | 25 + Pods/Kiwi/Classes/Core/KWBlock.m | 50 + Pods/Kiwi/Classes/Core/KWCallSite.h | 26 + Pods/Kiwi/Classes/Core/KWCallSite.m | 44 + Pods/Kiwi/Classes/Core/KWCaptureSpy.h | 9 + Pods/Kiwi/Classes/Core/KWCaptureSpy.m | 64 + Pods/Kiwi/Classes/Core/KWCountType.h | 15 + Pods/Kiwi/Classes/Core/KWDeviceInfo.h | 16 + Pods/Kiwi/Classes/Core/KWDeviceInfo.m | 31 + Pods/Kiwi/Classes/Core/KWExample.h | 153 ++ Pods/Kiwi/Classes/Core/KWExample.m | 428 ++++ Pods/Kiwi/Classes/Core/KWExampleDelegate.h | 18 + Pods/Kiwi/Classes/Core/KWExampleNodeVisitor.h | 35 + Pods/Kiwi/Classes/Core/KWExampleSuite.h | 31 + Pods/Kiwi/Classes/Core/KWExampleSuite.m | 92 + .../Kiwi/Classes/Core/KWExampleSuiteBuilder.h | 46 + .../Kiwi/Classes/Core/KWExampleSuiteBuilder.m | 237 ++ Pods/Kiwi/Classes/Core/KWExpectationType.h | 15 + Pods/Kiwi/Classes/Core/KWFailure.h | 26 + Pods/Kiwi/Classes/Core/KWFailure.m | 44 + Pods/Kiwi/Classes/Core/KWFormatter.h | 16 + Pods/Kiwi/Classes/Core/KWFormatter.m | 59 + Pods/Kiwi/Classes/Core/KWFutureObject.h | 20 + Pods/Kiwi/Classes/Core/KWFutureObject.m | 40 + Pods/Kiwi/Classes/Core/KWInvocationCapturer.h | 35 + Pods/Kiwi/Classes/Core/KWInvocationCapturer.m | 88 + Pods/Kiwi/Classes/Core/KWLet.h | 15 + Pods/Kiwi/Classes/Core/KWMatcher.h | 39 + Pods/Kiwi/Classes/Core/KWMatcher.m | 80 + Pods/Kiwi/Classes/Core/KWMatcherFactory.h | 37 + Pods/Kiwi/Classes/Core/KWMatcherFactory.m | 133 + Pods/Kiwi/Classes/Core/KWMatchers.h | 32 + Pods/Kiwi/Classes/Core/KWMatchers.m | 75 + Pods/Kiwi/Classes/Core/KWMatching.h | 42 + Pods/Kiwi/Classes/Core/KWMessagePattern.h | 40 + Pods/Kiwi/Classes/Core/KWMessagePattern.m | 219 ++ Pods/Kiwi/Classes/Core/KWMessageSpying.h | 15 + Pods/Kiwi/Classes/Core/KWMessageTracker.h | 41 + Pods/Kiwi/Classes/Core/KWMessageTracker.m | 130 + Pods/Kiwi/Classes/Core/KWNull.h | 18 + Pods/Kiwi/Classes/Core/KWNull.m | 25 + Pods/Kiwi/Classes/Core/KWObjCUtilities.h | 31 + Pods/Kiwi/Classes/Core/KWObjCUtilities.m | 104 + Pods/Kiwi/Classes/Core/KWProbe.h | 14 + Pods/Kiwi/Classes/Core/KWProbePoller.h | 19 + Pods/Kiwi/Classes/Core/KWProbePoller.m | 72 + Pods/Kiwi/Classes/Core/KWReporting.h | 17 + Pods/Kiwi/Classes/Core/KWSpec.h | 29 + Pods/Kiwi/Classes/Core/KWSpec.m | 127 + Pods/Kiwi/Classes/Core/KWStringUtilities.h | 19 + Pods/Kiwi/Classes/Core/KWStringUtilities.m | 92 + Pods/Kiwi/Classes/Core/KWSymbolicator.h | 17 + Pods/Kiwi/Classes/Core/KWSymbolicator.m | 62 + Pods/Kiwi/Classes/Core/KWValue.h | 87 + Pods/Kiwi/Classes/Core/KWValue.m | 350 +++ Pods/Kiwi/Classes/Core/KWWorkarounds.h | 17 + Pods/Kiwi/Classes/Core/KWWorkarounds.m | 26 + Pods/Kiwi/Classes/Core/Kiwi.h | 102 + Pods/Kiwi/Classes/Core/KiwiBlockMacros.h | 16 + Pods/Kiwi/Classes/Core/KiwiConfiguration.h | 18 + Pods/Kiwi/Classes/Core/KiwiMacros.h | 111 + .../Classes/Core/NSInvocation+KiwiAdditions.h | 26 + .../Classes/Core/NSInvocation+KiwiAdditions.m | 91 + .../Classes/Core/NSInvocation+OCMAdditions.h | 34 + .../Classes/Core/NSInvocation+OCMAdditions.m | 343 +++ .../Core/NSMethodSignature+KiwiAdditions.h | 16 + .../Core/NSMethodSignature+KiwiAdditions.m | 21 + .../Classes/Core/NSNumber+KiwiAdditions.h | 31 + .../Classes/Core/NSNumber+KiwiAdditions.m | 116 + .../Classes/Core/NSObject+KiwiSpyAdditions.h | 20 + .../Classes/Core/NSObject+KiwiSpyAdditions.m | 29 + .../Core/NSObject+KiwiVerifierAdditions.h | 17 + .../Core/NSObject+KiwiVerifierAdditions.m | 19 + .../Core/NSProxy+KiwiVerifierAdditions.h | 20 + .../Core/NSProxy+KiwiVerifierAdditions.m | 27 + .../Kiwi/Classes/Core/NSValue+KiwiAdditions.h | 15 + .../Kiwi/Classes/Core/NSValue+KiwiAdditions.m | 23 + .../Classes/Matchers/KWBeBetweenMatcher.h | 18 + .../Classes/Matchers/KWBeBetweenMatcher.m | 63 + Pods/Kiwi/Classes/Matchers/KWBeEmptyMatcher.h | 16 + Pods/Kiwi/Classes/Matchers/KWBeEmptyMatcher.m | 68 + .../Classes/Matchers/KWBeIdenticalToMatcher.h | 16 + .../Classes/Matchers/KWBeIdenticalToMatcher.m | 58 + .../Classes/Matchers/KWBeKindOfClassMatcher.h | 16 + .../Classes/Matchers/KWBeKindOfClassMatcher.m | 48 + .../Matchers/KWBeMemberOfClassMatcher.h | 16 + .../Matchers/KWBeMemberOfClassMatcher.m | 49 + .../Matchers/KWBeSubclassOfClassMatcher.h | 16 + .../Matchers/KWBeSubclassOfClassMatcher.m | 51 + Pods/Kiwi/Classes/Matchers/KWBeTrueMatcher.h | 19 + Pods/Kiwi/Classes/Matchers/KWBeTrueMatcher.m | 64 + .../Kiwi/Classes/Matchers/KWBeWithinMatcher.h | 17 + .../Kiwi/Classes/Matchers/KWBeWithinMatcher.m | 91 + Pods/Kiwi/Classes/Matchers/KWBeZeroMatcher.h | 16 + Pods/Kiwi/Classes/Matchers/KWBeZeroMatcher.m | 53 + .../Classes/Matchers/KWBlockRaiseMatcher.h | 19 + .../Classes/Matchers/KWBlockRaiseMatcher.m | 103 + Pods/Kiwi/Classes/Matchers/KWChangeMatcher.h | 21 + Pods/Kiwi/Classes/Matchers/KWChangeMatcher.m | 73 + .../Matchers/KWConformToProtocolMatcher.h | 16 + .../Matchers/KWConformToProtocolMatcher.m | 47 + Pods/Kiwi/Classes/Matchers/KWContainMatcher.h | 26 + Pods/Kiwi/Classes/Matchers/KWContainMatcher.m | 88 + .../Classes/Matchers/KWContainStringMatcher.h | 39 + .../Classes/Matchers/KWContainStringMatcher.m | 85 + Pods/Kiwi/Classes/Matchers/KWEqualMatcher.h | 16 + Pods/Kiwi/Classes/Matchers/KWEqualMatcher.m | 68 + .../Matchers/KWGenericMatchEvaluator.h | 17 + .../Matchers/KWGenericMatchEvaluator.m | 65 + Pods/Kiwi/Classes/Matchers/KWGenericMatcher.h | 24 + Pods/Kiwi/Classes/Matchers/KWGenericMatcher.m | 48 + .../Matchers/KWGenericMatchingAdditions.h | 34 + .../Matchers/KWGenericMatchingAdditions.m | 67 + Pods/Kiwi/Classes/Matchers/KWHaveMatcher.h | 48 + Pods/Kiwi/Classes/Matchers/KWHaveMatcher.m | 254 ++ .../Classes/Matchers/KWHaveValueMatcher.h | 21 + .../Classes/Matchers/KWHaveValueMatcher.m | 128 + .../Classes/Matchers/KWInequalityMatcher.h | 19 + .../Classes/Matchers/KWInequalityMatcher.m | 109 + Pods/Kiwi/Classes/Matchers/KWNilMatcher.h | 23 + Pods/Kiwi/Classes/Matchers/KWNilMatcher.m | 112 + .../Classes/Matchers/KWNotificationMatcher.h | 20 + .../Classes/Matchers/KWNotificationMatcher.m | 118 + Pods/Kiwi/Classes/Matchers/KWReceiveMatcher.h | 61 + Pods/Kiwi/Classes/Matchers/KWReceiveMatcher.m | 325 +++ .../KWRegularExpressionPatternMatcher.h | 18 + .../KWRegularExpressionPatternMatcher.m | 82 + .../Matchers/KWRespondToSelectorMatcher.h | 16 + .../Matchers/KWRespondToSelectorMatcher.m | 49 + .../Matchers/KWStringContainsMatcher.h | 19 + .../Matchers/KWStringContainsMatcher.m | 42 + .../Classes/Matchers/KWStringPrefixMatcher.h | 18 + .../Classes/Matchers/KWStringPrefixMatcher.m | 41 + .../Classes/Matchers/KWUserDefinedMatcher.h | 53 + .../Classes/Matchers/KWUserDefinedMatcher.m | 150 ++ Pods/Kiwi/Classes/Mocking/KWMock.h | 87 + Pods/Kiwi/Classes/Mocking/KWMock.m | 626 +++++ .../Mocking/NSObject+KiwiMockAdditions.h | 23 + .../Mocking/NSObject+KiwiMockAdditions.m | 30 + Pods/Kiwi/Classes/Nodes/KWAfterAllNode.h | 17 + Pods/Kiwi/Classes/Nodes/KWAfterAllNode.m | 24 + Pods/Kiwi/Classes/Nodes/KWAfterEachNode.h | 17 + Pods/Kiwi/Classes/Nodes/KWAfterEachNode.m | 24 + Pods/Kiwi/Classes/Nodes/KWBeforeAllNode.h | 17 + Pods/Kiwi/Classes/Nodes/KWBeforeAllNode.m | 24 + Pods/Kiwi/Classes/Nodes/KWBeforeEachNode.h | 17 + Pods/Kiwi/Classes/Nodes/KWBeforeEachNode.m | 24 + Pods/Kiwi/Classes/Nodes/KWBlockNode.h | 34 + Pods/Kiwi/Classes/Nodes/KWBlockNode.m | 30 + Pods/Kiwi/Classes/Nodes/KWContextNode.h | 65 + Pods/Kiwi/Classes/Nodes/KWContextNode.m | 152 ++ Pods/Kiwi/Classes/Nodes/KWExampleNode.h | 22 + Pods/Kiwi/Classes/Nodes/KWItNode.h | 27 + Pods/Kiwi/Classes/Nodes/KWItNode.m | 62 + Pods/Kiwi/Classes/Nodes/KWLetNode.h | 36 + Pods/Kiwi/Classes/Nodes/KWLetNode.m | 145 ++ Pods/Kiwi/Classes/Nodes/KWPendingNode.h | 31 + Pods/Kiwi/Classes/Nodes/KWPendingNode.m | 55 + .../Classes/Nodes/KWRegisterMatchersNode.h | 28 + .../Classes/Nodes/KWRegisterMatchersNode.m | 36 + Pods/Kiwi/Classes/Stubbing/KWIntercept.h | 45 + Pods/Kiwi/Classes/Stubbing/KWIntercept.m | 391 +++ Pods/Kiwi/Classes/Stubbing/KWStub.h | 37 + Pods/Kiwi/Classes/Stubbing/KWStub.m | 216 ++ .../Stubbing/NSObject+KiwiStubAdditions.h | 63 + .../Stubbing/NSObject+KiwiStubAdditions.m | 266 ++ Pods/Kiwi/Classes/Verifiers/KWAsyncVerifier.h | 36 + Pods/Kiwi/Classes/Verifiers/KWAsyncVerifier.m | 90 + Pods/Kiwi/Classes/Verifiers/KWExistVerifier.h | 27 + Pods/Kiwi/Classes/Verifiers/KWExistVerifier.m | 63 + Pods/Kiwi/Classes/Verifiers/KWMatchVerifier.h | 39 + Pods/Kiwi/Classes/Verifiers/KWMatchVerifier.m | 180 ++ Pods/Kiwi/Classes/Verifiers/KWVerifying.h | 25 + Pods/Kiwi/License.txt | 27 + Pods/Kiwi/Readme.md | 39 + .../Local Podspecs/TransitionKit.podspec.json | 20 + Pods/Manifest.lock | 19 + Pods/Pods.xcodeproj/project.pbxproj | 2122 ++++++++++++++++ .../Kiwi-OSX/Kiwi-OSX-dummy.m | 5 + .../Kiwi-OSX/Kiwi-OSX-prefix.pch | 13 + .../Kiwi-OSX/Kiwi-OSX.xcconfig | 12 + .../Kiwi-iOS/Kiwi-iOS-dummy.m | 5 + .../Kiwi-iOS/Kiwi-iOS-prefix.pch | 13 + .../Kiwi-iOS/Kiwi-iOS.xcconfig | 13 + ...ionKit iOS Tests-acknowledgements.markdown | 240 ++ ...sitionKit iOS Tests-acknowledgements.plist | 278 +++ ...Pods-Tests-TransitionKit iOS Tests-dummy.m | 5 + ...ests-TransitionKit iOS Tests-frameworks.sh | 92 + ...Tests-TransitionKit iOS Tests-resources.sh | 99 + ...sts-TransitionKit iOS Tests.debug.xcconfig | 11 + ...s-TransitionKit iOS Tests.release.xcconfig | 11 + ...nKit macOS Tests-acknowledgements.markdown | 240 ++ ...tionKit macOS Tests-acknowledgements.plist | 278 +++ ...ds-Tests-TransitionKit macOS Tests-dummy.m | 5 + ...ts-TransitionKit macOS Tests-frameworks.sh | 92 + ...sts-TransitionKit macOS Tests-resources.sh | 99 + ...s-TransitionKit macOS Tests.debug.xcconfig | 10 + ...TransitionKit macOS Tests.release.xcconfig | 10 + .../TransitionKit-OSX-dummy.m | 5 + .../TransitionKit-OSX-prefix.pch | 12 + .../TransitionKit-OSX.xcconfig | 9 + .../TransitionKit-iOS-dummy.m | 5 + .../TransitionKit-iOS-prefix.pch | 12 + .../TransitionKit-iOS.xcconfig | 9 + ...ansitionKitTests-Info.plist => Info.plist} | 8 +- TransitionKit.podspec | 4 +- TransitionKit.xcodeproj/project.pbxproj | 2143 ++++++++--------- .../contents.xcworkspacedata | 7 + .../xcschemes/TransitionKit iOS.xcscheme | 99 + .../xcschemes/TransitionKit macOS.xcscheme | 99 + .../contents.xcworkspacedata | 10 + 422 files changed, 16623 insertions(+), 1200 deletions(-) create mode 100644 Info.plist create mode 120000 Pods/Headers/Private/Kiwi/KWAfterAllNode.h create mode 120000 Pods/Headers/Private/Kiwi/KWAfterEachNode.h create mode 120000 Pods/Headers/Private/Kiwi/KWAny.h create mode 120000 Pods/Headers/Private/Kiwi/KWAsyncVerifier.h create mode 120000 Pods/Headers/Private/Kiwi/KWBeBetweenMatcher.h create mode 120000 Pods/Headers/Private/Kiwi/KWBeEmptyMatcher.h create mode 120000 Pods/Headers/Private/Kiwi/KWBeIdenticalToMatcher.h create mode 120000 Pods/Headers/Private/Kiwi/KWBeKindOfClassMatcher.h create mode 120000 Pods/Headers/Private/Kiwi/KWBeMemberOfClassMatcher.h create mode 120000 Pods/Headers/Private/Kiwi/KWBeSubclassOfClassMatcher.h create mode 120000 Pods/Headers/Private/Kiwi/KWBeTrueMatcher.h create mode 120000 Pods/Headers/Private/Kiwi/KWBeWithinMatcher.h create mode 120000 Pods/Headers/Private/Kiwi/KWBeZeroMatcher.h create mode 120000 Pods/Headers/Private/Kiwi/KWBeforeAllNode.h create mode 120000 Pods/Headers/Private/Kiwi/KWBeforeEachNode.h create mode 120000 Pods/Headers/Private/Kiwi/KWBlock.h create mode 120000 Pods/Headers/Private/Kiwi/KWBlockNode.h create mode 120000 Pods/Headers/Private/Kiwi/KWBlockRaiseMatcher.h create mode 120000 Pods/Headers/Private/Kiwi/KWCallSite.h create mode 120000 Pods/Headers/Private/Kiwi/KWCaptureSpy.h create mode 120000 Pods/Headers/Private/Kiwi/KWChangeMatcher.h create mode 120000 Pods/Headers/Private/Kiwi/KWConformToProtocolMatcher.h create mode 120000 Pods/Headers/Private/Kiwi/KWContainMatcher.h create mode 120000 Pods/Headers/Private/Kiwi/KWContainStringMatcher.h create mode 120000 Pods/Headers/Private/Kiwi/KWContextNode.h create mode 120000 Pods/Headers/Private/Kiwi/KWCountType.h create mode 120000 Pods/Headers/Private/Kiwi/KWDeviceInfo.h create mode 120000 Pods/Headers/Private/Kiwi/KWEqualMatcher.h create mode 120000 Pods/Headers/Private/Kiwi/KWExample.h create mode 120000 Pods/Headers/Private/Kiwi/KWExampleDelegate.h create mode 120000 Pods/Headers/Private/Kiwi/KWExampleNode.h create mode 120000 Pods/Headers/Private/Kiwi/KWExampleNodeVisitor.h create mode 120000 Pods/Headers/Private/Kiwi/KWExampleSuite.h create mode 120000 Pods/Headers/Private/Kiwi/KWExampleSuiteBuilder.h create mode 120000 Pods/Headers/Private/Kiwi/KWExistVerifier.h create mode 120000 Pods/Headers/Private/Kiwi/KWExpectationType.h create mode 120000 Pods/Headers/Private/Kiwi/KWFailure.h create mode 120000 Pods/Headers/Private/Kiwi/KWFormatter.h create mode 120000 Pods/Headers/Private/Kiwi/KWFutureObject.h create mode 120000 Pods/Headers/Private/Kiwi/KWGenericMatchEvaluator.h create mode 120000 Pods/Headers/Private/Kiwi/KWGenericMatcher.h create mode 120000 Pods/Headers/Private/Kiwi/KWGenericMatchingAdditions.h create mode 120000 Pods/Headers/Private/Kiwi/KWHaveMatcher.h create mode 120000 Pods/Headers/Private/Kiwi/KWHaveValueMatcher.h create mode 120000 Pods/Headers/Private/Kiwi/KWInequalityMatcher.h create mode 120000 Pods/Headers/Private/Kiwi/KWIntercept.h create mode 120000 Pods/Headers/Private/Kiwi/KWInvocationCapturer.h create mode 120000 Pods/Headers/Private/Kiwi/KWItNode.h create mode 120000 Pods/Headers/Private/Kiwi/KWLet.h create mode 120000 Pods/Headers/Private/Kiwi/KWLetNode.h create mode 120000 Pods/Headers/Private/Kiwi/KWMatchVerifier.h create mode 120000 Pods/Headers/Private/Kiwi/KWMatcher.h create mode 120000 Pods/Headers/Private/Kiwi/KWMatcherFactory.h create mode 120000 Pods/Headers/Private/Kiwi/KWMatchers.h create mode 120000 Pods/Headers/Private/Kiwi/KWMatching.h create mode 120000 Pods/Headers/Private/Kiwi/KWMessagePattern.h create mode 120000 Pods/Headers/Private/Kiwi/KWMessageSpying.h create mode 120000 Pods/Headers/Private/Kiwi/KWMessageTracker.h create mode 120000 Pods/Headers/Private/Kiwi/KWMock.h create mode 120000 Pods/Headers/Private/Kiwi/KWNilMatcher.h create mode 120000 Pods/Headers/Private/Kiwi/KWNotificationMatcher.h create mode 120000 Pods/Headers/Private/Kiwi/KWNull.h create mode 120000 Pods/Headers/Private/Kiwi/KWObjCUtilities.h create mode 120000 Pods/Headers/Private/Kiwi/KWPendingNode.h create mode 120000 Pods/Headers/Private/Kiwi/KWProbe.h create mode 120000 Pods/Headers/Private/Kiwi/KWProbePoller.h create mode 120000 Pods/Headers/Private/Kiwi/KWReceiveMatcher.h create mode 120000 Pods/Headers/Private/Kiwi/KWRegisterMatchersNode.h create mode 120000 Pods/Headers/Private/Kiwi/KWRegularExpressionPatternMatcher.h create mode 120000 Pods/Headers/Private/Kiwi/KWReporting.h create mode 120000 Pods/Headers/Private/Kiwi/KWRespondToSelectorMatcher.h create mode 120000 Pods/Headers/Private/Kiwi/KWSpec.h create mode 120000 Pods/Headers/Private/Kiwi/KWStringContainsMatcher.h create mode 120000 Pods/Headers/Private/Kiwi/KWStringPrefixMatcher.h create mode 120000 Pods/Headers/Private/Kiwi/KWStringUtilities.h create mode 120000 Pods/Headers/Private/Kiwi/KWStub.h create mode 120000 Pods/Headers/Private/Kiwi/KWSuiteConfigurationBase.h create mode 120000 Pods/Headers/Private/Kiwi/KWSymbolicator.h create mode 120000 Pods/Headers/Private/Kiwi/KWUserDefinedMatcher.h create mode 120000 Pods/Headers/Private/Kiwi/KWValue.h create mode 120000 Pods/Headers/Private/Kiwi/KWVerifying.h create mode 120000 Pods/Headers/Private/Kiwi/KWWorkarounds.h create mode 120000 Pods/Headers/Private/Kiwi/Kiwi.h create mode 120000 Pods/Headers/Private/Kiwi/KiwiBlockMacros.h create mode 120000 Pods/Headers/Private/Kiwi/KiwiConfiguration.h create mode 120000 Pods/Headers/Private/Kiwi/KiwiMacros.h create mode 120000 Pods/Headers/Private/Kiwi/NSInvocation+KiwiAdditions.h create mode 120000 Pods/Headers/Private/Kiwi/NSInvocation+OCMAdditions.h create mode 120000 Pods/Headers/Private/Kiwi/NSMethodSignature+KiwiAdditions.h create mode 120000 Pods/Headers/Private/Kiwi/NSNumber+KiwiAdditions.h create mode 120000 Pods/Headers/Private/Kiwi/NSObject+KiwiMockAdditions.h create mode 120000 Pods/Headers/Private/Kiwi/NSObject+KiwiSpyAdditions.h create mode 120000 Pods/Headers/Private/Kiwi/NSObject+KiwiStubAdditions.h create mode 120000 Pods/Headers/Private/Kiwi/NSObject+KiwiVerifierAdditions.h create mode 120000 Pods/Headers/Private/Kiwi/NSProxy+KiwiVerifierAdditions.h create mode 120000 Pods/Headers/Private/Kiwi/NSValue+KiwiAdditions.h create mode 120000 Pods/Headers/Private/TransitionKit/TKEvent.h create mode 120000 Pods/Headers/Private/TransitionKit/TKState.h create mode 120000 Pods/Headers/Private/TransitionKit/TKStateMachine.h create mode 120000 Pods/Headers/Private/TransitionKit/TKTransition.h create mode 120000 Pods/Headers/Private/TransitionKit/TransitionKit.h create mode 120000 Pods/Headers/Public/Kiwi/KWAfterAllNode.h create mode 120000 Pods/Headers/Public/Kiwi/KWAfterEachNode.h create mode 120000 Pods/Headers/Public/Kiwi/KWAny.h create mode 120000 Pods/Headers/Public/Kiwi/KWAsyncVerifier.h create mode 120000 Pods/Headers/Public/Kiwi/KWBeBetweenMatcher.h create mode 120000 Pods/Headers/Public/Kiwi/KWBeEmptyMatcher.h create mode 120000 Pods/Headers/Public/Kiwi/KWBeIdenticalToMatcher.h create mode 120000 Pods/Headers/Public/Kiwi/KWBeKindOfClassMatcher.h create mode 120000 Pods/Headers/Public/Kiwi/KWBeMemberOfClassMatcher.h create mode 120000 Pods/Headers/Public/Kiwi/KWBeSubclassOfClassMatcher.h create mode 120000 Pods/Headers/Public/Kiwi/KWBeTrueMatcher.h create mode 120000 Pods/Headers/Public/Kiwi/KWBeWithinMatcher.h create mode 120000 Pods/Headers/Public/Kiwi/KWBeZeroMatcher.h create mode 120000 Pods/Headers/Public/Kiwi/KWBeforeAllNode.h create mode 120000 Pods/Headers/Public/Kiwi/KWBeforeEachNode.h create mode 120000 Pods/Headers/Public/Kiwi/KWBlock.h create mode 120000 Pods/Headers/Public/Kiwi/KWBlockNode.h create mode 120000 Pods/Headers/Public/Kiwi/KWBlockRaiseMatcher.h create mode 120000 Pods/Headers/Public/Kiwi/KWCallSite.h create mode 120000 Pods/Headers/Public/Kiwi/KWCaptureSpy.h create mode 120000 Pods/Headers/Public/Kiwi/KWChangeMatcher.h create mode 120000 Pods/Headers/Public/Kiwi/KWConformToProtocolMatcher.h create mode 120000 Pods/Headers/Public/Kiwi/KWContainMatcher.h create mode 120000 Pods/Headers/Public/Kiwi/KWContainStringMatcher.h create mode 120000 Pods/Headers/Public/Kiwi/KWContextNode.h create mode 120000 Pods/Headers/Public/Kiwi/KWCountType.h create mode 120000 Pods/Headers/Public/Kiwi/KWDeviceInfo.h create mode 120000 Pods/Headers/Public/Kiwi/KWEqualMatcher.h create mode 120000 Pods/Headers/Public/Kiwi/KWExample.h create mode 120000 Pods/Headers/Public/Kiwi/KWExampleDelegate.h create mode 120000 Pods/Headers/Public/Kiwi/KWExampleNode.h create mode 120000 Pods/Headers/Public/Kiwi/KWExampleNodeVisitor.h create mode 120000 Pods/Headers/Public/Kiwi/KWExampleSuite.h create mode 120000 Pods/Headers/Public/Kiwi/KWExampleSuiteBuilder.h create mode 120000 Pods/Headers/Public/Kiwi/KWExistVerifier.h create mode 120000 Pods/Headers/Public/Kiwi/KWExpectationType.h create mode 120000 Pods/Headers/Public/Kiwi/KWFailure.h create mode 120000 Pods/Headers/Public/Kiwi/KWFormatter.h create mode 120000 Pods/Headers/Public/Kiwi/KWFutureObject.h create mode 120000 Pods/Headers/Public/Kiwi/KWGenericMatchEvaluator.h create mode 120000 Pods/Headers/Public/Kiwi/KWGenericMatcher.h create mode 120000 Pods/Headers/Public/Kiwi/KWGenericMatchingAdditions.h create mode 120000 Pods/Headers/Public/Kiwi/KWHaveMatcher.h create mode 120000 Pods/Headers/Public/Kiwi/KWHaveValueMatcher.h create mode 120000 Pods/Headers/Public/Kiwi/KWInequalityMatcher.h create mode 120000 Pods/Headers/Public/Kiwi/KWIntercept.h create mode 120000 Pods/Headers/Public/Kiwi/KWInvocationCapturer.h create mode 120000 Pods/Headers/Public/Kiwi/KWItNode.h create mode 120000 Pods/Headers/Public/Kiwi/KWLet.h create mode 120000 Pods/Headers/Public/Kiwi/KWLetNode.h create mode 120000 Pods/Headers/Public/Kiwi/KWMatchVerifier.h create mode 120000 Pods/Headers/Public/Kiwi/KWMatcher.h create mode 120000 Pods/Headers/Public/Kiwi/KWMatcherFactory.h create mode 120000 Pods/Headers/Public/Kiwi/KWMatchers.h create mode 120000 Pods/Headers/Public/Kiwi/KWMatching.h create mode 120000 Pods/Headers/Public/Kiwi/KWMessagePattern.h create mode 120000 Pods/Headers/Public/Kiwi/KWMessageSpying.h create mode 120000 Pods/Headers/Public/Kiwi/KWMessageTracker.h create mode 120000 Pods/Headers/Public/Kiwi/KWMock.h create mode 120000 Pods/Headers/Public/Kiwi/KWNilMatcher.h create mode 120000 Pods/Headers/Public/Kiwi/KWNotificationMatcher.h create mode 120000 Pods/Headers/Public/Kiwi/KWNull.h create mode 120000 Pods/Headers/Public/Kiwi/KWObjCUtilities.h create mode 120000 Pods/Headers/Public/Kiwi/KWPendingNode.h create mode 120000 Pods/Headers/Public/Kiwi/KWProbe.h create mode 120000 Pods/Headers/Public/Kiwi/KWProbePoller.h create mode 120000 Pods/Headers/Public/Kiwi/KWReceiveMatcher.h create mode 120000 Pods/Headers/Public/Kiwi/KWRegisterMatchersNode.h create mode 120000 Pods/Headers/Public/Kiwi/KWRegularExpressionPatternMatcher.h create mode 120000 Pods/Headers/Public/Kiwi/KWReporting.h create mode 120000 Pods/Headers/Public/Kiwi/KWRespondToSelectorMatcher.h create mode 120000 Pods/Headers/Public/Kiwi/KWSpec.h create mode 120000 Pods/Headers/Public/Kiwi/KWStringContainsMatcher.h create mode 120000 Pods/Headers/Public/Kiwi/KWStringPrefixMatcher.h create mode 120000 Pods/Headers/Public/Kiwi/KWStringUtilities.h create mode 120000 Pods/Headers/Public/Kiwi/KWStub.h create mode 120000 Pods/Headers/Public/Kiwi/KWSuiteConfigurationBase.h create mode 120000 Pods/Headers/Public/Kiwi/KWSymbolicator.h create mode 120000 Pods/Headers/Public/Kiwi/KWUserDefinedMatcher.h create mode 120000 Pods/Headers/Public/Kiwi/KWValue.h create mode 120000 Pods/Headers/Public/Kiwi/KWVerifying.h create mode 120000 Pods/Headers/Public/Kiwi/KWWorkarounds.h create mode 120000 Pods/Headers/Public/Kiwi/Kiwi.h create mode 120000 Pods/Headers/Public/Kiwi/KiwiBlockMacros.h create mode 120000 Pods/Headers/Public/Kiwi/KiwiConfiguration.h create mode 120000 Pods/Headers/Public/Kiwi/KiwiMacros.h create mode 120000 Pods/Headers/Public/Kiwi/NSInvocation+KiwiAdditions.h create mode 120000 Pods/Headers/Public/Kiwi/NSInvocation+OCMAdditions.h create mode 120000 Pods/Headers/Public/Kiwi/NSMethodSignature+KiwiAdditions.h create mode 120000 Pods/Headers/Public/Kiwi/NSNumber+KiwiAdditions.h create mode 120000 Pods/Headers/Public/Kiwi/NSObject+KiwiMockAdditions.h create mode 120000 Pods/Headers/Public/Kiwi/NSObject+KiwiSpyAdditions.h create mode 120000 Pods/Headers/Public/Kiwi/NSObject+KiwiStubAdditions.h create mode 120000 Pods/Headers/Public/Kiwi/NSObject+KiwiVerifierAdditions.h create mode 120000 Pods/Headers/Public/Kiwi/NSProxy+KiwiVerifierAdditions.h create mode 120000 Pods/Headers/Public/Kiwi/NSValue+KiwiAdditions.h create mode 120000 Pods/Headers/Public/TransitionKit/TKEvent.h create mode 120000 Pods/Headers/Public/TransitionKit/TKState.h create mode 120000 Pods/Headers/Public/TransitionKit/TKStateMachine.h create mode 120000 Pods/Headers/Public/TransitionKit/TKTransition.h create mode 120000 Pods/Headers/Public/TransitionKit/TransitionKit.h create mode 100644 Pods/Kiwi/Classes/Config/KWAllTestsSuite.m create mode 100644 Pods/Kiwi/Classes/Config/KWSuiteConfigurationBase.h create mode 100644 Pods/Kiwi/Classes/Config/KWSuiteConfigurationBase.m create mode 100644 Pods/Kiwi/Classes/Core/KWAny.h create mode 100644 Pods/Kiwi/Classes/Core/KWAny.m create mode 100644 Pods/Kiwi/Classes/Core/KWBlock.h create mode 100644 Pods/Kiwi/Classes/Core/KWBlock.m create mode 100644 Pods/Kiwi/Classes/Core/KWCallSite.h create mode 100644 Pods/Kiwi/Classes/Core/KWCallSite.m create mode 100644 Pods/Kiwi/Classes/Core/KWCaptureSpy.h create mode 100644 Pods/Kiwi/Classes/Core/KWCaptureSpy.m create mode 100644 Pods/Kiwi/Classes/Core/KWCountType.h create mode 100644 Pods/Kiwi/Classes/Core/KWDeviceInfo.h create mode 100644 Pods/Kiwi/Classes/Core/KWDeviceInfo.m create mode 100644 Pods/Kiwi/Classes/Core/KWExample.h create mode 100644 Pods/Kiwi/Classes/Core/KWExample.m create mode 100644 Pods/Kiwi/Classes/Core/KWExampleDelegate.h create mode 100644 Pods/Kiwi/Classes/Core/KWExampleNodeVisitor.h create mode 100644 Pods/Kiwi/Classes/Core/KWExampleSuite.h create mode 100644 Pods/Kiwi/Classes/Core/KWExampleSuite.m create mode 100644 Pods/Kiwi/Classes/Core/KWExampleSuiteBuilder.h create mode 100644 Pods/Kiwi/Classes/Core/KWExampleSuiteBuilder.m create mode 100644 Pods/Kiwi/Classes/Core/KWExpectationType.h create mode 100644 Pods/Kiwi/Classes/Core/KWFailure.h create mode 100644 Pods/Kiwi/Classes/Core/KWFailure.m create mode 100644 Pods/Kiwi/Classes/Core/KWFormatter.h create mode 100644 Pods/Kiwi/Classes/Core/KWFormatter.m create mode 100644 Pods/Kiwi/Classes/Core/KWFutureObject.h create mode 100644 Pods/Kiwi/Classes/Core/KWFutureObject.m create mode 100644 Pods/Kiwi/Classes/Core/KWInvocationCapturer.h create mode 100644 Pods/Kiwi/Classes/Core/KWInvocationCapturer.m create mode 100644 Pods/Kiwi/Classes/Core/KWLet.h create mode 100644 Pods/Kiwi/Classes/Core/KWMatcher.h create mode 100644 Pods/Kiwi/Classes/Core/KWMatcher.m create mode 100644 Pods/Kiwi/Classes/Core/KWMatcherFactory.h create mode 100644 Pods/Kiwi/Classes/Core/KWMatcherFactory.m create mode 100644 Pods/Kiwi/Classes/Core/KWMatchers.h create mode 100644 Pods/Kiwi/Classes/Core/KWMatchers.m create mode 100644 Pods/Kiwi/Classes/Core/KWMatching.h create mode 100644 Pods/Kiwi/Classes/Core/KWMessagePattern.h create mode 100644 Pods/Kiwi/Classes/Core/KWMessagePattern.m create mode 100644 Pods/Kiwi/Classes/Core/KWMessageSpying.h create mode 100644 Pods/Kiwi/Classes/Core/KWMessageTracker.h create mode 100644 Pods/Kiwi/Classes/Core/KWMessageTracker.m create mode 100644 Pods/Kiwi/Classes/Core/KWNull.h create mode 100644 Pods/Kiwi/Classes/Core/KWNull.m create mode 100644 Pods/Kiwi/Classes/Core/KWObjCUtilities.h create mode 100644 Pods/Kiwi/Classes/Core/KWObjCUtilities.m create mode 100644 Pods/Kiwi/Classes/Core/KWProbe.h create mode 100644 Pods/Kiwi/Classes/Core/KWProbePoller.h create mode 100644 Pods/Kiwi/Classes/Core/KWProbePoller.m create mode 100644 Pods/Kiwi/Classes/Core/KWReporting.h create mode 100644 Pods/Kiwi/Classes/Core/KWSpec.h create mode 100644 Pods/Kiwi/Classes/Core/KWSpec.m create mode 100644 Pods/Kiwi/Classes/Core/KWStringUtilities.h create mode 100644 Pods/Kiwi/Classes/Core/KWStringUtilities.m create mode 100644 Pods/Kiwi/Classes/Core/KWSymbolicator.h create mode 100644 Pods/Kiwi/Classes/Core/KWSymbolicator.m create mode 100644 Pods/Kiwi/Classes/Core/KWValue.h create mode 100644 Pods/Kiwi/Classes/Core/KWValue.m create mode 100644 Pods/Kiwi/Classes/Core/KWWorkarounds.h create mode 100644 Pods/Kiwi/Classes/Core/KWWorkarounds.m create mode 100644 Pods/Kiwi/Classes/Core/Kiwi.h create mode 100644 Pods/Kiwi/Classes/Core/KiwiBlockMacros.h create mode 100644 Pods/Kiwi/Classes/Core/KiwiConfiguration.h create mode 100644 Pods/Kiwi/Classes/Core/KiwiMacros.h create mode 100644 Pods/Kiwi/Classes/Core/NSInvocation+KiwiAdditions.h create mode 100644 Pods/Kiwi/Classes/Core/NSInvocation+KiwiAdditions.m create mode 100644 Pods/Kiwi/Classes/Core/NSInvocation+OCMAdditions.h create mode 100644 Pods/Kiwi/Classes/Core/NSInvocation+OCMAdditions.m create mode 100644 Pods/Kiwi/Classes/Core/NSMethodSignature+KiwiAdditions.h create mode 100644 Pods/Kiwi/Classes/Core/NSMethodSignature+KiwiAdditions.m create mode 100644 Pods/Kiwi/Classes/Core/NSNumber+KiwiAdditions.h create mode 100644 Pods/Kiwi/Classes/Core/NSNumber+KiwiAdditions.m create mode 100644 Pods/Kiwi/Classes/Core/NSObject+KiwiSpyAdditions.h create mode 100644 Pods/Kiwi/Classes/Core/NSObject+KiwiSpyAdditions.m create mode 100644 Pods/Kiwi/Classes/Core/NSObject+KiwiVerifierAdditions.h create mode 100644 Pods/Kiwi/Classes/Core/NSObject+KiwiVerifierAdditions.m create mode 100644 Pods/Kiwi/Classes/Core/NSProxy+KiwiVerifierAdditions.h create mode 100644 Pods/Kiwi/Classes/Core/NSProxy+KiwiVerifierAdditions.m create mode 100644 Pods/Kiwi/Classes/Core/NSValue+KiwiAdditions.h create mode 100644 Pods/Kiwi/Classes/Core/NSValue+KiwiAdditions.m create mode 100644 Pods/Kiwi/Classes/Matchers/KWBeBetweenMatcher.h create mode 100644 Pods/Kiwi/Classes/Matchers/KWBeBetweenMatcher.m create mode 100644 Pods/Kiwi/Classes/Matchers/KWBeEmptyMatcher.h create mode 100644 Pods/Kiwi/Classes/Matchers/KWBeEmptyMatcher.m create mode 100644 Pods/Kiwi/Classes/Matchers/KWBeIdenticalToMatcher.h create mode 100644 Pods/Kiwi/Classes/Matchers/KWBeIdenticalToMatcher.m create mode 100644 Pods/Kiwi/Classes/Matchers/KWBeKindOfClassMatcher.h create mode 100644 Pods/Kiwi/Classes/Matchers/KWBeKindOfClassMatcher.m create mode 100644 Pods/Kiwi/Classes/Matchers/KWBeMemberOfClassMatcher.h create mode 100644 Pods/Kiwi/Classes/Matchers/KWBeMemberOfClassMatcher.m create mode 100644 Pods/Kiwi/Classes/Matchers/KWBeSubclassOfClassMatcher.h create mode 100644 Pods/Kiwi/Classes/Matchers/KWBeSubclassOfClassMatcher.m create mode 100644 Pods/Kiwi/Classes/Matchers/KWBeTrueMatcher.h create mode 100644 Pods/Kiwi/Classes/Matchers/KWBeTrueMatcher.m create mode 100644 Pods/Kiwi/Classes/Matchers/KWBeWithinMatcher.h create mode 100644 Pods/Kiwi/Classes/Matchers/KWBeWithinMatcher.m create mode 100644 Pods/Kiwi/Classes/Matchers/KWBeZeroMatcher.h create mode 100644 Pods/Kiwi/Classes/Matchers/KWBeZeroMatcher.m create mode 100644 Pods/Kiwi/Classes/Matchers/KWBlockRaiseMatcher.h create mode 100644 Pods/Kiwi/Classes/Matchers/KWBlockRaiseMatcher.m create mode 100644 Pods/Kiwi/Classes/Matchers/KWChangeMatcher.h create mode 100644 Pods/Kiwi/Classes/Matchers/KWChangeMatcher.m create mode 100644 Pods/Kiwi/Classes/Matchers/KWConformToProtocolMatcher.h create mode 100644 Pods/Kiwi/Classes/Matchers/KWConformToProtocolMatcher.m create mode 100644 Pods/Kiwi/Classes/Matchers/KWContainMatcher.h create mode 100644 Pods/Kiwi/Classes/Matchers/KWContainMatcher.m create mode 100644 Pods/Kiwi/Classes/Matchers/KWContainStringMatcher.h create mode 100644 Pods/Kiwi/Classes/Matchers/KWContainStringMatcher.m create mode 100644 Pods/Kiwi/Classes/Matchers/KWEqualMatcher.h create mode 100644 Pods/Kiwi/Classes/Matchers/KWEqualMatcher.m create mode 100644 Pods/Kiwi/Classes/Matchers/KWGenericMatchEvaluator.h create mode 100644 Pods/Kiwi/Classes/Matchers/KWGenericMatchEvaluator.m create mode 100644 Pods/Kiwi/Classes/Matchers/KWGenericMatcher.h create mode 100644 Pods/Kiwi/Classes/Matchers/KWGenericMatcher.m create mode 100644 Pods/Kiwi/Classes/Matchers/KWGenericMatchingAdditions.h create mode 100644 Pods/Kiwi/Classes/Matchers/KWGenericMatchingAdditions.m create mode 100644 Pods/Kiwi/Classes/Matchers/KWHaveMatcher.h create mode 100644 Pods/Kiwi/Classes/Matchers/KWHaveMatcher.m create mode 100644 Pods/Kiwi/Classes/Matchers/KWHaveValueMatcher.h create mode 100644 Pods/Kiwi/Classes/Matchers/KWHaveValueMatcher.m create mode 100644 Pods/Kiwi/Classes/Matchers/KWInequalityMatcher.h create mode 100644 Pods/Kiwi/Classes/Matchers/KWInequalityMatcher.m create mode 100644 Pods/Kiwi/Classes/Matchers/KWNilMatcher.h create mode 100644 Pods/Kiwi/Classes/Matchers/KWNilMatcher.m create mode 100644 Pods/Kiwi/Classes/Matchers/KWNotificationMatcher.h create mode 100644 Pods/Kiwi/Classes/Matchers/KWNotificationMatcher.m create mode 100644 Pods/Kiwi/Classes/Matchers/KWReceiveMatcher.h create mode 100644 Pods/Kiwi/Classes/Matchers/KWReceiveMatcher.m create mode 100644 Pods/Kiwi/Classes/Matchers/KWRegularExpressionPatternMatcher.h create mode 100644 Pods/Kiwi/Classes/Matchers/KWRegularExpressionPatternMatcher.m create mode 100644 Pods/Kiwi/Classes/Matchers/KWRespondToSelectorMatcher.h create mode 100644 Pods/Kiwi/Classes/Matchers/KWRespondToSelectorMatcher.m create mode 100644 Pods/Kiwi/Classes/Matchers/KWStringContainsMatcher.h create mode 100644 Pods/Kiwi/Classes/Matchers/KWStringContainsMatcher.m create mode 100644 Pods/Kiwi/Classes/Matchers/KWStringPrefixMatcher.h create mode 100644 Pods/Kiwi/Classes/Matchers/KWStringPrefixMatcher.m create mode 100644 Pods/Kiwi/Classes/Matchers/KWUserDefinedMatcher.h create mode 100644 Pods/Kiwi/Classes/Matchers/KWUserDefinedMatcher.m create mode 100644 Pods/Kiwi/Classes/Mocking/KWMock.h create mode 100644 Pods/Kiwi/Classes/Mocking/KWMock.m create mode 100644 Pods/Kiwi/Classes/Mocking/NSObject+KiwiMockAdditions.h create mode 100644 Pods/Kiwi/Classes/Mocking/NSObject+KiwiMockAdditions.m create mode 100644 Pods/Kiwi/Classes/Nodes/KWAfterAllNode.h create mode 100644 Pods/Kiwi/Classes/Nodes/KWAfterAllNode.m create mode 100644 Pods/Kiwi/Classes/Nodes/KWAfterEachNode.h create mode 100644 Pods/Kiwi/Classes/Nodes/KWAfterEachNode.m create mode 100644 Pods/Kiwi/Classes/Nodes/KWBeforeAllNode.h create mode 100644 Pods/Kiwi/Classes/Nodes/KWBeforeAllNode.m create mode 100644 Pods/Kiwi/Classes/Nodes/KWBeforeEachNode.h create mode 100644 Pods/Kiwi/Classes/Nodes/KWBeforeEachNode.m create mode 100644 Pods/Kiwi/Classes/Nodes/KWBlockNode.h create mode 100644 Pods/Kiwi/Classes/Nodes/KWBlockNode.m create mode 100644 Pods/Kiwi/Classes/Nodes/KWContextNode.h create mode 100644 Pods/Kiwi/Classes/Nodes/KWContextNode.m create mode 100644 Pods/Kiwi/Classes/Nodes/KWExampleNode.h create mode 100644 Pods/Kiwi/Classes/Nodes/KWItNode.h create mode 100644 Pods/Kiwi/Classes/Nodes/KWItNode.m create mode 100644 Pods/Kiwi/Classes/Nodes/KWLetNode.h create mode 100644 Pods/Kiwi/Classes/Nodes/KWLetNode.m create mode 100644 Pods/Kiwi/Classes/Nodes/KWPendingNode.h create mode 100644 Pods/Kiwi/Classes/Nodes/KWPendingNode.m create mode 100644 Pods/Kiwi/Classes/Nodes/KWRegisterMatchersNode.h create mode 100644 Pods/Kiwi/Classes/Nodes/KWRegisterMatchersNode.m create mode 100644 Pods/Kiwi/Classes/Stubbing/KWIntercept.h create mode 100644 Pods/Kiwi/Classes/Stubbing/KWIntercept.m create mode 100644 Pods/Kiwi/Classes/Stubbing/KWStub.h create mode 100644 Pods/Kiwi/Classes/Stubbing/KWStub.m create mode 100644 Pods/Kiwi/Classes/Stubbing/NSObject+KiwiStubAdditions.h create mode 100644 Pods/Kiwi/Classes/Stubbing/NSObject+KiwiStubAdditions.m create mode 100644 Pods/Kiwi/Classes/Verifiers/KWAsyncVerifier.h create mode 100644 Pods/Kiwi/Classes/Verifiers/KWAsyncVerifier.m create mode 100644 Pods/Kiwi/Classes/Verifiers/KWExistVerifier.h create mode 100644 Pods/Kiwi/Classes/Verifiers/KWExistVerifier.m create mode 100644 Pods/Kiwi/Classes/Verifiers/KWMatchVerifier.h create mode 100644 Pods/Kiwi/Classes/Verifiers/KWMatchVerifier.m create mode 100644 Pods/Kiwi/Classes/Verifiers/KWVerifying.h create mode 100644 Pods/Kiwi/License.txt create mode 100644 Pods/Kiwi/Readme.md create mode 100644 Pods/Local Podspecs/TransitionKit.podspec.json create mode 100644 Pods/Manifest.lock create mode 100644 Pods/Pods.xcodeproj/project.pbxproj create mode 100644 Pods/Target Support Files/Kiwi-OSX/Kiwi-OSX-dummy.m create mode 100644 Pods/Target Support Files/Kiwi-OSX/Kiwi-OSX-prefix.pch create mode 100644 Pods/Target Support Files/Kiwi-OSX/Kiwi-OSX.xcconfig create mode 100644 Pods/Target Support Files/Kiwi-iOS/Kiwi-iOS-dummy.m create mode 100644 Pods/Target Support Files/Kiwi-iOS/Kiwi-iOS-prefix.pch create mode 100644 Pods/Target Support Files/Kiwi-iOS/Kiwi-iOS.xcconfig create mode 100644 Pods/Target Support Files/Pods-Tests-TransitionKit iOS Tests/Pods-Tests-TransitionKit iOS Tests-acknowledgements.markdown create mode 100644 Pods/Target Support Files/Pods-Tests-TransitionKit iOS Tests/Pods-Tests-TransitionKit iOS Tests-acknowledgements.plist create mode 100644 Pods/Target Support Files/Pods-Tests-TransitionKit iOS Tests/Pods-Tests-TransitionKit iOS Tests-dummy.m create mode 100755 Pods/Target Support Files/Pods-Tests-TransitionKit iOS Tests/Pods-Tests-TransitionKit iOS Tests-frameworks.sh create mode 100755 Pods/Target Support Files/Pods-Tests-TransitionKit iOS Tests/Pods-Tests-TransitionKit iOS Tests-resources.sh create mode 100644 Pods/Target Support Files/Pods-Tests-TransitionKit iOS Tests/Pods-Tests-TransitionKit iOS Tests.debug.xcconfig create mode 100644 Pods/Target Support Files/Pods-Tests-TransitionKit iOS Tests/Pods-Tests-TransitionKit iOS Tests.release.xcconfig create mode 100644 Pods/Target Support Files/Pods-Tests-TransitionKit macOS Tests/Pods-Tests-TransitionKit macOS Tests-acknowledgements.markdown create mode 100644 Pods/Target Support Files/Pods-Tests-TransitionKit macOS Tests/Pods-Tests-TransitionKit macOS Tests-acknowledgements.plist create mode 100644 Pods/Target Support Files/Pods-Tests-TransitionKit macOS Tests/Pods-Tests-TransitionKit macOS Tests-dummy.m create mode 100755 Pods/Target Support Files/Pods-Tests-TransitionKit macOS Tests/Pods-Tests-TransitionKit macOS Tests-frameworks.sh create mode 100755 Pods/Target Support Files/Pods-Tests-TransitionKit macOS Tests/Pods-Tests-TransitionKit macOS Tests-resources.sh create mode 100644 Pods/Target Support Files/Pods-Tests-TransitionKit macOS Tests/Pods-Tests-TransitionKit macOS Tests.debug.xcconfig create mode 100644 Pods/Target Support Files/Pods-Tests-TransitionKit macOS Tests/Pods-Tests-TransitionKit macOS Tests.release.xcconfig create mode 100644 Pods/Target Support Files/TransitionKit-OSX/TransitionKit-OSX-dummy.m create mode 100644 Pods/Target Support Files/TransitionKit-OSX/TransitionKit-OSX-prefix.pch create mode 100644 Pods/Target Support Files/TransitionKit-OSX/TransitionKit-OSX.xcconfig create mode 100644 Pods/Target Support Files/TransitionKit-iOS/TransitionKit-iOS-dummy.m create mode 100644 Pods/Target Support Files/TransitionKit-iOS/TransitionKit-iOS-prefix.pch create mode 100644 Pods/Target Support Files/TransitionKit-iOS/TransitionKit-iOS.xcconfig rename Specs/{TransitionKitTests-Info.plist => Info.plist} (77%) create mode 100644 TransitionKit.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 TransitionKit.xcodeproj/xcshareddata/xcschemes/TransitionKit iOS.xcscheme create mode 100644 TransitionKit.xcodeproj/xcshareddata/xcschemes/TransitionKit macOS.xcscheme create mode 100644 TransitionKit.xcworkspace/contents.xcworkspacedata diff --git a/.gitignore b/.gitignore index 601ea33..4c8c443 100644 --- a/.gitignore +++ b/.gitignore @@ -9,13 +9,9 @@ build/ !default.mode2v3 *.perspectivev3 !default.perspectivev3 -*.xcworkspace !default.xcworkspace xcuserdata profile *.moved-aside DerivedData .idea/ - -Pods -TransitionKit.xcodeproj/xcshareddata/xcschemes \ No newline at end of file diff --git a/Info.plist b/Info.plist new file mode 100644 index 0000000..fbe1e6b --- /dev/null +++ b/Info.plist @@ -0,0 +1,24 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + NSPrincipalClass + + + diff --git a/Podfile b/Podfile index 3cadfac..166a662 100644 --- a/Podfile +++ b/Podfile @@ -1,17 +1,12 @@ -source 'https://github.com/CocoaPods/Specs.git' - -target :ios do - platform :ios, '5.0' - link_with 'iOS Specs' - +abstract_target 'Tests' do pod 'TransitionKit', path: '.' pod 'Kiwi', '~> 2.3.0' -end -target :osx do - platform :osx, '10.7' - link_with 'OS X Specs' - - pod 'TransitionKit', path: '.' - pod 'Kiwi', '~> 2.3.0' + target 'TransitionKit iOS Tests' do + platform :ios, '6.0' + end + + target 'TransitionKit macOS Tests' do + platform :osx, '10.7' + end end diff --git a/Podfile.lock b/Podfile.lock index a071fb7..75d8275 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -1,6 +1,6 @@ PODS: - Kiwi (2.3.1) - - TransitionKit (2.2.1) + - TransitionKit (2.2.2) DEPENDENCIES: - Kiwi (~> 2.3.0) @@ -12,6 +12,8 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: Kiwi: f038a6c61f7a9e4d7766bff5717aa3b3fdb75f55 - TransitionKit: 9ceccda4cd0cdc0a05ef85eb235e5a3292c3c250 + TransitionKit: 19d0306ff077193330e9541a0fe83a1b9d60b51a -COCOAPODS: 0.37.2 +PODFILE CHECKSUM: 9d722f9d462a2ecbe03c5482c8efe2da293aec9c + +COCOAPODS: 1.2.0 diff --git a/Pods/Headers/Private/Kiwi/KWAfterAllNode.h b/Pods/Headers/Private/Kiwi/KWAfterAllNode.h new file mode 120000 index 0000000..01374b7 --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWAfterAllNode.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Nodes/KWAfterAllNode.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWAfterEachNode.h b/Pods/Headers/Private/Kiwi/KWAfterEachNode.h new file mode 120000 index 0000000..759284d --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWAfterEachNode.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Nodes/KWAfterEachNode.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWAny.h b/Pods/Headers/Private/Kiwi/KWAny.h new file mode 120000 index 0000000..58f2c5c --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWAny.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KWAny.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWAsyncVerifier.h b/Pods/Headers/Private/Kiwi/KWAsyncVerifier.h new file mode 120000 index 0000000..d79b1b9 --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWAsyncVerifier.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Verifiers/KWAsyncVerifier.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWBeBetweenMatcher.h b/Pods/Headers/Private/Kiwi/KWBeBetweenMatcher.h new file mode 120000 index 0000000..20f47b4 --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWBeBetweenMatcher.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Matchers/KWBeBetweenMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWBeEmptyMatcher.h b/Pods/Headers/Private/Kiwi/KWBeEmptyMatcher.h new file mode 120000 index 0000000..9e0e648 --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWBeEmptyMatcher.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Matchers/KWBeEmptyMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWBeIdenticalToMatcher.h b/Pods/Headers/Private/Kiwi/KWBeIdenticalToMatcher.h new file mode 120000 index 0000000..f881624 --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWBeIdenticalToMatcher.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Matchers/KWBeIdenticalToMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWBeKindOfClassMatcher.h b/Pods/Headers/Private/Kiwi/KWBeKindOfClassMatcher.h new file mode 120000 index 0000000..cb1ba8f --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWBeKindOfClassMatcher.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Matchers/KWBeKindOfClassMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWBeMemberOfClassMatcher.h b/Pods/Headers/Private/Kiwi/KWBeMemberOfClassMatcher.h new file mode 120000 index 0000000..cbd60b1 --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWBeMemberOfClassMatcher.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Matchers/KWBeMemberOfClassMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWBeSubclassOfClassMatcher.h b/Pods/Headers/Private/Kiwi/KWBeSubclassOfClassMatcher.h new file mode 120000 index 0000000..5b22213 --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWBeSubclassOfClassMatcher.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Matchers/KWBeSubclassOfClassMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWBeTrueMatcher.h b/Pods/Headers/Private/Kiwi/KWBeTrueMatcher.h new file mode 120000 index 0000000..77f4eca --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWBeTrueMatcher.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Matchers/KWBeTrueMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWBeWithinMatcher.h b/Pods/Headers/Private/Kiwi/KWBeWithinMatcher.h new file mode 120000 index 0000000..9e88024 --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWBeWithinMatcher.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Matchers/KWBeWithinMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWBeZeroMatcher.h b/Pods/Headers/Private/Kiwi/KWBeZeroMatcher.h new file mode 120000 index 0000000..39250c8 --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWBeZeroMatcher.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Matchers/KWBeZeroMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWBeforeAllNode.h b/Pods/Headers/Private/Kiwi/KWBeforeAllNode.h new file mode 120000 index 0000000..4d5a8e2 --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWBeforeAllNode.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Nodes/KWBeforeAllNode.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWBeforeEachNode.h b/Pods/Headers/Private/Kiwi/KWBeforeEachNode.h new file mode 120000 index 0000000..fccc14c --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWBeforeEachNode.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Nodes/KWBeforeEachNode.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWBlock.h b/Pods/Headers/Private/Kiwi/KWBlock.h new file mode 120000 index 0000000..56d2ae6 --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWBlock.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KWBlock.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWBlockNode.h b/Pods/Headers/Private/Kiwi/KWBlockNode.h new file mode 120000 index 0000000..bc56278 --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWBlockNode.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Nodes/KWBlockNode.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWBlockRaiseMatcher.h b/Pods/Headers/Private/Kiwi/KWBlockRaiseMatcher.h new file mode 120000 index 0000000..0cb1562 --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWBlockRaiseMatcher.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Matchers/KWBlockRaiseMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWCallSite.h b/Pods/Headers/Private/Kiwi/KWCallSite.h new file mode 120000 index 0000000..a10e1f9 --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWCallSite.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KWCallSite.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWCaptureSpy.h b/Pods/Headers/Private/Kiwi/KWCaptureSpy.h new file mode 120000 index 0000000..a8db34e --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWCaptureSpy.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KWCaptureSpy.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWChangeMatcher.h b/Pods/Headers/Private/Kiwi/KWChangeMatcher.h new file mode 120000 index 0000000..b4f8a1d --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWChangeMatcher.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Matchers/KWChangeMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWConformToProtocolMatcher.h b/Pods/Headers/Private/Kiwi/KWConformToProtocolMatcher.h new file mode 120000 index 0000000..593c408 --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWConformToProtocolMatcher.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Matchers/KWConformToProtocolMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWContainMatcher.h b/Pods/Headers/Private/Kiwi/KWContainMatcher.h new file mode 120000 index 0000000..a5b19ea --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWContainMatcher.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Matchers/KWContainMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWContainStringMatcher.h b/Pods/Headers/Private/Kiwi/KWContainStringMatcher.h new file mode 120000 index 0000000..a35f824 --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWContainStringMatcher.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Matchers/KWContainStringMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWContextNode.h b/Pods/Headers/Private/Kiwi/KWContextNode.h new file mode 120000 index 0000000..0094504 --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWContextNode.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Nodes/KWContextNode.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWCountType.h b/Pods/Headers/Private/Kiwi/KWCountType.h new file mode 120000 index 0000000..8085d02 --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWCountType.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KWCountType.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWDeviceInfo.h b/Pods/Headers/Private/Kiwi/KWDeviceInfo.h new file mode 120000 index 0000000..c3a443c --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWDeviceInfo.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KWDeviceInfo.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWEqualMatcher.h b/Pods/Headers/Private/Kiwi/KWEqualMatcher.h new file mode 120000 index 0000000..c8e8824 --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWEqualMatcher.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Matchers/KWEqualMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWExample.h b/Pods/Headers/Private/Kiwi/KWExample.h new file mode 120000 index 0000000..a54de2e --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWExample.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KWExample.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWExampleDelegate.h b/Pods/Headers/Private/Kiwi/KWExampleDelegate.h new file mode 120000 index 0000000..4d0f763 --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWExampleDelegate.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KWExampleDelegate.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWExampleNode.h b/Pods/Headers/Private/Kiwi/KWExampleNode.h new file mode 120000 index 0000000..df62cd4 --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWExampleNode.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Nodes/KWExampleNode.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWExampleNodeVisitor.h b/Pods/Headers/Private/Kiwi/KWExampleNodeVisitor.h new file mode 120000 index 0000000..2452186 --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWExampleNodeVisitor.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KWExampleNodeVisitor.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWExampleSuite.h b/Pods/Headers/Private/Kiwi/KWExampleSuite.h new file mode 120000 index 0000000..c4075cf --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWExampleSuite.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KWExampleSuite.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWExampleSuiteBuilder.h b/Pods/Headers/Private/Kiwi/KWExampleSuiteBuilder.h new file mode 120000 index 0000000..60bd385 --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWExampleSuiteBuilder.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KWExampleSuiteBuilder.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWExistVerifier.h b/Pods/Headers/Private/Kiwi/KWExistVerifier.h new file mode 120000 index 0000000..a0c1eb8 --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWExistVerifier.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Verifiers/KWExistVerifier.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWExpectationType.h b/Pods/Headers/Private/Kiwi/KWExpectationType.h new file mode 120000 index 0000000..d517aff --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWExpectationType.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KWExpectationType.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWFailure.h b/Pods/Headers/Private/Kiwi/KWFailure.h new file mode 120000 index 0000000..2689b98 --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWFailure.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KWFailure.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWFormatter.h b/Pods/Headers/Private/Kiwi/KWFormatter.h new file mode 120000 index 0000000..048c515 --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWFormatter.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KWFormatter.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWFutureObject.h b/Pods/Headers/Private/Kiwi/KWFutureObject.h new file mode 120000 index 0000000..5b5d5db --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWFutureObject.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KWFutureObject.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWGenericMatchEvaluator.h b/Pods/Headers/Private/Kiwi/KWGenericMatchEvaluator.h new file mode 120000 index 0000000..253040a --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWGenericMatchEvaluator.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Matchers/KWGenericMatchEvaluator.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWGenericMatcher.h b/Pods/Headers/Private/Kiwi/KWGenericMatcher.h new file mode 120000 index 0000000..865f922 --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWGenericMatcher.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Matchers/KWGenericMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWGenericMatchingAdditions.h b/Pods/Headers/Private/Kiwi/KWGenericMatchingAdditions.h new file mode 120000 index 0000000..8a33647 --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWGenericMatchingAdditions.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Matchers/KWGenericMatchingAdditions.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWHaveMatcher.h b/Pods/Headers/Private/Kiwi/KWHaveMatcher.h new file mode 120000 index 0000000..e1c3aa5 --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWHaveMatcher.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Matchers/KWHaveMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWHaveValueMatcher.h b/Pods/Headers/Private/Kiwi/KWHaveValueMatcher.h new file mode 120000 index 0000000..7eaadc2 --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWHaveValueMatcher.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Matchers/KWHaveValueMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWInequalityMatcher.h b/Pods/Headers/Private/Kiwi/KWInequalityMatcher.h new file mode 120000 index 0000000..88b6d4f --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWInequalityMatcher.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Matchers/KWInequalityMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWIntercept.h b/Pods/Headers/Private/Kiwi/KWIntercept.h new file mode 120000 index 0000000..a5520c5 --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWIntercept.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Stubbing/KWIntercept.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWInvocationCapturer.h b/Pods/Headers/Private/Kiwi/KWInvocationCapturer.h new file mode 120000 index 0000000..493a954 --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWInvocationCapturer.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KWInvocationCapturer.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWItNode.h b/Pods/Headers/Private/Kiwi/KWItNode.h new file mode 120000 index 0000000..65394c3 --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWItNode.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Nodes/KWItNode.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWLet.h b/Pods/Headers/Private/Kiwi/KWLet.h new file mode 120000 index 0000000..eaa3e21 --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWLet.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KWLet.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWLetNode.h b/Pods/Headers/Private/Kiwi/KWLetNode.h new file mode 120000 index 0000000..3826b26 --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWLetNode.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Nodes/KWLetNode.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWMatchVerifier.h b/Pods/Headers/Private/Kiwi/KWMatchVerifier.h new file mode 120000 index 0000000..3cc1e00 --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWMatchVerifier.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Verifiers/KWMatchVerifier.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWMatcher.h b/Pods/Headers/Private/Kiwi/KWMatcher.h new file mode 120000 index 0000000..b2c279a --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWMatcher.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KWMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWMatcherFactory.h b/Pods/Headers/Private/Kiwi/KWMatcherFactory.h new file mode 120000 index 0000000..29678fb --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWMatcherFactory.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KWMatcherFactory.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWMatchers.h b/Pods/Headers/Private/Kiwi/KWMatchers.h new file mode 120000 index 0000000..8276cf6 --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWMatchers.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KWMatchers.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWMatching.h b/Pods/Headers/Private/Kiwi/KWMatching.h new file mode 120000 index 0000000..218263e --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWMatching.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KWMatching.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWMessagePattern.h b/Pods/Headers/Private/Kiwi/KWMessagePattern.h new file mode 120000 index 0000000..0372a51 --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWMessagePattern.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KWMessagePattern.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWMessageSpying.h b/Pods/Headers/Private/Kiwi/KWMessageSpying.h new file mode 120000 index 0000000..031408b --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWMessageSpying.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KWMessageSpying.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWMessageTracker.h b/Pods/Headers/Private/Kiwi/KWMessageTracker.h new file mode 120000 index 0000000..7d115f7 --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWMessageTracker.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KWMessageTracker.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWMock.h b/Pods/Headers/Private/Kiwi/KWMock.h new file mode 120000 index 0000000..022af92 --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWMock.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Mocking/KWMock.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWNilMatcher.h b/Pods/Headers/Private/Kiwi/KWNilMatcher.h new file mode 120000 index 0000000..6fd7ad2 --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWNilMatcher.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Matchers/KWNilMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWNotificationMatcher.h b/Pods/Headers/Private/Kiwi/KWNotificationMatcher.h new file mode 120000 index 0000000..3df422a --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWNotificationMatcher.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Matchers/KWNotificationMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWNull.h b/Pods/Headers/Private/Kiwi/KWNull.h new file mode 120000 index 0000000..c579730 --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWNull.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KWNull.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWObjCUtilities.h b/Pods/Headers/Private/Kiwi/KWObjCUtilities.h new file mode 120000 index 0000000..d1f30e1 --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWObjCUtilities.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KWObjCUtilities.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWPendingNode.h b/Pods/Headers/Private/Kiwi/KWPendingNode.h new file mode 120000 index 0000000..c8c7abc --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWPendingNode.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Nodes/KWPendingNode.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWProbe.h b/Pods/Headers/Private/Kiwi/KWProbe.h new file mode 120000 index 0000000..4a6ceaf --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWProbe.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KWProbe.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWProbePoller.h b/Pods/Headers/Private/Kiwi/KWProbePoller.h new file mode 120000 index 0000000..f8df179 --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWProbePoller.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KWProbePoller.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWReceiveMatcher.h b/Pods/Headers/Private/Kiwi/KWReceiveMatcher.h new file mode 120000 index 0000000..a727a53 --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWReceiveMatcher.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Matchers/KWReceiveMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWRegisterMatchersNode.h b/Pods/Headers/Private/Kiwi/KWRegisterMatchersNode.h new file mode 120000 index 0000000..f0a1dcd --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWRegisterMatchersNode.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Nodes/KWRegisterMatchersNode.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWRegularExpressionPatternMatcher.h b/Pods/Headers/Private/Kiwi/KWRegularExpressionPatternMatcher.h new file mode 120000 index 0000000..776f719 --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWRegularExpressionPatternMatcher.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Matchers/KWRegularExpressionPatternMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWReporting.h b/Pods/Headers/Private/Kiwi/KWReporting.h new file mode 120000 index 0000000..cb55a02 --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWReporting.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KWReporting.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWRespondToSelectorMatcher.h b/Pods/Headers/Private/Kiwi/KWRespondToSelectorMatcher.h new file mode 120000 index 0000000..9f44022 --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWRespondToSelectorMatcher.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Matchers/KWRespondToSelectorMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWSpec.h b/Pods/Headers/Private/Kiwi/KWSpec.h new file mode 120000 index 0000000..6d3c677 --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWSpec.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KWSpec.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWStringContainsMatcher.h b/Pods/Headers/Private/Kiwi/KWStringContainsMatcher.h new file mode 120000 index 0000000..617a623 --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWStringContainsMatcher.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Matchers/KWStringContainsMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWStringPrefixMatcher.h b/Pods/Headers/Private/Kiwi/KWStringPrefixMatcher.h new file mode 120000 index 0000000..3f4ff3b --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWStringPrefixMatcher.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Matchers/KWStringPrefixMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWStringUtilities.h b/Pods/Headers/Private/Kiwi/KWStringUtilities.h new file mode 120000 index 0000000..76c1a3c --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWStringUtilities.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KWStringUtilities.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWStub.h b/Pods/Headers/Private/Kiwi/KWStub.h new file mode 120000 index 0000000..5193213 --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWStub.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Stubbing/KWStub.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWSuiteConfigurationBase.h b/Pods/Headers/Private/Kiwi/KWSuiteConfigurationBase.h new file mode 120000 index 0000000..1c4e45b --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWSuiteConfigurationBase.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Config/KWSuiteConfigurationBase.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWSymbolicator.h b/Pods/Headers/Private/Kiwi/KWSymbolicator.h new file mode 120000 index 0000000..4d43085 --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWSymbolicator.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KWSymbolicator.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWUserDefinedMatcher.h b/Pods/Headers/Private/Kiwi/KWUserDefinedMatcher.h new file mode 120000 index 0000000..0dac6b3 --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWUserDefinedMatcher.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Matchers/KWUserDefinedMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWValue.h b/Pods/Headers/Private/Kiwi/KWValue.h new file mode 120000 index 0000000..0e28e06 --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWValue.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KWValue.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWVerifying.h b/Pods/Headers/Private/Kiwi/KWVerifying.h new file mode 120000 index 0000000..5724e73 --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWVerifying.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Verifiers/KWVerifying.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWWorkarounds.h b/Pods/Headers/Private/Kiwi/KWWorkarounds.h new file mode 120000 index 0000000..d2033a1 --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KWWorkarounds.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KWWorkarounds.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/Kiwi.h b/Pods/Headers/Private/Kiwi/Kiwi.h new file mode 120000 index 0000000..a665ef2 --- /dev/null +++ b/Pods/Headers/Private/Kiwi/Kiwi.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/Kiwi.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KiwiBlockMacros.h b/Pods/Headers/Private/Kiwi/KiwiBlockMacros.h new file mode 120000 index 0000000..b61d992 --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KiwiBlockMacros.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KiwiBlockMacros.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KiwiConfiguration.h b/Pods/Headers/Private/Kiwi/KiwiConfiguration.h new file mode 120000 index 0000000..b051eaa --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KiwiConfiguration.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KiwiConfiguration.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KiwiMacros.h b/Pods/Headers/Private/Kiwi/KiwiMacros.h new file mode 120000 index 0000000..bb83872 --- /dev/null +++ b/Pods/Headers/Private/Kiwi/KiwiMacros.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KiwiMacros.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/NSInvocation+KiwiAdditions.h b/Pods/Headers/Private/Kiwi/NSInvocation+KiwiAdditions.h new file mode 120000 index 0000000..95c446d --- /dev/null +++ b/Pods/Headers/Private/Kiwi/NSInvocation+KiwiAdditions.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/NSInvocation+KiwiAdditions.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/NSInvocation+OCMAdditions.h b/Pods/Headers/Private/Kiwi/NSInvocation+OCMAdditions.h new file mode 120000 index 0000000..df17ca4 --- /dev/null +++ b/Pods/Headers/Private/Kiwi/NSInvocation+OCMAdditions.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/NSInvocation+OCMAdditions.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/NSMethodSignature+KiwiAdditions.h b/Pods/Headers/Private/Kiwi/NSMethodSignature+KiwiAdditions.h new file mode 120000 index 0000000..7d21a1a --- /dev/null +++ b/Pods/Headers/Private/Kiwi/NSMethodSignature+KiwiAdditions.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/NSMethodSignature+KiwiAdditions.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/NSNumber+KiwiAdditions.h b/Pods/Headers/Private/Kiwi/NSNumber+KiwiAdditions.h new file mode 120000 index 0000000..a7fcdd7 --- /dev/null +++ b/Pods/Headers/Private/Kiwi/NSNumber+KiwiAdditions.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/NSNumber+KiwiAdditions.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/NSObject+KiwiMockAdditions.h b/Pods/Headers/Private/Kiwi/NSObject+KiwiMockAdditions.h new file mode 120000 index 0000000..c5b6237 --- /dev/null +++ b/Pods/Headers/Private/Kiwi/NSObject+KiwiMockAdditions.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Mocking/NSObject+KiwiMockAdditions.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/NSObject+KiwiSpyAdditions.h b/Pods/Headers/Private/Kiwi/NSObject+KiwiSpyAdditions.h new file mode 120000 index 0000000..82594f1 --- /dev/null +++ b/Pods/Headers/Private/Kiwi/NSObject+KiwiSpyAdditions.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/NSObject+KiwiSpyAdditions.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/NSObject+KiwiStubAdditions.h b/Pods/Headers/Private/Kiwi/NSObject+KiwiStubAdditions.h new file mode 120000 index 0000000..29e7521 --- /dev/null +++ b/Pods/Headers/Private/Kiwi/NSObject+KiwiStubAdditions.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Stubbing/NSObject+KiwiStubAdditions.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/NSObject+KiwiVerifierAdditions.h b/Pods/Headers/Private/Kiwi/NSObject+KiwiVerifierAdditions.h new file mode 120000 index 0000000..f08d30f --- /dev/null +++ b/Pods/Headers/Private/Kiwi/NSObject+KiwiVerifierAdditions.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/NSObject+KiwiVerifierAdditions.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/NSProxy+KiwiVerifierAdditions.h b/Pods/Headers/Private/Kiwi/NSProxy+KiwiVerifierAdditions.h new file mode 120000 index 0000000..3e9e83e --- /dev/null +++ b/Pods/Headers/Private/Kiwi/NSProxy+KiwiVerifierAdditions.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/NSProxy+KiwiVerifierAdditions.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/NSValue+KiwiAdditions.h b/Pods/Headers/Private/Kiwi/NSValue+KiwiAdditions.h new file mode 120000 index 0000000..d2a5609 --- /dev/null +++ b/Pods/Headers/Private/Kiwi/NSValue+KiwiAdditions.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/NSValue+KiwiAdditions.h \ No newline at end of file diff --git a/Pods/Headers/Private/TransitionKit/TKEvent.h b/Pods/Headers/Private/TransitionKit/TKEvent.h new file mode 120000 index 0000000..3637d73 --- /dev/null +++ b/Pods/Headers/Private/TransitionKit/TKEvent.h @@ -0,0 +1 @@ +../../../../Code/TKEvent.h \ No newline at end of file diff --git a/Pods/Headers/Private/TransitionKit/TKState.h b/Pods/Headers/Private/TransitionKit/TKState.h new file mode 120000 index 0000000..81dd874 --- /dev/null +++ b/Pods/Headers/Private/TransitionKit/TKState.h @@ -0,0 +1 @@ +../../../../Code/TKState.h \ No newline at end of file diff --git a/Pods/Headers/Private/TransitionKit/TKStateMachine.h b/Pods/Headers/Private/TransitionKit/TKStateMachine.h new file mode 120000 index 0000000..5f5947c --- /dev/null +++ b/Pods/Headers/Private/TransitionKit/TKStateMachine.h @@ -0,0 +1 @@ +../../../../Code/TKStateMachine.h \ No newline at end of file diff --git a/Pods/Headers/Private/TransitionKit/TKTransition.h b/Pods/Headers/Private/TransitionKit/TKTransition.h new file mode 120000 index 0000000..34b91fc --- /dev/null +++ b/Pods/Headers/Private/TransitionKit/TKTransition.h @@ -0,0 +1 @@ +../../../../Code/TKTransition.h \ No newline at end of file diff --git a/Pods/Headers/Private/TransitionKit/TransitionKit.h b/Pods/Headers/Private/TransitionKit/TransitionKit.h new file mode 120000 index 0000000..7eee33b --- /dev/null +++ b/Pods/Headers/Private/TransitionKit/TransitionKit.h @@ -0,0 +1 @@ +../../../../Code/TransitionKit.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWAfterAllNode.h b/Pods/Headers/Public/Kiwi/KWAfterAllNode.h new file mode 120000 index 0000000..01374b7 --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWAfterAllNode.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Nodes/KWAfterAllNode.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWAfterEachNode.h b/Pods/Headers/Public/Kiwi/KWAfterEachNode.h new file mode 120000 index 0000000..759284d --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWAfterEachNode.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Nodes/KWAfterEachNode.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWAny.h b/Pods/Headers/Public/Kiwi/KWAny.h new file mode 120000 index 0000000..58f2c5c --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWAny.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KWAny.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWAsyncVerifier.h b/Pods/Headers/Public/Kiwi/KWAsyncVerifier.h new file mode 120000 index 0000000..d79b1b9 --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWAsyncVerifier.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Verifiers/KWAsyncVerifier.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWBeBetweenMatcher.h b/Pods/Headers/Public/Kiwi/KWBeBetweenMatcher.h new file mode 120000 index 0000000..20f47b4 --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWBeBetweenMatcher.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Matchers/KWBeBetweenMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWBeEmptyMatcher.h b/Pods/Headers/Public/Kiwi/KWBeEmptyMatcher.h new file mode 120000 index 0000000..9e0e648 --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWBeEmptyMatcher.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Matchers/KWBeEmptyMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWBeIdenticalToMatcher.h b/Pods/Headers/Public/Kiwi/KWBeIdenticalToMatcher.h new file mode 120000 index 0000000..f881624 --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWBeIdenticalToMatcher.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Matchers/KWBeIdenticalToMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWBeKindOfClassMatcher.h b/Pods/Headers/Public/Kiwi/KWBeKindOfClassMatcher.h new file mode 120000 index 0000000..cb1ba8f --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWBeKindOfClassMatcher.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Matchers/KWBeKindOfClassMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWBeMemberOfClassMatcher.h b/Pods/Headers/Public/Kiwi/KWBeMemberOfClassMatcher.h new file mode 120000 index 0000000..cbd60b1 --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWBeMemberOfClassMatcher.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Matchers/KWBeMemberOfClassMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWBeSubclassOfClassMatcher.h b/Pods/Headers/Public/Kiwi/KWBeSubclassOfClassMatcher.h new file mode 120000 index 0000000..5b22213 --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWBeSubclassOfClassMatcher.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Matchers/KWBeSubclassOfClassMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWBeTrueMatcher.h b/Pods/Headers/Public/Kiwi/KWBeTrueMatcher.h new file mode 120000 index 0000000..77f4eca --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWBeTrueMatcher.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Matchers/KWBeTrueMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWBeWithinMatcher.h b/Pods/Headers/Public/Kiwi/KWBeWithinMatcher.h new file mode 120000 index 0000000..9e88024 --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWBeWithinMatcher.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Matchers/KWBeWithinMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWBeZeroMatcher.h b/Pods/Headers/Public/Kiwi/KWBeZeroMatcher.h new file mode 120000 index 0000000..39250c8 --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWBeZeroMatcher.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Matchers/KWBeZeroMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWBeforeAllNode.h b/Pods/Headers/Public/Kiwi/KWBeforeAllNode.h new file mode 120000 index 0000000..4d5a8e2 --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWBeforeAllNode.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Nodes/KWBeforeAllNode.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWBeforeEachNode.h b/Pods/Headers/Public/Kiwi/KWBeforeEachNode.h new file mode 120000 index 0000000..fccc14c --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWBeforeEachNode.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Nodes/KWBeforeEachNode.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWBlock.h b/Pods/Headers/Public/Kiwi/KWBlock.h new file mode 120000 index 0000000..56d2ae6 --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWBlock.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KWBlock.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWBlockNode.h b/Pods/Headers/Public/Kiwi/KWBlockNode.h new file mode 120000 index 0000000..bc56278 --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWBlockNode.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Nodes/KWBlockNode.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWBlockRaiseMatcher.h b/Pods/Headers/Public/Kiwi/KWBlockRaiseMatcher.h new file mode 120000 index 0000000..0cb1562 --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWBlockRaiseMatcher.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Matchers/KWBlockRaiseMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWCallSite.h b/Pods/Headers/Public/Kiwi/KWCallSite.h new file mode 120000 index 0000000..a10e1f9 --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWCallSite.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KWCallSite.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWCaptureSpy.h b/Pods/Headers/Public/Kiwi/KWCaptureSpy.h new file mode 120000 index 0000000..a8db34e --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWCaptureSpy.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KWCaptureSpy.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWChangeMatcher.h b/Pods/Headers/Public/Kiwi/KWChangeMatcher.h new file mode 120000 index 0000000..b4f8a1d --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWChangeMatcher.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Matchers/KWChangeMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWConformToProtocolMatcher.h b/Pods/Headers/Public/Kiwi/KWConformToProtocolMatcher.h new file mode 120000 index 0000000..593c408 --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWConformToProtocolMatcher.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Matchers/KWConformToProtocolMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWContainMatcher.h b/Pods/Headers/Public/Kiwi/KWContainMatcher.h new file mode 120000 index 0000000..a5b19ea --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWContainMatcher.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Matchers/KWContainMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWContainStringMatcher.h b/Pods/Headers/Public/Kiwi/KWContainStringMatcher.h new file mode 120000 index 0000000..a35f824 --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWContainStringMatcher.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Matchers/KWContainStringMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWContextNode.h b/Pods/Headers/Public/Kiwi/KWContextNode.h new file mode 120000 index 0000000..0094504 --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWContextNode.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Nodes/KWContextNode.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWCountType.h b/Pods/Headers/Public/Kiwi/KWCountType.h new file mode 120000 index 0000000..8085d02 --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWCountType.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KWCountType.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWDeviceInfo.h b/Pods/Headers/Public/Kiwi/KWDeviceInfo.h new file mode 120000 index 0000000..c3a443c --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWDeviceInfo.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KWDeviceInfo.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWEqualMatcher.h b/Pods/Headers/Public/Kiwi/KWEqualMatcher.h new file mode 120000 index 0000000..c8e8824 --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWEqualMatcher.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Matchers/KWEqualMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWExample.h b/Pods/Headers/Public/Kiwi/KWExample.h new file mode 120000 index 0000000..a54de2e --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWExample.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KWExample.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWExampleDelegate.h b/Pods/Headers/Public/Kiwi/KWExampleDelegate.h new file mode 120000 index 0000000..4d0f763 --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWExampleDelegate.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KWExampleDelegate.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWExampleNode.h b/Pods/Headers/Public/Kiwi/KWExampleNode.h new file mode 120000 index 0000000..df62cd4 --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWExampleNode.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Nodes/KWExampleNode.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWExampleNodeVisitor.h b/Pods/Headers/Public/Kiwi/KWExampleNodeVisitor.h new file mode 120000 index 0000000..2452186 --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWExampleNodeVisitor.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KWExampleNodeVisitor.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWExampleSuite.h b/Pods/Headers/Public/Kiwi/KWExampleSuite.h new file mode 120000 index 0000000..c4075cf --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWExampleSuite.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KWExampleSuite.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWExampleSuiteBuilder.h b/Pods/Headers/Public/Kiwi/KWExampleSuiteBuilder.h new file mode 120000 index 0000000..60bd385 --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWExampleSuiteBuilder.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KWExampleSuiteBuilder.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWExistVerifier.h b/Pods/Headers/Public/Kiwi/KWExistVerifier.h new file mode 120000 index 0000000..a0c1eb8 --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWExistVerifier.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Verifiers/KWExistVerifier.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWExpectationType.h b/Pods/Headers/Public/Kiwi/KWExpectationType.h new file mode 120000 index 0000000..d517aff --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWExpectationType.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KWExpectationType.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWFailure.h b/Pods/Headers/Public/Kiwi/KWFailure.h new file mode 120000 index 0000000..2689b98 --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWFailure.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KWFailure.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWFormatter.h b/Pods/Headers/Public/Kiwi/KWFormatter.h new file mode 120000 index 0000000..048c515 --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWFormatter.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KWFormatter.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWFutureObject.h b/Pods/Headers/Public/Kiwi/KWFutureObject.h new file mode 120000 index 0000000..5b5d5db --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWFutureObject.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KWFutureObject.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWGenericMatchEvaluator.h b/Pods/Headers/Public/Kiwi/KWGenericMatchEvaluator.h new file mode 120000 index 0000000..253040a --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWGenericMatchEvaluator.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Matchers/KWGenericMatchEvaluator.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWGenericMatcher.h b/Pods/Headers/Public/Kiwi/KWGenericMatcher.h new file mode 120000 index 0000000..865f922 --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWGenericMatcher.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Matchers/KWGenericMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWGenericMatchingAdditions.h b/Pods/Headers/Public/Kiwi/KWGenericMatchingAdditions.h new file mode 120000 index 0000000..8a33647 --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWGenericMatchingAdditions.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Matchers/KWGenericMatchingAdditions.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWHaveMatcher.h b/Pods/Headers/Public/Kiwi/KWHaveMatcher.h new file mode 120000 index 0000000..e1c3aa5 --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWHaveMatcher.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Matchers/KWHaveMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWHaveValueMatcher.h b/Pods/Headers/Public/Kiwi/KWHaveValueMatcher.h new file mode 120000 index 0000000..7eaadc2 --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWHaveValueMatcher.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Matchers/KWHaveValueMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWInequalityMatcher.h b/Pods/Headers/Public/Kiwi/KWInequalityMatcher.h new file mode 120000 index 0000000..88b6d4f --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWInequalityMatcher.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Matchers/KWInequalityMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWIntercept.h b/Pods/Headers/Public/Kiwi/KWIntercept.h new file mode 120000 index 0000000..a5520c5 --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWIntercept.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Stubbing/KWIntercept.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWInvocationCapturer.h b/Pods/Headers/Public/Kiwi/KWInvocationCapturer.h new file mode 120000 index 0000000..493a954 --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWInvocationCapturer.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KWInvocationCapturer.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWItNode.h b/Pods/Headers/Public/Kiwi/KWItNode.h new file mode 120000 index 0000000..65394c3 --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWItNode.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Nodes/KWItNode.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWLet.h b/Pods/Headers/Public/Kiwi/KWLet.h new file mode 120000 index 0000000..eaa3e21 --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWLet.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KWLet.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWLetNode.h b/Pods/Headers/Public/Kiwi/KWLetNode.h new file mode 120000 index 0000000..3826b26 --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWLetNode.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Nodes/KWLetNode.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWMatchVerifier.h b/Pods/Headers/Public/Kiwi/KWMatchVerifier.h new file mode 120000 index 0000000..3cc1e00 --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWMatchVerifier.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Verifiers/KWMatchVerifier.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWMatcher.h b/Pods/Headers/Public/Kiwi/KWMatcher.h new file mode 120000 index 0000000..b2c279a --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWMatcher.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KWMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWMatcherFactory.h b/Pods/Headers/Public/Kiwi/KWMatcherFactory.h new file mode 120000 index 0000000..29678fb --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWMatcherFactory.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KWMatcherFactory.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWMatchers.h b/Pods/Headers/Public/Kiwi/KWMatchers.h new file mode 120000 index 0000000..8276cf6 --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWMatchers.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KWMatchers.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWMatching.h b/Pods/Headers/Public/Kiwi/KWMatching.h new file mode 120000 index 0000000..218263e --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWMatching.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KWMatching.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWMessagePattern.h b/Pods/Headers/Public/Kiwi/KWMessagePattern.h new file mode 120000 index 0000000..0372a51 --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWMessagePattern.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KWMessagePattern.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWMessageSpying.h b/Pods/Headers/Public/Kiwi/KWMessageSpying.h new file mode 120000 index 0000000..031408b --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWMessageSpying.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KWMessageSpying.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWMessageTracker.h b/Pods/Headers/Public/Kiwi/KWMessageTracker.h new file mode 120000 index 0000000..7d115f7 --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWMessageTracker.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KWMessageTracker.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWMock.h b/Pods/Headers/Public/Kiwi/KWMock.h new file mode 120000 index 0000000..022af92 --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWMock.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Mocking/KWMock.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWNilMatcher.h b/Pods/Headers/Public/Kiwi/KWNilMatcher.h new file mode 120000 index 0000000..6fd7ad2 --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWNilMatcher.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Matchers/KWNilMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWNotificationMatcher.h b/Pods/Headers/Public/Kiwi/KWNotificationMatcher.h new file mode 120000 index 0000000..3df422a --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWNotificationMatcher.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Matchers/KWNotificationMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWNull.h b/Pods/Headers/Public/Kiwi/KWNull.h new file mode 120000 index 0000000..c579730 --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWNull.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KWNull.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWObjCUtilities.h b/Pods/Headers/Public/Kiwi/KWObjCUtilities.h new file mode 120000 index 0000000..d1f30e1 --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWObjCUtilities.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KWObjCUtilities.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWPendingNode.h b/Pods/Headers/Public/Kiwi/KWPendingNode.h new file mode 120000 index 0000000..c8c7abc --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWPendingNode.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Nodes/KWPendingNode.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWProbe.h b/Pods/Headers/Public/Kiwi/KWProbe.h new file mode 120000 index 0000000..4a6ceaf --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWProbe.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KWProbe.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWProbePoller.h b/Pods/Headers/Public/Kiwi/KWProbePoller.h new file mode 120000 index 0000000..f8df179 --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWProbePoller.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KWProbePoller.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWReceiveMatcher.h b/Pods/Headers/Public/Kiwi/KWReceiveMatcher.h new file mode 120000 index 0000000..a727a53 --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWReceiveMatcher.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Matchers/KWReceiveMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWRegisterMatchersNode.h b/Pods/Headers/Public/Kiwi/KWRegisterMatchersNode.h new file mode 120000 index 0000000..f0a1dcd --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWRegisterMatchersNode.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Nodes/KWRegisterMatchersNode.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWRegularExpressionPatternMatcher.h b/Pods/Headers/Public/Kiwi/KWRegularExpressionPatternMatcher.h new file mode 120000 index 0000000..776f719 --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWRegularExpressionPatternMatcher.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Matchers/KWRegularExpressionPatternMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWReporting.h b/Pods/Headers/Public/Kiwi/KWReporting.h new file mode 120000 index 0000000..cb55a02 --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWReporting.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KWReporting.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWRespondToSelectorMatcher.h b/Pods/Headers/Public/Kiwi/KWRespondToSelectorMatcher.h new file mode 120000 index 0000000..9f44022 --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWRespondToSelectorMatcher.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Matchers/KWRespondToSelectorMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWSpec.h b/Pods/Headers/Public/Kiwi/KWSpec.h new file mode 120000 index 0000000..6d3c677 --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWSpec.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KWSpec.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWStringContainsMatcher.h b/Pods/Headers/Public/Kiwi/KWStringContainsMatcher.h new file mode 120000 index 0000000..617a623 --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWStringContainsMatcher.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Matchers/KWStringContainsMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWStringPrefixMatcher.h b/Pods/Headers/Public/Kiwi/KWStringPrefixMatcher.h new file mode 120000 index 0000000..3f4ff3b --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWStringPrefixMatcher.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Matchers/KWStringPrefixMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWStringUtilities.h b/Pods/Headers/Public/Kiwi/KWStringUtilities.h new file mode 120000 index 0000000..76c1a3c --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWStringUtilities.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KWStringUtilities.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWStub.h b/Pods/Headers/Public/Kiwi/KWStub.h new file mode 120000 index 0000000..5193213 --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWStub.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Stubbing/KWStub.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWSuiteConfigurationBase.h b/Pods/Headers/Public/Kiwi/KWSuiteConfigurationBase.h new file mode 120000 index 0000000..1c4e45b --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWSuiteConfigurationBase.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Config/KWSuiteConfigurationBase.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWSymbolicator.h b/Pods/Headers/Public/Kiwi/KWSymbolicator.h new file mode 120000 index 0000000..4d43085 --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWSymbolicator.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KWSymbolicator.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWUserDefinedMatcher.h b/Pods/Headers/Public/Kiwi/KWUserDefinedMatcher.h new file mode 120000 index 0000000..0dac6b3 --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWUserDefinedMatcher.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Matchers/KWUserDefinedMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWValue.h b/Pods/Headers/Public/Kiwi/KWValue.h new file mode 120000 index 0000000..0e28e06 --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWValue.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KWValue.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWVerifying.h b/Pods/Headers/Public/Kiwi/KWVerifying.h new file mode 120000 index 0000000..5724e73 --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWVerifying.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Verifiers/KWVerifying.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWWorkarounds.h b/Pods/Headers/Public/Kiwi/KWWorkarounds.h new file mode 120000 index 0000000..d2033a1 --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KWWorkarounds.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KWWorkarounds.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/Kiwi.h b/Pods/Headers/Public/Kiwi/Kiwi.h new file mode 120000 index 0000000..a665ef2 --- /dev/null +++ b/Pods/Headers/Public/Kiwi/Kiwi.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/Kiwi.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KiwiBlockMacros.h b/Pods/Headers/Public/Kiwi/KiwiBlockMacros.h new file mode 120000 index 0000000..b61d992 --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KiwiBlockMacros.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KiwiBlockMacros.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KiwiConfiguration.h b/Pods/Headers/Public/Kiwi/KiwiConfiguration.h new file mode 120000 index 0000000..b051eaa --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KiwiConfiguration.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KiwiConfiguration.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KiwiMacros.h b/Pods/Headers/Public/Kiwi/KiwiMacros.h new file mode 120000 index 0000000..bb83872 --- /dev/null +++ b/Pods/Headers/Public/Kiwi/KiwiMacros.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/KiwiMacros.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/NSInvocation+KiwiAdditions.h b/Pods/Headers/Public/Kiwi/NSInvocation+KiwiAdditions.h new file mode 120000 index 0000000..95c446d --- /dev/null +++ b/Pods/Headers/Public/Kiwi/NSInvocation+KiwiAdditions.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/NSInvocation+KiwiAdditions.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/NSInvocation+OCMAdditions.h b/Pods/Headers/Public/Kiwi/NSInvocation+OCMAdditions.h new file mode 120000 index 0000000..df17ca4 --- /dev/null +++ b/Pods/Headers/Public/Kiwi/NSInvocation+OCMAdditions.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/NSInvocation+OCMAdditions.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/NSMethodSignature+KiwiAdditions.h b/Pods/Headers/Public/Kiwi/NSMethodSignature+KiwiAdditions.h new file mode 120000 index 0000000..7d21a1a --- /dev/null +++ b/Pods/Headers/Public/Kiwi/NSMethodSignature+KiwiAdditions.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/NSMethodSignature+KiwiAdditions.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/NSNumber+KiwiAdditions.h b/Pods/Headers/Public/Kiwi/NSNumber+KiwiAdditions.h new file mode 120000 index 0000000..a7fcdd7 --- /dev/null +++ b/Pods/Headers/Public/Kiwi/NSNumber+KiwiAdditions.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/NSNumber+KiwiAdditions.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/NSObject+KiwiMockAdditions.h b/Pods/Headers/Public/Kiwi/NSObject+KiwiMockAdditions.h new file mode 120000 index 0000000..c5b6237 --- /dev/null +++ b/Pods/Headers/Public/Kiwi/NSObject+KiwiMockAdditions.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Mocking/NSObject+KiwiMockAdditions.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/NSObject+KiwiSpyAdditions.h b/Pods/Headers/Public/Kiwi/NSObject+KiwiSpyAdditions.h new file mode 120000 index 0000000..82594f1 --- /dev/null +++ b/Pods/Headers/Public/Kiwi/NSObject+KiwiSpyAdditions.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/NSObject+KiwiSpyAdditions.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/NSObject+KiwiStubAdditions.h b/Pods/Headers/Public/Kiwi/NSObject+KiwiStubAdditions.h new file mode 120000 index 0000000..29e7521 --- /dev/null +++ b/Pods/Headers/Public/Kiwi/NSObject+KiwiStubAdditions.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Stubbing/NSObject+KiwiStubAdditions.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/NSObject+KiwiVerifierAdditions.h b/Pods/Headers/Public/Kiwi/NSObject+KiwiVerifierAdditions.h new file mode 120000 index 0000000..f08d30f --- /dev/null +++ b/Pods/Headers/Public/Kiwi/NSObject+KiwiVerifierAdditions.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/NSObject+KiwiVerifierAdditions.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/NSProxy+KiwiVerifierAdditions.h b/Pods/Headers/Public/Kiwi/NSProxy+KiwiVerifierAdditions.h new file mode 120000 index 0000000..3e9e83e --- /dev/null +++ b/Pods/Headers/Public/Kiwi/NSProxy+KiwiVerifierAdditions.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/NSProxy+KiwiVerifierAdditions.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/NSValue+KiwiAdditions.h b/Pods/Headers/Public/Kiwi/NSValue+KiwiAdditions.h new file mode 120000 index 0000000..d2a5609 --- /dev/null +++ b/Pods/Headers/Public/Kiwi/NSValue+KiwiAdditions.h @@ -0,0 +1 @@ +../../../Kiwi/Classes/Core/NSValue+KiwiAdditions.h \ No newline at end of file diff --git a/Pods/Headers/Public/TransitionKit/TKEvent.h b/Pods/Headers/Public/TransitionKit/TKEvent.h new file mode 120000 index 0000000..3637d73 --- /dev/null +++ b/Pods/Headers/Public/TransitionKit/TKEvent.h @@ -0,0 +1 @@ +../../../../Code/TKEvent.h \ No newline at end of file diff --git a/Pods/Headers/Public/TransitionKit/TKState.h b/Pods/Headers/Public/TransitionKit/TKState.h new file mode 120000 index 0000000..81dd874 --- /dev/null +++ b/Pods/Headers/Public/TransitionKit/TKState.h @@ -0,0 +1 @@ +../../../../Code/TKState.h \ No newline at end of file diff --git a/Pods/Headers/Public/TransitionKit/TKStateMachine.h b/Pods/Headers/Public/TransitionKit/TKStateMachine.h new file mode 120000 index 0000000..5f5947c --- /dev/null +++ b/Pods/Headers/Public/TransitionKit/TKStateMachine.h @@ -0,0 +1 @@ +../../../../Code/TKStateMachine.h \ No newline at end of file diff --git a/Pods/Headers/Public/TransitionKit/TKTransition.h b/Pods/Headers/Public/TransitionKit/TKTransition.h new file mode 120000 index 0000000..34b91fc --- /dev/null +++ b/Pods/Headers/Public/TransitionKit/TKTransition.h @@ -0,0 +1 @@ +../../../../Code/TKTransition.h \ No newline at end of file diff --git a/Pods/Headers/Public/TransitionKit/TransitionKit.h b/Pods/Headers/Public/TransitionKit/TransitionKit.h new file mode 120000 index 0000000..7eee33b --- /dev/null +++ b/Pods/Headers/Public/TransitionKit/TransitionKit.h @@ -0,0 +1 @@ +../../../../Code/TransitionKit.h \ No newline at end of file diff --git a/Pods/Kiwi/Classes/Config/KWAllTestsSuite.m b/Pods/Kiwi/Classes/Config/KWAllTestsSuite.m new file mode 100644 index 0000000..016b71a --- /dev/null +++ b/Pods/Kiwi/Classes/Config/KWAllTestsSuite.m @@ -0,0 +1,51 @@ +// +// XCTestSuite+KWConfiguration.m +// Kiwi +// +// Created by Adam Sharp on 1/07/2014. +// Copyright (c) 2014 Allen Ding. All rights reserved. +// + +#import +#import +#import "KWSuiteConfigurationBase.h" + +@interface _KWAllTestsSuite : XCTestSuite +@end + +@implementation _KWAllTestsSuite + +- (void)setUp { + [super setUp]; + [[KWSuiteConfigurationBase defaultConfiguration] setUp]; +} + +- (void)tearDown { + [[KWSuiteConfigurationBase defaultConfiguration] tearDown]; + [super tearDown]; +} + +@end + +@interface XCTestSuite (KWConfiguration) +@end + +@implementation XCTestSuite (KWConfiguration) + ++ (void)load { + Method testSuiteWithName = class_getClassMethod(self, @selector(testSuiteWithName:)); + Method kiwi_testSuiteWithName = class_getClassMethod(self, @selector(kiwi_testSuiteWithName:)); + method_exchangeImplementations(testSuiteWithName, kiwi_testSuiteWithName); +} + ++ (id)kiwi_testSuiteWithName:(NSString *)aName { + id suite = [self kiwi_testSuiteWithName:aName]; + if ([aName isEqualToString:@"All tests"]) { + if ([suite isMemberOfClass:[XCTestSuite class]]) { + object_setClass(suite, [_KWAllTestsSuite class]); + } + } + return suite; +} + +@end diff --git a/Pods/Kiwi/Classes/Config/KWSuiteConfigurationBase.h b/Pods/Kiwi/Classes/Config/KWSuiteConfigurationBase.h new file mode 100644 index 0000000..3a0fb01 --- /dev/null +++ b/Pods/Kiwi/Classes/Config/KWSuiteConfigurationBase.h @@ -0,0 +1,26 @@ +// +// KWSuiteConfigurationBase.h +// Kiwi +// +// Created by Adam Sharp on 14/12/2013. +// Copyright (c) 2013 Allen Ding. All rights reserved. +// + +#import + +@interface KWSuiteConfigurationBase : NSObject + ++ (instancetype)defaultConfiguration; + +- (void)configureSuite; + +- (void)setUp; +- (void)tearDown; + +@property (nonatomic, copy) void (^beforeAllSpecsBlock)(void); +@property (nonatomic, copy) void (^afterAllSpecsBlock)(void); + +@end + +void beforeAllSpecs(void (^block)(void)); +void afterAllSpecs(void (^block)(void)); diff --git a/Pods/Kiwi/Classes/Config/KWSuiteConfigurationBase.m b/Pods/Kiwi/Classes/Config/KWSuiteConfigurationBase.m new file mode 100644 index 0000000..85b53e6 --- /dev/null +++ b/Pods/Kiwi/Classes/Config/KWSuiteConfigurationBase.m @@ -0,0 +1,77 @@ +// +// KWSuiteConfigurationBase.m +// Kiwi +// +// Created by Adam Sharp on 14/12/2013. +// Copyright (c) 2013 Allen Ding. All rights reserved. +// + +#import "KWSuiteConfigurationBase.h" +#import "KWSpec.h" + +#define INVOKE(block) if((block)) { (block)(); } + +void beforeEachSpec(void (^block)(void)); +void afterEachSpec(void (^block)(void)); + +@interface KWSuiteConfigurationBase () +@property (nonatomic, copy) void (^beforeEachSpecBlock)(void); +@property (nonatomic, copy) void (^afterEachSpecBlock)(void); +@end + +@implementation KWSuiteConfigurationBase + ++ (instancetype)defaultConfiguration +{ + static Class configClass; + static KWSuiteConfigurationBase *defaultConfiguration; + + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + configClass = NSClassFromString(@"KWSuiteConfiguration"); + if (configClass && [configClass isSubclassOfClass:[self class]]) { + defaultConfiguration = [configClass new]; + } + }); + + return defaultConfiguration; +} + +- (void)configureSuite {} + +- (void)setUp { + [self configureSuite]; + INVOKE(self.beforeAllSpecsBlock); +} + +- (void)tearDown { + INVOKE(self.afterAllSpecsBlock); +} + +#pragma mark - Unused methods + +- (void)setUpSpec:(KWSpec *)spec { + INVOKE(self.beforeEachSpecBlock); +} + +- (void)tearDownSpec:(KWSpec *)spec { + INVOKE(self.afterEachSpecBlock); +} + +@end + +void beforeAllSpecs(void (^block)(void)) { + [[KWSuiteConfigurationBase defaultConfiguration] setBeforeAllSpecsBlock:block]; +} + +void afterAllSpecs(void (^block)(void)) { + [[KWSuiteConfigurationBase defaultConfiguration] setAfterAllSpecsBlock:block]; +} + +void beforeEachSpec(void (^block)(void)) { + [[KWSuiteConfigurationBase defaultConfiguration] setBeforeEachSpecBlock:block]; +} + +void afterEachSpec(void (^block)(void)) { + [[KWSuiteConfigurationBase defaultConfiguration] setAfterEachSpecBlock:block]; +} diff --git a/Pods/Kiwi/Classes/Core/KWAny.h b/Pods/Kiwi/Classes/Core/KWAny.h new file mode 100644 index 0000000..0e58e60 --- /dev/null +++ b/Pods/Kiwi/Classes/Core/KWAny.h @@ -0,0 +1,17 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KiwiConfiguration.h" + +// KWAny exists to determine arguments in a message pattern that should +// match any value. Used for pointers as well as for scalar values. +@interface KWAny : NSObject + +#pragma mark - Initializing + ++ (id)any; + +@end diff --git a/Pods/Kiwi/Classes/Core/KWAny.m b/Pods/Kiwi/Classes/Core/KWAny.m new file mode 100644 index 0000000..880ae29 --- /dev/null +++ b/Pods/Kiwi/Classes/Core/KWAny.m @@ -0,0 +1,23 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KWAny.h" + +@implementation KWAny + +#pragma mark - Initializing + ++ (id)any { + static KWAny *sharedAny = nil; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + sharedAny = [self new]; + + }); + return sharedAny; +} + +@end diff --git a/Pods/Kiwi/Classes/Core/KWBlock.h b/Pods/Kiwi/Classes/Core/KWBlock.h new file mode 100644 index 0000000..3a14764 --- /dev/null +++ b/Pods/Kiwi/Classes/Core/KWBlock.h @@ -0,0 +1,25 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KiwiConfiguration.h" + +@interface KWBlock : NSObject + +#pragma mark - Initializing +- (id)initWithBlock:(void (^)(void))block; + ++ (id)blockWithBlock:(void (^)(void))block; + +#pragma mark - Calling Blocks + +- (void)call; + +@end + +#pragma mark - Creating Blocks + +KWBlock *theBlock(void (^block)(void)); +KWBlock *lambda(void (^block)(void)); diff --git a/Pods/Kiwi/Classes/Core/KWBlock.m b/Pods/Kiwi/Classes/Core/KWBlock.m new file mode 100644 index 0000000..39b6b8d --- /dev/null +++ b/Pods/Kiwi/Classes/Core/KWBlock.m @@ -0,0 +1,50 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KWBlock.h" + +@interface KWBlock() + +#pragma mark - Properties + +@property (nonatomic, readonly, copy) void (^block)(void); + +@end + +@implementation KWBlock + +#pragma mark - Initializing + +- (id)initWithBlock:(void (^)(void))block { + self = [super init]; + if (self) { + _block = [block copy]; + } + + return self; +} + ++ (id)blockWithBlock:(void (^)(void))aBlock { + return [[self alloc] initWithBlock:aBlock]; +} + +#pragma mark - Calling Blocks + +- (void)call { + self.block(); +} + +@end + +#pragma mark - Creating Blocks + +KWBlock *theBlock(void (^block)(void)) { + return lambda(block); +} + +KWBlock *lambda(void (^block)(void)) { + return [KWBlock blockWithBlock:block]; +} diff --git a/Pods/Kiwi/Classes/Core/KWCallSite.h b/Pods/Kiwi/Classes/Core/KWCallSite.h new file mode 100644 index 0000000..fdb7590 --- /dev/null +++ b/Pods/Kiwi/Classes/Core/KWCallSite.h @@ -0,0 +1,26 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KiwiConfiguration.h" + +@interface KWCallSite : NSObject + +#pragma mark - Initializing + +- (id)initWithFilename:(NSString *)aFilename lineNumber:(NSUInteger)aLineNumber; + ++ (id)callSiteWithFilename:(NSString *)aFilename lineNumber:(NSUInteger)aLineNumber; + +#pragma mark - Properties + +@property (nonatomic, readonly, copy) NSString *filename; +@property (nonatomic, readonly) NSUInteger lineNumber; + +#pragma mark - Identifying and Comparing + +- (BOOL)isEqualToCallSite:(KWCallSite *)aCallSite; + +@end diff --git a/Pods/Kiwi/Classes/Core/KWCallSite.m b/Pods/Kiwi/Classes/Core/KWCallSite.m new file mode 100644 index 0000000..0ab6115 --- /dev/null +++ b/Pods/Kiwi/Classes/Core/KWCallSite.m @@ -0,0 +1,44 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KWCallSite.h" + +@implementation KWCallSite + +#pragma mark - Initializing + +- (id)initWithFilename:(NSString *)aFilename lineNumber:(NSUInteger)aLineNumber { + self = [super init]; + if (self) { + _filename = [aFilename copy]; + _lineNumber = aLineNumber; + } + + return self; +} + ++ (id)callSiteWithFilename:(NSString *)aFilename lineNumber:(NSUInteger)aLineNumber { + return [[self alloc] initWithFilename:aFilename lineNumber:aLineNumber]; +} + +#pragma mark - Identifying and Comparing + +- (NSUInteger)hash { + return [[NSString stringWithFormat:@"%@%u", self.filename, (unsigned)self.lineNumber] hash]; +} + +- (BOOL)isEqual:(id)anObject { + if (![anObject isKindOfClass:[KWCallSite class]]) + return NO; + + return [self isEqualToCallSite:anObject]; +} + +- (BOOL)isEqualToCallSite:(KWCallSite *)aCallSite { + return [self.filename isEqualToString:aCallSite.filename] && (self.lineNumber == aCallSite.lineNumber); +} + +@end diff --git a/Pods/Kiwi/Classes/Core/KWCaptureSpy.h b/Pods/Kiwi/Classes/Core/KWCaptureSpy.h new file mode 100644 index 0000000..de5b657 --- /dev/null +++ b/Pods/Kiwi/Classes/Core/KWCaptureSpy.h @@ -0,0 +1,9 @@ +#import "KWMessageSpying.h" + +@interface KWCaptureSpy : NSObject + +@property (nonatomic, strong, readonly) id argument; + +- (id)initWithArgumentIndex:(NSUInteger)index; + +@end diff --git a/Pods/Kiwi/Classes/Core/KWCaptureSpy.m b/Pods/Kiwi/Classes/Core/KWCaptureSpy.m new file mode 100644 index 0000000..a90af61 --- /dev/null +++ b/Pods/Kiwi/Classes/Core/KWCaptureSpy.m @@ -0,0 +1,64 @@ +#import "KWCaptureSpy.h" + +#import "KWObjCUtilities.h" +#import "KWNull.h" +#import "KWValue.h" +#import "NSInvocation+KiwiAdditions.h" +#import "NSMethodSignature+KiwiAdditions.h" + +@interface KWCaptureSpy() + +@property (nonatomic, strong) id argument; + +@end + +@implementation KWCaptureSpy { + NSUInteger _argumentIndex; +} + +- (id)initWithArgumentIndex:(NSUInteger)index { + self = [super init]; + if (self) { + _argumentIndex = index; + } + return self; +} + +- (id)argument { + if (!_argument) { + @throw [NSException exceptionWithName:NSInternalInconsistencyException reason:@"Argument requested has yet to be captured." userInfo:nil]; + } + + if(_argument == [KWNull null]) { + return nil; + } + else { + return _argument; + } +} + +- (void)object:(id)anObject didReceiveInvocation:(NSInvocation *)anInvocation { + if (!_argument) { + NSMethodSignature *signature = [anInvocation methodSignature]; + const char *objCType = [signature messageArgumentTypeAtIndex:_argumentIndex]; + if (KWObjCTypeIsObject(objCType) || KWObjCTypeIsClass(objCType)) { + void* argumentBuffer = NULL; + [anInvocation getMessageArgument:&argumentBuffer atIndex:_argumentIndex]; + id argument = (__bridge id)argumentBuffer; + if (KWObjCTypeIsBlock(objCType)) { + _argument = [argument copy]; + } else { + if(argument == nil) { + _argument = [KWNull null]; + } else { + _argument = argument; + } + } + } else { + NSData *data = [anInvocation messageArgumentDataAtIndex:_argumentIndex]; + _argument = [KWValue valueWithBytes:[data bytes] objCType:objCType]; + } + } +} + +@end diff --git a/Pods/Kiwi/Classes/Core/KWCountType.h b/Pods/Kiwi/Classes/Core/KWCountType.h new file mode 100644 index 0000000..2ec5a66 --- /dev/null +++ b/Pods/Kiwi/Classes/Core/KWCountType.h @@ -0,0 +1,15 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KiwiConfiguration.h" + +enum { + KWCountTypeExact, + KWCountTypeAtLeast, + KWCountTypeAtMost +}; + +typedef NSUInteger KWCountType; diff --git a/Pods/Kiwi/Classes/Core/KWDeviceInfo.h b/Pods/Kiwi/Classes/Core/KWDeviceInfo.h new file mode 100644 index 0000000..7e0ca36 --- /dev/null +++ b/Pods/Kiwi/Classes/Core/KWDeviceInfo.h @@ -0,0 +1,16 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KiwiConfiguration.h" + +@interface KWDeviceInfo : NSObject + +#pragma mark - Getting the Device Type + ++ (BOOL)isSimulator; ++ (BOOL)isPhysical; + +@end diff --git a/Pods/Kiwi/Classes/Core/KWDeviceInfo.m b/Pods/Kiwi/Classes/Core/KWDeviceInfo.m new file mode 100644 index 0000000..3abb1ab --- /dev/null +++ b/Pods/Kiwi/Classes/Core/KWDeviceInfo.m @@ -0,0 +1,31 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KWDeviceInfo.h" + +#if TARGET_IPHONE_SIMULATOR + +#import + +#endif // #if TARGET_IPHONE_SIMULATOR + +@implementation KWDeviceInfo + +#pragma mark - Getting the Device Type + ++ (BOOL)isSimulator { +#if TARGET_IPHONE_SIMULATOR + return YES; +#else + return NO; +#endif // #if TARGET_IPHONE_SIMULATOR +} + ++ (BOOL)isPhysical { + return ![self isSimulator]; +} + +@end diff --git a/Pods/Kiwi/Classes/Core/KWExample.h b/Pods/Kiwi/Classes/Core/KWExample.h new file mode 100644 index 0000000..3a6fa55 --- /dev/null +++ b/Pods/Kiwi/Classes/Core/KWExample.h @@ -0,0 +1,153 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KiwiConfiguration.h" +#import "KWLet.h" +#import "KWBlock.h" +#import "KWVerifying.h" +#import "KWExpectationType.h" +#import "KWExampleNode.h" +#import "KWExampleNodeVisitor.h" +#import "KWReporting.h" +#import "KWExampleDelegate.h" + +@class KWCallSite; +@class KWExampleSuite; +@class KWContextNode; + +@interface KWExample : NSObject + +@property (nonatomic, strong, readonly) NSMutableArray *lastInContexts; +@property (nonatomic, weak) KWExampleSuite *suite; +@property (nonatomic, strong) id unresolvedVerifier; + + +- (id)initWithExampleNode:(id)node; + +#pragma mark - Adding Verifiers + +- (id)addVerifier:(id)aVerifier; +- (id)addExistVerifierWithExpectationType:(KWExpectationType)anExpectationType callSite:(KWCallSite *)aCallSite; +- (id)addMatchVerifierWithExpectationType:(KWExpectationType)anExpectationType callSite:(KWCallSite *)aCallSite; +- (id)addAsyncVerifierWithExpectationType:(KWExpectationType)anExpectationType callSite:(KWCallSite *)aCallSite timeout:(NSTimeInterval)timeout shouldWait:(BOOL)shouldWait; + +#pragma mark - Report failure + +- (void)reportFailure:(KWFailure *)failure; + +#pragma mark - Running + +- (void)runWithDelegate:(id)delegate; + +#pragma mark - Anonymous It Node Descriptions + +- (NSString *)generateDescriptionForAnonymousItNode; + +#pragma mark - Checking if last in context + +- (BOOL)isLastInContext:(KWContextNode *)context; + +#pragma mark - Full description with context + +- (NSString *)descriptionWithContext; + +#pragma mark - Format description as a valid selector + +@property (readonly) NSString *selectorName; + +@end + +#pragma mark - Building Example Groups + +void describe(NSString *aDescription, void (^block)(void)); +void context(NSString *aDescription, void (^block)(void)); +void registerMatchers(NSString *aNamespacePrefix); +void beforeAll(void (^block)(void)); +void afterAll(void (^block)(void)); +void beforeEach(void (^block)(void)); +void afterEach(void (^block)(void)); +void let_(id *anObjectRef, const char *aSymbolName, id (^block)(void)); +void it(NSString *aDescription, void (^block)(void)); +void specify(void (^block)(void)); +void pending_(NSString *aDescription, void (^block)(void)); + +void describeWithCallSite(KWCallSite *aCallSite, NSString *aDescription, void (^block)(void)); +void contextWithCallSite(KWCallSite *aCallSite, NSString *aDescription, void (^block)(void)); +void registerMatchersWithCallSite(KWCallSite *aCallSite, NSString *aNamespacePrefix); +void beforeAllWithCallSite(KWCallSite *aCallSite, void (^block)(void)); +void afterAllWithCallSite(KWCallSite *aCallSite, void (^block)(void)); +void beforeEachWithCallSite(KWCallSite *aCallSite, void (^block)(void)); +void afterEachWithCallSite(KWCallSite *aCallSite, void (^block)(void)); +void letWithCallSite(KWCallSite *aCallSite, id *anObjectRef, NSString *aSymbolName, id (^block)(void)); +void itWithCallSite(KWCallSite *aCallSite, NSString *aDescription, void (^block)(void)); +void pendingWithCallSite(KWCallSite *aCallSite, NSString *aDescription, void (^block)(void)); + +/** + Declares a local helper variable that is re-initialised before each + example with the return value of the provided block. + + You can declare multiple `let` blocks in a context (unlike `beforeEach`, + which can only be used once per context): + + describe(@"multiple let blocks", ^{ + let(subject, ^{ return @"world"; }); + let(greeting, ^{ + return [NSString stringWithFormat:@"Hello, %@!", subject]; + }); + + it(@"allows you to declare multiple variables", ^{ + [[greeting should] equal:@"Hello, world!"]; + }); + }); + + You can also redefine a `let` variable inside a nested context. This + allows for some very useful kinds of code reuse: + + describe(@"greetings in different contexts", ^{ + let(subject, nil); // no subject by default + let(greeting, ^{ + // greeting references subject + return [NSString stringWithFormat:@"Hello, %@!", subject]; + }); + + context(@"greeting the world", ^{ + let(subject, ^{ return @"world"; }); // redefine subject + + specify(^{ + [[greeting should] equal:@"Hello, world!"]; + }); + }); + + context(@"greeting Kiwi", ^{ + let(subject, ^{ return @"Kiwi"; }); // redefine subject + + specify(^{ + [[greeting should] equal:@"Hello, Kiwi!"]; + }); + }); + }); + + @param name A name for the local variable + @param block The block to evaluate + + @note `let` blocks are evaluated before each example, and also prior to + evaluating the `beforeEach` block. You should not reference a `let` + variable in a `beforeAll` block, as its value is undefined at this point. +*/ +void let(id name, id (^block)(void)); // coax Xcode into autocompleting +#define let(var, ...) \ + __block __typeof__((__VA_ARGS__)()) var = nil; \ + let_(KW_LET_REF(var), #var, __VA_ARGS__) + +#define PRAGMA(x) _Pragma (#x) +#define PENDING(x) PRAGMA(message ( "Pending: " #x )) + +#define pending(title, args...) \ +PENDING(title) \ +pending_(title, ## args) +#define xit(title, args...) \ +PENDING(title) \ +pending_(title, ## args) diff --git a/Pods/Kiwi/Classes/Core/KWExample.m b/Pods/Kiwi/Classes/Core/KWExample.m new file mode 100644 index 0000000..95a1879 --- /dev/null +++ b/Pods/Kiwi/Classes/Core/KWExample.m @@ -0,0 +1,428 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KWExample.h" +#import "KWExampleSuiteBuilder.h" +#import "KWContextNode.h" +#import "KWMatcherFactory.h" +#import "KWExistVerifier.h" +#import "KWMatchVerifier.h" +#import "KWAsyncVerifier.h" +#import "KWFailure.h" +#import "KWContextNode.h" +#import "KWBeforeEachNode.h" +#import "KWBeforeAllNode.h" +#import "KWLetNode.h" +#import "KWItNode.h" +#import "KWAfterEachNode.h" +#import "KWAfterAllNode.h" +#import "KWPendingNode.h" +#import "KWRegisterMatchersNode.h" +#import "KWWorkarounds.h" +#import "KWIntercept.h" +#import "KWExampleNode.h" +#import "KWExampleSuite.h" +#import "KWCallSite.h" +#import "KWSymbolicator.h" + +@interface KWExample () + +@property (nonatomic, readonly) NSMutableArray *verifiers; +@property (nonatomic, readonly) KWMatcherFactory *matcherFactory; +@property (nonatomic, weak) id delegate; +@property (nonatomic, assign) BOOL didNotFinish; +@property (nonatomic, strong) id exampleNode; +@property (nonatomic, assign) BOOL passed; + +- (void)reportResultForExampleNodeWithLabel:(NSString *)label; + +@end + +@implementation KWExample + +@synthesize selectorName = _selectorName; + +- (id)initWithExampleNode:(id)node { + self = [super init]; + if (self) { + _exampleNode = node; + _matcherFactory = [[KWMatcherFactory alloc] init]; + _verifiers = [[NSMutableArray alloc] init]; + _lastInContexts = [[NSMutableArray alloc] init]; + _passed = YES; + } + return self; +} + + +- (BOOL)isLastInContext:(KWContextNode *)context { + for (KWContextNode *contextWhereItLast in self.lastInContexts) { + if (context == contextWhereItLast) { + return YES; + } + } + return NO; +} + +- (NSString *)description { + return [NSString stringWithFormat:@"", self.exampleNode.description]; +} + +#pragma mark - Adding Verifiers + +- (id)addVerifier:(id)aVerifier { + if (![self.verifiers containsObject:aVerifier]) + [self.verifiers addObject:aVerifier]; + + return aVerifier; +} + +- (id)addExistVerifierWithExpectationType:(KWExpectationType)anExpectationType callSite:(KWCallSite *)aCallSite { + id verifier = [KWExistVerifier existVerifierWithExpectationType:anExpectationType callSite:aCallSite reporter:self]; + [self addVerifier:verifier]; + return verifier; +} + +- (id)addMatchVerifierWithExpectationType:(KWExpectationType)anExpectationType callSite:(KWCallSite *)aCallSite { + if (self.unresolvedVerifier) { + KWFailure *failure = [KWFailure failureWithCallSite:self.unresolvedVerifier.callSite format:@"expected subject not to be nil"]; + [self reportFailure:failure]; + } + id verifier = [KWMatchVerifier matchVerifierWithExpectationType:anExpectationType callSite:aCallSite matcherFactory:self.matcherFactory reporter:self]; + [self addVerifier:verifier]; + self.unresolvedVerifier = verifier; + return verifier; +} + +- (id)addAsyncVerifierWithExpectationType:(KWExpectationType)anExpectationType callSite:(KWCallSite *)aCallSite timeout:(NSTimeInterval)timeout shouldWait:(BOOL)shouldWait { + id verifier = [KWAsyncVerifier asyncVerifierWithExpectationType:anExpectationType callSite:aCallSite matcherFactory:self.matcherFactory reporter:self probeTimeout:timeout shouldWait: shouldWait]; + [self addVerifier:verifier]; + return verifier; +} + +#pragma mark - Running examples + +- (void)runWithDelegate:(id)delegate; { + self.delegate = delegate; + [self.matcherFactory registerMatcherClassesWithNamespacePrefix:@"KW"]; + [[KWExampleSuiteBuilder sharedExampleSuiteBuilder] setCurrentExample:self]; + [self.exampleNode acceptExampleNodeVisitor:self]; +} + +#pragma mark - Reporting failure + +- (NSString *)descriptionForExampleContext { + NSMutableArray *parts = [NSMutableArray array]; + + for (KWContextNode *context in [[self.exampleNode contextStack] reverseObjectEnumerator]) { + if ([context description] != nil) { + [parts addObject:[[context description] stringByAppendingString:@","]]; + } + } + + return [parts componentsJoinedByString:@" "]; +} + +- (KWFailure *)outputReadyFailureWithFailure:(KWFailure *)aFailure { + NSString *annotatedFailureMessage = [NSString stringWithFormat:@"'%@ %@' [FAILED], %@", + [self descriptionForExampleContext], [self.exampleNode description], + aFailure.message]; + +#if TARGET_IPHONE_SIMULATOR + // \uff1a is the unicode for a fill width colon, as opposed to a regular + // colon character (':'). This escape is performed so that Xcode doesn't + // truncate the error output in the build results window, which is running + // build time specs. + annotatedFailureMessage = [annotatedFailureMessage stringByReplacingOccurrencesOfString:@":" withString:@"\uff1a"]; +#endif // #if TARGET_IPHONE_SIMULATOR + + return [KWFailure failureWithCallSite:aFailure.callSite message:annotatedFailureMessage]; +} + +- (void)reportFailure:(KWFailure *)failure { + self.passed = NO; + [self.delegate example:self didFailWithFailure:[self outputReadyFailureWithFailure:failure]]; +} + +- (void)reportResultForExampleNodeWithLabel:(NSString *)label { + NSLog(@"+ '%@ %@' [%@]", [self descriptionForExampleContext], [self.exampleNode description], label); +} + +#pragma mark - Full description with context + +/** Pending cases will be marked yellow by XCode as not finished, because their description differs for -[SenTestCaseRun start] and -[SenTestCaseRun stop] methods + */ + +- (NSString *)pendingNotFinished { + BOOL reportPending = self.didNotFinish; + self.didNotFinish = YES; + return reportPending ? @"(PENDING)" : @""; +} + +- (NSString *)descriptionWithContext { + NSString *descriptionWithContext = [NSString stringWithFormat:@"%@ %@", + [self descriptionForExampleContext], + [self.exampleNode description] ? [self.exampleNode description] : @""]; + BOOL isPending = [self.exampleNode isKindOfClass:[KWPendingNode class]]; + return isPending ? [descriptionWithContext stringByAppendingString:[self pendingNotFinished]] : descriptionWithContext; +} + +- (NSString *)selectorName { + if (_selectorName) { + return _selectorName; + } + + NSString *name = [self descriptionWithContext]; + + // CamelCase the string + NSArray *words = [name componentsSeparatedByString:@" "]; + name = @""; + for (NSString *word in words) { + if ([word length] < 1) + { + continue; + } + name = [name stringByAppendingString:[[word substringToIndex:1] uppercaseString]]; + name = [name stringByAppendingString:[word substringFromIndex:1]]; + } + + // Replace the commas with underscores to separate the levels of context + name = [name stringByReplacingOccurrencesOfString:@"," withString:@"_"]; + + // Strip out characters not legal in function names + NSError *error = nil; + NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"[^a-zA-Z0-9_]*" options:0 error:&error]; + name = [regex stringByReplacingMatchesInString:name options:0 range:NSMakeRange(0, name.length) withTemplate:@""]; + + // Ensure examples in the same suite have unique selector names + if (self.suite) { + name = [self.suite nextUniqueSelectorName:name]; + } + + return (_selectorName = name); +} + +#pragma mark - Visiting Nodes + +- (void)visitRegisterMatchersNode:(KWRegisterMatchersNode *)aNode { + [self.matcherFactory registerMatcherClassesWithNamespacePrefix:aNode.namespacePrefix]; +} + +- (void)visitBeforeAllNode:(KWBeforeAllNode *)aNode { + if (aNode.block == nil) + return; + + aNode.block(); +} + +- (void)visitAfterAllNode:(KWAfterAllNode *)aNode { + if (aNode.block == nil) + return; + + aNode.block(); +} + +- (void)visitBeforeEachNode:(KWBeforeEachNode *)aNode { + if (aNode.block == nil) + return; + + aNode.block(); +} + +- (void)visitAfterEachNode:(KWAfterEachNode *)aNode { + if (aNode.block == nil) + return; + + aNode.block(); +} + +- (void)visitLetNode:(KWLetNode *)aNode +{ + [aNode evaluateTree]; +} + +- (void)visitItNode:(KWItNode *)aNode { + if (aNode.block == nil || aNode != self.exampleNode) + return; + + aNode.example = self; + + [aNode.context performExample:self withBlock:^{ + + @try { + + aNode.block(); + +#if KW_TARGET_HAS_INVOCATION_EXCEPTION_BUG + NSException *invocationException = KWGetAndClearExceptionFromAcrossInvocationBoundary(); + [invocationException raise]; +#endif // #if KW_TARGET_HAS_INVOCATION_EXCEPTION_BUG + + // Finish verifying and clear + for (id verifier in self.verifiers) { + [verifier exampleWillEnd]; + } + + if (self.unresolvedVerifier) { + KWFailure *failure = [KWFailure failureWithCallSite:self.unresolvedVerifier.callSite format:@"expected subject not to be nil"]; + [self reportFailure:failure]; + } + + } @catch (NSException *exception) { + KWFailure *failure = [KWFailure failureWithCallSite:aNode.callSite format:@"%@ \"%@\" raised", + [exception name], + [exception reason]]; + [self reportFailure:failure]; + } + + if (self.passed) { + [self reportResultForExampleNodeWithLabel:@"PASSED"]; + } + + // Always clear stubs and spies at the end of it blocks + KWClearStubsAndSpies(); + }]; +} + +- (void)visitPendingNode:(KWPendingNode *)aNode { + if (aNode != self.exampleNode) + return; + + [self reportResultForExampleNodeWithLabel:@"PENDING"]; +} + +- (NSString *)generateDescriptionForAnonymousItNode { + // anonymous specify blocks should only have one verifier, but use the first in any case + return [(self.verifiers)[0] descriptionForAnonymousItNode]; +} + +@end + +#pragma mark - Looking up CallSites + +KWCallSite *callSiteWithAddress(long address); +KWCallSite *callSiteAtAddressIfNecessary(long address); + +KWCallSite *callSiteAtAddressIfNecessary(long address){ + BOOL shouldLookup = [[KWExampleSuiteBuilder sharedExampleSuiteBuilder] isFocused] && ![[KWExampleSuiteBuilder sharedExampleSuiteBuilder] foundFocus]; + return shouldLookup ? callSiteWithAddress(address) : nil; +} + +KWCallSite *callSiteWithAddress(long address){ + NSArray *args = @[@"-p", @(getpid()).stringValue, [NSString stringWithFormat:@"%lx", address]]; + NSString *callSite = [NSString stringWithShellCommand:@"/usr/bin/atos" arguments:args]; + + NSString *pattern = @".+\\((.+):([0-9]+)\\)"; + NSError *e; + NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:pattern options:NSRegularExpressionCaseInsensitive error:&e]; + NSArray *res = [regex matchesInString:callSite options:0 range:NSMakeRange(0, callSite.length)]; + + NSString *fileName = nil; + NSInteger lineNumber = 0; + + for (NSTextCheckingResult *ntcr in res) { + fileName = [callSite substringWithRange:[ntcr rangeAtIndex:1]]; + NSString *lineNumberMatch = [callSite substringWithRange:[ntcr rangeAtIndex:2]]; + lineNumber = lineNumberMatch.integerValue; + } + return [KWCallSite callSiteWithFilename:fileName lineNumber:lineNumber]; +} + +#pragma mark - Building Example Groups + +void describe(NSString *aDescription, void (^block)(void)) { + KWCallSite *callSite = callSiteAtAddressIfNecessary(kwCallerAddress()); + describeWithCallSite(callSite, aDescription, block); +} + +void context(NSString *aDescription, void (^block)(void)) { + KWCallSite *callSite = callSiteAtAddressIfNecessary(kwCallerAddress()); + contextWithCallSite(callSite, aDescription, block); +} + +void registerMatchers(NSString *aNamespacePrefix) { + registerMatchersWithCallSite(nil, aNamespacePrefix); +} + +void beforeAll(void (^block)(void)) { + beforeAllWithCallSite(nil, block); +} + +void afterAll(void (^block)(void)) { + afterAllWithCallSite(nil, block); +} + +void beforeEach(void (^block)(void)) { + beforeEachWithCallSite(nil, block); +} + +void afterEach(void (^block)(void)) { + afterEachWithCallSite(nil, block); +} + +void it(NSString *aDescription, void (^block)(void)) { + KWCallSite *callSite = callSiteAtAddressIfNecessary(kwCallerAddress()); + itWithCallSite(callSite, aDescription, block); +} + +void let_(__autoreleasing id *anObjectRef, const char *aSymbolName, id (^block)(void)) +{ + NSString *aDescription = [NSString stringWithUTF8String:aSymbolName]; + letWithCallSite(nil, anObjectRef, aDescription, block); +} + +void specify(void (^block)(void)) +{ + itWithCallSite(nil, nil, block); +} + +void pending_(NSString *aDescription, void (^ignoredBlock)(void)) { + pendingWithCallSite(nil, aDescription, ignoredBlock); +} + +void describeWithCallSite(KWCallSite *aCallSite, NSString *aDescription, void (^block)(void)) { + + contextWithCallSite(aCallSite, aDescription, block); +} + +void contextWithCallSite(KWCallSite *aCallSite, NSString *aDescription, void (^block)(void)) { + [[KWExampleSuiteBuilder sharedExampleSuiteBuilder] pushContextNodeWithCallSite:aCallSite description:aDescription]; + block(); + [[KWExampleSuiteBuilder sharedExampleSuiteBuilder] popContextNode]; +} + +void registerMatchersWithCallSite(KWCallSite *aCallSite, NSString *aNamespacePrefix) { + [[KWExampleSuiteBuilder sharedExampleSuiteBuilder] setRegisterMatchersNodeWithCallSite:aCallSite namespacePrefix:aNamespacePrefix]; +} + +void beforeAllWithCallSite(KWCallSite *aCallSite, void (^block)(void)) { + [[KWExampleSuiteBuilder sharedExampleSuiteBuilder] setBeforeAllNodeWithCallSite:aCallSite block:block]; +} + +void afterAllWithCallSite(KWCallSite *aCallSite, void (^block)(void)) { + [[KWExampleSuiteBuilder sharedExampleSuiteBuilder] setAfterAllNodeWithCallSite:aCallSite block:block]; +} + +void beforeEachWithCallSite(KWCallSite *aCallSite, void (^block)(void)) { + [[KWExampleSuiteBuilder sharedExampleSuiteBuilder] setBeforeEachNodeWithCallSite:aCallSite block:block]; +} + +void afterEachWithCallSite(KWCallSite *aCallSite, void (^block)(void)) { + [[KWExampleSuiteBuilder sharedExampleSuiteBuilder] setAfterEachNodeWithCallSite:aCallSite block:block]; +} + +void letWithCallSite(KWCallSite *aCallSite, __autoreleasing id *anObjectRef, NSString *aSymbolName, id (^block)(void)) +{ + [[KWExampleSuiteBuilder sharedExampleSuiteBuilder] addLetNodeWithCallSite:aCallSite objectRef:anObjectRef symbolName:aSymbolName block:block]; +} + +void itWithCallSite(KWCallSite *aCallSite, NSString *aDescription, void (^block)(void)) { + [[KWExampleSuiteBuilder sharedExampleSuiteBuilder] addItNodeWithCallSite:aCallSite description:aDescription block:block]; +} + +void pendingWithCallSite(KWCallSite *aCallSite, NSString *aDescription, void (^ignoredBlock)(void)) { + [[KWExampleSuiteBuilder sharedExampleSuiteBuilder] addPendingNodeWithCallSite:aCallSite description:aDescription]; +} diff --git a/Pods/Kiwi/Classes/Core/KWExampleDelegate.h b/Pods/Kiwi/Classes/Core/KWExampleDelegate.h new file mode 100644 index 0000000..cdcceab --- /dev/null +++ b/Pods/Kiwi/Classes/Core/KWExampleDelegate.h @@ -0,0 +1,18 @@ +// +// KWExampleGroupDelegate.h +// Kiwi +// +// Created by Luke Redpath on 08/09/2011. +// Copyright 2011 Allen Ding. All rights reserved. +// + +#import + +@class KWExample; +@class KWFailure; + +@protocol KWExampleDelegate + +- (void)example:(KWExample *)example didFailWithFailure:(KWFailure *)failure; + +@end diff --git a/Pods/Kiwi/Classes/Core/KWExampleNodeVisitor.h b/Pods/Kiwi/Classes/Core/KWExampleNodeVisitor.h new file mode 100644 index 0000000..f264794 --- /dev/null +++ b/Pods/Kiwi/Classes/Core/KWExampleNodeVisitor.h @@ -0,0 +1,35 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KiwiConfiguration.h" + +@class KWAfterAllNode; +@class KWAfterEachNode; +@class KWBeforeAllNode; +@class KWBeforeEachNode; +@class KWContextNode; +@class KWLetNode; +@class KWItNode; +@class KWPendingNode; +@class KWRegisterMatchersNode; + +@protocol KWExampleNodeVisitor + +#pragma mark - Visiting Nodes + +@optional + +- (void)visitContextNode:(KWContextNode *)aNode; +- (void)visitRegisterMatchersNode:(KWRegisterMatchersNode *)aNode; +- (void)visitBeforeAllNode:(KWBeforeAllNode *)aNode; +- (void)visitAfterAllNode:(KWAfterAllNode *)aNode; +- (void)visitBeforeEachNode:(KWBeforeEachNode *)aNode; +- (void)visitAfterEachNode:(KWAfterEachNode *)aNode; +- (void)visitLetNode:(KWLetNode *)aNode; +- (void)visitItNode:(KWItNode *)aNode; +- (void)visitPendingNode:(KWPendingNode *)aNode; + +@end diff --git a/Pods/Kiwi/Classes/Core/KWExampleSuite.h b/Pods/Kiwi/Classes/Core/KWExampleSuite.h new file mode 100644 index 0000000..ec74a7b --- /dev/null +++ b/Pods/Kiwi/Classes/Core/KWExampleSuite.h @@ -0,0 +1,31 @@ +// +// KWExampleSuite.h +// Kiwi +// +// Created by Luke Redpath on 17/10/2011. +// Copyright (c) 2011 Allen Ding. All rights reserved. +// + +#import +#import "KWExampleNodeVisitor.h" + +@class KWContextNode; +@class KWExample; + +@interface KWExampleSuite : NSObject + +- (id)initWithRootNode:(KWContextNode *)contextNode; +- (void)addExample:(KWExample *)example; +- (void)markLastExampleAsLastInContext:(KWContextNode *)context; + +@property (nonatomic, readonly) NSMutableArray *examples; + +#pragma mark - Example selector names + +- (NSString *)nextUniqueSelectorName:(NSString *)name; + +@end + +@interface NSInvocation (KWExampleGroup) +@property (nonatomic, setter = kw_setExample:) KWExample *kw_example; +@end diff --git a/Pods/Kiwi/Classes/Core/KWExampleSuite.m b/Pods/Kiwi/Classes/Core/KWExampleSuite.m new file mode 100644 index 0000000..708cb88 --- /dev/null +++ b/Pods/Kiwi/Classes/Core/KWExampleSuite.m @@ -0,0 +1,92 @@ +// +// KWExampleSuite.m +// Kiwi +// +// Created by Luke Redpath on 17/10/2011. +// Copyright (c) 2011 Allen Ding. All rights reserved. +// + +#import "KWExampleSuite.h" + +#import "KWAfterAllNode.h" +#import "KWBeforeAllNode.h" +#import "KWContextNode.h" +#import "KWExample.h" +#import "KWStringUtilities.h" +#import "NSMethodSignature+KiwiAdditions.h" +#import + +#define kKWINVOCATION_EXAMPLE_GROUP_KEY @"__KWExampleGroupKey" + +@interface KWExampleSuite() + +@property (nonatomic, strong) KWContextNode *rootNode; +@property (nonatomic, strong) NSMutableArray *examples; +@property (nonatomic, strong) NSMutableDictionary *selectorNameCache; + +@end + +@implementation KWExampleSuite + +- (id)initWithRootNode:(KWContextNode *)contextNode { + self = [super init]; + if (self) { + _rootNode = contextNode; + _examples = [[NSMutableArray alloc] init]; + _selectorNameCache = [[NSMutableDictionary alloc] init]; + } + return self; +} + + +- (void)addExample:(KWExample *)example { + [self.examples addObject:example]; + example.suite = self; +} + +- (void)markLastExampleAsLastInContext:(KWContextNode *)context +{ + if ([self.examples count] > 0) { + KWExample *lastExample = (KWExample *)[self.examples lastObject]; + [lastExample.lastInContexts addObject:context]; + } +} + +#pragma mark - Example selector names + +- (NSString *)nextUniqueSelectorName:(NSString *)name { + NSUInteger count = [(self.selectorNameCache[name] ?: @1) integerValue]; + NSString *uniqueName = name; + if (count > 1) { + NSString *format = [name hasSuffix:@"_"] ? @"%lu" : @"_%lu"; + uniqueName = [name stringByAppendingFormat:format, (unsigned long)count]; + } + self.selectorNameCache[name] = @(++count); + return uniqueName; +} + +#pragma mark - NSFastEnumeration + +- (NSUInteger)countByEnumeratingWithState:(NSFastEnumerationState *)state objects:(__unsafe_unretained id [])buffer count:(NSUInteger)len { + return [self.examples countByEnumeratingWithState:state objects:buffer count:len]; +} + +@end + +#pragma mark - + +// because XCTest will modify the invocation target, we'll have to store +// another reference to the example group so we can retrieve it later + +@implementation NSInvocation (KWExampleGroup) + +- (void)kw_setExample:(KWExample *)exampleGroup { + objc_setAssociatedObject(self, kKWINVOCATION_EXAMPLE_GROUP_KEY, exampleGroup, OBJC_ASSOCIATION_RETAIN_NONATOMIC); +} + +- (KWExample *)kw_example { + return objc_getAssociatedObject(self, kKWINVOCATION_EXAMPLE_GROUP_KEY); +} + +@end + diff --git a/Pods/Kiwi/Classes/Core/KWExampleSuiteBuilder.h b/Pods/Kiwi/Classes/Core/KWExampleSuiteBuilder.h new file mode 100644 index 0000000..a707a8e --- /dev/null +++ b/Pods/Kiwi/Classes/Core/KWExampleSuiteBuilder.h @@ -0,0 +1,46 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KiwiConfiguration.h" +#import "KWBlock.h" + +@class KWCallSite; +@class KWExample; +@class KWExampleSuite; +@class KWContextNode; + +@interface KWExampleSuiteBuilder : NSObject + +#pragma mark - Initializing + ++ (id)sharedExampleSuiteBuilder; + +#pragma mark - Building Example Groups + +@property (nonatomic, readonly) BOOL isBuildingExampleSuite; +@property (nonatomic, strong, readonly) KWExampleSuite *currentExampleSuite; +@property (nonatomic, strong) KWExample *currentExample; +@property (nonatomic, strong) KWCallSite *focusedCallSite; + +//spec file name:line number of callsite +- (void)focusWithURI:(NSString *)nodeUrl; +- (KWExampleSuite *)buildExampleSuite:(void (^)(void))buildingBlock; + +- (void)pushContextNodeWithCallSite:(KWCallSite *)aCallSite description:(NSString *)aDescription; +- (void)popContextNode; +- (void)setRegisterMatchersNodeWithCallSite:(KWCallSite *)aCallSite namespacePrefix:(NSString *)aNamespacePrefix; +- (void)setBeforeAllNodeWithCallSite:(KWCallSite *)aCallSite block:(void (^)(void))block; +- (void)setAfterAllNodeWithCallSite:(KWCallSite *)aCallSite block:(void (^)(void))block; +- (void)setBeforeEachNodeWithCallSite:(KWCallSite *)aCallSite block:(void (^)(void))block; +- (void)setAfterEachNodeWithCallSite:(KWCallSite *)aCallSite block:(void (^)(void))block; +- (void)addLetNodeWithCallSite:(KWCallSite *)aCallSite objectRef:(id *)anObjectRef symbolName:(NSString *)aSymbolName block:(id (^)(void))block; +- (void)addItNodeWithCallSite:(KWCallSite *)aCallSite description:(NSString *)aDescription block:(void (^)(void))block; +- (void)addPendingNodeWithCallSite:(KWCallSite *)aCallSite description:(NSString *)aDescription; + +- (BOOL)isFocused; +- (BOOL)foundFocus; + +@end diff --git a/Pods/Kiwi/Classes/Core/KWExampleSuiteBuilder.m b/Pods/Kiwi/Classes/Core/KWExampleSuiteBuilder.m new file mode 100644 index 0000000..4842c4c --- /dev/null +++ b/Pods/Kiwi/Classes/Core/KWExampleSuiteBuilder.m @@ -0,0 +1,237 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KWExampleSuiteBuilder.h" + +#import "KWAfterAllNode.h" +#import "KWAfterEachNode.h" +#import "KWBeforeAllNode.h" +#import "KWBeforeEachNode.h" +#import "KWLetNode.h" +#import "KWCallSite.h" +#import "KWContextNode.h" +#import "KWExample.h" +#import "KWExampleSuite.h" +#import "KWItNode.h" +#import "KWPendingNode.h" +#import "KWRegisterMatchersNode.h" +#import "KWSymbolicator.h" + +static NSString * const KWExampleSuiteBuilderException = @"KWExampleSuiteBuilderException"; + +@interface KWExampleSuiteBuilder() + +#pragma mark - Building Example Groups + +@property (nonatomic, strong) KWExampleSuite *currentExampleSuite; +@property (nonatomic, readonly) NSMutableArray *contextNodeStack; + +@property (nonatomic, strong) NSMutableSet *suites; + +@property (nonatomic, assign) BOOL focusedContextNode; +@property (nonatomic, assign) BOOL focusedItNode; + +@end + +@implementation KWExampleSuiteBuilder + + +#pragma mark - Initializing + + +- (id)init { + self = [super init]; + if (self) { + _contextNodeStack = [[NSMutableArray alloc] init]; + _suites = [[NSMutableSet alloc] init]; + [self focusWithURI:[[[NSProcessInfo processInfo] environment] objectForKey:@"KW_SPEC"]]; + } + return self; +} + + ++ (id)sharedExampleSuiteBuilder { + static KWExampleSuiteBuilder *sharedExampleSuiteBuilder = nil; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + sharedExampleSuiteBuilder = [self new]; + }); + + return sharedExampleSuiteBuilder; +} + +#pragma mark - Focus + +- (void)focusWithURI:(NSString *)nodeUrl { + NSArray *focusInfo = [nodeUrl componentsSeparatedByString:@":"]; + if (!focusInfo || focusInfo.count != 2) + return; + self.focusedCallSite = [KWCallSite callSiteWithFilename:focusInfo[0] lineNumber:[focusInfo[1] intValue]]; +} + +- (void)setFocusedCallSite:(KWCallSite *)aFocusedCallSite { + _focusedCallSite = aFocusedCallSite; + self.focusedItNode = NO; + self.focusedContextNode = NO; +} + +- (BOOL)isFocused { + return self.focusedCallSite != nil; +} + +- (BOOL)foundFocus { + return self.focusedContextNode || self.focusedItNode; +} + +#pragma mark - Building Example Groups + +- (BOOL)isBuildingExampleSuite { + return [self.contextNodeStack count] > 0; +} + +- (KWExampleSuite *)buildExampleSuite:(void (^)(void))buildingBlock +{ + KWContextNode *rootNode = [KWContextNode contextNodeWithCallSite:nil parentContext:nil description:nil]; + + self.currentExampleSuite = [[KWExampleSuite alloc] initWithRootNode:rootNode]; + + [self.suites addObject:self.currentExampleSuite]; + + [self.contextNodeStack addObject:rootNode]; + buildingBlock(); + [self.contextNodeStack removeAllObjects]; + + return self.currentExampleSuite; +} + +- (void)pushContextNodeWithCallSite:(KWCallSite *)aCallSite description:(NSString *)aDescription { + + KWContextNode *contextNode = [self.contextNodeStack lastObject]; + KWContextNode *node = [KWContextNode contextNodeWithCallSite:aCallSite parentContext:contextNode description:aDescription]; + + if (self.isFocused) + node.isFocused = [self shouldFocusContextNodeWithCallSite:aCallSite parentNode:contextNode]; + + [contextNode addContextNode:node]; + [self.contextNodeStack addObject:node]; +} + +- (BOOL)shouldFocusContextNodeWithCallSite:(KWCallSite *)aCallSite parentNode:(KWContextNode *)parentNode { + if (parentNode.isFocused) + return YES; + + if ([aCallSite isEqualToCallSite:self.focusedCallSite]) { + self.focusedContextNode = YES; + return YES; + } + return NO; +} + +- (void)popContextNode { + KWContextNode *contextNode = [self.contextNodeStack lastObject]; + + [self.currentExampleSuite markLastExampleAsLastInContext:contextNode]; + + if ([self.contextNodeStack count] == 1) { + [NSException raise:KWExampleSuiteBuilderException + format:@"there is no open context to pop"]; + } + + [self.contextNodeStack removeLastObject]; +} + +- (void)setRegisterMatchersNodeWithCallSite:(KWCallSite *)aCallSite namespacePrefix:(NSString *)aNamespacePrefix { + [self raiseIfExampleGroupNotStarted]; + + KWContextNode *contextNode = [self.contextNodeStack lastObject]; + KWRegisterMatchersNode *registerMatchersNode = [KWRegisterMatchersNode registerMatchersNodeWithCallSite:aCallSite namespacePrefix:aNamespacePrefix]; + [contextNode addRegisterMatchersNode:registerMatchersNode]; +} + +- (void)setBeforeAllNodeWithCallSite:(KWCallSite *)aCallSite block:(void (^)(void))block { + [self raiseIfExampleGroupNotStarted]; + + KWContextNode *contextNode = [self.contextNodeStack lastObject]; + KWBeforeAllNode *beforeAllNode = [KWBeforeAllNode beforeAllNodeWithCallSite:aCallSite block:block]; + [contextNode setBeforeAllNode:beforeAllNode]; +} + +- (void)setAfterAllNodeWithCallSite:(KWCallSite *)aCallSite block:(void (^)(void))block { + [self raiseIfExampleGroupNotStarted]; + + KWContextNode *contextNode = [self.contextNodeStack lastObject]; + KWAfterAllNode *afterAllNode = [KWAfterAllNode afterAllNodeWithCallSite:aCallSite block:block]; + [contextNode setAfterAllNode:afterAllNode]; +} + +- (void)setBeforeEachNodeWithCallSite:(KWCallSite *)aCallSite block:(void (^)(void))block { + [self raiseIfExampleGroupNotStarted]; + + KWContextNode *contextNode = [self.contextNodeStack lastObject]; + KWBeforeEachNode *beforeEachNode = [KWBeforeEachNode beforeEachNodeWithCallSite:aCallSite block:block]; + [contextNode setBeforeEachNode:beforeEachNode]; +} + +- (void)setAfterEachNodeWithCallSite:(KWCallSite *)aCallSite block:(void (^)(void))block { + [self raiseIfExampleGroupNotStarted]; + + KWContextNode *contextNode = [self.contextNodeStack lastObject]; + KWAfterEachNode *afterEachNode = [KWAfterEachNode afterEachNodeWithCallSite:aCallSite block:block]; + [contextNode setAfterEachNode:afterEachNode]; +} + +- (void)addLetNodeWithCallSite:(KWCallSite *)aCallSite objectRef:(__autoreleasing id *)anObjectRef symbolName:(NSString *)aSymbolName block:(id (^)(void))block { + [self raiseIfExampleGroupNotStarted]; + + KWContextNode *contextNode = [self.contextNodeStack lastObject]; + [contextNode addLetNode:[KWLetNode letNodeWithSymbolName:aSymbolName objectRef:anObjectRef block:block]]; +} + +- (void)addItNodeWithCallSite:(KWCallSite *)aCallSite description:(NSString *)aDescription block:(void (^)(void))block { + [self raiseIfExampleGroupNotStarted]; + + KWContextNode *contextNode = [self.contextNodeStack lastObject]; + + if (self.isFocused && ![self shouldAddItNodeWithCallSite:aCallSite toContextNode:contextNode]) + return; + + KWItNode* itNode = [KWItNode itNodeWithCallSite:aCallSite description:aDescription context:contextNode block:block]; + [contextNode addItNode:itNode]; + + KWExample *example = [[KWExample alloc] initWithExampleNode:itNode]; + [self.currentExampleSuite addExample:example]; +} + +- (BOOL)shouldAddItNodeWithCallSite:(KWCallSite *)aCallSite toContextNode:(KWContextNode *)contextNode { + if (contextNode.isFocused) + return YES; + + if([aCallSite isEqualToCallSite:self.focusedCallSite]){ + self.focusedItNode = YES; + return YES; + } + + return NO; +} + +- (void)addPendingNodeWithCallSite:(KWCallSite *)aCallSite description:(NSString *)aDescription { + [self raiseIfExampleGroupNotStarted]; + + KWContextNode *contextNode = [self.contextNodeStack lastObject]; + KWPendingNode *pendingNode = [KWPendingNode pendingNodeWithCallSite:aCallSite context:contextNode description:aDescription]; + [contextNode addPendingNode:pendingNode]; + KWExample *example = [[KWExample alloc] initWithExampleNode:pendingNode]; + [self.currentExampleSuite addExample:example]; +} + +- (void)raiseIfExampleGroupNotStarted { + if ([self.contextNodeStack count] == 0) { + [NSException raise:KWExampleSuiteBuilderException + format:@"an example group has not been started"]; + } +} + +@end diff --git a/Pods/Kiwi/Classes/Core/KWExpectationType.h b/Pods/Kiwi/Classes/Core/KWExpectationType.h new file mode 100644 index 0000000..eca75a8 --- /dev/null +++ b/Pods/Kiwi/Classes/Core/KWExpectationType.h @@ -0,0 +1,15 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KiwiConfiguration.h" + +enum { + KWExpectationTypeShould, + KWExpectationTypeShouldNot, + KWExpectationTypeMaybe +}; + +typedef NSUInteger KWExpectationType; diff --git a/Pods/Kiwi/Classes/Core/KWFailure.h b/Pods/Kiwi/Classes/Core/KWFailure.h new file mode 100644 index 0000000..a9d136c --- /dev/null +++ b/Pods/Kiwi/Classes/Core/KWFailure.h @@ -0,0 +1,26 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KiwiConfiguration.h" + +@class KWCallSite; + +@interface KWFailure : NSObject + +#pragma mark - Initializing + +- (id)initWithCallSite:(KWCallSite *)aCallSite message:(NSString *)aMessage; +- (id)initWithCallSite:(KWCallSite *)aCallSite format:(NSString *)format, ...; + ++ (id)failureWithCallSite:(KWCallSite *)aCallSite message:(NSString *)aMessage; ++ (id)failureWithCallSite:(KWCallSite *)aCallSite format:(NSString *)format, ...; + +#pragma mark - Properties + +@property (nonatomic, readonly) NSString *message; +@property (nonatomic, weak, readonly) KWCallSite *callSite; + +@end diff --git a/Pods/Kiwi/Classes/Core/KWFailure.m b/Pods/Kiwi/Classes/Core/KWFailure.m new file mode 100644 index 0000000..f607cbe --- /dev/null +++ b/Pods/Kiwi/Classes/Core/KWFailure.m @@ -0,0 +1,44 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KWFailure.h" +#import "KWCallSite.h" + +@implementation KWFailure + +#pragma mark - Initializing + +- (id)initWithCallSite:(KWCallSite *)aCallSite message:(NSString *)aMessage { + self = [super init]; + if (self) { + _callSite = aCallSite; + _message = [aMessage copy]; + } + + return self; +} + +- (id)initWithCallSite:(KWCallSite *)aCallSite format:(NSString *)format, ... { + va_list argumentList; + va_start(argumentList, format); + NSString *aMessage = [[NSString alloc] initWithFormat:format arguments:argumentList]; + va_end(argumentList); + return [self initWithCallSite:aCallSite message:aMessage]; +} + ++ (id)failureWithCallSite:(KWCallSite *)aCallSite message:(NSString *)aMessage { + return [[self alloc] initWithCallSite:aCallSite message:aMessage]; +} + ++ (id)failureWithCallSite:(KWCallSite *)aCallSite format:(NSString *)format, ... { + va_list argumentList; + va_start(argumentList, format); + NSString *message = [[NSString alloc] initWithFormat:format arguments:argumentList]; + va_end(argumentList); + return [self failureWithCallSite:aCallSite message:message]; +} + +@end diff --git a/Pods/Kiwi/Classes/Core/KWFormatter.h b/Pods/Kiwi/Classes/Core/KWFormatter.h new file mode 100644 index 0000000..34f8655 --- /dev/null +++ b/Pods/Kiwi/Classes/Core/KWFormatter.h @@ -0,0 +1,16 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KiwiConfiguration.h" + +@interface KWFormatter : NSObject + +#pragma mark - Getting Descriptions + ++ (NSString *)formatObject:(id)anObject; ++ (NSString *)formatObjectIncludingClass:(id)anObject; + +@end diff --git a/Pods/Kiwi/Classes/Core/KWFormatter.m b/Pods/Kiwi/Classes/Core/KWFormatter.m new file mode 100644 index 0000000..f12917e --- /dev/null +++ b/Pods/Kiwi/Classes/Core/KWFormatter.m @@ -0,0 +1,59 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KWFormatter.h" + +@implementation KWFormatter + + +#pragma mark - Getting Descriptions + ++ (NSString *)formatObject:(id)anObject { + if ([anObject isKindOfClass:[NSString class]]) + return [NSString stringWithFormat:@"\"%@\"", anObject]; + + else if ([anObject isKindOfClass:[NSDictionary class]]) + return [anObject description]; // NSDictionary conforms to NSFastEnumeration + + else if ([anObject conformsToProtocol:@protocol(NSFastEnumeration)]) + return [self formattedCollection:anObject]; + + return [anObject description]; +} + ++ (NSString *)formatObjectIncludingClass:(id)anObject { + NSString *classString = [[anObject class] description]; + + if ([anObject isKindOfClass:[NSString class]]) + classString = @"NSString"; + + return [NSString stringWithFormat:@"(%@) %@", classString, [self formatObject:anObject]]; +} + + +#pragma mark - Private + ++ (NSString *)formattedCollection:(id)collection { + + NSMutableString *description = [[NSMutableString alloc] initWithString:@"("]; + NSUInteger index = 0; + + for (id object in collection) { + if (index == 0) + [description appendFormat:@"%@", [self formatObject:object]]; + else + [description appendFormat:@", %@", [self formatObject:object]]; + + ++index; + } + + [description appendString:@")"]; + return description; +} + + + +@end diff --git a/Pods/Kiwi/Classes/Core/KWFutureObject.h b/Pods/Kiwi/Classes/Core/KWFutureObject.h new file mode 100644 index 0000000..f45ff51 --- /dev/null +++ b/Pods/Kiwi/Classes/Core/KWFutureObject.h @@ -0,0 +1,20 @@ +// +// KWFutureObject.h +// iOSFalconCore +// +// Created by Luke Redpath on 13/01/2011. +// Copyright 2011 LJR Software Limited. All rights reserved. +// + +#import + +typedef id (^KWFutureObjectBlock)(void); + +@interface KWFutureObject : NSObject + ++ (id)objectWithObjectPointer:(id *)pointer; ++ (id)futureObjectWithBlock:(KWFutureObjectBlock)block; +- (id)initWithBlock:(KWFutureObjectBlock)aBlock; +- (id)object; + +@end diff --git a/Pods/Kiwi/Classes/Core/KWFutureObject.m b/Pods/Kiwi/Classes/Core/KWFutureObject.m new file mode 100644 index 0000000..52c654b --- /dev/null +++ b/Pods/Kiwi/Classes/Core/KWFutureObject.m @@ -0,0 +1,40 @@ +// +// KWFutureObject.m +// iOSFalconCore +// +// Created by Luke Redpath on 13/01/2011. +// Copyright 2011 LJR Software Limited. All rights reserved. +// + +#import "KWFutureObject.h" + +@interface KWFutureObject() + +@property (nonatomic, strong) KWFutureObjectBlock block; + +@end + +@implementation KWFutureObject + ++ (id)objectWithObjectPointer:(id *)pointer { + return [self futureObjectWithBlock:^{ return *pointer; }]; +} + ++ (id)futureObjectWithBlock:(KWFutureObjectBlock)block { + return [[self alloc] initWithBlock:block]; +} + +- (id)initWithBlock:(KWFutureObjectBlock)aBlock { + self = [super init]; + if (self) { + _block = [aBlock copy]; + } + return self; +} + +- (id)object; { + return self.block(); +} + + +@end diff --git a/Pods/Kiwi/Classes/Core/KWInvocationCapturer.h b/Pods/Kiwi/Classes/Core/KWInvocationCapturer.h new file mode 100644 index 0000000..c02ab0c --- /dev/null +++ b/Pods/Kiwi/Classes/Core/KWInvocationCapturer.h @@ -0,0 +1,35 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KiwiConfiguration.h" + +@protocol KWInvocationCapturerDelegate; + +@interface KWInvocationCapturer : NSProxy + +#pragma mark - Initializing + +- (id)initWithDelegate:(id)aDelegate; +- (id)initWithDelegate:(id)aDelegate userInfo:(NSDictionary *)aUserInfo; + ++ (id)invocationCapturerWithDelegate:(id)aDelegate; ++ (id)invocationCapturerWithDelegate:(id)aDelegate userInfo:(NSDictionary *)aUserInfo; + +#pragma mark - Properties + +@property (nonatomic, weak, readonly) id delegate; +@property (nonatomic, strong, readonly) NSDictionary *userInfo; + +@end + +@protocol KWInvocationCapturerDelegate + +#pragma mark - Capturing Invocations + +- (NSMethodSignature *)invocationCapturer:(KWInvocationCapturer *)anInvocationCapturer methodSignatureForSelector:(SEL)aSelector; +- (void)invocationCapturer:(KWInvocationCapturer *)anInvocationCapturer didCaptureInvocation:(NSInvocation *)anInvocation; + +@end diff --git a/Pods/Kiwi/Classes/Core/KWInvocationCapturer.m b/Pods/Kiwi/Classes/Core/KWInvocationCapturer.m new file mode 100644 index 0000000..e340972 --- /dev/null +++ b/Pods/Kiwi/Classes/Core/KWInvocationCapturer.m @@ -0,0 +1,88 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KWInvocationCapturer.h" +#import "KWWorkarounds.h" +#import "NSInvocation+KiwiAdditions.h" + +@implementation KWInvocationCapturer + +#pragma mark - Initializing + +- (id)initWithDelegate:(id)aDelegate { + return [self initWithDelegate:aDelegate userInfo:nil]; +} + +- (id)initWithDelegate:(id)aDelegate userInfo:(NSDictionary *)aUserInfo { + delegate = aDelegate; + userInfo = aUserInfo; + return self; +} + ++ (id)invocationCapturerWithDelegate:(id)aDelegate { + return [self invocationCapturerWithDelegate:aDelegate userInfo:nil]; +} + ++ (id)invocationCapturerWithDelegate:(id)aDelegate userInfo:(NSDictionary *)aUserInfo { + return [[self alloc] initWithDelegate:aDelegate userInfo:aUserInfo]; +} + + +#pragma mark - Properties + +@synthesize delegate; +@synthesize userInfo; + +#pragma mark - Capturing Invocations + +- (void)KW_captureInvocation:(NSInvocation *)anInvocation { + [self.delegate invocationCapturer:self didCaptureInvocation:anInvocation]; +} + +#pragma mark - Handling Invocations + +- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector { + return [self.delegate invocationCapturer:self methodSignatureForSelector:aSelector]; +} + +- (void)forwardInvocation:(NSInvocation *)anInvocation { +#if KW_TARGET_HAS_INVOCATION_EXCEPTION_BUG + @try { +#endif // #if KW_TARGET_HAS_INVOCATION_EXCEPTION_BUG + + [self KW_captureInvocation:anInvocation]; + +#if KW_TARGET_HAS_INVOCATION_EXCEPTION_BUG + } @catch (NSException *exception) { + KWSetExceptionFromAcrossInvocationBoundary(exception); + } +#endif // #if KW_TARGET_HAS_INVOCATION_EXCEPTION_BUG +} + +#pragma mark - Whitelisted NSObject Methods + +// The return values from these methods should never be needed, so just call +// the super implementation after capturing the invocation. + +- (BOOL)isEqual:(id)anObject { + NSInvocation *invocation = [NSInvocation invocationWithTarget:self selector:_cmd messageArguments:&anObject]; + [self KW_captureInvocation:invocation]; + return [super isEqual:anObject]; +} + +- (NSUInteger)hash { + NSInvocation *invocation = [NSInvocation invocationWithTarget:self selector:_cmd]; + [self KW_captureInvocation:invocation]; + return [super hash]; +} + +- (NSString *)description { + NSInvocation *invocation = [NSInvocation invocationWithTarget:self selector:_cmd]; + [self KW_captureInvocation:invocation]; + return [super description]; +} + +@end diff --git a/Pods/Kiwi/Classes/Core/KWLet.h b/Pods/Kiwi/Classes/Core/KWLet.h new file mode 100644 index 0000000..fdd297d --- /dev/null +++ b/Pods/Kiwi/Classes/Core/KWLet.h @@ -0,0 +1,15 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#if __has_feature(objc_arc) +# define KW_ARC_AUTORELEASE(obj) obj +#else +# define KW_ARC_AUTORELEASE(obj) [obj autorelease] +#endif + +#define KW_LET_REF(var) \ + (__autoreleasing id *) \ + ( (void *(^)(void)) KW_ARC_AUTORELEASE([^{ void *ref = &var; return ref; } copy]) )() diff --git a/Pods/Kiwi/Classes/Core/KWMatcher.h b/Pods/Kiwi/Classes/Core/KWMatcher.h new file mode 100644 index 0000000..407cd9d --- /dev/null +++ b/Pods/Kiwi/Classes/Core/KWMatcher.h @@ -0,0 +1,39 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KiwiConfiguration.h" +#import "KWMatching.h" + +@interface KWMatcher : NSObject + +#pragma mark - Initializing + +- (id)initWithSubject:(id)anObject; + ++ (id)matcherWithSubject:(id)anObject; + +#pragma mark - Properties + +@property (nonatomic, strong) id subject; + +#pragma mark - Getting Matcher Strings + ++ (NSArray *)matcherStrings; + +#pragma mark - Getting Matcher Compatability + ++ (BOOL)canMatchSubject:(id)anObject; + +#pragma mark - Matching + +- (BOOL)evaluate; + +#pragma mark - Getting Failure Messages + +- (NSString *)failureMessageForShould; +- (NSString *)failureMessageForShouldNot; + +@end diff --git a/Pods/Kiwi/Classes/Core/KWMatcher.m b/Pods/Kiwi/Classes/Core/KWMatcher.m new file mode 100644 index 0000000..9b3c481 --- /dev/null +++ b/Pods/Kiwi/Classes/Core/KWMatcher.m @@ -0,0 +1,80 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KWMatcher.h" +#import "KWFormatter.h" +#import "KWFutureObject.h" + +@implementation KWMatcher + +#pragma mark - Initializing + +- (id)initWithSubject:(id)anObject { + self = [super init]; + if (self) { + _subject = anObject; + } + + return self; +} + ++ (id)matcherWithSubject:(id)anObject { + return [[self alloc] initWithSubject:anObject]; +} + + +#pragma mark - Properties + +- (id)subject +{ + if ([_subject isKindOfClass:[KWFutureObject class]]) { + return [(KWFutureObject *)_subject object]; + } + return _subject; +} + +#pragma mark - Getting Matcher Strings + ++ (NSArray *)matcherStrings { + return nil; +} + +#pragma mark - Getting Matcher Compatability + ++ (BOOL)canMatchSubject:(id)anObject { + return YES; +} + +#pragma mark - Matching + +- (BOOL)evaluate { + [NSException raise:NSInternalInconsistencyException format:@"%@ must override -evaluate", + [KWFormatter formatObject:[self class]]]; + return NO; +} + +#pragma mark - Getting Failure Messages + +- (NSString *)failureMessageForShould { + return @"subject did not meet expectation"; +} + +- (NSString *)failureMessageForShouldNot { + NSString *failureMessageForShould = [self failureMessageForShould]; + NSRange markerRange = [failureMessageForShould rangeOfString:@" to "]; + + if (markerRange.location == NSNotFound) + return @"subject did not meet expectation"; + + NSRange replacementRange = NSMakeRange(0, markerRange.location + markerRange.length); + NSString *message = [failureMessageForShould stringByReplacingOccurrencesOfString:@" to " + withString:@" not to " + options:0 + range:replacementRange]; + return message; +} + +@end diff --git a/Pods/Kiwi/Classes/Core/KWMatcherFactory.h b/Pods/Kiwi/Classes/Core/KWMatcherFactory.h new file mode 100644 index 0000000..245f235 --- /dev/null +++ b/Pods/Kiwi/Classes/Core/KWMatcherFactory.h @@ -0,0 +1,37 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KiwiConfiguration.h" +#import "KWMatching.h" + +@class KWFailure; +@class KWMatcher; +@class KWUserDefinedMatcherBuilder; + +@interface KWMatcherFactory : NSObject + +#pragma mark - Initializing + +- (id)init; + +#pragma mark - Properties + +@property (nonatomic, readonly) NSArray *registeredMatcherClasses; + +#pragma mark - Registering Matcher Classes + +- (void)registerMatcherClass:(Class)aClass; +- (void)registerMatcherClassesWithNamespacePrefix:(NSString *)aNamespacePrefix; + +#pragma mark - Getting Method Signatures + +- (NSMethodSignature *)methodSignatureForMatcherSelector:(SEL)aSelector; + +#pragma mark - Getting Matchers + +- (KWMatcher *)matcherFromInvocation:(NSInvocation *)anInvocation subject:(id)subject; + +@end diff --git a/Pods/Kiwi/Classes/Core/KWMatcherFactory.m b/Pods/Kiwi/Classes/Core/KWMatcherFactory.m new file mode 100644 index 0000000..db07795 --- /dev/null +++ b/Pods/Kiwi/Classes/Core/KWMatcherFactory.m @@ -0,0 +1,133 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KWMatcherFactory.h" +#import +#import "KWMatching.h" +#import "KWStringUtilities.h" +#import "KWUserDefinedMatcher.h" +#import "KWMatchers.h" + +@interface KWMatcherFactory() + +@property (nonatomic, strong) NSMutableDictionary *matcherClassChains; + +@end + +@implementation KWMatcherFactory + +#pragma mark - Initializing + +- (id)init { + self = [super init]; + if (self) { + _matcherClassChains = [[NSMutableDictionary alloc] init]; + _registeredMatcherClasses = [[NSMutableArray alloc] init]; + } + + return self; +} + +#pragma mark - Registering Matcher Classes + +- (void)registerMatcherClass:(Class)aClass { + if ([self.registeredMatcherClasses containsObject:aClass]) + return; + + [(NSMutableArray *)self.registeredMatcherClasses addObject:aClass]; + + for (NSString *verificationSelectorString in [aClass matcherStrings]) { + NSMutableArray *matcherClassChain = self.matcherClassChains[verificationSelectorString]; + + if (matcherClassChain == nil) { + matcherClassChain = [[NSMutableArray alloc] init]; + self.matcherClassChains[verificationSelectorString] = matcherClassChain; + } + + [matcherClassChain removeObject:aClass]; + [matcherClassChain insertObject:aClass atIndex:0]; + } +} + +- (void)registerMatcherClassesWithNamespacePrefix:(NSString *)aNamespacePrefix { + static NSMutableArray *matcherClasses = nil; + + // Cache all classes that conform to KWMatching. + if (matcherClasses == nil) { + matcherClasses = [[NSMutableArray alloc] init]; + int numberOfClasses = objc_getClassList(NULL, 0); + Class *classes = (Class *)malloc(sizeof(Class) * numberOfClasses); + numberOfClasses = objc_getClassList(classes, numberOfClasses); + + if (numberOfClasses == 0) { + free(classes); + return; + } + + for (int i = 0; i < numberOfClasses; ++i) { + Class candidateClass = classes[i]; + + if (!class_respondsToSelector(candidateClass, @selector(conformsToProtocol:))) + continue; + + if (![candidateClass conformsToProtocol:@protocol(KWMatching)]) + continue; + + [matcherClasses addObject:candidateClass]; + } + + free(classes); + } + + for (Class matcherClass in matcherClasses) { + NSString *className = NSStringFromClass(matcherClass); + + if (KWStringHasStrictWordPrefix(className, aNamespacePrefix)) + [self registerMatcherClass:matcherClass]; + } +} + +#pragma mark - Getting Method Signatures + +- (NSMethodSignature *)methodSignatureForMatcherSelector:(SEL)aSelector { + NSMutableArray *matcherClassChain = self.matcherClassChains[NSStringFromSelector(aSelector)]; + + if ([matcherClassChain count] == 0) + return nil; + + Class matcherClass = matcherClassChain[0]; + return [matcherClass instanceMethodSignatureForSelector:aSelector]; +} + +#pragma mark - Getting Matchers + +- (KWMatcher *)matcherFromInvocation:(NSInvocation *)anInvocation subject:(id)subject { + SEL selector = [anInvocation selector]; + + // try and match a built-in or registered matcher class + Class matcherClass = [self matcherClassForSelector:selector subject:subject]; + + if (matcherClass == nil) { + // see if we can match with a user-defined matcher instead + return [[KWMatchers matchers] matcherForSelector:selector subject:subject]; + } + return [[matcherClass alloc] initWithSubject:subject]; +} + +#pragma mark - Private methods + +- (Class)matcherClassForSelector:(SEL)aSelector subject:(id)anObject { + NSArray *matcherClassChain = self.matcherClassChains[NSStringFromSelector(aSelector)]; + + for (Class matcherClass in matcherClassChain) { + if ([matcherClass canMatchSubject:anObject]) + return matcherClass; + } + + return nil; +} + +@end diff --git a/Pods/Kiwi/Classes/Core/KWMatchers.h b/Pods/Kiwi/Classes/Core/KWMatchers.h new file mode 100644 index 0000000..0e78a77 --- /dev/null +++ b/Pods/Kiwi/Classes/Core/KWMatchers.h @@ -0,0 +1,32 @@ +// +// KWMatchers.h +// Kiwi +// +// Created by Luke Redpath on 17/06/2011. +// Copyright 2011 Allen Ding. All rights reserved. +// + +#import + +@class KWUserDefinedMatcherBuilder; + +typedef void (^KWMatchersBuildingBlock)(KWUserDefinedMatcherBuilder *matcherBuilder); + +@class KWUserDefinedMatcher; + +@interface KWMatchers : NSObject + ++ (id)matchers; + +#pragma mark - Defining Matchers + ++ (void)defineMatcher:(NSString *)selectorString as:(KWMatchersBuildingBlock)block; +- (void)defineMatcher:(NSString *)selectorString as:(KWMatchersBuildingBlock)block; +- (void)addUserDefinedMatcherBuilder:(KWUserDefinedMatcherBuilder *)builder; + +#pragma mark - Building Matchers + +- (KWUserDefinedMatcher *)matcherForSelector:(SEL)selector subject:(id)subject; +@end + +void KWDefineMatchers(NSString *selectorString, KWMatchersBuildingBlock block); diff --git a/Pods/Kiwi/Classes/Core/KWMatchers.m b/Pods/Kiwi/Classes/Core/KWMatchers.m new file mode 100644 index 0000000..ab27895 --- /dev/null +++ b/Pods/Kiwi/Classes/Core/KWMatchers.m @@ -0,0 +1,75 @@ +// +// KWMatchers.m +// Kiwi +// +// Created by Luke Redpath on 17/06/2011. +// Copyright 2011 Allen Ding. All rights reserved. +// + +#import "KWMatchers.h" +#import "KWUserDefinedMatcher.h" + +@interface KWMatchers() { + NSMutableDictionary *userDefinedMatchers; +} +@end + +@implementation KWMatchers + +#pragma mark - Singleton implementation + +static id sharedMatchers = nil; + ++ (void)initialize { + if (self == [KWMatchers class]) { + sharedMatchers = [[self alloc] init]; + } +} + ++ (id)matchers { + return sharedMatchers; +} + +- (id)init { + self = [super init]; + if (self) { + userDefinedMatchers = [[NSMutableDictionary alloc] init]; + } + return self; +} + +#pragma mark - Defining Matchers + ++ (void)defineMatcher:(NSString *)selectorString as:(KWMatchersBuildingBlock)block { + [[self matchers] defineMatcher:selectorString as:block]; +} + +- (void)defineMatcher:(NSString *)selectorString as:(KWMatchersBuildingBlock)block { + KWUserDefinedMatcherBuilder *builder = [KWUserDefinedMatcherBuilder builderForSelector:NSSelectorFromString(selectorString)]; + block(builder); + userDefinedMatchers[builder.key] = builder; +} + +- (void)addUserDefinedMatcherBuilder:(KWUserDefinedMatcherBuilder *)builder { + userDefinedMatchers[builder.key] = builder; +} + +#pragma mark - Building Matchers + +- (KWUserDefinedMatcher *)matcherForSelector:(SEL)selector subject:(id)subject { + KWUserDefinedMatcherBuilder *builder = userDefinedMatchers[NSStringFromSelector(selector)]; + + if (builder == nil) + return nil; + + return [builder buildMatcherWithSubject:subject]; +} + + +@end + +void KWDefineMatchers(NSString *selectorString, KWMatchersBuildingBlock block) +{ + [KWMatchers defineMatcher:selectorString as:block]; +} + diff --git a/Pods/Kiwi/Classes/Core/KWMatching.h b/Pods/Kiwi/Classes/Core/KWMatching.h new file mode 100644 index 0000000..9dbb8db --- /dev/null +++ b/Pods/Kiwi/Classes/Core/KWMatching.h @@ -0,0 +1,42 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KiwiConfiguration.h" + +@protocol KWMatching + +#pragma mark - Initializing + +- (id)initWithSubject:(id)anObject; + +#pragma mark - Getting Matcher Strings + ++ (NSArray *)matcherStrings; + +#pragma mark - Getting Matcher Compatability + ++ (BOOL)canMatchSubject:(id)anObject; + +#pragma mark - Matching + +@optional + +- (BOOL)isNilMatcher; +- (BOOL)shouldBeEvaluatedAtEndOfExample; +- (BOOL)willEvaluateMultipleTimes; +- (void)setWillEvaluateMultipleTimes:(BOOL)shouldEvaluateMultipleTimes; +- (void)setWillEvaluateAgainstNegativeExpectation:(BOOL)willEvaluateAgainstNegativeExpectation; + +@required + +- (BOOL)evaluate; + +#pragma mark - Getting Failure Messages + +- (NSString *)failureMessageForShould; +- (NSString *)failureMessageForShouldNot; + +@end diff --git a/Pods/Kiwi/Classes/Core/KWMessagePattern.h b/Pods/Kiwi/Classes/Core/KWMessagePattern.h new file mode 100644 index 0000000..8144913 --- /dev/null +++ b/Pods/Kiwi/Classes/Core/KWMessagePattern.h @@ -0,0 +1,40 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KiwiConfiguration.h" + +@interface KWMessagePattern : NSObject + +#pragma mark - Initializing + +- (id)initWithSelector:(SEL)aSelector; +- (id)initWithSelector:(SEL)aSelector argumentFilters:(NSArray *)anArray; +- (id)initWithSelector:(SEL)aSelector firstArgumentFilter:(id)firstArgumentFilter argumentList:(va_list)argumentList; + ++ (id)messagePatternWithSelector:(SEL)aSelector; ++ (id)messagePatternWithSelector:(SEL)aSelector argumentFilters:(NSArray *)anArray; ++ (id)messagePatternWithSelector:(SEL)aSelector firstArgumentFilter:(id)firstArgumentFilter argumentList:(va_list)argumentList; + ++ (id)messagePatternFromInvocation:(NSInvocation *)anInvocation; + +#pragma mark - Properties + +@property (nonatomic, readonly) SEL selector; +@property (nonatomic, readonly) NSArray *argumentFilters; + +#pragma mark - Matching Invocations + +- (BOOL)matchesInvocation:(NSInvocation *)anInvocation; + +#pragma mark - Comparing Message Patterns + +- (BOOL)isEqualToMessagePattern:(KWMessagePattern *)aMessagePattern; + +#pragma mark - Retrieving String Representations + +- (NSString *)stringValue; + +@end diff --git a/Pods/Kiwi/Classes/Core/KWMessagePattern.m b/Pods/Kiwi/Classes/Core/KWMessagePattern.m new file mode 100644 index 0000000..474bae7 --- /dev/null +++ b/Pods/Kiwi/Classes/Core/KWMessagePattern.m @@ -0,0 +1,219 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KWMessagePattern.h" +#import "KWFormatter.h" +#import "KWNull.h" +#import "KWObjCUtilities.h" +#import "KWValue.h" +#import "NSInvocation+KiwiAdditions.h" +#import "NSMethodSignature+KiwiAdditions.h" +#import "KWGenericMatchEvaluator.h" +#import "Kiwi.h" + +@implementation KWMessagePattern + +#pragma mark - Initializing + +- (id)initWithSelector:(SEL)aSelector { + return [self initWithSelector:aSelector argumentFilters:nil]; +} + +- (id)initWithSelector:(SEL)aSelector argumentFilters:(NSArray *)anArray { + self = [super init]; + if (self) { + selector = aSelector; + + if ([anArray count] > 0) + argumentFilters = [anArray copy]; + } + + return self; +} + +- (id)initWithSelector:(SEL)aSelector firstArgumentFilter:(id)firstArgumentFilter argumentList:(va_list)argumentList { + NSUInteger count = KWSelectorParameterCount(aSelector); + NSMutableArray *array = [NSMutableArray arrayWithCapacity:count]; + [array addObject:(firstArgumentFilter != nil) ? firstArgumentFilter : [KWNull null]]; + + for (NSUInteger i = 1; i < count; ++i) + { + id object = va_arg(argumentList, id); + [array addObject:(object != nil) ? object : [KWNull null]]; + } + + va_end(argumentList); + return [self initWithSelector:aSelector argumentFilters:array]; +} + ++ (id)messagePatternWithSelector:(SEL)aSelector { + return [self messagePatternWithSelector:aSelector argumentFilters:nil]; +} + ++ (id)messagePatternWithSelector:(SEL)aSelector argumentFilters:(NSArray *)anArray { + return [[self alloc] initWithSelector:aSelector argumentFilters:anArray]; +} + ++ (id)messagePatternWithSelector:(SEL)aSelector firstArgumentFilter:(id)firstArgumentFilter argumentList:(va_list)argumentList { + return [[self alloc] initWithSelector:aSelector firstArgumentFilter:firstArgumentFilter argumentList:argumentList]; +} + ++ (id)messagePatternFromInvocation:(NSInvocation *)anInvocation { + NSMethodSignature *signature = [anInvocation methodSignature]; + NSUInteger numberOfMessageArguments = [signature numberOfMessageArguments]; + NSMutableArray *argumentFilters = nil; + + if (numberOfMessageArguments > 0) { + argumentFilters = [[NSMutableArray alloc] initWithCapacity:numberOfMessageArguments]; + + for (NSUInteger i = 0; i < numberOfMessageArguments; ++i) { + const char *type = [signature messageArgumentTypeAtIndex:i]; + void* argumentDataBuffer = malloc(KWObjCTypeLength(type)); + [anInvocation getMessageArgument:argumentDataBuffer atIndex:i]; + id object = nil; + if(*(__unsafe_unretained id*)argumentDataBuffer != [KWAny any] && !KWObjCTypeIsObject(type)) { + NSData *data = [anInvocation messageArgumentDataAtIndex:i]; + object = [KWValue valueWithBytes:[data bytes] objCType:type]; + } else { + object = *(__unsafe_unretained id*)argumentDataBuffer; + + if (object != [KWAny any] && KWObjCTypeIsBlock(type)) { + object = [object copy]; // Converting NSStackBlock to NSMallocBlock + } + } + + [argumentFilters addObject:(object != nil) ? object : [KWNull null]]; + + free(argumentDataBuffer); + } + } + + return [self messagePatternWithSelector:[anInvocation selector] argumentFilters:argumentFilters]; +} + +#pragma mark - Properties + +@synthesize selector; +@synthesize argumentFilters; + +#pragma mark - Matching Invocations + +- (BOOL)argumentFiltersMatchInvocationArguments:(NSInvocation *)anInvocation { + if (self.argumentFilters == nil) + return YES; + + NSMethodSignature *signature = [anInvocation methodSignature]; + NSUInteger numberOfArgumentFilters = [self.argumentFilters count]; + NSUInteger numberOfMessageArguments = [signature numberOfMessageArguments]; + + for (NSUInteger i = 0; i < numberOfMessageArguments && i < numberOfArgumentFilters; ++i) { + const char *objCType = [signature messageArgumentTypeAtIndex:i]; + id __autoreleasing object = nil; + + // Extract message argument into object (wrapping values if neccesary) + if (KWObjCTypeIsObject(objCType) || KWObjCTypeIsClass(objCType)) { + [anInvocation getMessageArgument:&object atIndex:i]; + } else { + NSData *data = [anInvocation messageArgumentDataAtIndex:i]; + object = [KWValue valueWithBytes:[data bytes] objCType:objCType]; + } + + // Match argument filter to object + id argumentFilter = (self.argumentFilters)[i]; + + if ([argumentFilter isEqual:[KWAny any]]) { + continue; + } + + if ([KWGenericMatchEvaluator isGenericMatcher:argumentFilter]) { + id matcher = argumentFilter; + if ([object isKindOfClass:[KWValue class]] && [object isNumeric]) { + NSNumber *number = [object numberValue]; + if (![KWGenericMatchEvaluator genericMatcher:matcher matches:number]) { + return NO; + } + } else if (![KWGenericMatchEvaluator genericMatcher:matcher matches:object]) { + return NO; + } + } else if ([argumentFilter isEqual:[KWNull null]]) { + if (!KWObjCTypeIsPointerLike(objCType)) { + [NSException raise:@"KWMessagePatternException" format:@"nil was specified as an argument filter, but argument(%d) is not a pointer for @selector(%@)", (int)(i + 1), NSStringFromSelector([anInvocation selector])]; + } + void *p = nil; + [anInvocation getMessageArgument:&p atIndex:i]; + if (p != nil) + return NO; + } else if (![argumentFilter isEqual:object]) { + return NO; + } + } + + return YES; +} + +- (BOOL)matchesInvocation:(NSInvocation *)anInvocation { + return self.selector == [anInvocation selector] && [self argumentFiltersMatchInvocationArguments:anInvocation]; +} + +#pragma mark - Comparing Message Patterns + +- (NSUInteger)hash { + return [NSStringFromSelector(self.selector) hash]; +} + +- (BOOL)isEqual:(id)object { + if (![object isKindOfClass:[KWMessagePattern class]]) + return NO; + + return [self isEqualToMessagePattern:object]; +} + +- (BOOL)isEqualToMessagePattern:(KWMessagePattern *)aMessagePattern { + if (self.selector != aMessagePattern.selector) + return NO; + + if (self.argumentFilters == nil && aMessagePattern.argumentFilters == nil) + return YES; + + return [self.argumentFilters isEqualToArray:aMessagePattern.argumentFilters]; +} + +#pragma mark - Retrieving String Representations + +- (NSString *)selectorString { + return NSStringFromSelector(self.selector); +} + +- (NSString *)selectorAndArgumentFiltersString { + NSMutableString *description = [[NSMutableString alloc] init]; + NSArray *components = [NSStringFromSelector(self.selector) componentsSeparatedByString:@":"]; + NSUInteger count = [components count] - 1; + + for (NSUInteger i = 0; i < count; ++i) { + NSString *selectorComponent = components[i]; + NSString *argumentFilterString = [KWFormatter formatObject:(self.argumentFilters)[i]]; + [description appendFormat:@"%@:%@ ", selectorComponent, argumentFilterString]; + } + + return description; +} + +- (NSString *)stringValue { + if (self.argumentFilters == nil) + return [self selectorString]; + else + return [self selectorAndArgumentFiltersString]; +} + +#pragma mark - Debugging + +- (NSString *)description { + return [NSString stringWithFormat:@"selector: %@\nargumentFilters: %@", + NSStringFromSelector(self.selector), + self.argumentFilters]; +} + +@end diff --git a/Pods/Kiwi/Classes/Core/KWMessageSpying.h b/Pods/Kiwi/Classes/Core/KWMessageSpying.h new file mode 100644 index 0000000..0ac1aa7 --- /dev/null +++ b/Pods/Kiwi/Classes/Core/KWMessageSpying.h @@ -0,0 +1,15 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KiwiConfiguration.h" + +@protocol KWMessageSpying + +#pragma mark - Spying on Messages + +- (void)object:(id)anObject didReceiveInvocation:(NSInvocation *)anInvocation; + +@end diff --git a/Pods/Kiwi/Classes/Core/KWMessageTracker.h b/Pods/Kiwi/Classes/Core/KWMessageTracker.h new file mode 100644 index 0000000..5bf5f56 --- /dev/null +++ b/Pods/Kiwi/Classes/Core/KWMessageTracker.h @@ -0,0 +1,41 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KiwiConfiguration.h" +#import "KWCountType.h" +#import "KWMessageSpying.h" + +@class KWMessagePattern; + +@interface KWMessageTracker : NSObject + +#pragma mark - Initializing + +- (id)initWithSubject:(id)anObject messagePattern:(KWMessagePattern *)aMessagePattern countType:(KWCountType)aCountType count:(NSUInteger)aCount; + ++ (id)messageTrackerWithSubject:(id)anObject messagePattern:(KWMessagePattern *)aMessagePattern countType:(KWCountType)aCountType count:(NSUInteger)aCount; + +#pragma mark - Properties + +@property (nonatomic, readonly) id subject; +@property (nonatomic, readonly) KWMessagePattern *messagePattern; +@property (nonatomic, readonly) KWCountType countType; +@property (nonatomic, readonly) NSUInteger count; + +#pragma mark - Stopping Tracking + +- (void)stopTracking; + +#pragma mark - Getting Message Tracker Status + +- (BOOL)succeeded; + +#pragma mark - Getting Phrases + +- (NSString *)expectedCountPhrase; +- (NSString *)receivedCountPhrase; + +@end diff --git a/Pods/Kiwi/Classes/Core/KWMessageTracker.m b/Pods/Kiwi/Classes/Core/KWMessageTracker.m new file mode 100644 index 0000000..121e374 --- /dev/null +++ b/Pods/Kiwi/Classes/Core/KWMessageTracker.m @@ -0,0 +1,130 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KWMessageTracker.h" +#import "KWMessagePattern.h" +#import "NSObject+KiwiStubAdditions.h" + +@interface KWMessageTracker() + +#pragma mark - Properties + +@property (nonatomic, assign) NSUInteger receivedCount; + +@end + +@implementation KWMessageTracker + +#pragma mark - Initializing + +- (id)initWithSubject:(id)anObject messagePattern:(KWMessagePattern *)aMessagePattern countType:(KWCountType)aCountType count:(NSUInteger)aCount { + self = [super init]; + if (self) { + _subject = anObject; + _messagePattern = aMessagePattern; + _countType = aCountType; + _count = aCount; + [anObject addMessageSpy:self forMessagePattern:aMessagePattern]; + } + + return self; +} + ++ (id)messageTrackerWithSubject:(id)anObject messagePattern:(KWMessagePattern *)aMessagePattern countType:(KWCountType)aCountType count:(NSUInteger)aCount { + return [[self alloc] initWithSubject:anObject messagePattern:aMessagePattern countType:aCountType count:aCount]; +} + +#pragma mark - Spying on Messages + +- (void)object:(id)anObject didReceiveInvocation:(NSInvocation *)anInvocation { + if (![self.messagePattern matchesInvocation:anInvocation]) + return; + + ++self.receivedCount; +} + +#pragma mark - Stopping Tracking + +- (void)stopTracking { + [self.subject removeMessageSpy:self forMessagePattern:self.messagePattern]; +} + +#pragma mark - Getting Message Tracker Status + +- (BOOL)succeeded { + switch (self.countType) { + case KWCountTypeExact: + return self.receivedCount == self.count; + case KWCountTypeAtLeast: + return self.receivedCount >= self.count; + case KWCountTypeAtMost: + return self.receivedCount <= self.count; + default: + break; + } + + assert(0 && "should never reach here"); + return NO; +} + +#pragma mark - Getting Phrases + +- (NSString *)phraseForCount:(NSUInteger)aCount { + if (aCount == 1) + return @"1 time"; + + return [NSString stringWithFormat:@"%d times", (int)aCount]; +} + +- (NSString *)expectedCountPhrase { + NSString *countPhrase = [self phraseForCount:self.count]; + + switch (self.countType) { + case KWCountTypeExact: + return [NSString stringWithFormat:@"exactly %@", countPhrase]; + case KWCountTypeAtLeast: + return [NSString stringWithFormat:@"at least %@", countPhrase]; + case KWCountTypeAtMost: + return [NSString stringWithFormat:@"at most %@", countPhrase]; + default: + break; + } + + assert(0 && "should never reach here"); + return nil; +} + +- (NSString *)receivedCountPhrase { + return [self phraseForCount:self.receivedCount]; +} + +#pragma mark - Debugging + +- (NSString *)modeString { + switch (self.countType) { + case KWCountTypeExact: + return @"KWCountTypeExact"; + case KWCountTypeAtLeast: + return @"KWCountTypeAtLeast"; + case KWCountTypeAtMost: + return @"KWCountTypeAtMost"; + default: + break; + } + + assert(0 && "should never reach here"); + return nil; +} + +- (NSString *)description { + return [NSString stringWithFormat:@"messagePattern: %@\nmode: %@\ncount: %d\nreceiveCount: %d", + self.messagePattern, + self.modeString, + (int)self.count, + (int)self.receivedCount]; +} + +@end diff --git a/Pods/Kiwi/Classes/Core/KWNull.h b/Pods/Kiwi/Classes/Core/KWNull.h new file mode 100644 index 0000000..4208a57 --- /dev/null +++ b/Pods/Kiwi/Classes/Core/KWNull.h @@ -0,0 +1,18 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KiwiConfiguration.h" + +// KWNull exists to represent the same thing as NSNull, except that Kiwi needs +// to distinguish between null singletons used internally and those a user +// is using as an object parameter. +@interface KWNull : NSObject + +#pragma mark - Initializing + ++ (id)null; + +@end diff --git a/Pods/Kiwi/Classes/Core/KWNull.m b/Pods/Kiwi/Classes/Core/KWNull.m new file mode 100644 index 0000000..6d3bf73 --- /dev/null +++ b/Pods/Kiwi/Classes/Core/KWNull.m @@ -0,0 +1,25 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KWNull.h" + +@implementation KWNull + +#pragma mark - Initializing + + ++ (id)null { + static KWNull *sharedNull = nil; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + sharedNull = [self new]; + + }); + + return sharedNull; +} + +@end diff --git a/Pods/Kiwi/Classes/Core/KWObjCUtilities.h b/Pods/Kiwi/Classes/Core/KWObjCUtilities.h new file mode 100644 index 0000000..4536e0b --- /dev/null +++ b/Pods/Kiwi/Classes/Core/KWObjCUtilities.h @@ -0,0 +1,31 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KiwiConfiguration.h" + +#pragma mark - Objective-C Type Utilities + +BOOL KWObjCTypeEqualToObjCType(const char *firstObjCType, const char *secondObjCType); +BOOL KWObjCTypeIsNumeric(const char *objCType); +BOOL KWObjCTypeIsFloatingPoint(const char *objCType); +BOOL KWObjCTypeIsIntegral(const char *objCType); +BOOL KWObjCTypeIsSignedIntegral(const char *objCType); +BOOL KWObjCTypeIsUnsignedIntegral(const char *objCType); +BOOL KWObjCTypeIsBoolean(const char *objCType); +BOOL KWObjCTypeIsObject(const char *objCType); +BOOL KWObjCTypeIsCharString(const char *objCType); +BOOL KWObjCTypeIsClass(const char *objCType); +BOOL KWObjCTypeIsSelector(const char *objCType); +BOOL KWObjCTypeIsPointerToType(const char *objCType); +BOOL KWObjCTypeIsPointerLike(const char *objCType); +BOOL KWObjCTypeIsUnknown(const char *objCType); +BOOL KWObjCTypeIsBlock(const char *objCType); + +NSUInteger KWObjCTypeLength(const char *objCType); + +#pragma mark - Selector Utlities + +NSUInteger KWSelectorParameterCount(SEL selector); diff --git a/Pods/Kiwi/Classes/Core/KWObjCUtilities.m b/Pods/Kiwi/Classes/Core/KWObjCUtilities.m new file mode 100644 index 0000000..c51b1e3 --- /dev/null +++ b/Pods/Kiwi/Classes/Core/KWObjCUtilities.m @@ -0,0 +1,104 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KWObjCUtilities.h" +#import "KWStringUtilities.h" + +#pragma mark - Objective-C Type Utilities + +BOOL KWObjCTypeEqualToObjCType(const char *firstObjCType, const char *secondObjCType) { + return strcmp(firstObjCType, secondObjCType) == 0; +} + +BOOL KWObjCTypeIsNumeric(const char *objCType) { + return KWObjCTypeIsFloatingPoint(objCType) || KWObjCTypeIsIntegral(objCType); +} + +BOOL KWObjCTypeIsFloatingPoint(const char *objCType) { + return strcmp(objCType, @encode(float)) == 0 || strcmp(objCType, @encode(double)) == 0; +} + +BOOL KWObjCTypeIsIntegral(const char *objCType) { + return KWObjCTypeIsSignedIntegral(objCType) || KWObjCTypeIsUnsignedIntegral(objCType); +} + +BOOL KWObjCTypeIsSignedIntegral(const char *objCType) { + return strcmp(objCType, @encode(char)) == 0 || + strcmp(objCType, @encode(int)) == 0 || + strcmp(objCType, @encode(short)) == 0 || + strcmp(objCType, @encode(long)) == 0 || + strcmp(objCType, @encode(long long)) == 0; +} + +BOOL KWObjCTypeIsUnsignedIntegral(const char *objCType) { + return strcmp(objCType, @encode(unsigned char)) == 0 || + strcmp(objCType, @encode(unsigned int)) == 0 || + strcmp(objCType, @encode(unsigned short)) == 0 || + strcmp(objCType, @encode(unsigned long)) == 0 || + strcmp(objCType, @encode(unsigned long long)) == 0; +} + +BOOL KWObjCTypeIsBoolean(const char *objCType) { + return strcmp(objCType, @encode(BOOL)) == 0 || strcmp(objCType, @encode(bool)) == 0; +} + +BOOL KWObjCTypeIsObject(const char *objCType) { + return strcmp(objCType, @encode(id)) == 0 || strcmp(objCType, "@?") == 0; +} + +BOOL KWObjCTypeIsCharString(const char *objCType) { + return strcmp(objCType, @encode(char *)) == 0; +} + +BOOL KWObjCTypeIsClass(const char *objCType) { + return strcmp(objCType, @encode(Class)) == 0; +} + +BOOL KWObjCTypeIsSelector(const char *objCType) { + return strcmp(objCType, @encode(SEL)) == 0; +} + +BOOL KWObjCTypeIsPointerToType(const char *objCType) { + return *objCType == '^'; +} + +BOOL KWObjCTypeIsPointerLike(const char *objCType) { + return KWObjCTypeIsObject(objCType) || + KWObjCTypeIsCharString(objCType) || + KWObjCTypeIsClass(objCType) || + KWObjCTypeIsSelector(objCType) || + KWObjCTypeIsPointerToType(objCType); +} + +BOOL KWObjCTypeIsUnknown(const char *objCType) { + return *objCType == '?'; +} + +NSUInteger KWObjCTypeLength(const char *objCType) { + NSUInteger typeSize = 0; + NSGetSizeAndAlignment(objCType, &typeSize, NULL); + return typeSize; +} + +BOOL KWObjCTypeIsBlock(const char *objCType) { + return strcmp(objCType, "@?") == 0; +} + + +#pragma mark - Selector Utlities + +NSUInteger KWSelectorParameterCount(SEL selector) { + NSString *selectorString = NSStringFromSelector(selector); + NSUInteger length = [selectorString length]; + NSUInteger parameterCount = 0; + + for (NSUInteger i = 0; i < length; ++i) { + if ([selectorString characterAtIndex:i] == ':') + ++parameterCount; + } + + return parameterCount; +} diff --git a/Pods/Kiwi/Classes/Core/KWProbe.h b/Pods/Kiwi/Classes/Core/KWProbe.h new file mode 100644 index 0000000..d635c76 --- /dev/null +++ b/Pods/Kiwi/Classes/Core/KWProbe.h @@ -0,0 +1,14 @@ +// +// KWProbe.h +// iOSFalconCore +// +// Created by Luke Redpath on 13/01/2011. +// Copyright 2011 LJR Software Limited. All rights reserved. +// + +#import + +@protocol KWProbe +- (BOOL)isSatisfied; +- (void)sample; +@end diff --git a/Pods/Kiwi/Classes/Core/KWProbePoller.h b/Pods/Kiwi/Classes/Core/KWProbePoller.h new file mode 100644 index 0000000..543a117 --- /dev/null +++ b/Pods/Kiwi/Classes/Core/KWProbePoller.h @@ -0,0 +1,19 @@ +// +// KWProbePoller.h +// iOSFalconCore +// +// Created by Luke Redpath on 13/01/2011. +// Copyright 2011 LJR Software Limited. All rights reserved. +// + +#import +#import "KWProbe.h" + +#define kKW_DEFAULT_PROBE_DELAY 0.1 + +@interface KWProbePoller : NSObject + +- (id)initWithTimeout:(NSTimeInterval)theTimeout delay:(NSTimeInterval)theDelay shouldWait:(BOOL)wait; +- (BOOL)check:(id)probe; + +@end diff --git a/Pods/Kiwi/Classes/Core/KWProbePoller.m b/Pods/Kiwi/Classes/Core/KWProbePoller.m new file mode 100644 index 0000000..9198ba8 --- /dev/null +++ b/Pods/Kiwi/Classes/Core/KWProbePoller.m @@ -0,0 +1,72 @@ +// +// KWProbePoller.m +// iOSFalconCore +// +// Created by Luke Redpath on 13/01/2011. +// Copyright 2011 LJR Software Limited. All rights reserved. +// + +#import "KWProbePoller.h" + +@interface KWTimeout : NSObject + +@property (nonatomic) CFTimeInterval timeoutDateStamp; + +@end + +@implementation KWTimeout + +- (id)initWithTimeout:(NSTimeInterval)timeout +{ + self = [super init]; + if (self) { + _timeoutDateStamp = CFAbsoluteTimeGetCurrent() + timeout; + } + return self; +} + + +- (BOOL)hasTimedOut { + return (_timeoutDateStamp - CFAbsoluteTimeGetCurrent()) < 0; +} + +@end + + +@interface KWProbePoller() + +@property (nonatomic, assign) NSTimeInterval timeoutInterval; +@property (nonatomic, assign) NSTimeInterval delayInterval; +@property (nonatomic, assign) BOOL shouldWait; + +@end + +@implementation KWProbePoller + +- (id)initWithTimeout:(NSTimeInterval)theTimeout + delay:(NSTimeInterval)theDelay + shouldWait:(BOOL)wait { + self = [super init]; + if (self) { + _timeoutInterval = theTimeout; + _delayInterval = theDelay; + _shouldWait = wait; + } + return self; +} + +- (BOOL)check:(id)probe; { + KWTimeout *timeout = [[KWTimeout alloc] initWithTimeout:self.timeoutInterval]; + + while (self.shouldWait || ![probe isSatisfied]) { + if ([timeout hasTimedOut]) { + return [probe isSatisfied]; + } + CFRunLoopRunInMode(kCFRunLoopDefaultMode, _delayInterval, false); + [probe sample]; + } + + return YES; +} + +@end diff --git a/Pods/Kiwi/Classes/Core/KWReporting.h b/Pods/Kiwi/Classes/Core/KWReporting.h new file mode 100644 index 0000000..d9e9fc0 --- /dev/null +++ b/Pods/Kiwi/Classes/Core/KWReporting.h @@ -0,0 +1,17 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KiwiConfiguration.h" + +@class KWFailure; + +@protocol KWReporting + +#pragma mark - Reporting Failures + +- (void)reportFailure:(KWFailure *)failure; + +@end diff --git a/Pods/Kiwi/Classes/Core/KWSpec.h b/Pods/Kiwi/Classes/Core/KWSpec.h new file mode 100644 index 0000000..1a06fb2 --- /dev/null +++ b/Pods/Kiwi/Classes/Core/KWSpec.h @@ -0,0 +1,29 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KiwiConfiguration.h" +#import +#import "KWExpectationType.h" +#import "KWVerifying.h" +#import "KWExampleDelegate.h" + +@class KWCallSite; + +@interface KWSpec : XCTestCase + +#pragma mark - Adding Verifiers + ++ (id)addVerifier:(id)aVerifier; ++ (id)addExistVerifierWithExpectationType:(KWExpectationType)anExpectationType callSite:(KWCallSite *)aCallSite; ++ (id)addMatchVerifierWithExpectationType:(KWExpectationType)anExpectationType callSite:(KWCallSite *)aCallSite; ++ (id)addAsyncVerifierWithExpectationType:(KWExpectationType)anExpectationType callSite:(KWCallSite *)aCallSite timeout:(NSTimeInterval)timeout shouldWait:(BOOL)shouldWait; + +#pragma mark - Building Example Groups + ++ (NSString *)file; ++ (void)buildExampleGroups; + +@end diff --git a/Pods/Kiwi/Classes/Core/KWSpec.m b/Pods/Kiwi/Classes/Core/KWSpec.m new file mode 100644 index 0000000..d9926b1 --- /dev/null +++ b/Pods/Kiwi/Classes/Core/KWSpec.m @@ -0,0 +1,127 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KWSpec.h" +#import "KWCallSite.h" +#import "KWExample.h" +#import "KWExampleSuiteBuilder.h" +#import "KWFailure.h" +#import "KWExampleSuite.h" + +#import + +@interface KWSpec() + +@property (nonatomic, strong) KWExample *currentExample; + +@end + +@implementation KWSpec + +/* Methods are only implemented by sub-classes */ + ++ (NSString *)file { return nil; } + ++ (void)buildExampleGroups {} + +- (NSString *)name { + return [self description]; +} + +/* Use camel case to make method friendly names from example description. */ + +- (NSString *)description { + KWExample *currentExample = self.currentExample ?: self.invocation.kw_example; + return [NSString stringWithFormat:@"-[%@ %@]", NSStringFromClass([self class]), currentExample.selectorName]; +} + +#pragma mark - Getting Invocations + +/* Called by the XCTest to get an array of invocations that + should be run on instances of test cases. */ + ++ (NSArray *)testInvocations { + SEL buildExampleGroups = @selector(buildExampleGroups); + + // Only return invocation if the receiver is a concrete spec that has overridden -buildExampleGroups. + if ([self methodForSelector:buildExampleGroups] == [KWSpec methodForSelector:buildExampleGroups]) + return nil; + + KWExampleSuite *exampleSuite = [[KWExampleSuiteBuilder sharedExampleSuiteBuilder] buildExampleSuite:^{ + [self buildExampleGroups]; + }]; + + NSMutableArray *invocations = [NSMutableArray new]; + for (KWExample *example in exampleSuite) { + SEL selector = [self addInstanceMethodForExample:example]; + NSInvocation *invocation = [self invocationForExample:example selector:selector]; + [invocations addObject:invocation]; + } + + return invocations; +} + ++ (SEL)addInstanceMethodForExample:(KWExample *)example { + Method method = class_getInstanceMethod(self, @selector(runExample)); + SEL selector = NSSelectorFromString(example.selectorName); + IMP implementation = method_getImplementation(method); + const char *types = method_getTypeEncoding(method); + class_addMethod(self, selector, implementation, types); + return selector; +} + ++ (NSInvocation *)invocationForExample:(KWExample *)example selector:(SEL)selector { + NSMethodSignature *signature = [NSMethodSignature signatureWithObjCTypes:"v@:"]; + NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:signature]; + invocation.kw_example = example; + invocation.selector = selector; + return invocation; +} + +#pragma mark - Running Specs + +- (void)runExample { + self.currentExample = self.invocation.kw_example; + + @autoreleasepool { + @try { + [self.currentExample runWithDelegate:self]; + } @catch (NSException *exception) { + [self recordFailureWithDescription:exception.description inFile:@"" atLine:0 expected:NO]; + } + + self.invocation.kw_example = nil; + } +} + +#pragma mark - KWExampleGroupDelegate methods + +- (void)example:(KWExample *)example didFailWithFailure:(KWFailure *)failure { + [self recordFailureWithDescription:failure.message + inFile:failure.callSite.filename + atLine:failure.callSite.lineNumber + expected:NO]; +} + +#pragma mark - Verification proxies + ++ (id)addVerifier:(id)aVerifier { + return [[[KWExampleSuiteBuilder sharedExampleSuiteBuilder] currentExample] addVerifier:aVerifier]; +} + ++ (id)addExistVerifierWithExpectationType:(KWExpectationType)anExpectationType callSite:(KWCallSite *)aCallSite { + return [[[KWExampleSuiteBuilder sharedExampleSuiteBuilder] currentExample] addExistVerifierWithExpectationType:anExpectationType callSite:aCallSite]; +} + ++ (id)addMatchVerifierWithExpectationType:(KWExpectationType)anExpectationType callSite:(KWCallSite *)aCallSite { + return [[[KWExampleSuiteBuilder sharedExampleSuiteBuilder] currentExample] addMatchVerifierWithExpectationType:anExpectationType callSite:aCallSite]; +} + ++ (id)addAsyncVerifierWithExpectationType:(KWExpectationType)anExpectationType callSite:(KWCallSite *)aCallSite timeout:(NSTimeInterval)timeout shouldWait:(BOOL)shouldWait { + return [[[KWExampleSuiteBuilder sharedExampleSuiteBuilder] currentExample] addAsyncVerifierWithExpectationType:anExpectationType callSite:aCallSite timeout:timeout shouldWait: shouldWait]; +} + +@end diff --git a/Pods/Kiwi/Classes/Core/KWStringUtilities.h b/Pods/Kiwi/Classes/Core/KWStringUtilities.h new file mode 100644 index 0000000..90264d9 --- /dev/null +++ b/Pods/Kiwi/Classes/Core/KWStringUtilities.h @@ -0,0 +1,19 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KiwiConfiguration.h" + +#pragma mark - Checking for Case Separated Words + +BOOL KWStringHasWordPrefix(NSString *string, NSString *prefix); +BOOL KWStringHasStrictWordPrefix(NSString *string, NSString *prefix); +BOOL KWStringHasWord(NSString *string, NSString *word); + +#pragma mark - Getting Type Encodings + +NSString *KWEncodingWithObjCTypes(const char *firstType, ...) NS_REQUIRES_NIL_TERMINATION; +NSString *KWEncodingForVoidMethod(void); +NSString *KWEncodingForDefaultMethod(void); diff --git a/Pods/Kiwi/Classes/Core/KWStringUtilities.m b/Pods/Kiwi/Classes/Core/KWStringUtilities.m new file mode 100644 index 0000000..4e17197 --- /dev/null +++ b/Pods/Kiwi/Classes/Core/KWStringUtilities.m @@ -0,0 +1,92 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KWStringUtilities.h" + +#pragma mark - Checking for Case Separated Words + +BOOL KWStringHasWordPrefix(NSString *string, NSString *prefix) { + return [string isEqualToString:prefix] || KWStringHasStrictWordPrefix(string, prefix); +} + +BOOL KWStringHasStrictWordPrefix(NSString *string, NSString *prefix) { + if (![string hasPrefix:prefix] || [string length] == [prefix length]) + return NO; + + unichar firstCharacterAfterPrefix = [string characterAtIndex:[prefix length]]; + NSCharacterSet *uppercaseCharacterSet = [NSCharacterSet uppercaseLetterCharacterSet]; + return [uppercaseCharacterSet characterIsMember:firstCharacterAfterPrefix]; +} + +BOOL KWStringHasWord(NSString *string, NSString *word) { + if (KWStringHasWordPrefix(string, word)) + return YES; + + NSCharacterSet *lowercaseCharacterSet = [NSCharacterSet lowercaseLetterCharacterSet]; + NSCharacterSet *uppercaseCharacterSet = [NSCharacterSet uppercaseLetterCharacterSet]; + NSRange searchRange = NSMakeRange(0, [string length]); + + // Never match if word begins with a lowercase letter and was not a prefix. + if ([lowercaseCharacterSet characterIsMember:[word characterAtIndex:0]]) + return NO; + + while (1) { + if (searchRange.location >= [string length]) + return NO; + + NSRange range = [string rangeOfString:word options:0 range:searchRange]; + searchRange.location = range.location + range.length; + searchRange.length = [string length] - searchRange.location; + + if (range.location == NSNotFound) + return NO; + + if (range.location > 0) { + unichar charBeforeRange = [string characterAtIndex:range.location - 1]; + + + if (![lowercaseCharacterSet characterIsMember:charBeforeRange]) + continue; + } + + if (range.location + range.length < [string length]) { + unichar charAfterRange = [string characterAtIndex:range.location + range.length]; + + if (![uppercaseCharacterSet characterIsMember:charAfterRange]) + continue; + } + + return YES; + } +} + +#pragma mark - Getting Type Encodings + +NSString *KWEncodingWithObjCTypes(const char *firstType, ...) { + if (firstType == nil) + return nil; + + NSMutableString *encoding = [NSMutableString stringWithCapacity:8]; + va_list argumentList; + va_start(argumentList, firstType); + const char *type = firstType; + + do { + [encoding appendFormat:@"%s", type]; + type = va_arg(argumentList, const char *); + } while (type != nil); + + va_end(argumentList); + return encoding; +} + +NSString *KWEncodingForVoidMethod(void) { + return KWEncodingWithObjCTypes(@encode(void), @encode(id), @encode(SEL), nil); +} + +NSString *KWEncodingForDefaultMethod(void) { + return KWEncodingWithObjCTypes(@encode(id), @encode(id), @encode(SEL), nil); +} diff --git a/Pods/Kiwi/Classes/Core/KWSymbolicator.h b/Pods/Kiwi/Classes/Core/KWSymbolicator.h new file mode 100644 index 0000000..452852f --- /dev/null +++ b/Pods/Kiwi/Classes/Core/KWSymbolicator.h @@ -0,0 +1,17 @@ +// +// KWSymbolicator.h +// Kiwi +// +// Created by Jerry Marino on 4/28/13. +// Copyright (c) 2013 Allen Ding. All rights reserved. +// + +#import + +long kwCallerAddress(void); + +@interface NSString (KWShellCommand) + ++ (NSString *)stringWithShellCommand:(NSString *)command arguments:(NSArray *)arguments; + +@end diff --git a/Pods/Kiwi/Classes/Core/KWSymbolicator.m b/Pods/Kiwi/Classes/Core/KWSymbolicator.m new file mode 100644 index 0000000..8128622 --- /dev/null +++ b/Pods/Kiwi/Classes/Core/KWSymbolicator.m @@ -0,0 +1,62 @@ +// +// KWSymbolicator.m +// Kiwi +// +// Created by Jerry Marino on 4/28/13. +// Copyright (c) 2013 Allen Ding. All rights reserved. +// + +#import "KWSymbolicator.h" +#import +#import + +long kwCallerAddress (void){ +#if !__arm__ + unw_cursor_t cursor; unw_context_t uc; + unw_word_t ip; + + unw_getcontext(&uc); + unw_init_local(&cursor, &uc); + + int pos = 2; + while (unw_step(&cursor) && pos--){ + unw_get_reg (&cursor, UNW_REG_IP, &ip); + if(pos == 0) return (NSUInteger)(ip - 4); + } +#endif + return 0; +} + +// Used to suppress compiler warnings by +// casting receivers to this protocol +@protocol NSTask_KWWarningSuppressor + +- (void)setLaunchPath:(NSString *)path; +- (void)setArguments:(NSArray *)arguments; +- (void)setEnvironment:(NSDictionary *)dict; +- (void)setStandardOutput:(id)output; +- (void)launch; +- (void)waitUntilExit; + +@end + +@implementation NSString (KWShellCommand) + ++ (NSString *)stringWithShellCommand:(NSString *)command arguments:(NSArray *)arguments { + id task = [[NSClassFromString(@"NSTask") alloc] init]; + [task setEnvironment:[NSDictionary dictionary]]; + [task setLaunchPath:command]; + [task setArguments:arguments]; + + NSPipe *pipe = [NSPipe pipe]; + [task setStandardOutput:pipe]; + [task launch]; + + [task waitUntilExit]; + + NSData *data = [[pipe fileHandleForReading] readDataToEndOfFile]; + NSString *string = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; + return string; +} + +@end diff --git a/Pods/Kiwi/Classes/Core/KWValue.h b/Pods/Kiwi/Classes/Core/KWValue.h new file mode 100644 index 0000000..78cbb66 --- /dev/null +++ b/Pods/Kiwi/Classes/Core/KWValue.h @@ -0,0 +1,87 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KiwiConfiguration.h" + +@interface KWValue : NSObject + +#pragma mark - Initializing + +- (id)initWithBytes:(const void *)bytes objCType:(const char *)anObjCType; + ++ (id)valueWithBytes:(const void *)bytes objCType:(const char *)anObjCType; ++ (id)valueWithBool:(BOOL)aValue; ++ (id)valueWithChar:(char)aValue; ++ (id)valueWithDouble:(double)aValue; ++ (id)valueWithFloat:(float)aValue; ++ (id)valueWithInt:(int)aValue; ++ (id)valueWithInteger:(NSInteger)aValue; ++ (id)valueWithLong:(long)aValue; ++ (id)valueWithLongLong:(long long)value; ++ (id)valueWithShort:(short)aValue; ++ (id)valueWithUnsignedChar:(unsigned char)aValue; ++ (id)valueWithUnsignedInt:(unsigned int)aValue; ++ (id)valueWithUnsignedInteger:(NSUInteger)aValue; ++ (id)valueWithUnsignedLong:(unsigned long)aValue; ++ (id)valueWithUnsignedLongLong:(unsigned long long)aValue; ++ (id)valueWithUnsignedShort:(unsigned short)aValue; + +#pragma mark - Properties + +@property (nonatomic, readonly) const char *objCType; +@property (nonatomic, readonly) BOOL isNumeric; + +#pragma mark - Accessing Numeric Values + +- (NSNumber *)numberValue; +- (BOOL)boolValue; +- (char)charValue; +- (double)doubleValue; +- (float)floatValue; +- (int)intValue; +- (NSInteger)integerValue; +- (long)longValue; +- (long long)longLongValue; +- (short)shortValue; +- (unsigned char)unsignedCharValue; +- (unsigned int)unsignedIntValue; +- (NSUInteger)unsignedIntegerValue; +- (unsigned long)unsignedLongValue; +- (unsigned long long)unsignedLongLongValue; +- (unsigned short)unsignedShortValue; + +#pragma mark - Accessing Data + +- (NSData *)dataValue; +- (void)getValue:(void *)buffer; + +#pragma mark - Accessing Numeric Data + +- (NSData *)dataForObjCType:(const char *)anObjCType; +- (NSData *)boolData; +- (NSData *)charData; +- (NSData *)doubleData; +- (NSData *)floatData; +- (NSData *)intData; +- (NSData *)integerData; +- (NSData *)longData; +- (NSData *)longLongData; +- (NSData *)shortData; +- (NSData *)unsignedCharData; +- (NSData *)unsignedIntData; +- (NSData *)unsignedIntegerData; +- (NSData *)unsignedLongData; +- (NSData *)unsignedLongLongData; +- (NSData *)unsignedShortData; + +#pragma mark - Comparing Values + +- (NSComparisonResult)compare:(KWValue *)aValue; + +- (BOOL)isEqualToKWValue:(KWValue *)aValue; +- (BOOL)isEqualToNumber:(NSNumber *)aValue; + +@end diff --git a/Pods/Kiwi/Classes/Core/KWValue.m b/Pods/Kiwi/Classes/Core/KWValue.m new file mode 100644 index 0000000..f59f23e --- /dev/null +++ b/Pods/Kiwi/Classes/Core/KWValue.m @@ -0,0 +1,350 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KWValue.h" +#import "KWObjCUtilities.h" +#import "NSNumber+KiwiAdditions.h" + +@interface KWValue() + +#pragma mark - Properties + +@property (nonatomic, readonly) id value; + +@end + +@implementation KWValue + +#pragma mark - Initializing + +- (id)initWithBytes:(const void *)bytes objCType:(const char *)anObjCType { + self = [super init]; + if (self) { + objCType = anObjCType; + value = [[NSValue alloc] initWithBytes:bytes objCType:anObjCType]; + } + + return self; +} + ++ (id)valueWithBytes:(const void *)bytes objCType:(const char *)type { + return [[self alloc] initWithBytes:bytes objCType:type]; +} + ++ (id)valueWithBool:(BOOL)aValue { + return [self valueWithBytes:&aValue objCType:@encode(BOOL)]; +} + ++ (id)valueWithChar:(char)aValue { + return [self valueWithBytes:&aValue objCType:@encode(char)]; +} + ++ (id)valueWithDouble:(double)aValue { + return [self valueWithBytes:&aValue objCType:@encode(double)]; +} + ++ (id)valueWithFloat:(float)aValue { + return [self valueWithBytes:&aValue objCType:@encode(float)]; +} + ++ (id)valueWithInt:(int)aValue { + return [self valueWithBytes:&aValue objCType:@encode(int)]; +} + ++ (id)valueWithInteger:(NSInteger)aValue { + return [self valueWithBytes:&aValue objCType:@encode(NSInteger)]; +} + ++ (id)valueWithLong:(long)aValue { + return [self valueWithBytes:&aValue objCType:@encode(long)]; +} + ++ (id)valueWithLongLong:(long long)value { + return [self valueWithBytes:&value objCType:@encode(long long)]; +} + ++ (id)valueWithShort:(short)aValue { + return [self valueWithBytes:&aValue objCType:@encode(short)]; +} + ++ (id)valueWithUnsignedChar:(unsigned char)aValue { + return [self valueWithBytes:&aValue objCType:@encode(unsigned char)]; +} + ++ (id)valueWithUnsignedInt:(unsigned int)aValue { + return [self valueWithBytes:&aValue objCType:@encode(unsigned int)]; +} + ++ (id)valueWithUnsignedInteger:(NSUInteger)aValue { + return [self valueWithBytes:&aValue objCType:@encode(NSUInteger)]; +} + ++ (id)valueWithUnsignedLong:(unsigned long)aValue { + return [self valueWithBytes:&aValue objCType:@encode(unsigned long)]; +} + ++ (id)valueWithUnsignedLongLong:(unsigned long long)aValue { + return [self valueWithBytes:&aValue objCType:@encode(long long)]; +} + ++ (id)valueWithUnsignedShort:(unsigned short)aValue { + return [self valueWithBytes:&aValue objCType:@encode(unsigned short)]; +} + + +#pragma mark - Properties + +@synthesize objCType; + +- (BOOL)isNumeric { + return KWObjCTypeIsNumeric(self.objCType); +} + +@synthesize value; + +#pragma mark - Accessing Numeric Values + +- (NSNumber *)numberValue { + if (!KWObjCTypeIsNumeric(self.objCType) && !KWObjCTypeIsBoolean(self.objCType)) { + [NSException raise:NSInternalInconsistencyException + format:@"cannot return number value because wrapped value is non-numeric"]; + } + + NSData *data = [self dataValue]; + return [NSNumber numberWithBytes:[data bytes] objCType:self.objCType]; +} + +- (BOOL)boolValue { + return [[self numberValue] boolValue]; +} + +- (char)charValue { + return [[self numberValue] charValue]; +} + +- (double)doubleValue { + return [[self numberValue] doubleValue]; +} + +- (float)floatValue { + return [[self numberValue] floatValue]; +} + +- (int)intValue { + return [[self numberValue] intValue]; +} + +- (NSInteger)integerValue { + return [[self numberValue] integerValue]; +} + +- (long)longValue { + return [[self numberValue] longValue]; +} + +- (long long)longLongValue { + return [[self numberValue] longLongValue]; +} +- (short)shortValue { + return [[self numberValue] shortValue]; +} + +- (unsigned char)unsignedCharValue { + return [[self numberValue] unsignedCharValue]; +} + +- (unsigned int)unsignedIntValue { + return [[self numberValue] unsignedIntValue]; +} + +- (NSUInteger)unsignedIntegerValue { + return [[self numberValue] unsignedIntegerValue]; +} + +- (unsigned long)unsignedLongValue { + return [[self numberValue] unsignedLongValue]; +} + +- (unsigned long long)unsignedLongLongValue { + return [[self numberValue] unsignedLongLongValue]; +} + +- (unsigned short)unsignedShortValue { + return [[self numberValue] unsignedShortValue]; +} + +#pragma mark - Accessing Data + +- (NSData *)dataValue { + NSUInteger length = KWObjCTypeLength(self.objCType); + void *buffer = malloc(length); + [self.value getValue:buffer]; + NSData *data = [NSData dataWithBytes:buffer length:length]; + free(buffer); + return data; +} + +- (void)getValue:(void *)buffer { + [self.value getValue:buffer]; +} + +#pragma mark - Accessing Numeric Data + +- (NSData *)dataForObjCType:(const char *)anObjCType { + // Yeah, this is ugly. + if (KWObjCTypeEqualToObjCType(anObjCType, @encode(BOOL))) + return [self boolData]; + else if (KWObjCTypeEqualToObjCType(anObjCType, @encode(char))) + return [self charData]; + else if (KWObjCTypeEqualToObjCType(anObjCType, @encode(double))) + return [self doubleData]; + else if (KWObjCTypeEqualToObjCType(anObjCType, @encode(float))) + return [self floatData]; + else if (KWObjCTypeEqualToObjCType(anObjCType, @encode(int))) + return [self intData]; + else if (KWObjCTypeEqualToObjCType(anObjCType, @encode(NSInteger))) + return [self integerData]; + else if (KWObjCTypeEqualToObjCType(anObjCType, @encode(long))) + return [self longData]; + else if (KWObjCTypeEqualToObjCType(anObjCType, @encode(long long))) + return [self longLongData]; + else if (KWObjCTypeEqualToObjCType(anObjCType, @encode(short))) + return [self shortData]; + else if (KWObjCTypeEqualToObjCType(anObjCType, @encode(unsigned char))) + return [self unsignedCharData]; + else if (KWObjCTypeEqualToObjCType(anObjCType, @encode(unsigned int))) + return [self unsignedIntData]; + else if (KWObjCTypeEqualToObjCType(anObjCType, @encode(NSUInteger))) + return [self unsignedIntegerData]; + else if (KWObjCTypeEqualToObjCType(anObjCType, @encode(unsigned long))) + return [self unsignedLongData]; + else if (KWObjCTypeEqualToObjCType(anObjCType, @encode(unsigned long long))) + return [self unsignedLongLongData]; + else if (KWObjCTypeEqualToObjCType(anObjCType, @encode(unsigned short))) + return [self unsignedShortData]; + else + return nil; +} + +- (NSData *)boolData { + BOOL aValue = [self boolValue]; + return [NSData dataWithBytes:&aValue length:sizeof(BOOL)]; +} + +- (NSData *)charData { + char aValue = [self charValue]; + return [NSData dataWithBytes:&aValue length:sizeof(char)]; +} + +- (NSData *)doubleData { + double aValue = [self doubleValue]; + return [NSData dataWithBytes:&aValue length:sizeof(double)]; +} + +- (NSData *)floatData { + float aValue = [self floatValue]; + return [NSData dataWithBytes:&aValue length:sizeof(float)]; +} + +- (NSData *)intData { + int aValue = [self intValue]; + return [NSData dataWithBytes:&aValue length:sizeof(int)]; +} + +- (NSData *)integerData { + NSInteger aValue = [self integerValue]; + return [NSData dataWithBytes:&aValue length:sizeof(NSInteger)]; +} + +- (NSData *)longData { + long aValue = [self longValue]; + return [NSData dataWithBytes:&aValue length:sizeof(long)]; +} + +- (NSData *)longLongData { + long long aValue = [self longLongValue]; + return [NSData dataWithBytes:&aValue length:sizeof(long long)]; +} + +- (NSData *)shortData { + short aValue = [self shortValue]; + return [NSData dataWithBytes:&aValue length:sizeof(short)]; +} + +- (NSData *)unsignedCharData { + unsigned char aValue = [self unsignedCharValue]; + return [NSData dataWithBytes:&aValue length:sizeof(unsigned char)]; +} + +- (NSData *)unsignedIntData { + unsigned int aValue = [self unsignedIntValue]; + return [NSData dataWithBytes:&aValue length:sizeof(unsigned int)]; +} + +- (NSData *)unsignedIntegerData { + NSUInteger aValue = [self unsignedIntegerValue]; + return [NSData dataWithBytes:&aValue length:sizeof(NSUInteger)]; +} + +- (NSData *)unsignedLongData { + unsigned long aValue = [self unsignedLongValue]; + return [NSData dataWithBytes:&aValue length:sizeof(unsigned long)]; +} + +- (NSData *)unsignedLongLongData { + unsigned long long aValue = [self unsignedLongLongValue]; + return [NSData dataWithBytes:&aValue length:sizeof(unsigned long long)]; +} + +- (NSData *)unsignedShortData { + unsigned short aValue = [self unsignedShortValue]; + return [NSData dataWithBytes:&aValue length:sizeof(unsigned short)]; +} + +#pragma mark - Comparing Objects + +- (NSUInteger)hash { + if (self.isNumeric) + return [[self numberValue] hash]; + + return [self.value hash]; +} + +- (NSComparisonResult)compare:(KWValue *)aValue { + return [[self numberValue] compare:[aValue numberValue]]; +} + +- (BOOL)isEqual:(id)object { + if ([object isKindOfClass:[KWValue class]]) + return [self isEqualToKWValue:object]; + + if ([object isKindOfClass:[NSNumber class]]) + return [self isEqualToNumber:object]; + + return NO; +} + +- (BOOL)isEqualToKWValue:(KWValue *)aValue { + if (self.isNumeric && aValue.isNumeric) + return [self isEqualToNumber:[aValue numberValue]]; + else + return [self.value isEqual:aValue.value]; +} + +- (BOOL)isEqualToNumber:(NSNumber *)aValue { + return [[self numberValue] isEqualToNumber:aValue]; +} + +#pragma mark - Representing Values + +- (NSString *)description { + if ([self isNumeric]) + return [[self numberValue] description]; + + return [self.value description]; +} + +@end diff --git a/Pods/Kiwi/Classes/Core/KWWorkarounds.h b/Pods/Kiwi/Classes/Core/KWWorkarounds.h new file mode 100644 index 0000000..8242a98 --- /dev/null +++ b/Pods/Kiwi/Classes/Core/KWWorkarounds.h @@ -0,0 +1,17 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KiwiConfiguration.h" + +#if KW_TARGET_HAS_INVOCATION_EXCEPTION_BUG + +#pragma mark - Invocation Exception Bug Workaround + +// See KiwiConfiguration.h for notes. +void KWSetExceptionFromAcrossInvocationBoundary(NSException *anException); +NSException *KWGetAndClearExceptionFromAcrossInvocationBoundary(void); + +#endif // #if KW_TARGET_HAS_INVOCATION_EXCEPTION_BUG diff --git a/Pods/Kiwi/Classes/Core/KWWorkarounds.m b/Pods/Kiwi/Classes/Core/KWWorkarounds.m new file mode 100644 index 0000000..2d866bb --- /dev/null +++ b/Pods/Kiwi/Classes/Core/KWWorkarounds.m @@ -0,0 +1,26 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KWWorkarounds.h" + +#if KW_TARGET_HAS_INVOCATION_EXCEPTION_BUG + +static NSException *KWExceptionAcrossInvokeBoundary = nil; + +void KWSetExceptionFromAcrossInvocationBoundary(NSException *anException) { + if (KWExceptionAcrossInvokeBoundary != nil) + return; + + KWExceptionAcrossInvokeBoundary = anException; +} + +NSException *KWGetAndClearExceptionFromAcrossInvocationBoundary(void) { + NSException *exception = KWExceptionAcrossInvokeBoundary; + KWExceptionAcrossInvokeBoundary = nil; + return exception; +} + +#endif // #if KW_TARGET_HAS_INVOCATION_EXCEPTION_BUG diff --git a/Pods/Kiwi/Classes/Core/Kiwi.h b/Pods/Kiwi/Classes/Core/Kiwi.h new file mode 100644 index 0000000..4284c54 --- /dev/null +++ b/Pods/Kiwi/Classes/Core/Kiwi.h @@ -0,0 +1,102 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +// This needs to come first. +#import "KiwiConfiguration.h" +#import + +#if defined(__cplusplus) +extern "C" { +#endif + +#import "KWAfterAllNode.h" +#import "KWAfterEachNode.h" +#import "KWAny.h" +#import "KWAsyncVerifier.h" +#import "KWBeBetweenMatcher.h" +#import "KWBeEmptyMatcher.h" +#import "KWBeIdenticalToMatcher.h" +#import "KWBeKindOfClassMatcher.h" +#import "KWBeMemberOfClassMatcher.h" +#import "KWBeSubclassOfClassMatcher.h" +#import "KWBeTrueMatcher.h" +#import "KWNilMatcher.h" +#import "KWBeWithinMatcher.h" +#import "KWBeZeroMatcher.h" +#import "KWBeforeAllNode.h" +#import "KWBeforeEachNode.h" +#import "KWBlock.h" +#import "KWBlockNode.h" +#import "KWBlockRaiseMatcher.h" +#import "KWCallSite.h" +#import "KWChangeMatcher.h" +#import "KWConformToProtocolMatcher.h" +#import "KWContainMatcher.h" +#import "KWContainStringMatcher.h" +#import "KWContextNode.h" +#import "KWDeviceInfo.h" +#import "KWEqualMatcher.h" +#import "KWExample.h" +#import "KWExampleSuiteBuilder.h" +#import "KWExampleNode.h" +#import "KWExampleNodeVisitor.h" +#import "KWExistVerifier.h" +#import "KWExpectationType.h" +#import "KWFailure.h" +#import "KWFormatter.h" +#import "KWFutureObject.h" +#import "KWGenericMatcher.h" +#import "KWHaveMatcher.h" +#import "KWHaveValueMatcher.h" +#import "KWInequalityMatcher.h" +#import "KWInvocationCapturer.h" +#import "KWItNode.h" +#import "KWMatchVerifier.h" +#import "KWMatcher.h" +#import "KWMatchers.h" +#import "KWMatcherFactory.h" +#import "KWMatching.h" +#import "KWMessagePattern.h" +#import "KWMessageSpying.h" +#import "KWMock.h" +#import "KWNull.h" +#import "KWObjCUtilities.h" +#import "KWPendingNode.h" +#import "KWReceiveMatcher.h" +#import "KWRegisterMatchersNode.h" +#import "KWRegularExpressionPatternMatcher.h" +#import "KWRespondToSelectorMatcher.h" +#import "KWSpec.h" +#import "KWStringUtilities.h" +#import "KWStub.h" +#import "KWSuiteConfigurationBase.h" +#import "KWUserDefinedMatcher.h" +#import "KWValue.h" +#import "KWVerifying.h" +#import "KWCaptureSpy.h" +#import "KWStringPrefixMatcher.h" +#import "KWStringContainsMatcher.h" +#import "KWNotificationMatcher.h" + + +// Public Foundation Categories +#import "NSObject+KiwiMockAdditions.h" +#import "NSObject+KiwiSpyAdditions.h" +#import "NSObject+KiwiStubAdditions.h" +#import "NSObject+KiwiVerifierAdditions.h" +#import "NSProxy+KiwiVerifierAdditions.h" + +#import "KiwiMacros.h" + +// Some Foundation headers use Kiwi keywords (e.g. 'should') as identifiers for +// parameter names. Including this last allows the use of Kiwi keywords without +// conflicting with these headers (hopefully!). +#import "KiwiBlockMacros.h" + +#if defined(__cplusplus) +} +#endif + diff --git a/Pods/Kiwi/Classes/Core/KiwiBlockMacros.h b/Pods/Kiwi/Classes/Core/KiwiBlockMacros.h new file mode 100644 index 0000000..57f0bd8 --- /dev/null +++ b/Pods/Kiwi/Classes/Core/KiwiBlockMacros.h @@ -0,0 +1,16 @@ +// +// KiwiBlockMacros.h +// Kiwi +// +// Created by Luke Redpath on 11/07/2011. +// Copyright 2011 Allen Ding. All rights reserved. +// + +// user defined matchers +#define registerMatcher(name) \ +\ +@interface NSObject (KWUserDefinedMatchersDefinitions) \ +- (void)name; \ +@end \ + +#define defineMatcher(...) KWDefineMatchers(__VA_ARGS__) diff --git a/Pods/Kiwi/Classes/Core/KiwiConfiguration.h b/Pods/Kiwi/Classes/Core/KiwiConfiguration.h new file mode 100644 index 0000000..1b54283 --- /dev/null +++ b/Pods/Kiwi/Classes/Core/KiwiConfiguration.h @@ -0,0 +1,18 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +// As of iPhone SDK 4 GM, exceptions thrown across an NSInvocation -invoke or +// forwardInvocation: boundary in the simulator will terminate the app instead +// of being caught in @catch blocks from the caller side of the -invoke. Kiwi +// tries to handle this by storing the first exception that it would have +// otherwise thrown in a nasty global that callers can look for and handle. +// (Buggy termination is less desirable than global variables). +// +// Obviously, this can only handles cases where Kiwi itself would have raised +// an exception. +#if TARGET_IPHONE_SIMULATOR + #define KW_TARGET_HAS_INVOCATION_EXCEPTION_BUG 1 +#endif diff --git a/Pods/Kiwi/Classes/Core/KiwiMacros.h b/Pods/Kiwi/Classes/Core/KiwiMacros.h new file mode 100644 index 0000000..d754a09 --- /dev/null +++ b/Pods/Kiwi/Classes/Core/KiwiMacros.h @@ -0,0 +1,111 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KiwiConfiguration.h" + +// This category is solely meant to coax Xcode into exposing the method names below during autocompletion. +// There is no implementation and this class definition must come before the macro definitions below. +@interface NSObject (KiwiVerifierMacroNames) + +- (void)should; +- (void)shouldNot; +- (void)shouldBeNil DEPRECATED_ATTRIBUTE; +- (void)shouldNotBeNil DEPRECATED_ATTRIBUTE; +- (void)shouldEventually; +- (void)shouldNotEventually; +- (void)shouldEventuallyBeforeTimingOutAfter; +- (void)shouldNotEventuallyBeforeTimingOutAfter; + +- (void)shouldAfterWait; +- (void)shouldNotAfterWait; +- (void)shouldAfterWaitOf; +- (void)shouldNotAfterWaitOf; + +@end + +#pragma mark - Support Macros + +#define KW_THIS_CALLSITE [KWCallSite callSiteWithFilename:@__FILE__ lineNumber:__LINE__] +#define KW_ADD_EXIST_VERIFIER(expectationType) [self addExistVerifierWithExpectationType:expectationType callSite:KW_THIS_CALLSITE] +#define KW_ADD_MATCH_VERIFIER(expectationType) [self addMatchVerifierWithExpectationType:expectationType callSite:KW_THIS_CALLSITE] +#define KW_ADD_ASYNC_VERIFIER(expectationType, timeOut, wait) [self addAsyncVerifierWithExpectationType:expectationType callSite:KW_THIS_CALLSITE timeout:timeOut shouldWait:wait] + +#pragma mark - Keywords + +// Kiwi macros used in specs for verifying expectations. +#define should attachToVerifier:KW_ADD_MATCH_VERIFIER(KWExpectationTypeShould) +#define shouldNot attachToVerifier:KW_ADD_MATCH_VERIFIER(KWExpectationTypeShouldNot) +#define shouldBeNil attachToVerifier:KW_ADD_EXIST_VERIFIER(KWExpectationTypeShouldNot) +#define shouldNotBeNil attachToVerifier:KW_ADD_EXIST_VERIFIER(KWExpectationTypeShould) + +#define shouldEventually attachToVerifier:KW_ADD_ASYNC_VERIFIER(KWExpectationTypeShould, kKW_DEFAULT_PROBE_TIMEOUT, NO) +#define shouldNotEventually attachToVerifier:KW_ADD_ASYNC_VERIFIER(KWExpectationTypeShouldNot, kKW_DEFAULT_PROBE_TIMEOUT, NO) +#define shouldEventuallyBeforeTimingOutAfter(timeout) attachToVerifier:KW_ADD_ASYNC_VERIFIER(KWExpectationTypeShould, timeout, NO) +#define shouldNotEventuallyBeforeTimingOutAfter(timeout) attachToVerifier:KW_ADD_ASYNC_VERIFIER(KWExpectationTypeShouldNot, timeout, NO) + +#define shouldAfterWait attachToVerifier:KW_ADD_ASYNC_VERIFIER(KWExpectationTypeShould, kKW_DEFAULT_PROBE_TIMEOUT, YES) +#define shouldNotAfterWait attachToVerifier:KW_ADD_ASYNC_VERIFIER(KWExpectationTypeShouldNot, kKW_DEFAULT_PROBE_TIMEOUT, YES) +#define shouldAfterWaitOf(timeout) attachToVerifier:KW_ADD_ASYNC_VERIFIER(KWExpectationTypeShould, timeout, YES) +#define shouldNotAfterWaitOf(timeout) attachToVerifier:KW_ADD_ASYNC_VERIFIER(KWExpectationTypeShouldNot, timeout, YES) + +#define beNil beNil:[KWNilMatcher verifyNilSubject] +#define beNonNil beNonNil:[KWNilMatcher verifyNonNilSubject] + +// used to wrap a pointer to an object that will change in the future (used with shouldEventually) +#define expectFutureValue(futureValue) [KWFutureObject futureObjectWithBlock:^{ return futureValue; }] + +// `fail` triggers a failure report when called +#define fail(message, ...) [[[KWExampleSuiteBuilder sharedExampleSuiteBuilder] currentExample] reportFailure:[KWFailure failureWithCallSite:KW_THIS_CALLSITE format:message, ##__VA_ARGS__]] + +// used for message patterns to allow matching any value +#define any() [KWAny any] + +// If a gcc compatible compiler is available, use the statement and +// declarations in expression extension to provide a convenient catch-all macro +// to create KWValues. +#if defined(__GNUC__) + #define theValue(expr) \ + ({ \ + __typeof__(expr) kiwiReservedPrefix_lVar = expr; \ + [KWValue valueWithBytes:&kiwiReservedPrefix_lVar objCType:@encode(__typeof__(expr))]; \ + }) +#endif // #if defined(__GNUC__) + +// Allows for comparision of pointer values in expectations +#define thePointerValue(expr) [NSValue valueWithPointer:(expr)] + +// Example group declarations. +#define SPEC_BEGIN(name) \ + \ + @interface name : KWSpec \ + \ + @end \ + \ + @implementation name \ + \ + + (NSString *)file { return @__FILE__; } \ + \ + + (void)buildExampleGroups { \ + +#define SPEC_END \ + } \ + \ + @end + +// Test suite configuration declaration +#define CONFIG_START \ + @interface KWSuiteConfiguration : KWSuiteConfigurationBase \ + \ + @end \ + \ + @implementation KWSuiteConfiguration \ + \ + - (void)configureSuite { + +#define CONFIG_END \ + } \ + \ + @end diff --git a/Pods/Kiwi/Classes/Core/NSInvocation+KiwiAdditions.h b/Pods/Kiwi/Classes/Core/NSInvocation+KiwiAdditions.h new file mode 100644 index 0000000..d663b4c --- /dev/null +++ b/Pods/Kiwi/Classes/Core/NSInvocation+KiwiAdditions.h @@ -0,0 +1,26 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KiwiConfiguration.h" + +@interface NSInvocation(KiwiAdditions) + +#pragma mark - Creating NSInvocation Objects + ++ (NSInvocation *)invocationWithTarget:(id)anObject selector:(SEL)aSelector; ++ (NSInvocation *)invocationWithTarget:(id)anObject selector:(SEL)aSelector messageArguments:(const void *)firstBytes, ...; + +#pragma mark - Accessing Message Arguments + +// Message arguments are invocation arguments that begin after the target and selector arguments. These methods provide +// convenient ways to access them. + +- (NSData *)messageArgumentDataAtIndex:(NSUInteger)anIndex; +- (void)getMessageArgument:(void *)buffer atIndex:(NSUInteger)anIndex; +- (void)setMessageArgument:(const void *)bytes atIndex:(NSUInteger)anIndex; +- (void)setMessageArguments:(const void *)firstBytes, ...; + +@end diff --git a/Pods/Kiwi/Classes/Core/NSInvocation+KiwiAdditions.m b/Pods/Kiwi/Classes/Core/NSInvocation+KiwiAdditions.m new file mode 100644 index 0000000..23065a2 --- /dev/null +++ b/Pods/Kiwi/Classes/Core/NSInvocation+KiwiAdditions.m @@ -0,0 +1,91 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "NSInvocation+KiwiAdditions.h" +#import "KWFormatter.h" +#import "KWObjCUtilities.h" +#import "NSMethodSignature+KiwiAdditions.h" + +@implementation NSInvocation(KiwiAdditions) + +#pragma mark - Creating NSInvocation Objects + ++ (NSInvocation *)invocationWithTarget:(id)anObject selector:(SEL)aSelector { + return [self invocationWithTarget:anObject selector:aSelector messageArguments:nil]; +} + ++ (NSInvocation *)invocationWithTarget:(id)anObject selector:(SEL)aSelector messageArguments:(const void *)firstBytes, ... { + if (anObject == nil) { + [NSException raise:NSInvalidArgumentException format:@"%@ - target must not be nil", + NSStringFromSelector(_cmd)]; + } + + NSMethodSignature *signature = [anObject methodSignatureForSelector:aSelector]; + + if (signature == nil) { + [NSException raise:NSInvalidArgumentException format:@"%@ - target returned nil for -methodSignatureForSelector", + NSStringFromSelector(_cmd)]; + } + + NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:signature]; + [invocation setTarget:anObject]; + [invocation setSelector:aSelector]; + NSUInteger numberOfMessageArguments = [signature numberOfMessageArguments]; + + if (numberOfMessageArguments == 0) + return invocation; + + va_list argumentList; + va_start(argumentList, firstBytes); + const void *bytes = firstBytes; + + for (NSUInteger i = 0; i < numberOfMessageArguments && bytes != nil; ++i) { + [invocation setMessageArgument:bytes atIndex:i]; + bytes = va_arg(argumentList, const void *); + } + + va_end(argumentList); + return invocation; +} + +#pragma mark - Accessing Message Arguments + +- (NSData *)messageArgumentDataAtIndex:(NSUInteger)anIndex { + NSUInteger length = KWObjCTypeLength([[self methodSignature] messageArgumentTypeAtIndex:anIndex]); + void *buffer = malloc(length); + [self getMessageArgument:buffer atIndex:anIndex]; + // NSData takes over ownership of buffer + NSData* data = [NSData dataWithBytesNoCopy:buffer length:length]; + return data; +} + +- (void)getMessageArgument:(void *)buffer atIndex:(NSUInteger)anIndex { + [self getArgument:buffer atIndex:anIndex + 2]; +} + +- (void)setMessageArgument:(const void *)bytes atIndex:(NSUInteger)anIndex { + [self setArgument:(void *)bytes atIndex:anIndex + 2]; +} + +- (void)setMessageArguments:(const void *)firstBytes, ... { + NSUInteger numberOfMessageArguments = [[self methodSignature] numberOfMessageArguments]; + + if (numberOfMessageArguments == 0) + return; + + va_list argumentList; + va_start(argumentList, firstBytes); + const void *bytes = firstBytes; + + for (NSUInteger i = 0; i < numberOfMessageArguments && bytes != nil; ++i) { + [self setMessageArgument:bytes atIndex:i]; + bytes = va_arg(argumentList, const void *); + } + + va_end(argumentList); +} + +@end diff --git a/Pods/Kiwi/Classes/Core/NSInvocation+OCMAdditions.h b/Pods/Kiwi/Classes/Core/NSInvocation+OCMAdditions.h new file mode 100644 index 0000000..04f22cd --- /dev/null +++ b/Pods/Kiwi/Classes/Core/NSInvocation+OCMAdditions.h @@ -0,0 +1,34 @@ +//--------------------------------------------------------------------------------------- +// $Id$ +// Copyright (c) 2006-2009 by Mulle Kybernetik. See License file for details. +//--------------------------------------------------------------------------------------- + +#import + +@interface NSInvocation(OCMAdditions) + +- (id)getArgumentAtIndexAsObject:(int)argIndex; + +- (NSString *)invocationDescription; + +- (NSString *)argumentDescriptionAtIndex:(int)argIndex; + +- (NSString *)objectDescriptionAtIndex:(int)anInt; +- (NSString *)charDescriptionAtIndex:(int)anInt; +- (NSString *)unsignedCharDescriptionAtIndex:(int)anInt; +- (NSString *)intDescriptionAtIndex:(int)anInt; +- (NSString *)unsignedIntDescriptionAtIndex:(int)anInt; +- (NSString *)shortDescriptionAtIndex:(int)anInt; +- (NSString *)unsignedShortDescriptionAtIndex:(int)anInt; +- (NSString *)longDescriptionAtIndex:(int)anInt; +- (NSString *)unsignedLongDescriptionAtIndex:(int)anInt; +- (NSString *)longLongDescriptionAtIndex:(int)anInt; +- (NSString *)unsignedLongLongDescriptionAtIndex:(int)anInt; +- (NSString *)doubleDescriptionAtIndex:(int)anInt; +- (NSString *)floatDescriptionAtIndex:(int)anInt; +- (NSString *)structDescriptionAtIndex:(int)anInt; +- (NSString *)pointerDescriptionAtIndex:(int)anInt; +- (NSString *)cStringDescriptionAtIndex:(int)anInt; +- (NSString *)selectorDescriptionAtIndex:(int)anInt; + +@end diff --git a/Pods/Kiwi/Classes/Core/NSInvocation+OCMAdditions.m b/Pods/Kiwi/Classes/Core/NSInvocation+OCMAdditions.m new file mode 100644 index 0000000..a53804b --- /dev/null +++ b/Pods/Kiwi/Classes/Core/NSInvocation+OCMAdditions.m @@ -0,0 +1,343 @@ +//--------------------------------------------------------------------------------------- +// $Id$ +// Copyright (c) 2006-2009 by Mulle Kybernetik. See License file for details. +//--------------------------------------------------------------------------------------- + +#import "NSInvocation+OCMAdditions.h" + + +@implementation NSInvocation(OCMAdditions) + +- (id)getArgumentAtIndexAsObject:(int)argIndex +{ + const char* argType; + + argType = [[self methodSignature] getArgumentTypeAtIndex:argIndex]; + while(strchr("rnNoORV", argType[0]) != NULL) + argType += 1; + + if((strlen(argType) > 1) && (strchr("{^", argType[0]) == NULL) && (strcmp("@?", argType) != 0)) + [NSException raise:NSInvalidArgumentException format:@"Cannot handle argument type '%s'.", argType]; + + switch (argType[0]) + { + case '#': + case '@': + { + __unsafe_unretained id value; + [self getArgument:&value atIndex:argIndex]; + return value; + } + case ':': + { + SEL s = (SEL)0; + [self getArgument:&s atIndex:argIndex]; + id value = NSStringFromSelector(s); + return value; + } + case 'i': + { + int value; + [self getArgument:&value atIndex:argIndex]; + return @(value); + } + case 's': + { + short value; + [self getArgument:&value atIndex:argIndex]; + return @(value); + } + case 'l': + { + long value; + [self getArgument:&value atIndex:argIndex]; + return @(value); + } + case 'q': + { + long long value; + [self getArgument:&value atIndex:argIndex]; + return @(value); + } + case 'c': + { + char value; + [self getArgument:&value atIndex:argIndex]; + return @(value); + } + case 'C': + { + unsigned char value; + [self getArgument:&value atIndex:argIndex]; + return @(value); + } + case 'I': + { + unsigned int value; + [self getArgument:&value atIndex:argIndex]; + return @(value); + } + case 'S': + { + unsigned short value; + [self getArgument:&value atIndex:argIndex]; + return @(value); + } + case 'L': + { + unsigned long value; + [self getArgument:&value atIndex:argIndex]; + return @(value); + } + case 'Q': + { + unsigned long long value; + [self getArgument:&value atIndex:argIndex]; + return @(value); + } + case 'f': + { + float value; + [self getArgument:&value atIndex:argIndex]; + return @(value); + } + case 'd': + { + double value; + [self getArgument:&value atIndex:argIndex]; + return @(value); + } + case 'B': + { + bool value; + [self getArgument:&value atIndex:argIndex]; + return @(value); + } + case '^': + { + void *value = NULL; + [self getArgument:&value atIndex:argIndex]; + return [NSValue valueWithPointer:value]; + } + case '*': + { + char *value = NULL; + [self getArgument:&value atIndex:argIndex]; + return [NSValue valueWithPointer:value]; + } + case '{': // structure + { + NSUInteger maxArgSize = [[self methodSignature] frameLength]; + NSMutableData *argumentData = [[NSMutableData alloc] initWithLength:maxArgSize]; + [self getArgument:[argumentData mutableBytes] atIndex:argIndex]; + return [NSValue valueWithBytes:[argumentData bytes] objCType:argType]; + } + + } + [NSException raise:NSInvalidArgumentException format:@"Argument type '%s' not supported", argType]; + return nil; +} + +- (NSString *)invocationDescription +{ + NSMethodSignature *methodSignature = [self methodSignature]; + NSUInteger numberOfArgs = [methodSignature numberOfArguments]; + + if (numberOfArgs == 2) + return NSStringFromSelector([self selector]); + + NSArray *selectorParts = [NSStringFromSelector([self selector]) componentsSeparatedByString:@":"]; + NSMutableString *description = [[NSMutableString alloc] init]; + unsigned int i; + for(i = 2; i < numberOfArgs; i++) + { + [description appendFormat:@"%@%@:", (i > 2 ? @" " : @""), selectorParts[(i - 2)]]; + [description appendString:[self argumentDescriptionAtIndex:i]]; + } + + return description; +} + +- (NSString *)argumentDescriptionAtIndex:(int)argIndex +{ + const char *argType = [[self methodSignature] getArgumentTypeAtIndex:argIndex]; + if(strchr("rnNoORV", argType[0]) != NULL) + argType += 1; + + switch(*argType) + { + case '@': return [self objectDescriptionAtIndex:argIndex]; + case 'c': return [self charDescriptionAtIndex:argIndex]; + case 'C': return [self unsignedCharDescriptionAtIndex:argIndex]; + case 'i': return [self intDescriptionAtIndex:argIndex]; + case 'I': return [self unsignedIntDescriptionAtIndex:argIndex]; + case 's': return [self shortDescriptionAtIndex:argIndex]; + case 'S': return [self unsignedShortDescriptionAtIndex:argIndex]; + case 'l': return [self longDescriptionAtIndex:argIndex]; + case 'L': return [self unsignedLongDescriptionAtIndex:argIndex]; + case 'q': return [self longLongDescriptionAtIndex:argIndex]; + case 'Q': return [self unsignedLongLongDescriptionAtIndex:argIndex]; + case 'd': return [self doubleDescriptionAtIndex:argIndex]; + case 'f': return [self floatDescriptionAtIndex:argIndex]; + // Why does this throw EXC_BAD_ACCESS when appending the string? + // case NSObjCStructType: return [self structDescriptionAtIndex:index]; + case '^': return [self pointerDescriptionAtIndex:argIndex]; + case '*': return [self cStringDescriptionAtIndex:argIndex]; + case ':': return [self selectorDescriptionAtIndex:argIndex]; + default: return [@""]; // avoid confusion with trigraphs... + } + +} + + +- (NSString *)objectDescriptionAtIndex:(int)anInt +{ + __unsafe_unretained id object; + + [self getArgument:&object atIndex:anInt]; + if (object == nil) + return @"nil"; + else if(![object isProxy] && [object isKindOfClass:[NSString class]]) + return [NSString stringWithFormat:@"@\"%@\"", [object description]]; + else + return [object description]; +} + +- (NSString *)charDescriptionAtIndex:(int)anInt +{ + unsigned char buffer[128]; + memset(buffer, 0x0, 128); + + [self getArgument:&buffer atIndex:anInt]; + + // If there's only one character in the buffer, and it's 0 or 1, then we have a BOOL + if (buffer[1] == '\0' && (buffer[0] == 0 || buffer[0] == 1)) + return [NSString stringWithFormat:@"%@", (buffer[0] == 1 ? @"YES" : @"NO")]; + else + return [NSString stringWithFormat:@"'%c'", *buffer]; +} + +- (NSString *)unsignedCharDescriptionAtIndex:(int)anInt +{ + unsigned char buffer[128]; + memset(buffer, 0x0, 128); + + [self getArgument:&buffer atIndex:anInt]; + return [NSString stringWithFormat:@"'%c'", *buffer]; +} + +- (NSString *)intDescriptionAtIndex:(int)anInt +{ + int intValue; + + [self getArgument:&intValue atIndex:anInt]; + return [NSString stringWithFormat:@"%d", intValue]; +} + +- (NSString *)unsignedIntDescriptionAtIndex:(int)anInt +{ + unsigned int intValue; + + [self getArgument:&intValue atIndex:anInt]; + return [NSString stringWithFormat:@"%d", intValue]; +} + +- (NSString *)shortDescriptionAtIndex:(int)anInt +{ + short shortValue; + + [self getArgument:&shortValue atIndex:anInt]; + return [NSString stringWithFormat:@"%hi", shortValue]; +} + +- (NSString *)unsignedShortDescriptionAtIndex:(int)anInt +{ + unsigned short shortValue; + + [self getArgument:&shortValue atIndex:anInt]; + return [NSString stringWithFormat:@"%hu", shortValue]; +} + +- (NSString *)longDescriptionAtIndex:(int)anInt +{ + long longValue; + + [self getArgument:&longValue atIndex:anInt]; + return [NSString stringWithFormat:@"%ld", longValue]; +} + +- (NSString *)unsignedLongDescriptionAtIndex:(int)anInt +{ + unsigned long longValue; + + [self getArgument:&longValue atIndex:anInt]; + return [NSString stringWithFormat:@"%lu", longValue]; +} + +- (NSString *)longLongDescriptionAtIndex:(int)anInt +{ + long long longLongValue; + + [self getArgument:&longLongValue atIndex:anInt]; + return [NSString stringWithFormat:@"%qi", longLongValue]; +} + +- (NSString *)unsignedLongLongDescriptionAtIndex:(int)anInt +{ + unsigned long long longLongValue; + + [self getArgument:&longLongValue atIndex:anInt]; + return [NSString stringWithFormat:@"%qu", longLongValue]; +} + +- (NSString *)doubleDescriptionAtIndex:(int)anInt; +{ + double doubleValue; + + [self getArgument:&doubleValue atIndex:anInt]; + return [NSString stringWithFormat:@"%f", doubleValue]; +} + +- (NSString *)floatDescriptionAtIndex:(int)anInt +{ + float floatValue; + + [self getArgument:&floatValue atIndex:anInt]; + return [NSString stringWithFormat:@"%f", floatValue]; +} + +- (NSString *)structDescriptionAtIndex:(int)anInt; +{ + void *buffer; + + [self getArgument:&buffer atIndex:anInt]; + return [NSString stringWithFormat:@":(struct)%p", buffer]; +} + +- (NSString *)pointerDescriptionAtIndex:(int)anInt +{ + void *buffer; + + [self getArgument:&buffer atIndex:anInt]; + return [NSString stringWithFormat:@"%p", buffer]; +} + +- (NSString *)cStringDescriptionAtIndex:(int)anInt +{ + char buffer[128]; + + memset(buffer, 0x0, 128); + + [self getArgument:&buffer atIndex:anInt]; + return [NSString stringWithFormat:@"\"%s\"", buffer]; +} + +- (NSString *)selectorDescriptionAtIndex:(int)anInt +{ + SEL selectorValue; + + [self getArgument:&selectorValue atIndex:anInt]; + return [NSString stringWithFormat:@"@selector(%@)", NSStringFromSelector(selectorValue)]; +} + +@end diff --git a/Pods/Kiwi/Classes/Core/NSMethodSignature+KiwiAdditions.h b/Pods/Kiwi/Classes/Core/NSMethodSignature+KiwiAdditions.h new file mode 100644 index 0000000..e7c44a3 --- /dev/null +++ b/Pods/Kiwi/Classes/Core/NSMethodSignature+KiwiAdditions.h @@ -0,0 +1,16 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KiwiConfiguration.h" + +@interface NSMethodSignature(KiwiAdditions) + +#pragma mark - Getting Information on Message Arguments + +- (NSUInteger)numberOfMessageArguments; +- (const char *)messageArgumentTypeAtIndex:(NSUInteger)anIndex; + +@end diff --git a/Pods/Kiwi/Classes/Core/NSMethodSignature+KiwiAdditions.m b/Pods/Kiwi/Classes/Core/NSMethodSignature+KiwiAdditions.m new file mode 100644 index 0000000..3d1b887 --- /dev/null +++ b/Pods/Kiwi/Classes/Core/NSMethodSignature+KiwiAdditions.m @@ -0,0 +1,21 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "NSMethodSignature+KiwiAdditions.h" + +@implementation NSMethodSignature(KiwiAdditions) + +#pragma mark - Getting Information on Message Arguments + +- (NSUInteger)numberOfMessageArguments { + return [self numberOfArguments] - 2; +} + +- (const char *)messageArgumentTypeAtIndex:(NSUInteger)anIndex { + return [self getArgumentTypeAtIndex:anIndex + 2]; +} + +@end diff --git a/Pods/Kiwi/Classes/Core/NSNumber+KiwiAdditions.h b/Pods/Kiwi/Classes/Core/NSNumber+KiwiAdditions.h new file mode 100644 index 0000000..5e070e0 --- /dev/null +++ b/Pods/Kiwi/Classes/Core/NSNumber+KiwiAdditions.h @@ -0,0 +1,31 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KiwiConfiguration.h" + +@interface NSNumber(KiwiAdditions) + +#pragma mark - Creating Numbers + ++ (id)numberWithBytes:(const void *)bytes objCType:(const char *)anObjCType; ++ (id)numberWithBoolBytes:(const void *)bytes; ++ (id)numberWithStdBoolBytes:(const void *)bytes; ++ (id)numberWithCharBytes:(const void *)bytes; ++ (id)numberWithDoubleBytes:(const void *)bytes; ++ (id)numberWithFloatBytes:(const void *)bytes; ++ (id)numberWithIntBytes:(const void *)bytes; ++ (id)numberWithIntegerBytes:(const void *)bytes; ++ (id)numberWithLongBytes:(const void *)bytes; ++ (id)numberWithLongLongBytes:(const void *)bytes; ++ (id)numberWithShortBytes:(const void *)bytes; ++ (id)numberWithUnsignedCharBytes:(const void *)bytes; ++ (id)numberWithUnsignedIntBytes:(const void *)bytes; ++ (id)numberWithUnsignedIntegerBytes:(const void *)bytes; ++ (id)numberWithUnsignedLongBytes:(const void *)bytes; ++ (id)numberWithUnsignedLongLongBytes:(const void *)bytes; ++ (id)numberWithUnsignedShortBytes:(const void *)bytes; + +@end diff --git a/Pods/Kiwi/Classes/Core/NSNumber+KiwiAdditions.m b/Pods/Kiwi/Classes/Core/NSNumber+KiwiAdditions.m new file mode 100644 index 0000000..049f10e --- /dev/null +++ b/Pods/Kiwi/Classes/Core/NSNumber+KiwiAdditions.m @@ -0,0 +1,116 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "NSNumber+KiwiAdditions.h" +#import "KWObjCUtilities.h" + +@implementation NSNumber(KiwiAdditions) + +#pragma mark - Creating Numbers + ++ (id)numberWithBytes:(const void *)bytes objCType:(const char *)anObjCType { + // Yeah, this is ugly. + if (KWObjCTypeEqualToObjCType(anObjCType, @encode(BOOL))) + return [self numberWithBoolBytes:bytes]; + else if (KWObjCTypeEqualToObjCType(anObjCType, @encode(bool))) + return [self numberWithStdBoolBytes:bytes]; + else if (KWObjCTypeEqualToObjCType(anObjCType, @encode(char))) + return [self numberWithCharBytes:bytes]; + else if (KWObjCTypeEqualToObjCType(anObjCType, @encode(double))) + return [self numberWithDoubleBytes:bytes]; + else if (KWObjCTypeEqualToObjCType(anObjCType, @encode(float))) + return [self numberWithFloatBytes:bytes]; + else if (KWObjCTypeEqualToObjCType(anObjCType, @encode(int))) + return [self numberWithIntBytes:bytes]; + else if (KWObjCTypeEqualToObjCType(anObjCType, @encode(NSInteger))) + return [self numberWithIntegerBytes:bytes]; + else if (KWObjCTypeEqualToObjCType(anObjCType, @encode(long))) + return [self numberWithLongBytes:bytes]; + else if (KWObjCTypeEqualToObjCType(anObjCType, @encode(long long))) + return [self numberWithLongLongBytes:bytes]; + else if (KWObjCTypeEqualToObjCType(anObjCType, @encode(short))) + return [self numberWithShortBytes:bytes]; + else if (KWObjCTypeEqualToObjCType(anObjCType, @encode(unsigned char))) + return [self numberWithUnsignedCharBytes:bytes]; + else if (KWObjCTypeEqualToObjCType(anObjCType, @encode(unsigned int))) + return [self numberWithUnsignedIntBytes:bytes]; + else if (KWObjCTypeEqualToObjCType(anObjCType, @encode(NSUInteger))) + return [self numberWithUnsignedIntegerBytes:bytes]; + else if (KWObjCTypeEqualToObjCType(anObjCType, @encode(unsigned long))) + return [self numberWithUnsignedLongBytes:bytes]; + else if (KWObjCTypeEqualToObjCType(anObjCType, @encode(unsigned long long))) + return [self numberWithUnsignedLongLongBytes:bytes]; + else if (KWObjCTypeEqualToObjCType(anObjCType, @encode(unsigned short))) + return [self numberWithUnsignedShortBytes:bytes]; + else + return nil; +} + ++ (id)numberWithBoolBytes:(const void *)bytes { + return @(*(const BOOL *)bytes); +} + ++ (id)numberWithStdBoolBytes:(const void *)bytes { + return @(*(const bool *)bytes); +} + ++ (id)numberWithCharBytes:(const void *)bytes { + return @(*(const char *)bytes); +} + ++ (id)numberWithDoubleBytes:(const void *)bytes { + return @(*(const double *)bytes); +} + ++ (id)numberWithFloatBytes:(const void *)bytes { + return @(*(const float *)bytes); +} + ++ (id)numberWithIntBytes:(const void *)bytes { + return @(*(const int *)bytes); +} + ++ (id)numberWithIntegerBytes:(const void *)bytes { + return @(*(const NSInteger *)bytes); +} + ++ (id)numberWithLongBytes:(const void *)bytes { + return @(*(const long *)bytes); +} + ++ (id)numberWithLongLongBytes:(const void *)bytes { + return @(*(const long long *)bytes); +} + ++ (id)numberWithShortBytes:(const void *)bytes { + return @(*(const short *)bytes); +} + ++ (id)numberWithUnsignedCharBytes:(const void *)bytes { + return @(*(const unsigned char *)bytes); +} + ++ (id)numberWithUnsignedIntBytes:(const void *)bytes { + return @(*(const unsigned int *)bytes); +} + ++ (id)numberWithUnsignedIntegerBytes:(const void *)bytes { + return @(*(const NSUInteger *)bytes); +} + ++ (id)numberWithUnsignedLongBytes:(const void *)bytes { + return @(*(const unsigned long *)bytes); +} + ++ (id)numberWithUnsignedLongLongBytes:(const void *)bytes { + return @(*(const unsigned long long *)bytes); +} + ++ (id)numberWithUnsignedShortBytes:(const void *)bytes { + return @(*(const unsigned short *)bytes); +} + +@end diff --git a/Pods/Kiwi/Classes/Core/NSObject+KiwiSpyAdditions.h b/Pods/Kiwi/Classes/Core/NSObject+KiwiSpyAdditions.h new file mode 100644 index 0000000..f8e5b65 --- /dev/null +++ b/Pods/Kiwi/Classes/Core/NSObject+KiwiSpyAdditions.h @@ -0,0 +1,20 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KiwiConfiguration.h" + +@class KWCaptureSpy; + +@protocol KiwiSpyAdditions + +- (KWCaptureSpy *)captureArgument:(SEL)selector atIndex:(NSUInteger)index; ++ (KWCaptureSpy *)captureArgument:(SEL)selector atIndex:(NSUInteger)index; + +@end + +@interface NSObject (KiwiSpyAdditions) + +@end diff --git a/Pods/Kiwi/Classes/Core/NSObject+KiwiSpyAdditions.m b/Pods/Kiwi/Classes/Core/NSObject+KiwiSpyAdditions.m new file mode 100644 index 0000000..321ea8a --- /dev/null +++ b/Pods/Kiwi/Classes/Core/NSObject+KiwiSpyAdditions.m @@ -0,0 +1,29 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "NSObject+KiwiSpyAdditions.h" + +#import "KWCaptureSpy.h" +#import "KWMessagePattern.h" +#import "NSObject+KiwiStubAdditions.h" + +@implementation NSObject (KiwiSpyAdditions) + +- (KWCaptureSpy *)captureArgument:(SEL)selector atIndex:(NSUInteger)index { + KWCaptureSpy *spy = [[KWCaptureSpy alloc] initWithArgumentIndex:index]; + KWMessagePattern *pattern = [[KWMessagePattern alloc] initWithSelector:selector]; + [self addMessageSpy:spy forMessagePattern:pattern]; + return spy; +} + ++ (KWCaptureSpy *)captureArgument:(SEL)selector atIndex:(NSUInteger)index { + KWCaptureSpy *spy = [[KWCaptureSpy alloc] initWithArgumentIndex:index]; + KWMessagePattern *pattern = [[KWMessagePattern alloc] initWithSelector:selector]; + [self addMessageSpy:spy forMessagePattern:pattern]; + return spy; +} + +@end diff --git a/Pods/Kiwi/Classes/Core/NSObject+KiwiVerifierAdditions.h b/Pods/Kiwi/Classes/Core/NSObject+KiwiVerifierAdditions.h new file mode 100644 index 0000000..9b5de33 --- /dev/null +++ b/Pods/Kiwi/Classes/Core/NSObject+KiwiVerifierAdditions.h @@ -0,0 +1,17 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KiwiConfiguration.h" + +@protocol KWVerifying; + +@interface NSObject(KiwiVerifierAdditions) + +#pragma mark - Attaching to Verifiers + +- (id)attachToVerifier:(id)aVerifier; + +@end diff --git a/Pods/Kiwi/Classes/Core/NSObject+KiwiVerifierAdditions.m b/Pods/Kiwi/Classes/Core/NSObject+KiwiVerifierAdditions.m new file mode 100644 index 0000000..be9fa93 --- /dev/null +++ b/Pods/Kiwi/Classes/Core/NSObject+KiwiVerifierAdditions.m @@ -0,0 +1,19 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "NSObject+KiwiVerifierAdditions.h" +#import "KWVerifying.h" + +@implementation NSObject(KiwiVerifierAdditions) + +#pragma mark - Attaching to Verifiers + +- (id)attachToVerifier:(id)aVerifier { + [aVerifier setSubject:self]; + return aVerifier; +} + +@end diff --git a/Pods/Kiwi/Classes/Core/NSProxy+KiwiVerifierAdditions.h b/Pods/Kiwi/Classes/Core/NSProxy+KiwiVerifierAdditions.h new file mode 100644 index 0000000..30426fd --- /dev/null +++ b/Pods/Kiwi/Classes/Core/NSProxy+KiwiVerifierAdditions.h @@ -0,0 +1,20 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2013 Allen Ding. All rights reserved. +// +// Contributed by https://github.com/dwlnetnl +// + +#import "KiwiConfiguration.h" + +@protocol KWVerifying; + +@interface NSProxy (KiwiVerifierAdditions) + +#pragma mark - Attaching to Verifiers + +- (id)attachToVerifier:(id)aVerifier; +- (id)attachToVerifier:(id)firstVerifier verifier:(id)secondVerifier; + +@end diff --git a/Pods/Kiwi/Classes/Core/NSProxy+KiwiVerifierAdditions.m b/Pods/Kiwi/Classes/Core/NSProxy+KiwiVerifierAdditions.m new file mode 100644 index 0000000..027c6e3 --- /dev/null +++ b/Pods/Kiwi/Classes/Core/NSProxy+KiwiVerifierAdditions.m @@ -0,0 +1,27 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2013 Allen Ding. All rights reserved. +// +// Contributed by https://github.com/dwlnetnl +// + +#import "NSProxy+KiwiVerifierAdditions.h" +#import "KWVerifying.h" + +@implementation NSProxy (KiwiVerifierAdditions) + +#pragma mark - Attaching to Verifiers + +- (id)attachToVerifier:(id)aVerifier { + [aVerifier setSubject:self]; + return aVerifier; +} + +- (id)attachToVerifier:(id)firstVerifier verifier:(id)secondVerifier { + [firstVerifier setSubject:self]; + [secondVerifier setSubject:self]; + return firstVerifier; +} + +@end diff --git a/Pods/Kiwi/Classes/Core/NSValue+KiwiAdditions.h b/Pods/Kiwi/Classes/Core/NSValue+KiwiAdditions.h new file mode 100644 index 0000000..dd96003 --- /dev/null +++ b/Pods/Kiwi/Classes/Core/NSValue+KiwiAdditions.h @@ -0,0 +1,15 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KiwiConfiguration.h" + +@interface NSValue(KiwiAdditions) + +#pragma mark - Accessing Data + +- (NSData *)dataValue; + +@end diff --git a/Pods/Kiwi/Classes/Core/NSValue+KiwiAdditions.m b/Pods/Kiwi/Classes/Core/NSValue+KiwiAdditions.m new file mode 100644 index 0000000..4ff3c77 --- /dev/null +++ b/Pods/Kiwi/Classes/Core/NSValue+KiwiAdditions.m @@ -0,0 +1,23 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "NSValue+KiwiAdditions.h" +#import "KWObjCUtilities.h" + +@implementation NSValue(KiwiAdditions) + +#pragma mark - Accessing Data + +- (NSData *)dataValue { + NSUInteger length = KWObjCTypeLength([self objCType]); + void *buffer = malloc(length); + [self getValue:buffer]; + NSData *data = [NSData dataWithBytes:buffer length:length]; + free(buffer); + return data; +} + +@end diff --git a/Pods/Kiwi/Classes/Matchers/KWBeBetweenMatcher.h b/Pods/Kiwi/Classes/Matchers/KWBeBetweenMatcher.h new file mode 100644 index 0000000..fa08c75 --- /dev/null +++ b/Pods/Kiwi/Classes/Matchers/KWBeBetweenMatcher.h @@ -0,0 +1,18 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KiwiConfiguration.h" +#import "KWMatcher.h" + +@interface KWBeBetweenMatcher : KWMatcher + +#pragma mark - Configuring Matchers + +// TODO: 'and' below is a reserved word in C++ +- (void)beBetween:(id)aLowerEndpoint and:(id)anUpperEndpoint; +- (void)beInTheIntervalFrom:(id)aLowerEndpoint to:(id)anUpperEndpoint; + +@end diff --git a/Pods/Kiwi/Classes/Matchers/KWBeBetweenMatcher.m b/Pods/Kiwi/Classes/Matchers/KWBeBetweenMatcher.m new file mode 100644 index 0000000..b33e3a2 --- /dev/null +++ b/Pods/Kiwi/Classes/Matchers/KWBeBetweenMatcher.m @@ -0,0 +1,63 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KWBeBetweenMatcher.h" +#import "KWFormatter.h" + +@interface KWBeBetweenMatcher() + +#pragma mark - Properties + +@property (nonatomic, strong) id lowerEndpoint; +@property (nonatomic, strong) id upperEndpoint; + +@end + +@implementation KWBeBetweenMatcher + +#pragma mark - Getting Matcher Strings + ++ (NSArray *)matcherStrings { + return @[@"beBetween:and:", @"beInTheIntervalFrom:to:"]; +} + +#pragma mark - Matching + +- (BOOL)evaluate { + if (![self.subject respondsToSelector:@selector(compare:)]) + [NSException raise:@"KWMatcherException" format:@"subject does not respond to -compare:"]; + + NSComparisonResult lowerResult = [self.subject compare:self.lowerEndpoint]; + NSComparisonResult upperResult = [self.subject compare:self.upperEndpoint]; + return (lowerResult == NSOrderedDescending || lowerResult == NSOrderedSame) && + (upperResult == NSOrderedAscending || upperResult == NSOrderedSame); +} + +#pragma mark - Getting Failure Messages + +- (NSString *)failureMessageForShould { + return [NSString stringWithFormat:@"expected subject to be in the interval [%@, %@], got %@", + [KWFormatter formatObject:self.lowerEndpoint], + [KWFormatter formatObject:self.upperEndpoint], + [KWFormatter formatObject:self.subject]]; +} + +- (NSString *)description { + return [NSString stringWithFormat:@"be between %@ and %@", self.lowerEndpoint, self.upperEndpoint]; +} + +#pragma mark - Configuring Matchers + +- (void)beBetween:(id)aLowerEndpoint and:(id)anUpperEndpoint { + [self beInTheIntervalFrom:aLowerEndpoint to:anUpperEndpoint]; +} + +- (void)beInTheIntervalFrom:(id)aLowerEndpoint to:(id)anUpperEndpoint { + self.lowerEndpoint = aLowerEndpoint; + self.upperEndpoint = anUpperEndpoint; +} + +@end diff --git a/Pods/Kiwi/Classes/Matchers/KWBeEmptyMatcher.h b/Pods/Kiwi/Classes/Matchers/KWBeEmptyMatcher.h new file mode 100644 index 0000000..540e6dd --- /dev/null +++ b/Pods/Kiwi/Classes/Matchers/KWBeEmptyMatcher.h @@ -0,0 +1,16 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KiwiConfiguration.h" +#import "KWMatcher.h" + +@interface KWBeEmptyMatcher : KWMatcher + +#pragma mark - Configuring Matchers + +- (void)beEmpty; + +@end diff --git a/Pods/Kiwi/Classes/Matchers/KWBeEmptyMatcher.m b/Pods/Kiwi/Classes/Matchers/KWBeEmptyMatcher.m new file mode 100644 index 0000000..8f0194d --- /dev/null +++ b/Pods/Kiwi/Classes/Matchers/KWBeEmptyMatcher.m @@ -0,0 +1,68 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KWBeEmptyMatcher.h" +#import "KWFormatter.h" + +@interface KWBeEmptyMatcher() + +#pragma mark - Properties + +@property (nonatomic, readwrite) NSUInteger count; + +@end + +@implementation KWBeEmptyMatcher + +#pragma mark - Getting Matcher Strings + ++ (NSArray *)matcherStrings { + return @[@"beEmpty"]; +} + +#pragma mark - Matching + +- (BOOL)evaluate { + if ([self.subject respondsToSelector:@selector(count)]) { + self.count = [self.subject count]; + return self.count == 0; + } + else if ([self.subject respondsToSelector:@selector(length)]) { + self.count = [self.subject length]; + return self.count == 0; + } + + [NSException raise:@"KWMatcherException" format:@"subject does not respond to -count or -length"]; + return NO; +} + +#pragma mark - Getting Failure Messages + +- (NSString *)countPhrase { + if (self.count == 1) + return @"1 item"; + else + return [NSString stringWithFormat:@"%u items", (unsigned)self.count]; +} + +- (NSString *)failureMessageForShould { + return [NSString stringWithFormat:@"expected subject to be empty, got %@", [self countPhrase]]; +} + +- (NSString *)failureMessageForShouldNot { + return @"expected subject not to be empty"; +} + +- (NSString *)description { + return @"be empty"; +} + +#pragma mark - Configuring Matchers + +- (void)beEmpty { +} + +@end diff --git a/Pods/Kiwi/Classes/Matchers/KWBeIdenticalToMatcher.h b/Pods/Kiwi/Classes/Matchers/KWBeIdenticalToMatcher.h new file mode 100644 index 0000000..09cc4b6 --- /dev/null +++ b/Pods/Kiwi/Classes/Matchers/KWBeIdenticalToMatcher.h @@ -0,0 +1,16 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KiwiConfiguration.h" +#import "KWMatcher.h" + +@interface KWBeIdenticalToMatcher : KWMatcher + +#pragma mark - Configuring Matchers + +- (void)beIdenticalTo:(id)anObject; + +@end diff --git a/Pods/Kiwi/Classes/Matchers/KWBeIdenticalToMatcher.m b/Pods/Kiwi/Classes/Matchers/KWBeIdenticalToMatcher.m new file mode 100644 index 0000000..beb9886 --- /dev/null +++ b/Pods/Kiwi/Classes/Matchers/KWBeIdenticalToMatcher.m @@ -0,0 +1,58 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KWBeIdenticalToMatcher.h" +#import "KWFormatter.h" + +@interface KWBeIdenticalToMatcher() + +#pragma mark - Properties + +@property (nonatomic, readwrite, strong) id otherSubject; + +@end + +@implementation KWBeIdenticalToMatcher + +#pragma mark - Getting Matcher Strings + ++ (NSArray *)matcherStrings { + return @[@"beIdenticalTo:"]; +} + +#pragma mark - Matching + +- (BOOL)evaluate { + return self.subject == self.otherSubject; +} + +#pragma mark - Getting Failure Messages + +- (NSString *)failureMessageForShould { + return [NSString stringWithFormat:@"expected subject to be identical to %@ (%p), got %@ (%p)", + [KWFormatter formatObject:self.otherSubject], + self.otherSubject, + [KWFormatter formatObject:self.subject], + self.subject]; +} + +- (NSString *)failureMessageForShouldNot { + return [NSString stringWithFormat:@"expected subject not to be identical to %@ (%p)", + [KWFormatter formatObject:self.otherSubject], + self.otherSubject]; +} + +- (NSString *)description { + return [NSString stringWithFormat:@"be identical to %@", self.otherSubject]; +} + +#pragma mark - Configuring Matchers + +- (void)beIdenticalTo:(id)anObject { + self.otherSubject = anObject; +} + +@end diff --git a/Pods/Kiwi/Classes/Matchers/KWBeKindOfClassMatcher.h b/Pods/Kiwi/Classes/Matchers/KWBeKindOfClassMatcher.h new file mode 100644 index 0000000..7e76fb2 --- /dev/null +++ b/Pods/Kiwi/Classes/Matchers/KWBeKindOfClassMatcher.h @@ -0,0 +1,16 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KiwiConfiguration.h" +#import "KWMatcher.h" + +@interface KWBeKindOfClassMatcher : KWMatcher + +#pragma mark - Configuring Matchers + +- (void)beKindOfClass:(Class)aClass; + +@end diff --git a/Pods/Kiwi/Classes/Matchers/KWBeKindOfClassMatcher.m b/Pods/Kiwi/Classes/Matchers/KWBeKindOfClassMatcher.m new file mode 100644 index 0000000..90afc4f --- /dev/null +++ b/Pods/Kiwi/Classes/Matchers/KWBeKindOfClassMatcher.m @@ -0,0 +1,48 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KWBeKindOfClassMatcher.h" +#import "KWFormatter.h" + +@interface KWBeKindOfClassMatcher() + +@property (nonatomic, assign) Class targetClass; + +@end + +@implementation KWBeKindOfClassMatcher + +#pragma mark - Getting Matcher Strings + ++ (NSArray *)matcherStrings { + return @[@"beKindOfClass:"]; +} + +#pragma mark - Matching + +- (BOOL)evaluate { + return [self.subject isKindOfClass:self.targetClass]; +} + +#pragma mark - Getting Failure Messages + +- (NSString *)failureMessageForShould { + return [NSString stringWithFormat:@"expected subject to be kind of %@, got %@", + NSStringFromClass(self.targetClass), + NSStringFromClass([self.subject class])]; +} + +- (NSString *)description { + return [NSString stringWithFormat:@"be kind of %@", NSStringFromClass(self.targetClass)]; +} + +#pragma mark - Configuring Matchers + +- (void)beKindOfClass:(Class)aClass { + self.targetClass = aClass; +} + +@end diff --git a/Pods/Kiwi/Classes/Matchers/KWBeMemberOfClassMatcher.h b/Pods/Kiwi/Classes/Matchers/KWBeMemberOfClassMatcher.h new file mode 100644 index 0000000..fc2fc8d --- /dev/null +++ b/Pods/Kiwi/Classes/Matchers/KWBeMemberOfClassMatcher.h @@ -0,0 +1,16 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KiwiConfiguration.h" +#import "KWMatcher.h" + +@interface KWBeMemberOfClassMatcher : KWMatcher + +#pragma mark - Configuring Matchers + +- (void)beMemberOfClass:(Class)aClass; + +@end diff --git a/Pods/Kiwi/Classes/Matchers/KWBeMemberOfClassMatcher.m b/Pods/Kiwi/Classes/Matchers/KWBeMemberOfClassMatcher.m new file mode 100644 index 0000000..20f41e9 --- /dev/null +++ b/Pods/Kiwi/Classes/Matchers/KWBeMemberOfClassMatcher.m @@ -0,0 +1,49 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KWBeMemberOfClassMatcher.h" +#import "KWFormatter.h" + +@interface KWBeMemberOfClassMatcher() + +@property (nonatomic, assign) Class targetClass; + +@end + +@implementation KWBeMemberOfClassMatcher + +#pragma mark - Getting Matcher Strings + ++ (NSArray *)matcherStrings { + return @[@"beMemberOfClass:"]; +} + +#pragma mark - Matching + +- (BOOL)evaluate { + return [self.subject isMemberOfClass:self.targetClass]; +} + +#pragma mark - Getting Failure Messages + +- (NSString *)failureMessageForShould { + return [NSString stringWithFormat:@"expected subject to be member of %@, got %@", + NSStringFromClass(self.targetClass), + NSStringFromClass([self.subject class])]; +} + +- (NSString *)description { + return [NSString stringWithFormat:@"be member of %@", + NSStringFromClass(self.targetClass)]; +} + +#pragma mark - Configuring Matchers + +- (void)beMemberOfClass:(Class)aClass { + self.targetClass = aClass; +} + +@end diff --git a/Pods/Kiwi/Classes/Matchers/KWBeSubclassOfClassMatcher.h b/Pods/Kiwi/Classes/Matchers/KWBeSubclassOfClassMatcher.h new file mode 100644 index 0000000..fcb4fec --- /dev/null +++ b/Pods/Kiwi/Classes/Matchers/KWBeSubclassOfClassMatcher.h @@ -0,0 +1,16 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KiwiConfiguration.h" +#import "KWMatcher.h" + +@interface KWBeSubclassOfClassMatcher : KWMatcher + +#pragma mark - Configuring Matchers + +- (void)beSubclassOfClass:(Class)aClass; + +@end diff --git a/Pods/Kiwi/Classes/Matchers/KWBeSubclassOfClassMatcher.m b/Pods/Kiwi/Classes/Matchers/KWBeSubclassOfClassMatcher.m new file mode 100644 index 0000000..90740de --- /dev/null +++ b/Pods/Kiwi/Classes/Matchers/KWBeSubclassOfClassMatcher.m @@ -0,0 +1,51 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KWBeSubclassOfClassMatcher.h" +#import "KWFormatter.h" + +@interface KWBeSubclassOfClassMatcher() + +#pragma mark - Properties + +@property (nonatomic, assign) Class targetClass; + +@end + +@implementation KWBeSubclassOfClassMatcher + +#pragma mark - Getting Matcher Strings + ++ (NSArray *)matcherStrings { + return @[@"beSubclassOfClass:"]; +} + +#pragma mark - Matching + +- (BOOL)evaluate { + return [self.subject isSubclassOfClass:self.targetClass]; +} + +#pragma mark - Getting Failure Messages + +- (NSString *)failureMessageForShould { + return [NSString stringWithFormat:@"expected subject to be subclass of %@, got %@", + NSStringFromClass(self.targetClass), + NSStringFromClass([self.subject class])]; +} + +- (NSString *)description { + return [NSString stringWithFormat:@"be subclass of %@", + NSStringFromClass(self.targetClass)]; +} + +#pragma mark - Configuring Matchers + +- (void)beSubclassOfClass:(Class)aClass { + self.targetClass = aClass; +} + +@end diff --git a/Pods/Kiwi/Classes/Matchers/KWBeTrueMatcher.h b/Pods/Kiwi/Classes/Matchers/KWBeTrueMatcher.h new file mode 100644 index 0000000..755a80d --- /dev/null +++ b/Pods/Kiwi/Classes/Matchers/KWBeTrueMatcher.h @@ -0,0 +1,19 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KiwiConfiguration.h" +#import "KWMatcher.h" + +@interface KWBeTrueMatcher : KWMatcher + +#pragma mark - Configuring Matchers + +- (void)beTrue; +- (void)beFalse; +- (void)beYes; +- (void)beNo; + +@end diff --git a/Pods/Kiwi/Classes/Matchers/KWBeTrueMatcher.m b/Pods/Kiwi/Classes/Matchers/KWBeTrueMatcher.m new file mode 100644 index 0000000..4a9b01a --- /dev/null +++ b/Pods/Kiwi/Classes/Matchers/KWBeTrueMatcher.m @@ -0,0 +1,64 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KWBeTrueMatcher.h" + +@interface KWBeTrueMatcher() + +@property (nonatomic, readwrite) BOOL expectedValue; + +@end + +@implementation KWBeTrueMatcher + +#pragma mark - Getting Matcher Strings + ++ (NSArray *)matcherStrings { + return @[@"beTrue", @"beFalse", @"beYes", @"beNo"]; +} + +#pragma mark - Matching + +- (BOOL)evaluate { + if (![self.subject respondsToSelector:@selector(boolValue)]) + [NSException raise:@"KWMatcherException" format:@"subject does not respond to -boolValue"]; + + return [self.subject boolValue] == self.expectedValue; +} + +#pragma mark - Getting Failure Messages + +- (NSString *)failureMessageForShould { + return [NSString stringWithFormat:@"expected subject to be %@", + self.expectedValue ? @"true" : @"false"]; +} + +- (NSString *)description { + if (self.expectedValue == YES) { + return @"be true"; + } + return @"be false"; +} + +#pragma mark - Configuring Matchers + +- (void)beTrue { + self.expectedValue = YES; +} + +- (void)beFalse { + self.expectedValue = NO; +} + +- (void)beYes { + self.expectedValue = YES; +} + +- (void)beNo { + self.expectedValue = NO; +} + +@end diff --git a/Pods/Kiwi/Classes/Matchers/KWBeWithinMatcher.h b/Pods/Kiwi/Classes/Matchers/KWBeWithinMatcher.h new file mode 100644 index 0000000..fb455e7 --- /dev/null +++ b/Pods/Kiwi/Classes/Matchers/KWBeWithinMatcher.h @@ -0,0 +1,17 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KiwiConfiguration.h" +#import "KWMatcher.h" + +@interface KWBeWithinMatcher : KWMatcher + +#pragma mark - Configuring Matchers + +- (void)beWithin:(id)aDistance of:(id)aValue; +- (void)equal:(double)aValue withDelta:(double)aDelta; + +@end diff --git a/Pods/Kiwi/Classes/Matchers/KWBeWithinMatcher.m b/Pods/Kiwi/Classes/Matchers/KWBeWithinMatcher.m new file mode 100644 index 0000000..f05d060 --- /dev/null +++ b/Pods/Kiwi/Classes/Matchers/KWBeWithinMatcher.m @@ -0,0 +1,91 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KWBeWithinMatcher.h" +#import "KWFormatter.h" +#import "KWObjCUtilities.h" +#import "KWValue.h" + +@interface KWBeWithinMatcher() + +@property (nonatomic, readwrite, strong) id distance; +@property (nonatomic, readwrite, strong) id otherValue; + +@end + +@implementation KWBeWithinMatcher + +#pragma mark - Getting Matcher Strings + ++ (NSArray *)matcherStrings { + return @[@"beWithin:of:", @"equal:withDelta:"]; +} + +#pragma mark - Matching + +// Evaluation is done by getting the underlying values as the widest data +// types available. + +- (BOOL)evaluateForFloatingPoint { + double firstValue = [self.subject doubleValue]; + double secondValue = [self.otherValue doubleValue]; + double theDistance = [self.distance doubleValue]; + double absoluteDifference = firstValue > secondValue ? firstValue - secondValue : secondValue - firstValue; + return absoluteDifference <= theDistance; +} + +- (BOOL)evaluateForUnsignedIntegral { + unsigned long long firstValue = [self.subject unsignedLongLongValue]; + unsigned long long secondValue = [self.otherValue unsignedLongLongValue]; + unsigned long long theDistance = [self.distance unsignedLongLongValue]; + unsigned long long absoluteDifference = firstValue > secondValue ? firstValue - secondValue : secondValue - firstValue; + return absoluteDifference <= theDistance; +} + +- (BOOL)evaluateForSignedIntegral { + long long firstValue = [self.subject longLongValue]; + long long secondValue = [self.otherValue longLongValue]; + long long theDistance = [self.distance longLongValue]; + long long absoluteDifference = firstValue > secondValue ? firstValue - secondValue : secondValue - firstValue; + return absoluteDifference <= theDistance; +} + +- (BOOL)evaluate { + const char *objCType = [self.subject objCType]; + + if (KWObjCTypeIsFloatingPoint(objCType)) + return [self evaluateForFloatingPoint]; + else if (KWObjCTypeIsUnsignedIntegral(objCType)) + return [self evaluateForUnsignedIntegral]; + else + return [self evaluateForSignedIntegral]; +} + +#pragma mark - Getting Failure Messages + +- (NSString *)failureMessageForShould { + return [NSString stringWithFormat:@"expected subject to be within %@ of %@, got %@", + [KWFormatter formatObject:self.distance], + [KWFormatter formatObject:self.otherValue], + [KWFormatter formatObject:self.subject]]; +} + +- (NSString *)description { + return [NSString stringWithFormat:@"be within %@ of %@", self.distance, self.otherValue]; +} + +#pragma mark - Configuring Matchers + +- (void)beWithin:(id)aDistance of:(id)aValue { + self.distance = aDistance; + self.otherValue = aValue; +} + +- (void)equal:(double)aValue withDelta:(double)aDelta { + [self beWithin:[KWValue valueWithDouble:aDelta] of:[KWValue valueWithDouble:aValue]]; +} + +@end diff --git a/Pods/Kiwi/Classes/Matchers/KWBeZeroMatcher.h b/Pods/Kiwi/Classes/Matchers/KWBeZeroMatcher.h new file mode 100644 index 0000000..bdb4dac --- /dev/null +++ b/Pods/Kiwi/Classes/Matchers/KWBeZeroMatcher.h @@ -0,0 +1,16 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KiwiConfiguration.h" +#import "KWMatcher.h" + +@interface KWBeZeroMatcher : KWMatcher + +#pragma mark - Configuring Matchers + +- (void)beZero; + +@end diff --git a/Pods/Kiwi/Classes/Matchers/KWBeZeroMatcher.m b/Pods/Kiwi/Classes/Matchers/KWBeZeroMatcher.m new file mode 100644 index 0000000..a637611 --- /dev/null +++ b/Pods/Kiwi/Classes/Matchers/KWBeZeroMatcher.m @@ -0,0 +1,53 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KWBeZeroMatcher.h" +#import "KWFormatter.h" +#import "KWValue.h" + +@implementation KWBeZeroMatcher + +#pragma mark - Getting Matcher Strings + ++ (NSArray *)matcherStrings { + return @[@"beZero"]; +} + +#pragma mark - Matching + +- (BOOL)evaluate { + if ([self.subject isKindOfClass:[NSNumber class]]) { + return [self.subject isEqualToNumber:@0]; + } + + if ([self.subject respondsToSelector:@selector(numberValue)]) { + return [[self.subject numberValue] isEqualToNumber:@0]; + } + + return NO; +} + +#pragma mark - Getting Failure Messages + +- (NSString *)failureMessageForShould { + return [NSString stringWithFormat:@"expected subject to be zero, got %@", + [KWFormatter formatObject:self.subject]]; +} + +- (NSString *)failureMessageForShouldNot { + return [NSString stringWithFormat:@"expected subject not to be zero"]; +} + +- (NSString *)description { + return @"be zero"; +} + +#pragma mark - Configuring Matchers + +- (void)beZero { +} + +@end diff --git a/Pods/Kiwi/Classes/Matchers/KWBlockRaiseMatcher.h b/Pods/Kiwi/Classes/Matchers/KWBlockRaiseMatcher.h new file mode 100644 index 0000000..064d40a --- /dev/null +++ b/Pods/Kiwi/Classes/Matchers/KWBlockRaiseMatcher.h @@ -0,0 +1,19 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KiwiConfiguration.h" +#import "KWMatcher.h" + +@interface KWBlockRaiseMatcher : KWMatcher + +#pragma mark - Configuring Matchers + +- (void)raise; +- (void)raiseWithName:(NSString *)aName; +- (void)raiseWithReason:(NSString *)aReason; +- (void)raiseWithName:(NSString *)aName reason:(NSString *)aReason; + +@end diff --git a/Pods/Kiwi/Classes/Matchers/KWBlockRaiseMatcher.m b/Pods/Kiwi/Classes/Matchers/KWBlockRaiseMatcher.m new file mode 100644 index 0000000..f4bd79e --- /dev/null +++ b/Pods/Kiwi/Classes/Matchers/KWBlockRaiseMatcher.m @@ -0,0 +1,103 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KWBlockRaiseMatcher.h" +#import "KWBlock.h" + +@interface KWBlockRaiseMatcher() + +@property (nonatomic, readwrite, strong) NSException *exception; +@property (nonatomic, readwrite, strong) NSException *actualException; + +@end + +@implementation KWBlockRaiseMatcher + +#pragma mark - Getting Matcher Strings + ++ (NSArray *)matcherStrings { + return @[@"raise", + @"raiseWithName:", + @"raiseWithReason:", + @"raiseWithName:reason:"]; +} + +#pragma mark - Matching + +- (BOOL)evaluate { + if (![self.subject isKindOfClass:[KWBlock class]]) + [NSException raise:@"KWMatcherException" format:@"subject must be a KWBlock"]; + + @try { + [self.subject call]; + } @catch (NSException *anException) { + self.actualException = anException; + + if ([self.exception name] != nil && ![[self.exception name] isEqualToString:[anException name]]) + return NO; + + if ([self.exception reason] != nil && ![[self.exception reason] isEqualToString:[anException reason]]) + return NO; + + return YES; + } + + return NO; +} + +#pragma mark - Getting Failure Messages + ++ (NSString *)exceptionPhraseWithException:(NSException *)anException { + if (anException == nil) + return @"nothing"; + + NSString *namePhrase = nil; + + if ([anException name] == nil) + namePhrase = @"exception"; + else + namePhrase = [anException name]; + + if ([anException reason] == nil) + return namePhrase; + + return [NSString stringWithFormat:@"%@ \"%@\"", namePhrase, [anException reason]]; +} + +- (NSString *)failureMessageForShould { + return [NSString stringWithFormat:@"expected %@, but %@ raised", + [[self class] exceptionPhraseWithException:self.exception], + [[self class] exceptionPhraseWithException:self.actualException]]; +} + +- (NSString *)failureMessageForShouldNot { + return [NSString stringWithFormat:@"expected %@ not to be raised", + [[self class] exceptionPhraseWithException:self.actualException]]; +} + +#pragma mark - Configuring Matchers + +- (void)raise { + [self raiseWithName:nil reason:nil]; +} + +- (void)raiseWithName:(NSString *)aName { + [self raiseWithName:aName reason:nil]; +} + +- (void)raiseWithReason:(NSString *)aReason { + [self raiseWithName:nil reason:aReason]; +} + +- (void)raiseWithName:(NSString *)aName reason:(NSString *)aReason { + self.exception = [NSException exceptionWithName:aName reason:aReason userInfo:nil]; +} + +- (NSString *)description { + return [NSString stringWithFormat:@"raise %@", [[self class] exceptionPhraseWithException:self.exception]]; +} + +@end diff --git a/Pods/Kiwi/Classes/Matchers/KWChangeMatcher.h b/Pods/Kiwi/Classes/Matchers/KWChangeMatcher.h new file mode 100644 index 0000000..89d37d6 --- /dev/null +++ b/Pods/Kiwi/Classes/Matchers/KWChangeMatcher.h @@ -0,0 +1,21 @@ +// +// KWChangeMatcher.h +// Kiwi +// +// Copyright (c) 2013 Eloy Durán . +// All rights reserved. +// + +#import "KWMatcher.h" + +typedef NSInteger (^KWChangeMatcherCountBlock)(); + +@interface KWChangeMatcher : KWMatcher + +// Expect _any_ change. +- (void)change:(KWChangeMatcherCountBlock)countBlock; + +// Expect changes by a specific amount. +- (void)change:(KWChangeMatcherCountBlock)countBlock by:(NSInteger)expectedDifference; + +@end diff --git a/Pods/Kiwi/Classes/Matchers/KWChangeMatcher.m b/Pods/Kiwi/Classes/Matchers/KWChangeMatcher.m new file mode 100644 index 0000000..fb7a376 --- /dev/null +++ b/Pods/Kiwi/Classes/Matchers/KWChangeMatcher.m @@ -0,0 +1,73 @@ +// +// KWChangeMatcher.m +// Kiwi +// +// Copyright (c) 2013 Eloy Durán . +// All rights reserved. +// + +#import "KWChangeMatcher.h" +#import "KWBlock.h" + +@interface KWChangeMatcher () +@property (nonatomic, copy) KWChangeMatcherCountBlock countBlock; +@property (nonatomic, assign) BOOL anyChange; +@property (nonatomic, assign) NSInteger expectedDifference, expectedTotal, actualTotal; +@end + +@implementation KWChangeMatcher + ++ (NSArray *)matcherStrings { + return @[@"change:by:", @"change:"]; +} + +- (NSString *)failureMessageForShould { + if (self.anyChange) { + return @"expected subject to change the count"; + } else { + return [NSString stringWithFormat:@"expected subject to change the count to %d, got %d", (int)self.expectedTotal, (int)self.actualTotal]; + } +} + +- (NSString *)failureMessageForShouldNot { + if (self.anyChange) { + return @"expected subject to not change the count"; + } else { + return [NSString stringWithFormat:@"expected subject not to change the count to %d", (int)self.actualTotal]; + } +} + +- (NSString *)description { + if (self.anyChange) { + return @"change count"; + } else { + return [NSString stringWithFormat:@"change count by %d", (int)self.expectedDifference]; + } +} + +- (BOOL)evaluate { + NSInteger before = self.countBlock(); + // Perform actual work, which is expected to change the result of countBlock. + [self.subject call]; + self.actualTotal = self.countBlock(); + + if (self.anyChange) { + return before != self.actualTotal; + } else { + self.expectedTotal = before + self.expectedDifference; + return self.expectedTotal == self.actualTotal; + } +} + +- (void)change:(KWChangeMatcherCountBlock)countBlock by:(NSInteger)expectedDifference { + self.anyChange = NO; + self.expectedDifference = expectedDifference; + self.countBlock = countBlock; +} + +- (void)change:(KWChangeMatcherCountBlock)countBlock { + self.anyChange = YES; + self.countBlock = countBlock; +} + +@end diff --git a/Pods/Kiwi/Classes/Matchers/KWConformToProtocolMatcher.h b/Pods/Kiwi/Classes/Matchers/KWConformToProtocolMatcher.h new file mode 100644 index 0000000..d25ba80 --- /dev/null +++ b/Pods/Kiwi/Classes/Matchers/KWConformToProtocolMatcher.h @@ -0,0 +1,16 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KiwiConfiguration.h" +#import "KWMatcher.h" + +@interface KWConformToProtocolMatcher : KWMatcher + +#pragma mark - Configuring Matchers + +- (void)conformToProtocol:(Protocol *)aProtocol; + +@end diff --git a/Pods/Kiwi/Classes/Matchers/KWConformToProtocolMatcher.m b/Pods/Kiwi/Classes/Matchers/KWConformToProtocolMatcher.m new file mode 100644 index 0000000..deb8e2a --- /dev/null +++ b/Pods/Kiwi/Classes/Matchers/KWConformToProtocolMatcher.m @@ -0,0 +1,47 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KWConformToProtocolMatcher.h" +#import "KWFormatter.h" + +@interface KWConformToProtocolMatcher() + +@property (nonatomic, assign) Protocol *protocol; + +@end + +@implementation KWConformToProtocolMatcher + +#pragma mark - Getting Matcher Strings + ++ (NSArray *)matcherStrings { + return @[@"conformToProtocol:"]; +} + +#pragma mark - Matching + +- (BOOL)evaluate { + return [self.subject conformsToProtocol:self.protocol]; +} + +#pragma mark - Getting Failure Messages + +- (NSString *)failureMessageForShould { + return [NSString stringWithFormat:@"expected subject to conform to %@ protocol", + NSStringFromProtocol(self.protocol)]; +} + +- (NSString *)description { + return [NSString stringWithFormat:@"conform to %@ protocol", NSStringFromProtocol(self.protocol)]; +} + +#pragma mark - Configuring Matchers + +- (void)conformToProtocol:(Protocol *)aProtocol { + self.protocol = aProtocol; +} + +@end diff --git a/Pods/Kiwi/Classes/Matchers/KWContainMatcher.h b/Pods/Kiwi/Classes/Matchers/KWContainMatcher.h new file mode 100644 index 0000000..6a750da --- /dev/null +++ b/Pods/Kiwi/Classes/Matchers/KWContainMatcher.h @@ -0,0 +1,26 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KiwiConfiguration.h" +#import "KWMatcher.h" +#import "KWMatchVerifier.h" + +@interface KWContainMatcher : KWMatcher + +#pragma mark - Configuring Matchers + +- (void)contain:(id)anObject; +- (void)containObjectsInArray:(NSArray *)anArray; + +@end + +@interface KWMatchVerifier(KWContainMatcherAdditions) + +#pragma mark - Verifying + +- (void)containObjects:(id)firstObject, ... NS_REQUIRES_NIL_TERMINATION; + +@end diff --git a/Pods/Kiwi/Classes/Matchers/KWContainMatcher.m b/Pods/Kiwi/Classes/Matchers/KWContainMatcher.m new file mode 100644 index 0000000..499e367 --- /dev/null +++ b/Pods/Kiwi/Classes/Matchers/KWContainMatcher.m @@ -0,0 +1,88 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KWContainMatcher.h" +#import "KWFormatter.h" +#import "KWGenericMatchingAdditions.h" + +@interface KWContainMatcher() + +@property (nonatomic, readwrite, strong) id objects; + +@end + +@implementation KWContainMatcher + +#pragma mark - Getting Matcher Strings + ++ (NSArray *)matcherStrings { + return @[@"contain:", @"containObjectsInArray:"]; +} + +#pragma mark - Matching + +- (BOOL)evaluate { + if (![self.subject respondsToSelector:@selector(containsObjectEqualToOrMatching:)]) + [NSException raise:@"KWMatcherException" format:@"subject does not respond to -containsObjectEqualToOrMatching:"]; + + for (id object in self.objects) { + if (![self.subject containsObjectEqualToOrMatching:object]) + return NO; + } + + return YES; +} + +#pragma mark - Getting Failure Messages + +- (NSString *)objectsPhrase { + if ([self.objects count] == 1) + return [KWFormatter formatObject:(self.objects)[0]]; + + return [NSString stringWithFormat:@"all of %@", [KWFormatter formatObject:self.objects]]; +} + +- (NSString *)failureMessageForShould { + return [NSString stringWithFormat:@"expected subject to contain %@", [self objectsPhrase]]; +} + +- (NSString *)description { + return [NSString stringWithFormat:@"contain %@", [self objectsPhrase]]; +} + +#pragma mark - Configuring Matchers + +- (void)contain:(id)anObject { + self.objects = @[anObject]; +} + +- (void)containObjectsInArray:(NSArray *)anArray { + self.objects = anArray; +} + +@end + +@implementation KWMatchVerifier(KWContainMatcherAdditions) + +#pragma mark - Verifying + +- (void)containObjects:(id)firstObject, ... { + NSMutableArray *objects = [NSMutableArray array]; + + va_list argumentList; + va_start(argumentList, firstObject); + id object = firstObject; + + while (object != nil) { + [objects addObject:object]; + object = va_arg(argumentList, id); + } + + va_end(argumentList); + [(id)self containObjectsInArray:objects]; +} + +@end diff --git a/Pods/Kiwi/Classes/Matchers/KWContainStringMatcher.h b/Pods/Kiwi/Classes/Matchers/KWContainStringMatcher.h new file mode 100644 index 0000000..be850d1 --- /dev/null +++ b/Pods/Kiwi/Classes/Matchers/KWContainStringMatcher.h @@ -0,0 +1,39 @@ +// +// KWContainStringMatcher.h +// Kiwi +// +// Created by Kristopher Johnson on 4/28/13. +// Copyright (c) 2013 Allen Ding. All rights reserved. +// + +#import "KiwiConfiguration.h" +#import "KWMatcher.h" + +// Kiwi matcher for determining whether a string contains an expected substring +// +// Examples: +// +// [[@"Hello, world!" should] containString:@"world"]; +// [[@"Hello, world!" shouldNot] containString:@"xyzzy"]; +// +// [[@"Hello, world!" should] containString:@"WORLD" +// options:NSCaseInsensitiveSearch]; +// +// [[@"Hello, world!" should] startWithString:@"Hello,"]; +// [[@"Hello, world!" should] endWithString:@"world!"]; + +@interface KWContainStringMatcher : KWMatcher + +// Match if subject contains specified substring +- (void)containString:(NSString *)string; + +// Match if subject contains specified substring, using specified comparison options +- (void)containString:(NSString *)string options:(NSStringCompareOptions)options; + +// Match if subject starts with the specified prefix +- (void)startWithString:(NSString *)prefix; + +// Match if subject ends with the specified prefix +- (void)endWithString:(NSString *)suffix; + +@end diff --git a/Pods/Kiwi/Classes/Matchers/KWContainStringMatcher.m b/Pods/Kiwi/Classes/Matchers/KWContainStringMatcher.m new file mode 100644 index 0000000..19209d1 --- /dev/null +++ b/Pods/Kiwi/Classes/Matchers/KWContainStringMatcher.m @@ -0,0 +1,85 @@ +// +// KWContainStringMatcher.m +// Kiwi +// +// Created by Kristopher Johnson on 4/28/13. +// Copyright (c) 2013 Allen Ding. All rights reserved. +// + +#import "KWContainStringMatcher.h" +#import "KWFormatter.h" + +@interface KWContainStringMatcher () + +@property (nonatomic, copy) NSString *substring; +@property (nonatomic) NSStringCompareOptions options; + +@end + + +@implementation KWContainStringMatcher + +#pragma mark - Getting Matcher Strings + ++ (NSArray *)matcherStrings { + return @[@"containString:", + @"containString:options:", + @"startWithString:", + @"endWithString:"]; +} + +#pragma mark - Matching + +- (BOOL)evaluate { + NSString *subjectString = (NSString *)self.subject; + if (![subjectString isKindOfClass:[NSString class]]) { + [NSException raise:@"KWMatcherException" format:@"subject is not a string"]; + return NO; + } + + NSRange range = [subjectString rangeOfString:self.substring options:self.options]; + return (range.location != NSNotFound); +} + +#pragma mark - Getting Failure Messages + +- (NSString *)failureMessageForShould { + return [NSString stringWithFormat:@"%@ did not contain string \"%@\"", + [KWFormatter formatObject:self.subject], + self.substring]; +} + +- (NSString *)failureMessageForShouldNot { + return [NSString stringWithFormat:@"expected subject not to contain string \"%@\"", + self.substring]; +} + +- (NSString *)description { + return [NSString stringWithFormat:@"contain substring \"%@\"", self.substring]; +} + +#pragma mark - Configuring matchers + +- (void)containString:(NSString *)substring { + self.substring = substring; + self.options = 0; +} + +- (void)containString:(NSString *)substring options:(NSStringCompareOptions)options { + self.substring = substring; + self.options = options; +} + +- (void)startWithString:(NSString *)prefix { + self.substring = prefix; + self.options = NSAnchoredSearch; +} + +- (void)endWithString:(NSString *)suffix { + self.substring = suffix; + self.options = NSAnchoredSearch | NSBackwardsSearch; +} + +@end + + diff --git a/Pods/Kiwi/Classes/Matchers/KWEqualMatcher.h b/Pods/Kiwi/Classes/Matchers/KWEqualMatcher.h new file mode 100644 index 0000000..b1ae523 --- /dev/null +++ b/Pods/Kiwi/Classes/Matchers/KWEqualMatcher.h @@ -0,0 +1,16 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KiwiConfiguration.h" +#import "KWMatcher.h" + +@interface KWEqualMatcher : KWMatcher + +#pragma mark - Configuring Matchers + +- (void)equal:(id)anObject; + +@end diff --git a/Pods/Kiwi/Classes/Matchers/KWEqualMatcher.m b/Pods/Kiwi/Classes/Matchers/KWEqualMatcher.m new file mode 100644 index 0000000..51f3012 --- /dev/null +++ b/Pods/Kiwi/Classes/Matchers/KWEqualMatcher.m @@ -0,0 +1,68 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KWEqualMatcher.h" +#import "KWFormatter.h" +#import "KWValue.h" + +@interface KWEqualMatcher() + +#pragma mark - Properties + +@property (nonatomic, readwrite, strong) id otherSubject; + +@end + +@implementation KWEqualMatcher + +#pragma mark - Initializing + + +#pragma mark - Properties + +@synthesize otherSubject; + +#pragma mark - Getting Matcher Strings + ++ (NSArray *)matcherStrings { + return @[@"equal:"]; +} + +#pragma mark - Matching + +- (BOOL)evaluate { + /** handle this as a special case; KWValue supports NSNumber equality but not vice-versa **/ + if ([self.subject isKindOfClass:[NSNumber class]] && [self.otherSubject isKindOfClass:[KWValue class]]) { + return [self.otherSubject isEqual:self.subject]; + } + return [self.subject isEqual:self.otherSubject]; +} + +#pragma mark - Getting Failure Messages + +- (NSString *)failureMessageForShould { + return [NSString stringWithFormat:@"expected subject to equal %@, got %@", + [KWFormatter formatObjectIncludingClass:self.otherSubject], + [KWFormatter formatObjectIncludingClass:self.subject]]; +} + +- (NSString *)failureMessageForShouldNot { + return [NSString stringWithFormat:@"expected subject not to equal %@", + [KWFormatter formatObjectIncludingClass:self.otherSubject]]; +} + +- (NSString *)description +{ + return [NSString stringWithFormat:@"equal %@", [KWFormatter formatObjectIncludingClass:self.otherSubject]]; +} + +#pragma mark - Configuring Matchers + +- (void)equal:(id)anObject { + self.otherSubject = anObject; +} + +@end diff --git a/Pods/Kiwi/Classes/Matchers/KWGenericMatchEvaluator.h b/Pods/Kiwi/Classes/Matchers/KWGenericMatchEvaluator.h new file mode 100644 index 0000000..c906ab1 --- /dev/null +++ b/Pods/Kiwi/Classes/Matchers/KWGenericMatchEvaluator.h @@ -0,0 +1,17 @@ +// +// KWGenericMatcher.h +// Kiwi +// +// Created by Allen Ding on 1/31/13. +// Copyright (c) 2013 Allen Ding. All rights reserved. +// + +#import + +@interface KWGenericMatchEvaluator : NSObject + ++ (BOOL)isGenericMatcher:(id)object; + ++ (BOOL)genericMatcher:(id)matcher matches:(id)object; + +@end diff --git a/Pods/Kiwi/Classes/Matchers/KWGenericMatchEvaluator.m b/Pods/Kiwi/Classes/Matchers/KWGenericMatchEvaluator.m new file mode 100644 index 0000000..138a03d --- /dev/null +++ b/Pods/Kiwi/Classes/Matchers/KWGenericMatchEvaluator.m @@ -0,0 +1,65 @@ +// +// KWGenericMatcher.m +// Kiwi +// +// Created by Allen Ding on 1/31/13. +// Copyright (c) 2013 Allen Ding. All rights reserved. +// + +#import "KWGenericMatchEvaluator.h" +#import "KWStringUtilities.h" +#import "KWObjCUtilities.h" +#import +#import "KWGenericMatcher.h" + +@implementation KWGenericMatchEvaluator + +// Returns true only if the object has a method with the signature "- (BOOL)matches:(id)object" ++ (BOOL)isGenericMatcher:(id)object { + Class theClass = object_getClass(object); + + if (theClass == NULL) { + return NO; + } + Method method = class_getInstanceMethod(theClass, @selector(matches:)); + + if (method == NULL) { + return NO; + } + + const char *cEncoding = method_getTypeEncoding(method); + + if (cEncoding == NULL) { + return NO; + } + + NSMethodSignature *signature = [NSMethodSignature signatureWithObjCTypes:cEncoding]; + + if (!KWObjCTypeEqualToObjCType(@encode(BOOL), [signature methodReturnType])) { + return NO; + } + + if ([signature numberOfArguments] != 3) { + return NO; + } + + if (!KWObjCTypeEqualToObjCType(@encode(id), [signature getArgumentTypeAtIndex:2])) { + return NO; + } + + return YES; +} + ++ (BOOL)genericMatcher:(id)matcher matches:(id)object { + NSString *targetEncoding = KWEncodingWithObjCTypes(@encode(BOOL), @encode(id), @encode(SEL), @encode(id), nil); + NSMethodSignature *signature = [NSMethodSignature signatureWithObjCTypes:[targetEncoding UTF8String]]; + NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:signature]; + [invocation setSelector:@selector(matches:)]; + [invocation setArgument:&object atIndex:2]; + [invocation invokeWithTarget:matcher]; + BOOL result = NO; + [invocation getReturnValue:&result]; + return result; +} + +@end diff --git a/Pods/Kiwi/Classes/Matchers/KWGenericMatcher.h b/Pods/Kiwi/Classes/Matchers/KWGenericMatcher.h new file mode 100644 index 0000000..be3c7f6 --- /dev/null +++ b/Pods/Kiwi/Classes/Matchers/KWGenericMatcher.h @@ -0,0 +1,24 @@ +// +// KWGenericMatcher.h +// Kiwi +// +// Created by Luke Redpath on 24/01/2011. +// Copyright 2011 Allen Ding. All rights reserved. +// + +#import +#import "KWMatcher.h" + +@protocol KWGenericMatching + +- (BOOL)matches:(id)object; + +@end + +@interface KWGenericMatcher : KWMatcher + +#pragma mark - Configuring Matchers + +- (void)match:(id)aMatcher; + +@end diff --git a/Pods/Kiwi/Classes/Matchers/KWGenericMatcher.m b/Pods/Kiwi/Classes/Matchers/KWGenericMatcher.m new file mode 100644 index 0000000..81cc888 --- /dev/null +++ b/Pods/Kiwi/Classes/Matchers/KWGenericMatcher.m @@ -0,0 +1,48 @@ +// +// KWGenericMatcher.m +// Kiwi +// +// Created by Luke Redpath on 24/01/2011. +// Copyright 2011 Allen Ding. All rights reserved. +// + +#import "KWGenericMatcher.h" +#import "KWGenericMatchEvaluator.h" + +@interface KWGenericMatcher () + +@property (nonatomic, strong) id matcher; + +@end + +@implementation KWGenericMatcher + +#pragma mark - Matching + +- (BOOL)evaluate { + return [KWGenericMatchEvaluator genericMatcher:self.matcher matches:self.subject]; +} + +- (NSString *)failureMessageForShould { + return [NSString stringWithFormat:@"expected subject to match %@", self.matcher]; +} + +- (NSString *)description +{ + return [NSString stringWithFormat:@"match %@", [self.matcher description]]; +} + +#pragma mark - Getting Matcher Strings + ++ (NSArray *)matcherStrings { + return @[@"match:"]; +} + +#pragma mark - Configuring Matchers + +- (void)match:(id)aMatcher; +{ + self.matcher = aMatcher; +} + +@end diff --git a/Pods/Kiwi/Classes/Matchers/KWGenericMatchingAdditions.h b/Pods/Kiwi/Classes/Matchers/KWGenericMatchingAdditions.h new file mode 100644 index 0000000..7a327fe --- /dev/null +++ b/Pods/Kiwi/Classes/Matchers/KWGenericMatchingAdditions.h @@ -0,0 +1,34 @@ +// +// NSObject+KiwiAdditions.h +// Kiwi +// +// Created by Luke Redpath on 24/01/2011. +// Copyright 2011 Allen Ding. All rights reserved. +// + +#import + +@interface NSObject (KiwiGenericMatchingAdditions) + +- (BOOL)isEqualOrMatches:(id)object DEPRECATED_ATTRIBUTE; + +@end + +@interface NSArray (KiwiGenericMatchingAdditions) + +- (BOOL)containsObjectEqualToOrMatching:(id)object DEPRECATED_ATTRIBUTE; +- (BOOL)containsObjectMatching:(id)matcher DEPRECATED_ATTRIBUTE; + +@end + +@interface NSSet (KiwiGenericMatchingAdditions) + +- (BOOL)containsObjectEqualToOrMatching:(id)object DEPRECATED_ATTRIBUTE; + +@end + +@interface NSOrderedSet (KiwiGenericMatchingAdditions) + +- (BOOL)containsObjectEqualToOrMatching:(id)object DEPRECATED_ATTRIBUTE; + +@end diff --git a/Pods/Kiwi/Classes/Matchers/KWGenericMatchingAdditions.m b/Pods/Kiwi/Classes/Matchers/KWGenericMatchingAdditions.m new file mode 100644 index 0000000..37da7dd --- /dev/null +++ b/Pods/Kiwi/Classes/Matchers/KWGenericMatchingAdditions.m @@ -0,0 +1,67 @@ +// +// NSObject+KiwiAdditions.m +// Kiwi +// +// Created by Luke Redpath on 24/01/2011. +// Copyright 2011 Allen Ding. All rights reserved. +// + +#import "KWGenericMatchingAdditions.h" +#import "KWGenericMatcher.h" +#import "KWGenericMatchEvaluator.h" + +@implementation NSObject (KiwiGenericMatchingAdditions) + +- (BOOL)isEqualOrMatches:(id)object { + if ([KWGenericMatchEvaluator isGenericMatcher:self]) { + return [KWGenericMatchEvaluator genericMatcher:self matches:object]; + } + return [self isEqual:object]; +} + +@end + +@implementation NSArray (KiwiGenericMatchingAdditions) + +- (BOOL)containsObjectEqualToOrMatching:(id)object { + if ([KWGenericMatchEvaluator isGenericMatcher:object]) { + return [self containsObjectMatching:object]; + } + return [self containsObject:object]; +} + +- (BOOL)containsObjectMatching:(id)matcher { + NSIndexSet *indexSet = [self indexesOfObjectsPassingTest:^(id obj, NSUInteger idx, BOOL *stop) { + BOOL matches = [KWGenericMatchEvaluator genericMatcher:matcher matches:obj]; + if (matches) { + *stop = YES; + } + return matches; + }]; + + return (indexSet.count > 0); +} + +@end + +@implementation NSSet (KiwiGenericMatchingAdditions) + +- (BOOL)containsObjectEqualToOrMatching:(id)object { + if ([KWGenericMatchEvaluator isGenericMatcher:object]) { + return [[self allObjects] containsObjectMatching:object]; + } + return [self containsObject:object]; +} + +@end + +@implementation NSOrderedSet (KiwiGenericMatchingAdditions) + +- (BOOL)containsObjectEqualToOrMatching:(id)object { + if ([KWGenericMatchEvaluator isGenericMatcher:object]) { + return [[self array] containsObjectMatching:object]; + } + return [self containsObject:object]; +} + +@end diff --git a/Pods/Kiwi/Classes/Matchers/KWHaveMatcher.h b/Pods/Kiwi/Classes/Matchers/KWHaveMatcher.h new file mode 100644 index 0000000..ae4637d --- /dev/null +++ b/Pods/Kiwi/Classes/Matchers/KWHaveMatcher.h @@ -0,0 +1,48 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KiwiConfiguration.h" +#import "KWCountType.h" +#import "KWMatcher.h" +#import "KWMatchVerifier.h" + +@interface KWHaveMatcher : KWMatcher + +#pragma mark - Configuring Matchers + +- (void)haveCountOf:(NSUInteger)aCount; +- (void)haveCountOfAtLeast:(NSUInteger)aCount; +- (void)haveCountOfAtMost:(NSUInteger)aCount; +- (void)haveLengthOf:(NSUInteger)aCount; +- (void)haveLengthOfAtLeast:(NSUInteger)aCount; +- (void)haveLengthOfAtMost:(NSUInteger)aCount; +- (void)have:(NSUInteger)aCount itemsForInvocation:(NSInvocation *)anInvocation; +- (void)haveAtLeast:(NSUInteger)aCount itemsForInvocation:(NSInvocation *)anInvocation; +- (void)haveAtMost:(NSUInteger)aCount itemsForInvocation:(NSInvocation *)anInvocation; + +@end + +@protocol KWContainmentCountMatcherTerminals + +#pragma mark - Terminals + +- (id)objects; +- (id)items; +- (id)elements; + +@end + +#pragma mark - Verifying + +@interface KWMatchVerifier(KWHaveMatcherAdditions) + +#pragma mark - Invocation Capturing Methods + +- (id)have:(NSUInteger)aCount; +- (id)haveAtLeast:(NSUInteger)aCount; +- (id)haveAtMost:(NSUInteger)aCount; + +@end diff --git a/Pods/Kiwi/Classes/Matchers/KWHaveMatcher.m b/Pods/Kiwi/Classes/Matchers/KWHaveMatcher.m new file mode 100644 index 0000000..58fbec9 --- /dev/null +++ b/Pods/Kiwi/Classes/Matchers/KWHaveMatcher.m @@ -0,0 +1,254 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KWHaveMatcher.h" +#import "KWFormatter.h" +#import "KWInvocationCapturer.h" +#import "KWObjCUtilities.h" +#import "KWStringUtilities.h" + +static NSString * const MatchVerifierKey = @"MatchVerifierKey"; +static NSString * const CountTypeKey = @"CountTypeKey"; +static NSString * const CountKey = @"CountKey"; + +@interface KWHaveMatcher() + +#pragma mark - Properties + +@property (nonatomic, assign) KWCountType countType; +@property (nonatomic, assign) NSUInteger count; +@property (nonatomic, strong) NSInvocation *invocation; +@property (nonatomic, assign) NSUInteger actualCount; + +@end + +@implementation KWHaveMatcher + +#pragma mark - Getting Matcher Strings + ++ (NSArray *)matcherStrings { + return @[ + @"haveCountOf:", + @"haveCountOfAtLeast:", + @"haveCountOfAtMost:", + @"haveLengthOf:", + @"haveLengthOfAtLeast:", + @"haveLengthOfAtMost:", + @"have:itemsForInvocation:", + @"haveAtLeast:itemsForInvocation:", + @"haveAtMost:itemsForInvocation:", + ]; +} + +#pragma mark - Matching + +- (id)targetObject { + if (self.invocation == nil) + return self.subject; + + SEL selector = [self.invocation selector]; + + if ([self.subject respondsToSelector:selector]) { + NSMethodSignature *signature = [self.subject methodSignatureForSelector:selector]; + + if (!KWObjCTypeIsObject([signature methodReturnType])) + [NSException raise:@"KWMatcherEception" format:@"a valid collection was not specified"]; + + __unsafe_unretained id object = nil; + [self.invocation invokeWithTarget:self.subject]; + [self.invocation getReturnValue:&object]; + return object; + } else if (KWSelectorParameterCount(selector) == 0) { + return self.subject; + } else { + return nil; + } +} + +- (BOOL)evaluate { + id targetObject = [self targetObject]; + + if ([targetObject respondsToSelector:@selector(count)]) + self.actualCount = [targetObject count]; + else if ([targetObject respondsToSelector:@selector(length)]) + self.actualCount = [targetObject length]; + else + self.actualCount = 0; + + switch (self.countType) { + case KWCountTypeExact: + return self.actualCount == self.count; + case KWCountTypeAtLeast: + return self.actualCount >= self.count; + case KWCountTypeAtMost: + return self.actualCount <= self.count; + } + + assert(0 && "should never reach here"); + return NO; +} + +#pragma mark - Getting Failure Messages + +- (NSString *)verbPhrase { + switch (self.countType) { + case KWCountTypeExact: + return @"have"; + case KWCountTypeAtLeast: + return @"have at least"; + case KWCountTypeAtMost: + return @"have at most"; + } + + assert(0 && "should never reach here"); + return nil; +} + +- (NSString *)itemPhrase { + if (self.invocation == nil) + return @"items"; + else + return NSStringFromSelector([self.invocation selector]); +} + +- (NSString *)actualCountPhrase { + if (self.actualCount == 1) + return @"1 item"; + else + return [NSString stringWithFormat:@"%u items", (unsigned)self.actualCount]; +} + +- (NSString *)failureMessageForShould { + return [NSString stringWithFormat:@"expected subject to %@ %u %@, got %@", + [self verbPhrase], + (unsigned)self.count, + [self itemPhrase], + [self actualCountPhrase]]; +} + +- (NSString *)failureMessageForShouldNot { + return [NSString stringWithFormat:@"expected subject not to %@ %u %@", + [self verbPhrase], + (unsigned)self.count, + [self itemPhrase]]; +} + +#pragma mark - Description + +- (NSString *)description { + return [NSString stringWithFormat:@"%@ %u %@", [self verbPhrase], (unsigned)self.count, [self itemPhrase]]; +} + +#pragma mark - Configuring Matchers + +- (void)haveCountOf:(NSUInteger)aCount { + self.count = aCount; + self.countType = KWCountTypeExact; +} + +- (void)haveLengthOf:(NSUInteger)aCount { + [self haveCountOf:aCount]; +} + +- (void)haveCountOfAtLeast:(NSUInteger)aCount { + self.count = aCount; + self.countType = KWCountTypeAtLeast; +} + +- (void)haveLengthOfAtLeast:(NSUInteger)aCount { + [self haveCountOfAtLeast:aCount]; +} + +- (void)haveCountOfAtMost:(NSUInteger)aCount { + self.count = aCount; + self.countType = KWCountTypeAtMost; +} + +- (void)haveLengthOfAtMost:(NSUInteger)aCount { + [self haveCountOfAtMost:aCount]; +} + +- (void)have:(NSUInteger)aCount itemsForInvocation:(NSInvocation *)anInvocation { + self.count = aCount; + self.countType = KWCountTypeExact; + self.invocation = anInvocation; +} + +- (void)haveAtLeast:(NSUInteger)aCount itemsForInvocation:(NSInvocation *)anInvocation { + self.count = aCount; + self.countType = KWCountTypeAtLeast; + self.invocation = anInvocation; +} + +- (void)haveAtMost:(NSUInteger)aCount itemsForInvocation:(NSInvocation *)anInvocation { + self.count = aCount; + self.countType = KWCountTypeAtMost; + self.invocation = anInvocation; +} + +#pragma mark - Capturing Invocations + ++ (NSMethodSignature *)invocationCapturer:(KWInvocationCapturer *)anInvocationCapturer methodSignatureForSelector:(SEL)aSelector { + KWMatchVerifier *verifier = (anInvocationCapturer.userInfo)[MatchVerifierKey]; + + if ([verifier.subject respondsToSelector:aSelector]) + return [verifier.subject methodSignatureForSelector:aSelector]; + + // Arbitrary selectors are allowed as expectation expression terminals when + // the subject itself is a collection, so return a dummy method signature. + NSString *encoding = KWEncodingForDefaultMethod(); + return [NSMethodSignature signatureWithObjCTypes:[encoding UTF8String]]; +} + ++ (void)invocationCapturer:(KWInvocationCapturer *)anInvocationCapturer didCaptureInvocation:(NSInvocation *)anInvocation { + NSDictionary *userInfo = anInvocationCapturer.userInfo; + id verifier = userInfo[MatchVerifierKey]; + KWCountType countType = [userInfo[CountTypeKey] unsignedIntegerValue]; + NSUInteger count = [userInfo[CountKey] unsignedIntegerValue]; + + switch (countType) { + case KWCountTypeExact: + [verifier have:count itemsForInvocation:anInvocation]; + break; + case KWCountTypeAtLeast: + [verifier haveAtLeast:count itemsForInvocation:anInvocation]; + break; + case KWCountTypeAtMost: + [verifier haveAtMost:count itemsForInvocation:anInvocation]; + break; + } +} + +@end + +#pragma mark - Verifying + +@implementation KWMatchVerifier(KWHaveMatcherAdditions) + +#pragma mark - Invocation Capturing Methods + +- (NSDictionary *)userInfoForHaveMatcherWithCountType:(KWCountType)aCountType count:(NSUInteger)aCount { + return @{MatchVerifierKey: self, + CountTypeKey: @(aCountType), + CountKey: @(aCount)}; +} + +- (id)have:(NSUInteger)aCount { + NSDictionary *userInfo = [self userInfoForHaveMatcherWithCountType:KWCountTypeExact count:aCount]; + return [KWInvocationCapturer invocationCapturerWithDelegate:[KWHaveMatcher class] userInfo:userInfo]; +} + +- (id)haveAtLeast:(NSUInteger)aCount { + NSDictionary *userInfo = [self userInfoForHaveMatcherWithCountType:KWCountTypeAtLeast count:aCount]; + return [KWInvocationCapturer invocationCapturerWithDelegate:[KWHaveMatcher class] userInfo:userInfo]; +} + +- (id)haveAtMost:(NSUInteger)aCount { + NSDictionary *userInfo = [self userInfoForHaveMatcherWithCountType:KWCountTypeAtMost count:aCount]; + return [KWInvocationCapturer invocationCapturerWithDelegate:[KWHaveMatcher class] userInfo:userInfo]; +} + +@end diff --git a/Pods/Kiwi/Classes/Matchers/KWHaveValueMatcher.h b/Pods/Kiwi/Classes/Matchers/KWHaveValueMatcher.h new file mode 100644 index 0000000..73bfccb --- /dev/null +++ b/Pods/Kiwi/Classes/Matchers/KWHaveValueMatcher.h @@ -0,0 +1,21 @@ +// +// KWHaveValueMatcher.h +// Kiwi +// +// Created by Luke Redpath on 24/01/2011. +// Copyright 2011 Allen Ding. All rights reserved. +// + +#import +#import "KWMatcher.h" + +@interface KWHaveValueMatcher : KWMatcher + +#pragma mark - Configuring Matchers + +- (void)haveValue:(id)value forKey:(NSString *)key; +- (void)haveValue:(id)value forKeyPath:(NSString *)keyPath; +- (void)haveValueForKey:(NSString *)key; +- (void)haveValueForKeyPath:(NSString *)keyPath; + +@end diff --git a/Pods/Kiwi/Classes/Matchers/KWHaveValueMatcher.m b/Pods/Kiwi/Classes/Matchers/KWHaveValueMatcher.m new file mode 100644 index 0000000..9c6f8a6 --- /dev/null +++ b/Pods/Kiwi/Classes/Matchers/KWHaveValueMatcher.m @@ -0,0 +1,128 @@ +// +// KWHaveValueMatcher.m +// Kiwi +// +// Created by Luke Redpath on 24/01/2011. +// Copyright 2011 Allen Ding. All rights reserved. +// + +#import "KWHaveValueMatcher.h" +#import "KWGenericMatchingAdditions.h" +#import "KWGenericMatcher.h" +#import "KWFormatter.h" + +@interface KWHaveValueMatcher() + +@property (nonatomic, strong) NSString *expectedKey; +@property (nonatomic, strong) NSString *expectedKeyPath; +@property (nonatomic, strong) id expectedValue; + +@end + +@implementation KWHaveValueMatcher + +#pragma mark - Getting Matcher Strings + ++ (NSArray *)matcherStrings { + return @[@"haveValue:forKey:", + @"haveValueForKey:", + @"haveValue:forKeyPath:", + @"haveValueForKeyPath:"]; +} + +#pragma mark - Matching + +- (BOOL)evaluate { + BOOL matched = NO; + + @try { + id value = [self subjectValue]; + + if (value) { + matched = YES; + + if (self.expectedValue) { + matched = [self.expectedValue isEqualOrMatches:value]; + } + } + } + @catch (NSException * e) {} // catch KVO non-existent key errors + + return matched; +} + +- (NSString *)failureMessageForShould { + if (self.expectedValue == nil) { + return [NSString stringWithFormat:@"expected subject to have a value for key %@", + [KWFormatter formatObject:self.expectedKey]]; + } + id subjectValue = [self subjectValue]; + if (subjectValue) { + return [NSString stringWithFormat:@"expected subject to have value %@ for key %@, but it had value %@ instead", + [KWFormatter formatObject:self.expectedValue], + [KWFormatter formatObject:self.expectedKey], + [KWFormatter formatObject:subjectValue]]; + } else { + return [NSString stringWithFormat:@"expected subject to have value %@ for key %@, but the key was not present", + [KWFormatter formatObject:self.expectedValue], + [KWFormatter formatObject:self.expectedKey]]; + } +} + +- (id)subjectValue { + id value = nil; + + if (self.expectedKey) { + value = [self.subject valueForKey:self.expectedKey]; + } else + if (self.expectedKeyPath) { + value = [self.subject valueForKeyPath:self.expectedKeyPath]; + } + return value; +} + +- (NSString *)description { + NSString *keyDescription = nil; + + if (self.expectedKey) { + keyDescription = [NSString stringWithFormat:@"key %@", [KWFormatter formatObject:self.expectedKey]]; + } + else { + keyDescription = [NSString stringWithFormat:@"keypath %@", [KWFormatter formatObject:self.expectedKeyPath]]; + } + + NSString *valueDescription = nil; + + if (self.expectedValue) { + valueDescription = [NSString stringWithFormat:@"value %@", [KWFormatter formatObject:self.expectedValue]]; + } + else { + valueDescription = @"value"; + } + + return [NSString stringWithFormat:@"have %@ for %@", valueDescription, keyDescription]; +} + +#pragma mark - Configuring Matchers + +- (void)haveValue:(id)value forKey:(NSString *)key { + self.expectedKey = key; + self.expectedValue = value; +} + +- (void)haveValue:(id)value forKeyPath:(NSString *)key { + self.expectedKeyPath = key; + self.expectedValue = value; +} + +- (void)haveValueForKey:(NSString *)key { + self.expectedKey = key; + self.expectedValue = nil; +} + +- (void)haveValueForKeyPath:(NSString *)keyPath { + self.expectedKeyPath = keyPath; + self.expectedValue = nil; +} + +@end diff --git a/Pods/Kiwi/Classes/Matchers/KWInequalityMatcher.h b/Pods/Kiwi/Classes/Matchers/KWInequalityMatcher.h new file mode 100644 index 0000000..003ba4b --- /dev/null +++ b/Pods/Kiwi/Classes/Matchers/KWInequalityMatcher.h @@ -0,0 +1,19 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KiwiConfiguration.h" +#import "KWMatcher.h" + +@interface KWInequalityMatcher : KWMatcher + +#pragma mark - Configuring Matchers + +- (void)beLessThan:(id)aValue; +- (void)beLessThanOrEqualTo:(id)aValue; +- (void)beGreaterThan:(id)aValue; +- (void)beGreaterThanOrEqualTo:(id)aValue; + +@end diff --git a/Pods/Kiwi/Classes/Matchers/KWInequalityMatcher.m b/Pods/Kiwi/Classes/Matchers/KWInequalityMatcher.m new file mode 100644 index 0000000..573e370 --- /dev/null +++ b/Pods/Kiwi/Classes/Matchers/KWInequalityMatcher.m @@ -0,0 +1,109 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KWInequalityMatcher.h" +#import "KWFormatter.h" + +typedef NS_ENUM(NSUInteger, KWInequalityType) { + KWInequalityTypeLessThan, + KWInequalityTypeLessThanOrEqualTo, + KWInequalityTypeGreaterThan, + KWInequalityTypeGreaterThanOrEqualTo +}; + +@interface KWInequalityMatcher() + +#pragma mark - Properties + +@property (nonatomic, assign) KWInequalityType inequalityType; +@property (nonatomic, strong) id otherValue; + +@end + +@implementation KWInequalityMatcher + +#pragma mark - Getting Matcher Strings + ++ (NSArray *)matcherStrings { + return @[@"beLessThan:", + @"beLessThanOrEqualTo:", + @"beGreaterThan:", + @"beGreaterThanOrEqualTo:"]; +} + +#pragma mark - Matching + +- (BOOL)evaluate { + if (![self.subject respondsToSelector:@selector(compare:)]) + [NSException raise:@"KWMatcherException" format:@"subject does not respond to -compare:"]; + + NSComparisonResult result = [self.subject compare:self.otherValue]; + + switch (result) { + case NSOrderedSame: + return self.inequalityType == KWInequalityTypeLessThanOrEqualTo || self.inequalityType == KWInequalityTypeGreaterThanOrEqualTo; + case NSOrderedAscending: + return self.inequalityType == KWInequalityTypeLessThan || self.inequalityType == KWInequalityTypeLessThanOrEqualTo; + case NSOrderedDescending: + return self.inequalityType == KWInequalityTypeGreaterThan || self.inequalityType == KWInequalityTypeGreaterThanOrEqualTo; + } + + assert(0 && "should never reach here"); + return NO; +} + +#pragma mark - Getting Failure Messages + +- (NSString *)comparisonPhrase { + switch (self.inequalityType) { + case KWInequalityTypeLessThan: + return @"<"; + case KWInequalityTypeLessThanOrEqualTo: + return @"<="; + case KWInequalityTypeGreaterThan: + return @">"; + case KWInequalityTypeGreaterThanOrEqualTo: + return @">="; + } + + assert(0 && "should never reach here"); + return nil; +} + +- (NSString *)failureMessageForShould { + return [NSString stringWithFormat:@"expected subject to be %@ %@, got %@", + [self comparisonPhrase], + [KWFormatter formatObject:self.otherValue], + [KWFormatter formatObject:self.subject]]; +} + +- (NSString *)description { + return [NSString stringWithFormat:@"be %@ %@", [self comparisonPhrase], [KWFormatter formatObject:self.otherValue]]; +} + +#pragma mark - Configuring Matchers + +- (void)beLessThan:(id)aValue { + self.inequalityType = KWInequalityTypeLessThan; + self.otherValue = aValue; +} + +- (void)beLessThanOrEqualTo:(id)aValue { + self.inequalityType = KWInequalityTypeLessThanOrEqualTo; + self.otherValue = aValue; +} + +- (void)beGreaterThan:(id)aValue { + self.inequalityType = KWInequalityTypeGreaterThan; + self.otherValue = aValue; +} + +- (void)beGreaterThanOrEqualTo:(id)aValue { + self.inequalityType = KWInequalityTypeGreaterThanOrEqualTo; + self.otherValue = aValue; +} + +@end diff --git a/Pods/Kiwi/Classes/Matchers/KWNilMatcher.h b/Pods/Kiwi/Classes/Matchers/KWNilMatcher.h new file mode 100644 index 0000000..51f6057 --- /dev/null +++ b/Pods/Kiwi/Classes/Matchers/KWNilMatcher.h @@ -0,0 +1,23 @@ +// +// KWBeNilMatcher.h +// iOSFalconCore +// +// Created by Luke Redpath on 14/01/2011. +// Copyright 2011 LJR Software Limited. All rights reserved. +// + +#import +#import "KWMatcher.h" + +@interface KWNilMatcher : KWMatcher + +- (void)beNil; +- (void)beNonNil; + +- (void)beNil:(BOOL)workaroundArgument; +- (void)beNonNil:(BOOL)workaroundArgument; + ++ (BOOL)verifyNilSubject; ++ (BOOL)verifyNonNilSubject; + +@end diff --git a/Pods/Kiwi/Classes/Matchers/KWNilMatcher.m b/Pods/Kiwi/Classes/Matchers/KWNilMatcher.m new file mode 100644 index 0000000..70c9c31 --- /dev/null +++ b/Pods/Kiwi/Classes/Matchers/KWNilMatcher.m @@ -0,0 +1,112 @@ +// +// KWBeNilMatcher.m +// iOSFalconCore +// +// Created by Luke Redpath on 14/01/2011. +// Copyright 2011 LJR Software Limited. All rights reserved. +// + +#import "KWNilMatcher.h" +#import "KWExample.h" +#import "KWExampleSuiteBuilder.h" +#import "KWFormatter.h" +#import "KWMatchVerifier.h" +#import "KWVerifying.h" + +@interface KWNilMatcher () + +@property (nonatomic, assign) BOOL expectsNil; + +@end + +@implementation KWNilMatcher + +#pragma mark - Getting Matcher Strings + ++ (NSArray *)matcherStrings { + return @[@"beNil", @"beNil:", @"beNonNil", @"beNonNil:"]; +} + +#pragma mark - Matching + +- (BOOL)isNilMatcher { + return YES; +} + +- (BOOL)evaluate { + if (self.expectsNil) { + return (self.subject == nil); + } else { + return (self.subject != nil); + } +} + +// These two methods gets invoked by be(Non)Nil macro in case the subject is nil +// (and therefore cannot have a verifier attached). + ++ (BOOL)verifyNilSubject { + return [self verifySubjectExpectingNil:YES]; +} + ++ (BOOL)verifyNonNilSubject { + return [self verifySubjectExpectingNil:NO]; +} + +#pragma mark Getting Failure Messages + +- (NSString *)failureMessageForShould { + if (self.expectsNil) { + return [NSString stringWithFormat:@"expected subject to be nil, got %@", + [KWFormatter formatObject:self.subject]]; + } else { + return [NSString stringWithFormat:@"expected subject not to be nil"]; + } +} + +- (NSString *)failureMessageForShouldNot { + if (self.expectsNil) { + return [NSString stringWithFormat:@"expected subject not to be nil"]; + } else { + return [NSString stringWithFormat:@"expected subject to be nil, got %@", + [KWFormatter formatObject:self.subject]]; + } +} + +- (NSString *)description { + return [NSString stringWithFormat:@"be %@nil", self.expectsNil ? @"" : @"non "]; +} + +- (void)beNil { + self.expectsNil = YES; +} +- (void)beNil:(BOOL)workaroundArgument { + self.expectsNil = YES; +} + +- (void)beNonNil { + self.expectsNil = NO; +} +- (void)beNonNil:(BOOL)workaroundArgument { + self.expectsNil = NO; +} + +#pragma mark - Internal Methods + ++ (BOOL)verifySubjectExpectingNil:(BOOL)expectNil { + KWExample *currentExample = [[KWExampleSuiteBuilder sharedExampleSuiteBuilder] currentExample]; + id verifier = currentExample.unresolvedVerifier; + + if (verifier && ![verifier subject] && [verifier isKindOfClass:[KWMatchVerifier class]]) { + KWMatchVerifier *matchVerifier = (KWMatchVerifier *)verifier; + if (expectNil) { + [matchVerifier performSelector:@selector(beNil)]; + } else { + [matchVerifier performSelector:@selector(beNonNil)]; + } + currentExample.unresolvedVerifier = nil; + return NO; + } + return YES; +} + +@end diff --git a/Pods/Kiwi/Classes/Matchers/KWNotificationMatcher.h b/Pods/Kiwi/Classes/Matchers/KWNotificationMatcher.h new file mode 100644 index 0000000..8411494 --- /dev/null +++ b/Pods/Kiwi/Classes/Matchers/KWNotificationMatcher.h @@ -0,0 +1,20 @@ +// +// KWNotificationMatcher.h +// +// Created by Paul Zabelin on 7/12/12. +// Copyright (c) 2012 Blazing Cloud, Inc. All rights reserved. +// + +#import "KWMatcher.h" + +typedef void (^PostedNotificationBlock)(NSNotification* note); + +@interface KWNotificationMatcher : KWMatcher + +- (void)bePosted; +- (void)bePostedWithObject:(id)object; +- (void)bePostedWithUserInfo:(NSDictionary *)userInfo; +- (void)bePostedWithObject:(id)object andUserInfo:(NSDictionary *)userInfo; +- (void)bePostedEvaluatingBlock:(PostedNotificationBlock)block; + +@end diff --git a/Pods/Kiwi/Classes/Matchers/KWNotificationMatcher.m b/Pods/Kiwi/Classes/Matchers/KWNotificationMatcher.m new file mode 100644 index 0000000..53cf58c --- /dev/null +++ b/Pods/Kiwi/Classes/Matchers/KWNotificationMatcher.m @@ -0,0 +1,118 @@ +// +// KWNotificationMatcher.m +// +// Created by Paul Zabelin on 7/12/12. +// Copyright (c) 2012 Blazing Cloud, Inc. All rights reserved. +// + +#import "KWNotificationMatcher.h" +#import "KWFormatter.h" + +@interface KWNotificationMatcher () +@property (nonatomic, strong) NSNotification *notification; +@property (nonatomic, strong) id observer; +@property (nonatomic, copy) PostedNotificationBlock evaluationBlock; +@property (nonatomic, strong) id expectedObject; +@property (nonatomic, strong) NSDictionary *expectedUserInfo; +@property (nonatomic, assign) BOOL didReceiveNotification; +@end + +@implementation KWNotificationMatcher + ++ (NSArray *)matcherStrings { + return @[@"bePosted", @"bePostedWithObject:", @"bePostedWithUserInfo:", @"bePostedWithObject:andUserInfo:", @"bePostedEvaluatingBlock:"]; +} + +- (void)addObserver { + NSNotificationCenter *center = [NSNotificationCenter defaultCenter]; + self.observer = [center addObserverForName:self.subject + object:self.expectedObject + queue:nil + usingBlock:^(NSNotification *note) { + self.notification = note; + self.didReceiveNotification = YES; + if (self.expectedObject) { + self.didReceiveNotification &= (self.expectedObject==note.object); + } + if (self.expectedUserInfo) { + self.didReceiveNotification &= [self.expectedUserInfo isEqualToDictionary:[note userInfo]]; + } + if (self.evaluationBlock) { + self.evaluationBlock(note); + } + }]; +} + +#pragma mark - Matching + +- (BOOL)evaluate { + [[NSNotificationCenter defaultCenter] removeObserver:self.observer]; + return self.didReceiveNotification; +} + +- (BOOL)shouldBeEvaluatedAtEndOfExample { + return YES; +} + +#pragma mark - Getting Matcher Compatability + ++ (BOOL)canMatchSubject:(id)anObject { + return [anObject isKindOfClass:[NSString class]]; +} + +#pragma mark - Getting Failure Messages + +- (NSString *)receiveNotificationMessage { + NSMutableString *message = [NSMutableString stringWithFormat:@"receive %@ notification", [KWFormatter formatObject:self.subject]]; + if (self.expectedObject && self.expectedUserInfo) { + [message appendFormat:@" with object: %@ and user info: %@", self.expectedObject, self.expectedUserInfo]; + } else if (self.expectedObject) { + [message appendFormat:@" with object: %@", self.expectedObject]; + } else if (self.expectedUserInfo) { + [message appendFormat:@" with user info: %@", self.expectedUserInfo]; + } + return message; +} + +- (NSString *)failureMessageForShould { + return [NSString stringWithFormat:@"expect to %@", [self receiveNotificationMessage]]; +} + +- (NSString *)failureMessageForShouldNot { + return [NSString stringWithFormat:@"expect not to %@, but received: %@", + [self receiveNotificationMessage], + self.notification]; +} + +- (NSString *)description { + return [NSString stringWithFormat:@"%@ be posted", self.subject]; +} + +#pragma mark - Configuring Matchers + +- (void)bePosted { + [self addObserver]; +} + +- (void)bePostedWithObject:(id)object { + [self addObserver]; + self.expectedObject = object; +} + +- (void)bePostedWithUserInfo:(NSDictionary *)userInfo { + [self addObserver]; + self.expectedUserInfo = userInfo; +} + +- (void)bePostedWithObject:(id)object andUserInfo:(NSDictionary *)userInfo { + [self addObserver]; + self.expectedObject = object; + self.expectedUserInfo = userInfo; +} + +- (void)bePostedEvaluatingBlock:(PostedNotificationBlock)block { + [self addObserver]; + self.evaluationBlock = block; +} + +@end diff --git a/Pods/Kiwi/Classes/Matchers/KWReceiveMatcher.h b/Pods/Kiwi/Classes/Matchers/KWReceiveMatcher.h new file mode 100644 index 0000000..23fa7bf --- /dev/null +++ b/Pods/Kiwi/Classes/Matchers/KWReceiveMatcher.h @@ -0,0 +1,61 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KiwiConfiguration.h" +#import "KWCountType.h" +#import "KWMatcher.h" +#import "KWMatchVerifier.h" + +@class KWMessagePattern; +@class KWMessageTracker; + +@interface KWReceiveMatcher : KWMatcher + +@property (nonatomic, assign) BOOL willEvaluateMultipleTimes; +@property (nonatomic, assign) BOOL willEvaluateAgainstNegativeExpectation; + +#pragma mark - Configuring Matchers + +- (void)receive:(SEL)aSelector; +- (void)receive:(SEL)aSelector withCount:(NSUInteger)aCount; +- (void)receive:(SEL)aSelector withCountAtLeast:(NSUInteger)aCount; +- (void)receive:(SEL)aSelector withCountAtMost:(NSUInteger)aCount; +- (void)receive:(SEL)aSelector andReturn:(id)aValue; +- (void)receive:(SEL)aSelector andReturn:(id)aValue withCount:(NSUInteger)aCount; +- (void)receive:(SEL)aSelector andReturn:(id)aValue withCountAtLeast:(NSUInteger)aCount; +- (void)receive:(SEL)aSelector andReturn:(id)aValue withCountAtMost:(NSUInteger)aCount; + +// These methods will become private +- (void)receiveMessagePattern:(KWMessagePattern *)aMessagePattern countType:(KWCountType)aCountType count:(NSUInteger)aCount; +- (void)receiveMessagePattern:(KWMessagePattern *)aMessagePattern andReturn:(id)aValue countType:(KWCountType)aCountType count:(NSUInteger)aCount; + +@end + +@interface KWMatchVerifier(KWReceiveMatcherAdditions) + +#pragma mark - Verifying + +- (void)receive:(SEL)aSelector withArguments:(id)firstArgument, ...; +- (void)receive:(SEL)aSelector withCount:(NSUInteger)aCount arguments:(id)firstArgument, ...; +- (void)receive:(SEL)aSelector withCountAtLeast:(NSUInteger)aCount arguments:(id)firstArgument, ...; +- (void)receive:(SEL)aSelector withCountAtMost:(NSUInteger)aCount arguments:(id)firstArgument, ...; +- (void)receive:(SEL)aSelector andReturn:(id)aValue withArguments:(id)firstArgument, ...; +- (void)receive:(SEL)aSelector andReturn:(id)aValue withCount:(NSUInteger)aCount arguments:(id)firstArgument, ...; +- (void)receive:(SEL)aSelector andReturn:(id)aValue withCountAtLeast:(NSUInteger)aCount arguments:(id)firstArgument, ...; +- (void)receive:(SEL)aSelector andReturn:(id)aValue withCountAtMost:(NSUInteger)aCount arguments:(id)firstArgument, ...; + +#pragma mark Invocation Capturing Methods + +- (id)receive DEPRECATED_ATTRIBUTE; +- (id)receiveWithCount:(NSUInteger)aCount DEPRECATED_ATTRIBUTE; +- (id)receiveWithCountAtLeast:(NSUInteger)aCount DEPRECATED_ATTRIBUTE; +- (id)receiveWithCountAtMost:(NSUInteger)aCount DEPRECATED_ATTRIBUTE; +- (id)receiveAndReturn:(id)aValue DEPRECATED_ATTRIBUTE; +- (id)receiveAndReturn:(id)aValue withCount:(NSUInteger)aCount DEPRECATED_ATTRIBUTE; +- (id)receiveAndReturn:(id)aValue withCountAtLeast:(NSUInteger)aCount DEPRECATED_ATTRIBUTE; +- (id)receiveAndReturn:(id)aValue withCountAtMost:(NSUInteger)aCount DEPRECATED_ATTRIBUTE; + +@end diff --git a/Pods/Kiwi/Classes/Matchers/KWReceiveMatcher.m b/Pods/Kiwi/Classes/Matchers/KWReceiveMatcher.m new file mode 100644 index 0000000..12fb0ae --- /dev/null +++ b/Pods/Kiwi/Classes/Matchers/KWReceiveMatcher.m @@ -0,0 +1,325 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KWReceiveMatcher.h" +#import "KWFormatter.h" +#import "KWInvocationCapturer.h" +#import "KWMessagePattern.h" +#import "KWMessageTracker.h" +#import "KWObjCUtilities.h" +#import "KWStringUtilities.h" +#import "KWWorkarounds.h" +#import "NSObject+KiwiStubAdditions.h" + +static NSString * const MatchVerifierKey = @"MatchVerifierKey"; +static NSString * const CountTypeKey = @"CountTypeKey"; +static NSString * const CountKey = @"CountKey"; +static NSString * const StubValueKey = @"StubValueKey"; + +@interface KWReceiveMatcher() + +#pragma mark - Properties + +@property (nonatomic, readwrite, strong) KWMessageTracker *messageTracker; + +@end + +@implementation KWReceiveMatcher + +#pragma mark - Initializing + +- (id)initWithSubject:(id)anObject { + self = [super initWithSubject:anObject]; + if (self) { + _willEvaluateMultipleTimes = NO; + } + + return self; +} + +#pragma mark - Getting Matcher Strings + ++ (NSArray *)matcherStrings { + return @[@"receive:", + @"receive:withCount:", + @"receive:withCountAtLeast:", + @"receive:withCountAtMost:", + @"receive:andReturn:", + @"receive:andReturn:withCount:", + @"receive:andReturn:withCountAtLeast:", + @"receive:andReturn:withCountAtMost:", + @"receiveMessagePattern:countType:count:", + @"receiveMessagePattern:andReturn:countType:count:", + @"receiveUnspecifiedCountOfMessagePattern:", + @"receiveUnspecifiedCountOfMessagePattern:andReturn:"]; +} + +#pragma mark - Matching + +- (BOOL)shouldBeEvaluatedAtEndOfExample { + return YES; +} + +- (BOOL)evaluate { + BOOL succeeded = [self.messageTracker succeeded]; + + if (!self.willEvaluateMultipleTimes) { + [self.messageTracker stopTracking]; + } + return succeeded; +} + +#pragma mark - Getting Failure Messages + +- (NSString *)failureMessageForShould { + return [NSString stringWithFormat:@"expected subject to receive -%@ %@, but received it %@", + [self.messageTracker.messagePattern stringValue], + [self.messageTracker expectedCountPhrase], + [self.messageTracker receivedCountPhrase]]; +} + +- (NSString *)failureMessageForShouldNot { + return [NSString stringWithFormat:@"expected subject not to receive -%@, but received it %@", + [self.messageTracker.messagePattern stringValue], + [self.messageTracker receivedCountPhrase]]; +} + +#pragma mark - Configuring Matchers + +- (void)receive:(SEL)aSelector { + KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:aSelector]; + [self receiveUnspecifiedCountOfMessagePattern:messagePattern]; +} + +- (void)receive:(SEL)aSelector withCount:(NSUInteger)aCount { + KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:aSelector]; + return [self receiveMessagePattern:messagePattern countType:KWCountTypeExact count:aCount]; +} + +- (void)receive:(SEL)aSelector withCountAtLeast:(NSUInteger)aCount { + KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:aSelector]; + return [self receiveMessagePattern:messagePattern countType:KWCountTypeAtLeast count:aCount]; +} + +- (void)receive:(SEL)aSelector withCountAtMost:(NSUInteger)aCount { + KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:aSelector]; + return [self receiveMessagePattern:messagePattern countType:KWCountTypeAtMost count:aCount]; +} + +- (void)receive:(SEL)aSelector andReturn:(id)aValue { + KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:aSelector]; + [self receiveUnspecifiedCountOfMessagePattern:messagePattern andReturn:aValue]; +} + +- (void)receive:(SEL)aSelector andReturn:(id)aValue withCount:(NSUInteger)aCount { + KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:aSelector]; + [self receiveMessagePattern:messagePattern andReturn:aValue countType:KWCountTypeExact count:aCount]; +} + +- (void)receive:(SEL)aSelector andReturn:(id)aValue withCountAtLeast:(NSUInteger)aCount { + KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:aSelector]; + [self receiveMessagePattern:messagePattern andReturn:aValue countType:KWCountTypeAtLeast count:aCount]; +} + +- (void)receive:(SEL)aSelector andReturn:(id)aValue withCountAtMost:(NSUInteger)aCount { + KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:aSelector]; + [self receiveMessagePattern:messagePattern andReturn:aValue countType:KWCountTypeAtMost count:aCount]; +} + +- (void)receiveUnspecifiedCountOfMessagePattern:(KWMessagePattern *)messagePattern { + if (self.willEvaluateAgainstNegativeExpectation) { + [self receiveMessagePattern:messagePattern countType:KWCountTypeAtLeast count:1]; + } else { + [self receiveMessagePattern:messagePattern countType:KWCountTypeExact count:1]; + } +} + +- (void)receiveUnspecifiedCountOfMessagePattern:(KWMessagePattern *)messagePattern andReturn:(id)aValue { + if (self.willEvaluateAgainstNegativeExpectation) { + [self receiveMessagePattern:messagePattern andReturn:aValue countType:KWCountTypeAtLeast count:1]; + } else { + [self receiveMessagePattern:messagePattern andReturn:aValue countType:KWCountTypeExact count:1]; + } +} + +- (void)receiveMessagePattern:(KWMessagePattern *)aMessagePattern countType:(KWCountType)aCountType count:(NSUInteger)aCount { +#if KW_TARGET_HAS_INVOCATION_EXCEPTION_BUG + @try { +#endif // #if KW_TARGET_HAS_INVOCATION_EXCEPTION_BUG + + [self.subject stubMessagePattern:aMessagePattern andReturn:nil overrideExisting:NO]; + self.messageTracker = [KWMessageTracker messageTrackerWithSubject:self.subject messagePattern:aMessagePattern countType:aCountType count:aCount]; + +#if KW_TARGET_HAS_INVOCATION_EXCEPTION_BUG + } @catch(NSException *exception) { + KWSetExceptionFromAcrossInvocationBoundary(exception); + } +#endif // #if KW_TARGET_HAS_INVOCATION_EXCEPTION_BUG +} + +- (void)receiveMessagePattern:(KWMessagePattern *)aMessagePattern andReturn:(id)aValue countType:(KWCountType)aCountType count:(NSUInteger)aCount { +#if KW_TARGET_HAS_INVOCATION_EXCEPTION_BUG + @try { +#endif // #if KW_TARGET_HAS_INVOCATION_EXCEPTION_BUG + + [self.subject stubMessagePattern:aMessagePattern andReturn:aValue]; + self.messageTracker = [KWMessageTracker messageTrackerWithSubject:self.subject messagePattern:aMessagePattern countType:aCountType count:aCount]; + +#if KW_TARGET_HAS_INVOCATION_EXCEPTION_BUG + } @catch(NSException *exception) { + KWSetExceptionFromAcrossInvocationBoundary(exception); + } +#endif // #if KW_TARGET_HAS_INVOCATION_EXCEPTION_BUG +} + +#pragma mark - Capturing Invocations + ++ (NSMethodSignature *)invocationCapturer:(KWInvocationCapturer *)anInvocationCapturer methodSignatureForSelector:(SEL)aSelector { + KWMatchVerifier *verifier = (anInvocationCapturer.userInfo)[MatchVerifierKey]; + + if ([verifier.subject respondsToSelector:aSelector]) + return [verifier.subject methodSignatureForSelector:aSelector]; + + NSString *encoding = KWEncodingForDefaultMethod(); + return [NSMethodSignature signatureWithObjCTypes:[encoding UTF8String]]; +} + ++ (void)invocationCapturer:(KWInvocationCapturer *)anInvocationCapturer didCaptureInvocation:(NSInvocation *)anInvocation { + NSDictionary *userInfo = anInvocationCapturer.userInfo; + id verifier = userInfo[MatchVerifierKey]; + KWCountType countType = [userInfo[CountTypeKey] unsignedIntegerValue]; + NSUInteger count = [userInfo[CountKey] unsignedIntegerValue]; + id stubValue = userInfo[StubValueKey]; + KWMessagePattern *messagePattern = [KWMessagePattern messagePatternFromInvocation:anInvocation]; + + if (stubValue != nil) + [verifier receiveMessagePattern:messagePattern andReturn:stubValue countType:countType count:count]; + else + [verifier receiveMessagePattern:messagePattern countType:countType count:count]; +} + +@end + +@implementation KWMatchVerifier(KWReceiveMatcherAdditions) + +#pragma mark - Verifying + +- (void)receive:(SEL)aSelector withArguments:(id)firstArgument, ... { + va_list argumentList; + va_start(argumentList, firstArgument); + KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:aSelector firstArgumentFilter:firstArgument argumentList:argumentList]; + [(id)self receiveUnspecifiedCountOfMessagePattern:messagePattern]; +} + +- (void)receive:(SEL)aSelector withCount:(NSUInteger)aCount arguments:(id)firstArgument, ... { + va_list argumentList; + va_start(argumentList, firstArgument); + KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:aSelector firstArgumentFilter:firstArgument argumentList:argumentList]; + [(id)self receiveMessagePattern:messagePattern countType:KWCountTypeExact count:aCount]; +} + +- (void)receive:(SEL)aSelector withCountAtLeast:(NSUInteger)aCount arguments:(id)firstArgument, ... { + va_list argumentList; + va_start(argumentList, firstArgument); + KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:aSelector firstArgumentFilter:firstArgument argumentList:argumentList]; + [(id)self receiveMessagePattern:messagePattern countType:KWCountTypeAtLeast count:aCount]; +} + +- (void)receive:(SEL)aSelector withCountAtMost:(NSUInteger)aCount arguments:(id)firstArgument, ... { + va_list argumentList; + va_start(argumentList, firstArgument); + KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:aSelector firstArgumentFilter:firstArgument argumentList:argumentList]; + [(id)self receiveMessagePattern:messagePattern countType:KWCountTypeAtMost count:aCount]; +} + +- (void)receive:(SEL)aSelector andReturn:(id)aValue withArguments:(id)firstArgument, ... { + va_list argumentList; + va_start(argumentList, firstArgument); + KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:aSelector firstArgumentFilter:firstArgument argumentList:argumentList]; + [(id)self receiveUnspecifiedCountOfMessagePattern:messagePattern andReturn:aValue]; +} + +- (void)receive:(SEL)aSelector andReturn:(id)aValue withCount:(NSUInteger)aCount arguments:(id)firstArgument, ... { + va_list argumentList; + va_start(argumentList, firstArgument); + KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:aSelector firstArgumentFilter:firstArgument argumentList:argumentList]; + [(id)self receiveMessagePattern:messagePattern andReturn:aValue countType:KWCountTypeExact count:aCount]; +} + +- (void)receive:(SEL)aSelector andReturn:(id)aValue withCountAtLeast:(NSUInteger)aCount arguments:(id)firstArgument, ... { + va_list argumentList; + va_start(argumentList, firstArgument); + KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:aSelector firstArgumentFilter:firstArgument argumentList:argumentList]; + [(id)self receiveMessagePattern:messagePattern andReturn:aValue countType:KWCountTypeAtLeast count:aCount]; +} + +- (void)receive:(SEL)aSelector andReturn:(id)aValue withCountAtMost:(NSUInteger)aCount arguments:(id)firstArgument, ... { + va_list argumentList; + va_start(argumentList, firstArgument); + KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:aSelector firstArgumentFilter:firstArgument argumentList:argumentList]; + [(id)self receiveMessagePattern:messagePattern andReturn:aValue countType:KWCountTypeAtMost count:aCount]; +} + +#pragma mark Invocation Capturing Methods + +- (NSDictionary *)userInfoForReceiveMatcherWithCountType:(KWCountType)aCountType count:(NSUInteger)aCount { + return @{ + MatchVerifierKey: self, + CountTypeKey: @(aCountType), + CountKey: @(aCount) + }; +} + +- (NSDictionary *)userInfoForReceiveMatcherWithCountType:(KWCountType)aCountType count:(NSUInteger)aCount value:(id)aValue { + return @{ + MatchVerifierKey: self, + CountTypeKey: @(aCountType), + CountKey: @(aCount), + StubValueKey: aValue + }; +} + +- (id)receive { + NSDictionary *userInfo = [self userInfoForReceiveMatcherWithCountType:KWCountTypeExact count:1]; + return [KWInvocationCapturer invocationCapturerWithDelegate:[KWReceiveMatcher class] userInfo:userInfo]; +} + +- (id)receiveWithCount:(NSUInteger)aCount { + NSDictionary *userInfo = [self userInfoForReceiveMatcherWithCountType:KWCountTypeExact count:aCount]; + return [KWInvocationCapturer invocationCapturerWithDelegate:[KWReceiveMatcher class] userInfo:userInfo]; +} + +- (id)receiveWithCountAtLeast:(NSUInteger)aCount { + NSDictionary *userInfo = [self userInfoForReceiveMatcherWithCountType:KWCountTypeAtLeast count:aCount]; + return [KWInvocationCapturer invocationCapturerWithDelegate:[KWReceiveMatcher class] userInfo:userInfo]; +} + +- (id)receiveWithCountAtMost:(NSUInteger)aCount { + NSDictionary *userInfo = [self userInfoForReceiveMatcherWithCountType:KWCountTypeAtMost count:aCount]; + return [KWInvocationCapturer invocationCapturerWithDelegate:[KWReceiveMatcher class] userInfo:userInfo]; +} + +- (id)receiveAndReturn:(id)aValue { + NSDictionary *userInfo = [self userInfoForReceiveMatcherWithCountType:KWCountTypeExact count:1 value:aValue]; + return [KWInvocationCapturer invocationCapturerWithDelegate:[KWReceiveMatcher class] userInfo:userInfo]; +} + +- (id)receiveAndReturn:(id)aValue withCount:(NSUInteger)aCount { + NSDictionary *userInfo = [self userInfoForReceiveMatcherWithCountType:KWCountTypeExact count:aCount value:aValue]; + return [KWInvocationCapturer invocationCapturerWithDelegate:[KWReceiveMatcher class] userInfo:userInfo]; +} + +- (id)receiveAndReturn:(id)aValue withCountAtLeast:(NSUInteger)aCount { + NSDictionary *userInfo = [self userInfoForReceiveMatcherWithCountType:KWCountTypeAtLeast count:aCount value:aValue]; + return [KWInvocationCapturer invocationCapturerWithDelegate:[KWReceiveMatcher class] userInfo:userInfo]; +} + +- (id)receiveAndReturn:(id)aValue withCountAtMost:(NSUInteger)aCount { + NSDictionary *userInfo = [self userInfoForReceiveMatcherWithCountType:KWCountTypeAtMost count:aCount value:aValue]; + return [KWInvocationCapturer invocationCapturerWithDelegate:[KWReceiveMatcher class] userInfo:userInfo]; +} + +@end diff --git a/Pods/Kiwi/Classes/Matchers/KWRegularExpressionPatternMatcher.h b/Pods/Kiwi/Classes/Matchers/KWRegularExpressionPatternMatcher.h new file mode 100644 index 0000000..923aa03 --- /dev/null +++ b/Pods/Kiwi/Classes/Matchers/KWRegularExpressionPatternMatcher.h @@ -0,0 +1,18 @@ +// +// KWRegularExpressionPatternMatcher.h +// Kiwi +// +// Created by Kristopher Johnson on 4/11/13. +// Copyright (c) 2013 Allen Ding. All rights reserved. +// + +#import "KiwiConfiguration.h" +#import "KWMatcher.h" + +@interface KWRegularExpressionPatternMatcher : KWMatcher + +- (void)matchPattern:(NSString *)pattern; + +- (void)matchPattern:(NSString *)pattern options:(NSRegularExpressionOptions)options; + +@end diff --git a/Pods/Kiwi/Classes/Matchers/KWRegularExpressionPatternMatcher.m b/Pods/Kiwi/Classes/Matchers/KWRegularExpressionPatternMatcher.m new file mode 100644 index 0000000..c5c38e3 --- /dev/null +++ b/Pods/Kiwi/Classes/Matchers/KWRegularExpressionPatternMatcher.m @@ -0,0 +1,82 @@ +// +// KWRegularExpressionPatternMatcher.m +// Kiwi +// +// Created by Kristopher Johnson on 4/11/13. +// Copyright (c) 2013 Allen Ding. All rights reserved. +// + +#import "KWRegularExpressionPatternMatcher.h" +#import "KWFormatter.h" + + +@interface KWRegularExpressionPatternMatcher () + +@property (nonatomic, copy) NSString *pattern; +@property (nonatomic) NSRegularExpressionOptions options; + +@end + + +@implementation KWRegularExpressionPatternMatcher + + +#pragma mark - Getting Matcher Strings + ++ (NSArray *)matcherStrings { + return @[@"matchPattern:", @"matchPattern:options:"]; +} + +#pragma mark - Matching + +- (BOOL)evaluate { + if (![self.subject isKindOfClass:[NSString class]]) { + return NO; + } + NSString *subjectString = (NSString *)self.subject; + NSRange subjectStringRange = NSMakeRange(0, subjectString.length); + + NSError *error = nil; + NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:self.pattern + options:self.options + error:&error]; + if (!regex) { + NSLog(@"%s: Unable to create regular expression for pattern \"%@\": %@", + __PRETTY_FUNCTION__, self.pattern, [error localizedDescription]); + return NO; + } + + NSUInteger numberOfMatches = [regex numberOfMatchesInString:subjectString + options:0 + range:subjectStringRange]; + return (numberOfMatches == 1); +} + +#pragma mark - Getting Failure Messages + +- (NSString *)failureMessageForShould { + return [NSString stringWithFormat:@"%@ did not match pattern \"%@\"", + [KWFormatter formatObject:self.subject], + self.pattern]; +} + +- (NSString *)failureMessageForShouldNot { + return [NSString stringWithFormat:@"expected subject not to match pattern \"%@\"", + self.pattern]; +} + +- (NSString *)description { + return [NSString stringWithFormat:@"match pattern \"%@\"", self.pattern]; +} + +- (void)matchPattern:(NSString *)pattern { + self.pattern = pattern; + self.options = 0; +} + +- (void)matchPattern:(NSString *)pattern options:(NSRegularExpressionOptions)options { + self.pattern = pattern; + self.options = options; +} + +@end diff --git a/Pods/Kiwi/Classes/Matchers/KWRespondToSelectorMatcher.h b/Pods/Kiwi/Classes/Matchers/KWRespondToSelectorMatcher.h new file mode 100644 index 0000000..f91d47a --- /dev/null +++ b/Pods/Kiwi/Classes/Matchers/KWRespondToSelectorMatcher.h @@ -0,0 +1,16 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KiwiConfiguration.h" +#import "KWMatcher.h" + +@interface KWRespondToSelectorMatcher : KWMatcher + +#pragma mark - Configuring Matchers + +- (void)respondToSelector:(SEL)aSelector; + +@end diff --git a/Pods/Kiwi/Classes/Matchers/KWRespondToSelectorMatcher.m b/Pods/Kiwi/Classes/Matchers/KWRespondToSelectorMatcher.m new file mode 100644 index 0000000..3920dd8 --- /dev/null +++ b/Pods/Kiwi/Classes/Matchers/KWRespondToSelectorMatcher.m @@ -0,0 +1,49 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KWRespondToSelectorMatcher.h" +#import "KWFormatter.h" + +@interface KWRespondToSelectorMatcher() + +#pragma mark - Properties + +@property (nonatomic, assign) SEL selector; + +@end + +@implementation KWRespondToSelectorMatcher + +#pragma mark - Getting Matcher Strings + ++ (NSArray *)matcherStrings { + return @[@"respondToSelector:"]; +} + +#pragma mark - Matching + +- (BOOL)evaluate { + return [self.subject respondsToSelector:self.selector]; +} + +#pragma mark - Getting Failure Messages + +- (NSString *)failureMessageForShould { + return [NSString stringWithFormat:@"expected subject to respond to -%@", + NSStringFromSelector(self.selector)]; +} + +- (NSString *)description { + return [NSString stringWithFormat:@"respond to -%@", NSStringFromSelector(self.selector)]; +} + +#pragma mark - Configuring Matchers + +- (void)respondToSelector:(SEL)aSelector { + self.selector = aSelector; +} + +@end diff --git a/Pods/Kiwi/Classes/Matchers/KWStringContainsMatcher.h b/Pods/Kiwi/Classes/Matchers/KWStringContainsMatcher.h new file mode 100644 index 0000000..9badf58 --- /dev/null +++ b/Pods/Kiwi/Classes/Matchers/KWStringContainsMatcher.h @@ -0,0 +1,19 @@ +// +// KWStringContainsMatcher.h +// Kiwi +// +// Created by Stewart Gleadow on 7/06/12. +// Copyright (c) 2012 Allen Ding. All rights reserved. +// + +#import +#import "KWGenericMatcher.h" + +@interface KWStringContainsMatcher : NSObject + ++ (id)matcherWithSubstring:(NSString *)aSubstring DEPRECATED_ATTRIBUTE; +- (id)initWithSubstring:(NSString *)aSubstring DEPRECATED_ATTRIBUTE; + +@end + +#define hasSubstring(substring) [KWStringContainsMatcher matcherWithSubstring:substring] diff --git a/Pods/Kiwi/Classes/Matchers/KWStringContainsMatcher.m b/Pods/Kiwi/Classes/Matchers/KWStringContainsMatcher.m new file mode 100644 index 0000000..6230e81 --- /dev/null +++ b/Pods/Kiwi/Classes/Matchers/KWStringContainsMatcher.m @@ -0,0 +1,42 @@ +// +// StringContainsMatcher.m +// Kiwi +// +// Created by Stewart Gleadow on 7/06/12. +// Copyright (c) 2012 Allen Ding. All rights reserved. +// + +#import "KWStringContainsMatcher.h" + +@interface KWStringContainsMatcher(){} +@property (nonatomic, copy) NSString *substring; +@end + +@implementation KWStringContainsMatcher + ++ (id)matcherWithSubstring:(NSString *)aSubstring { + return [[self alloc] initWithSubstring:aSubstring]; +} + +- (id)initWithSubstring:(NSString *)aSubstring { + self = [super init]; + if (self) { + _substring = [aSubstring copy]; + } + return self; +} + + +- (BOOL)matches:(id)item { + if (![item respondsToSelector:@selector(rangeOfString:)]) { + return NO; + } + + return [item rangeOfString:self.substring].location != NSNotFound; +} + +- (NSString *)description { + return [NSString stringWithFormat:@"a string with substring '%@'", self.substring]; +} + +@end diff --git a/Pods/Kiwi/Classes/Matchers/KWStringPrefixMatcher.h b/Pods/Kiwi/Classes/Matchers/KWStringPrefixMatcher.h new file mode 100644 index 0000000..7c312cc --- /dev/null +++ b/Pods/Kiwi/Classes/Matchers/KWStringPrefixMatcher.h @@ -0,0 +1,18 @@ +// +// StringPrefixMatcher.h +// Kiwi +// +// Created by Luke Redpath on 17/01/2011. +// Copyright 2011 Allen Ding. All rights reserved. +// + +#import + +@interface KWStringPrefixMatcher : NSObject + ++ (id)matcherWithPrefix:(NSString *)aPrefix; +- (id)initWithPrefix:(NSString *)aPrefix; + +@end + +#define hasPrefix(prefix) [KWStringPrefixMatcher matcherWithPrefix:prefix] diff --git a/Pods/Kiwi/Classes/Matchers/KWStringPrefixMatcher.m b/Pods/Kiwi/Classes/Matchers/KWStringPrefixMatcher.m new file mode 100644 index 0000000..81c1f89 --- /dev/null +++ b/Pods/Kiwi/Classes/Matchers/KWStringPrefixMatcher.m @@ -0,0 +1,41 @@ +// +// StringPrefixMatcher.m +// Kiwi +// +// Created by Luke Redpath on 17/01/2011. +// Copyright 2011 Allen Ding. All rights reserved. +// + +#import "KWStringPrefixMatcher.h" + +@interface KWStringPrefixMatcher(){} +@property (nonatomic, copy) NSString *prefix; +@end + +@implementation KWStringPrefixMatcher + ++ (id)matcherWithPrefix:(NSString *)aPrefix { + return [[self alloc] initWithPrefix:aPrefix]; +} + +- (id)initWithPrefix:(NSString *)aPrefix { + self = [super init]; + if (self) { + _prefix = [aPrefix copy]; + } + return self; +} + + +- (BOOL)matches:(id)item { + if (![item respondsToSelector:@selector(hasPrefix:)]) + return NO; + + return [item hasPrefix:self.prefix]; +} + +- (NSString *)description { + return [NSString stringWithFormat:@"a string with prefix '%@'", self.prefix]; +} + +@end diff --git a/Pods/Kiwi/Classes/Matchers/KWUserDefinedMatcher.h b/Pods/Kiwi/Classes/Matchers/KWUserDefinedMatcher.h new file mode 100644 index 0000000..d1d50c7 --- /dev/null +++ b/Pods/Kiwi/Classes/Matchers/KWUserDefinedMatcher.h @@ -0,0 +1,53 @@ +// +// KWUserDefinedMatcher.h +// Kiwi +// +// Created by Luke Redpath on 16/06/2011. +// Copyright 2011 Allen Ding. All rights reserved. +// + +#import +#import "KWMatcher.h" + +typedef BOOL (^KWUserDefinedMatcherBlock)(); + +@interface KWUserDefinedMatcher : KWMatcher + +@property (nonatomic, assign) SEL selector; +@property (nonatomic, copy) NSString *failureMessageForShould; +@property (nonatomic, copy) NSString *failureMessageForShouldNot; +@property (nonatomic, copy) KWUserDefinedMatcherBlock matcherBlock; +@property (nonatomic, copy) NSString *description; + ++ (id)matcherWithSubject:(id)aSubject block:(KWUserDefinedMatcherBlock)aBlock; +- (id)initWithSubject:(id)aSubject block:(KWUserDefinedMatcherBlock)aBlock; +@end + +#pragma mark - + +typedef NSString * (^KWUserDefinedMatcherMessageBlock)(id); + +@interface KWUserDefinedMatcherBuilder : NSObject +{ + KWUserDefinedMatcher *matcher; + KWUserDefinedMatcherMessageBlock failureMessageForShouldBlock; + KWUserDefinedMatcherMessageBlock failureMessageForShouldNotBlock; + NSString *description; +} +@property (nonatomic, copy, readonly) NSString *key; + ++ (id)builder; ++ (id)builderForSelector:(SEL)aSelector; +- (id)initWithSelector:(SEL)aSelector; + +#pragma mark - Configuring The Matcher + +- (void)match:(KWUserDefinedMatcherBlock)block; +- (void)failureMessageForShould:(KWUserDefinedMatcherMessageBlock)block; +- (void)failureMessageForShouldNot:(KWUserDefinedMatcherMessageBlock)block; +- (void)description:(NSString *)description; + +#pragma mark - Buiding The Matcher + +- (KWUserDefinedMatcher *)buildMatcherWithSubject:(id)subject; +@end diff --git a/Pods/Kiwi/Classes/Matchers/KWUserDefinedMatcher.m b/Pods/Kiwi/Classes/Matchers/KWUserDefinedMatcher.m new file mode 100644 index 0000000..bdb4294 --- /dev/null +++ b/Pods/Kiwi/Classes/Matchers/KWUserDefinedMatcher.m @@ -0,0 +1,150 @@ +// +// KWUserDefinedMatcher.m +// Kiwi +// +// Created by Luke Redpath on 16/06/2011. +// Copyright 2011 Allen Ding. All rights reserved. +// + +#import "KWUserDefinedMatcher.h" + +@interface KWUserDefinedMatcher(){} +@property (nonatomic, copy) NSInvocation *invocation; +@end + +@implementation KWUserDefinedMatcher + +@synthesize selector; +@synthesize failureMessageForShould; +@synthesize failureMessageForShouldNot; +@synthesize matcherBlock; +@synthesize description; + ++ (id)matcherWithSubject:(id)aSubject block:(KWUserDefinedMatcherBlock)aBlock { + return [[self alloc] initWithSubject:aSubject block:aBlock]; +} + +- (id)initWithSubject:(id)aSubject block:(KWUserDefinedMatcherBlock)aBlock { + self = [super initWithSubject:aSubject]; + if (self) { + matcherBlock = [aBlock copy]; + self.description = @"match user defined matcher"; + } + return self; +} + + +- (BOOL)evaluate { + BOOL result; + + if (self.invocation.methodSignature.numberOfArguments == 3) { + id argument; + [self.invocation getArgument:&argument atIndex:2]; + result = matcherBlock(self.subject, argument); + } else { + result = matcherBlock(self.subject); + } + return result; +} + +#pragma mark - Message forwarding + +- (BOOL)respondsToSelector:(SEL)aSelector { + if (aSelector == self.selector) { + return YES; + } + return [super respondsToSelector:aSelector]; +} + +- (void)forwardInvocation:(NSInvocation *)anInvocation { + _invocation = anInvocation; +} + +- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector { + if (aSelector == self.selector) { + NSString *selectorString = NSStringFromSelector(self.selector); + + /** + * TODO: find a way of doing this that: + * - doesn't require dummy methods (create the method signatures manually) + * - supports an unlimited number of arguments + */ + if ([selectorString hasSuffix:@":"]) { + return [self methodSignatureForSelector:@selector(matcherMethodWithArgument:)]; + } else { + return [self methodSignatureForSelector:@selector(matcherMethodWithoutArguments)]; + } + } + return [super methodSignatureForSelector:aSelector]; +} + +- (void)matcherMethodWithoutArguments {} +- (void)matcherMethodWithArgument:(id)argument {} + +@end + +#pragma mark - + +@implementation KWUserDefinedMatcherBuilder + ++ (id)builder { + return [self builderForSelector:nil]; +} + ++ (id)builderForSelector:(SEL)aSelector { + return [[self alloc] initWithSelector:aSelector]; +} + +- (id)initWithSelector:(SEL)aSelector { + self = [super init]; + if (self) { + matcher = [[KWUserDefinedMatcher alloc] init]; + matcher.selector = aSelector; + } + return self; +} + + +- (NSString *)key { + return NSStringFromSelector(matcher.selector); +} + +#pragma mark - Configuring The Matcher + +- (void)match:(KWUserDefinedMatcherBlock)block { + matcher.matcherBlock = block; +} + +- (void)failureMessageForShould:(KWUserDefinedMatcherMessageBlock)block { + failureMessageForShouldBlock = [block copy]; +} + +- (void)failureMessageForShouldNot:(KWUserDefinedMatcherMessageBlock)block { + failureMessageForShouldNotBlock = [block copy]; +} + +- (void)description:(NSString *)aDescription { + description = [aDescription copy]; +} + +#pragma mark - Buiding The Matcher + +- (KWUserDefinedMatcher *)buildMatcherWithSubject:(id)subject { + [matcher setSubject:subject]; + + if (failureMessageForShouldBlock) { + [matcher setFailureMessageForShould:failureMessageForShouldBlock(subject)]; + } + + if (failureMessageForShouldNotBlock) { + [matcher setFailureMessageForShouldNot:failureMessageForShouldNotBlock(subject)]; + } + + if (description) { + [matcher setDescription:description]; + } + + return matcher; +} + +@end diff --git a/Pods/Kiwi/Classes/Mocking/KWMock.h b/Pods/Kiwi/Classes/Mocking/KWMock.h new file mode 100644 index 0000000..8163941 --- /dev/null +++ b/Pods/Kiwi/Classes/Mocking/KWMock.h @@ -0,0 +1,87 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KiwiConfiguration.h" +#import "KWInvocationCapturer.h" + +@class KWMessagePattern; +@class KWCaptureSpy; + +@protocol KWMessageSpying; +@protocol KWVerifying; + +@interface KWMock : NSObject + +#pragma mark - Initializing + +- (id)initForClass:(Class)aClass; +- (id)initForProtocol:(Protocol *)aProtocol; +- (id)initWithName:(NSString *)aName forClass:(Class)aClass; +- (id)initWithName:(NSString *)aName forProtocol:(Protocol *)aProtocol; + +- (id)initAsNullMockForClass:(Class)aClass; +- (id)initAsNullMockForProtocol:(Protocol *)aProtocol; +- (id)initAsNullMockWithName:(NSString *)aName forClass:(Class)aClass; +- (id)initAsNullMockWithName:(NSString *)aName forProtocol:(Protocol *)aProtocol; + +- (id)initAsPartialMockForObject:(id)object; +- (id)initAsPartialMockWithName:(NSString *)aName forObject:(id)object; + ++ (id)mockForClass:(Class)aClass; ++ (id)mockForProtocol:(Protocol *)aProtocol; ++ (id)mockWithName:(NSString *)aName forClass:(Class)aClass; ++ (id)mockWithName:(NSString *)aName forProtocol:(Protocol *)aProtocol; + ++ (id)nullMockForClass:(Class)aClass; ++ (id)nullMockForProtocol:(Protocol *)aProtocol; ++ (id)nullMockWithName:(NSString *)aName forClass:(Class)aClass ; ++ (id)nullMockWithName:(NSString *)aName forProtocol:(Protocol *)aProtocol; + ++ (id)partialMockForObject:(id)object; ++ (id)partialMockWithName:(NSString *)aName forObject:(id)object; + +#pragma mark - Properties + +@property (nonatomic, assign, readonly) BOOL isNullMock; +@property (nonatomic, assign, readonly) BOOL isPartialMock; +@property (nonatomic, copy, readonly) NSString *mockName; +@property (nonatomic, assign, readonly) Class mockedClass; +@property (nonatomic, strong, readonly) id mockedObject; +@property (nonatomic, assign, readonly) Protocol *mockedProtocol; + +#pragma mark - Stubbing Methods + +- (void)stub:(SEL)aSelector; +- (void)stub:(SEL)aSelector withBlock:(id (^)(NSArray *params))block; +- (void)stub:(SEL)aSelector withArguments:(id)firstArgument, ...; +- (void)stub:(SEL)aSelector andReturn:(id)aValue; +- (void)stub:(SEL)aSelector andReturn:(id)aValue withArguments:(id)firstArgument, ...; + +- (id)stub; +- (id)stubAndReturn:(id)aValue; +- (id)stubAndReturn:(id)aValue times:(id)times afterThatReturn:(id)aSecondValue; + +- (void)stubMessagePattern:(KWMessagePattern *)aMessagePattern andReturn:(id)aValue; +- (void)stubMessagePattern:(KWMessagePattern *)aMessagePattern andReturn:(id)aValue times:(id)times afterThatReturn:(id)aSecondValue; + +- (void)clearStubs; + +#pragma mark - Spying on Messages + +- (void)addMessageSpy:(id)aSpy forMessagePattern:(KWMessagePattern *)aMessagePattern; +- (void)removeMessageSpy:(id)aSpy forMessagePattern:(KWMessagePattern *)aMessagePattern; + + +#pragma mark - Expecting Messages + +- (void)expect:(SEL)aSelector; +- (void)expect:(SEL)aSelector withArguments:(id)firstArgument, ...; + +- (id)expect; + +- (void)expectMessagePattern:(KWMessagePattern *)aMessagePattern; + +@end diff --git a/Pods/Kiwi/Classes/Mocking/KWMock.m b/Pods/Kiwi/Classes/Mocking/KWMock.m new file mode 100644 index 0000000..321e009 --- /dev/null +++ b/Pods/Kiwi/Classes/Mocking/KWMock.m @@ -0,0 +1,626 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KWMock.h" +#import +#import "KWFormatter.h" +#import "KWMessagePattern.h" +#import "KWMessageSpying.h" +#import "KWStringUtilities.h" +#import "KWStub.h" +#import "KWWorkarounds.h" +#import "NSInvocation+KiwiAdditions.h" +#import "KWCaptureSpy.h" + +static NSString * const ExpectOrStubTagKey = @"ExpectOrStubTagKey"; +static NSString * const StubTag = @"StubTag"; +static NSString * const ExpectTag = @"ExpectTag"; +static NSString * const StubValueKey = @"StubValueKey"; +static NSString * const StubSecondValueKey = @"StubSecondValueKey"; +static NSString * const ChangeStubValueAfterTimesKey = @"ChangeStubValueAfterTimesKey"; + +@interface KWMock() + +@property (nonatomic, readonly) NSMutableArray *stubs; +@property (nonatomic, readonly) NSMutableArray *expectedMessagePatterns; +@property (nonatomic, readonly) NSMapTable *messageSpies; + +@end + +@implementation KWMock + +#pragma mark - Initializing + +- (id)init { + // May already have been initialized since stubbing -init is allowed! + if (self.stubs != nil) { + KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:_cmd]; + [self expectMessagePattern:messagePattern]; + NSInvocation *invocation = [NSInvocation invocationWithTarget:self selector:_cmd]; + + if ([self processReceivedInvocation:invocation]) { + __unsafe_unretained id result = nil; + [invocation getReturnValue:&result]; + return result; + } else { + return self; + } + } + + return [self initAsNullMock:NO withName:nil forClass:nil protocol:nil]; +} + +- (id)initForClass:(Class)aClass { + return [self initAsNullMock:NO withName:nil forClass:aClass protocol:nil]; +} + +- (id)initForProtocol:(Protocol *)aProtocol { + return [self initAsNullMock:NO withName:nil forClass:nil protocol:aProtocol]; +} + +- (id)initWithName:(NSString *)aName forClass:(Class)aClass { + return [self initAsNullMock:NO withName:aName forClass:aClass protocol:nil]; +} + +- (id)initWithName:(NSString *)aName forProtocol:(Protocol *)aProtocol { + return [self initAsNullMock:NO withName:aName forClass:nil protocol:aProtocol]; +} + +- (id)initAsNullMockForClass:(Class)aClass { + return [self initAsNullMock:YES withName:nil forClass:aClass protocol:nil]; +} + +- (id)initAsNullMockForProtocol:(Protocol *)aProtocol { + return [self initAsNullMock:YES withName:nil forClass:nil protocol:aProtocol]; +} + +- (id)initAsNullMockWithName:(NSString *)aName forClass:(Class)aClass { + return [self initAsNullMock:YES withName:aName forClass:aClass protocol:nil]; +} + +- (id)initAsNullMockWithName:(NSString *)aName forProtocol:(Protocol *)aProtocol { + return [self initAsNullMock:YES withName:aName forClass:nil protocol:aProtocol]; +} + +- (id)initAsNullMock:(BOOL)nullMockFlag withName:(NSString *)aName forClass:(Class)aClass protocol:(Protocol *)aProtocol { + self = [super init]; + if (self) { + _isNullMock = nullMockFlag; + _mockName = [aName copy]; + _mockedClass = aClass; + _mockedProtocol = aProtocol; + _stubs = [[NSMutableArray alloc] init]; + _expectedMessagePatterns = [[NSMutableArray alloc] init]; + _messageSpies = [NSMapTable mapTableWithKeyOptions:NSMapTableStrongMemory valueOptions:NSMapTableStrongMemory]; + } + + return self; +} + +- (id)initAsPartialMockForObject:(id)object { + return [self initAsPartialMockWithName:nil forObject:object]; +} + +- (id)initAsPartialMockWithName:(NSString *)aName forObject:(id)object { + self = [self initAsNullMock:YES withName:aName forClass:[object class] protocol:nil]; + if (self) { + _isPartialMock = YES; + _mockedObject = object; + } + return self; +} + ++ (id)mockForClass:(Class)aClass { + return [[self alloc] initForClass:aClass]; +} + ++ (id)mockForProtocol:(Protocol *)aProtocol { + return [[self alloc] initForProtocol:aProtocol]; +} + ++ (id)mockWithName:(NSString *)aName forClass:(Class)aClass { + return [[self alloc] initWithName:aName forClass:aClass]; +} + ++ (id)mockWithName:(NSString *)aName forProtocol:(Protocol *)aProtocol { + return [[self alloc] initWithName:aName forProtocol:aProtocol]; +} + ++ (id)nullMockForClass:(Class)aClass { + return [[self alloc] initAsNullMockForClass:aClass]; +} + ++ (id)nullMockForProtocol:(Protocol *)aProtocol { + return [[self alloc] initAsNullMockForProtocol:aProtocol]; +} + ++ (id)nullMockWithName:(NSString *)aName forClass:(Class)aClass { + return [[self alloc] initAsNullMockWithName:aName forClass:aClass]; +} + ++ (id)nullMockWithName:(NSString *)aName forProtocol:(Protocol *)aProtocol { + return [[self alloc] initAsNullMockWithName:aName forProtocol:aProtocol]; +} + ++ (id)partialMockWithName:(NSString *)aName forObject:(id)object { + return [[self alloc] initAsPartialMockWithName:aName forObject:object]; +} + ++ (id)partialMockForObject:(id)object { + return [[self alloc] initAsPartialMockForObject:object]; +} + +#pragma mark - Getting Transitive Closure For Mocked Protocols + +- (NSSet *)mockedProtocolTransitiveClosureSet { + if (self.mockedProtocol == nil) + return nil; + + NSMutableSet *protocolSet = [NSMutableSet set]; + NSMutableArray *protocolQueue = [NSMutableArray array]; + [protocolQueue addObject:self.mockedProtocol]; + + do { + Protocol *protocol = [protocolQueue lastObject]; + [protocolSet addObject:protocol]; + [protocolQueue removeLastObject]; + + unsigned int count = 0; + Protocol *__unsafe_unretained*protocols = protocol_copyProtocolList(protocol, &count); + + if (count == 0) + continue; + + for (unsigned int i = 0; i < count; ++i) + [protocolQueue addObject:protocols[i]]; + + free(protocols); + } while ([protocolQueue count] != 0); + + return protocolSet; +} + +#pragma mark - Stubbing Methods + +- (void)removeStubWithMessagePattern:(KWMessagePattern *)messagePattern { + KWStub *stub = [self currentStubWithMessagePattern:messagePattern]; + if (stub) { + [self.stubs removeObject:stub]; + } +} + +- (KWStub *)currentStubWithMessagePattern:(KWMessagePattern *)messagePattern { + NSUInteger stubCount = [self.stubs count]; + + for (NSUInteger i = 0; i < stubCount; ++i) { + KWStub *stub = (self.stubs)[i]; + + if ([stub.messagePattern isEqualToMessagePattern:messagePattern]) { + return stub; + } + } + return nil; +} + +- (void)stub:(SEL)aSelector { + KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:aSelector]; + [self stubMessagePattern:messagePattern andReturn:nil]; +} + +- (void)stub:(SEL)aSelector withBlock:(id (^)(NSArray *params))block { + KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:aSelector]; + [self stubMessagePattern:messagePattern withBlock:block]; +} + +- (void)stub:(SEL)aSelector withArguments:(id)firstArgument, ... { + va_list argumentList; + va_start(argumentList, firstArgument); + KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:aSelector firstArgumentFilter:firstArgument argumentList:argumentList]; + [self stubMessagePattern:messagePattern andReturn:nil]; +} + +- (void)stub:(SEL)aSelector andReturn:(id)aValue { + KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:aSelector]; + [self stubMessagePattern:messagePattern andReturn:aValue]; +} + +- (void)stub:(SEL)aSelector andReturn:(id)aValue withArguments:(id)firstArgument, ... { + va_list argumentList; + va_start(argumentList, firstArgument); + KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:aSelector firstArgumentFilter:firstArgument argumentList:argumentList]; + [self stubMessagePattern:messagePattern andReturn:aValue]; +} + +- (id)stub { + NSDictionary *userInfo = @{ExpectOrStubTagKey: StubTag}; + return [KWInvocationCapturer invocationCapturerWithDelegate:self userInfo:userInfo]; +} + +- (id)stubAndReturn:(id)aValue { + NSDictionary *userInfo = @{ExpectOrStubTagKey: StubTag, + StubValueKey: aValue}; + return [KWInvocationCapturer invocationCapturerWithDelegate:self userInfo:userInfo]; +} + +- (id)stubAndReturn:(id)aValue times:(id)times afterThatReturn:(id)aSecondValue { + NSDictionary *userInfo = @{ExpectOrStubTagKey: StubTag, StubValueKey: aValue, ChangeStubValueAfterTimesKey: times, StubSecondValueKey: aSecondValue}; + return [KWInvocationCapturer invocationCapturerWithDelegate:self userInfo:userInfo]; +} + +- (void)stubMessagePattern:(KWMessagePattern *)aMessagePattern andReturn:(id)aValue { + [self stubMessagePattern:aMessagePattern andReturn:aValue overrideExisting:YES]; +} + +- (void)stubMessagePattern:(KWMessagePattern *)aMessagePattern andReturn:(id)aValue overrideExisting:(BOOL)overrideExisting { + [self expectMessagePattern:aMessagePattern]; + KWStub *existingStub = [self currentStubWithMessagePattern:aMessagePattern]; + if (existingStub) { + if (overrideExisting) { + [self.stubs removeObject:existingStub]; + } else { + return; + } + } + KWStub *stub = [KWStub stubWithMessagePattern:aMessagePattern value:aValue]; + [self.stubs addObject:stub]; +} + +- (void)stubMessagePattern:(KWMessagePattern *)aMessagePattern withBlock:(id (^)(NSArray *params))block { + [self expectMessagePattern:aMessagePattern]; + [self removeStubWithMessagePattern:aMessagePattern]; + KWStub *stub = [KWStub stubWithMessagePattern:aMessagePattern block:block]; + [self.stubs addObject:stub]; +} + +- (void)stubMessagePattern:(KWMessagePattern *)aMessagePattern andReturn:(id)aValue times:(id)times afterThatReturn:(id)aSecondValue { + [self expectMessagePattern:aMessagePattern]; + [self removeStubWithMessagePattern:aMessagePattern]; + KWStub *stub = [KWStub stubWithMessagePattern:aMessagePattern value:aValue times:times afterThatReturn:aSecondValue]; + [self.stubs addObject:stub]; +} + +- (void)clearStubs { + [self.stubs removeAllObjects]; +} + +#pragma mark - Spying on Messages + +- (void)addMessageSpy:(id)aSpy forMessagePattern:(KWMessagePattern *)aMessagePattern { + [self expectMessagePattern:aMessagePattern]; + NSMutableArray *messagePatternSpies = [self.messageSpies objectForKey:aMessagePattern]; + + if (messagePatternSpies == nil) { + messagePatternSpies = [[NSMutableArray alloc] init]; + [self.messageSpies setObject:messagePatternSpies forKey:aMessagePattern]; + } + + if (![messagePatternSpies containsObject:aSpy]) + [messagePatternSpies addObject:aSpy]; +} + +- (void)removeMessageSpy:(id)aSpy forMessagePattern:(KWMessagePattern *)aMessagePattern { + NSMutableArray *messagePatternSpies = [self.messageSpies objectForKey:aMessagePattern]; + [messagePatternSpies removeObject:aSpy]; +} + +#pragma mark - Expecting Message Patterns + +- (void)expect:(SEL)aSelector { + KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:aSelector]; + [self expectMessagePattern:messagePattern]; +} + +- (void)expect:(SEL)aSelector withArguments:(id)firstArgument, ... { + va_list argumentList; + va_start(argumentList, firstArgument); + KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:aSelector firstArgumentFilter:firstArgument argumentList:argumentList]; + [self expectMessagePattern:messagePattern]; +} + +- (id)expect { + NSDictionary *userInfo = @{ExpectOrStubTagKey: ExpectTag}; + return [KWInvocationCapturer invocationCapturerWithDelegate:self userInfo:userInfo]; +} + +- (void)expectMessagePattern:(KWMessagePattern *)aMessagePattern { + if (![self.expectedMessagePatterns containsObject:aMessagePattern]) + [self.expectedMessagePatterns addObject:aMessagePattern]; +} + +#pragma mark - Capturing Invocations + +- (NSMethodSignature *)invocationCapturer:(KWInvocationCapturer *)anInvocationCapturer methodSignatureForSelector:(SEL)aSelector { + return [self methodSignatureForSelector:aSelector]; +} + +- (void)invocationCapturer:(KWInvocationCapturer *)anInvocationCapturer didCaptureInvocation:(NSInvocation *)anInvocation { + KWMessagePattern *messagePattern = [KWMessagePattern messagePatternFromInvocation:anInvocation]; + NSString *tag = (anInvocationCapturer.userInfo)[ExpectOrStubTagKey]; + if ([tag isEqualToString:StubTag]) { + id value = (anInvocationCapturer.userInfo)[StubValueKey]; + if (!(anInvocationCapturer.userInfo)[StubSecondValueKey]) { + [self stubMessagePattern:messagePattern andReturn:value]; + } else { + id times = (anInvocationCapturer.userInfo)[ChangeStubValueAfterTimesKey]; + id secondValue = (anInvocationCapturer.userInfo)[StubSecondValueKey]; + [self stubMessagePattern:messagePattern andReturn:value times:times afterThatReturn:secondValue]; + } + } else { + [self expectMessagePattern:messagePattern]; + } +} + + +#pragma mark - Handling Invocations + +- (NSString *)namePhrase { + if (self.mockName == nil) + return @"mock"; + else + return [NSString stringWithFormat:@"mock \"%@\"", self.mockName]; +} + +- (BOOL)processReceivedInvocation:(NSInvocation *)invocation { + for (KWMessagePattern *messagePattern in self.messageSpies) { + if ([messagePattern matchesInvocation:invocation]) { + NSArray *spies = [self.messageSpies objectForKey:messagePattern]; + + for (id spy in spies) { + [spy object:self didReceiveInvocation:invocation]; + } + } + } + + for (KWStub *stub in self.stubs) { + if ([stub processInvocation:invocation]) + return YES; + } + + return NO; +} + +- (NSMethodSignature *)mockedProtocolMethodSignatureForSelector:(SEL)aSelector { + NSSet *protocols = [self mockedProtocolTransitiveClosureSet]; + + for (Protocol *protocol in protocols) { + struct objc_method_description description = protocol_getMethodDescription(protocol, aSelector, NO, YES); + + if (description.types == nil) + description = protocol_getMethodDescription(protocol, aSelector, YES, YES); + + if (description.types != nil) + return [NSMethodSignature signatureWithObjCTypes:description.types]; + } + + return nil; +} + +- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector { + NSMethodSignature *methodSignature = [self.mockedClass instanceMethodSignatureForSelector:aSelector]; + + if (methodSignature != nil) + return methodSignature; + + methodSignature = [self mockedProtocolMethodSignatureForSelector:aSelector]; + + if (methodSignature != nil) + return methodSignature; + + NSString *encoding = KWEncodingForDefaultMethod(); + return [NSMethodSignature signatureWithObjCTypes:[encoding UTF8String]]; +} + +- (void)forwardInvocation:(NSInvocation *)anInvocation { +#if KW_TARGET_HAS_INVOCATION_EXCEPTION_BUG + @try { +#endif // #if KW_TARGET_HAS_INVOCATION_EXCEPTION_BUG + + if ([self processReceivedInvocation:anInvocation]) + return; + + if (self.isPartialMock) + [anInvocation invokeWithTarget:self.mockedObject]; + + if (self.isNullMock) + return; + + for (KWMessagePattern *expectedMessagePattern in self.expectedMessagePatterns) { + if ([expectedMessagePattern matchesInvocation:anInvocation]) + return; + } + + KWMessagePattern *messagePattern = [KWMessagePattern messagePatternFromInvocation:anInvocation]; + [NSException raise:@"KWMockException" format:@"%@ received unexpected message -%@", + [self namePhrase], + [messagePattern stringValue]]; + +#if KW_TARGET_HAS_INVOCATION_EXCEPTION_BUG + } @catch (NSException *exception) { + KWSetExceptionFromAcrossInvocationBoundary(exception); + } +#endif // #if KW_TARGET_HAS_INVOCATION_EXCEPTION_BUG +} + +#pragma mark - Testing Objects + +- (BOOL)mockedClassHasAncestorClass:(Class)aClass { + Class currentClass = self.mockedClass; + + while (currentClass != nil) { + if (currentClass == aClass) + return YES; + + currentClass = [currentClass superclass]; + } + + return NO; +} + +- (BOOL)mockedClassRespondsToSelector:(SEL)aSelector { + return [self.mockedClass instancesRespondToSelector:aSelector]; +} + +- (BOOL)mockedClassConformsToProtocol:(Protocol *)aProtocol { + return [self.mockedClass conformsToProtocol:aProtocol]; +} + +- (BOOL)mockedProtocolRespondsToSelector:(SEL)aSelector { + NSSet *protocols = [self mockedProtocolTransitiveClosureSet]; + + for (Protocol *protocol in protocols) { + struct objc_method_description description = protocol_getMethodDescription(protocol, aSelector, NO, YES); + + if (description.types == nil) + description = protocol_getMethodDescription(protocol, aSelector, YES, YES); + + if (description.types != nil) + return YES; + } + + return NO; +} + +- (BOOL)mockedProtocolConformsToProtocol:(Protocol *)aProtocol { + if (self.mockedProtocol == nil) + return NO; + + return protocol_isEqual(self.mockedProtocol, aProtocol) || protocol_conformsToProtocol(self.mockedProtocol, aProtocol); +} + +- (BOOL)isKindOfClass:(Class)aClass { + return [self mockedClassHasAncestorClass:aClass] || [super isKindOfClass:aClass]; +} + +- (BOOL)isMemberOfClass:(Class)aClass { + return self.mockedClass == aClass || [super isMemberOfClass:aClass]; +} + +- (BOOL)respondsToSelector:(SEL)aSelector { + return [self mockedClassRespondsToSelector:aSelector] || + [self mockedProtocolRespondsToSelector:aSelector] || + [super respondsToSelector:aSelector]; +} + +- (BOOL)conformsToProtocol:(Protocol *)aProtocol { + return [self mockedClassConformsToProtocol:aProtocol] || + [self mockedProtocolConformsToProtocol:aProtocol] || + [super conformsToProtocol:aProtocol]; +} + +#pragma mark - Whitelisted NSObject Methods + +- (BOOL)isEqual:(id)anObject { + KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:_cmd]; + [self expectMessagePattern:messagePattern]; + NSInvocation *invocation = [NSInvocation invocationWithTarget:self selector:_cmd messageArguments:&anObject]; + + if ([self processReceivedInvocation:invocation]) { + BOOL result = NO; + [invocation getReturnValue:&result]; + return result; + } else { + return [super isEqual:anObject]; + } +} + +- (NSUInteger)hash { + KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:_cmd]; + [self expectMessagePattern:messagePattern]; + NSInvocation *invocation = [NSInvocation invocationWithTarget:self selector:_cmd]; + + if ([self processReceivedInvocation:invocation]) { + NSUInteger result = 0; + [invocation getReturnValue:&result]; + return result; + } else { + return [super hash]; + } +} + +- (NSString *)description { + KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:_cmd]; + [self expectMessagePattern:messagePattern]; + NSInvocation *invocation = [NSInvocation invocationWithTarget:self selector:_cmd]; + + if ([self processReceivedInvocation:invocation]) { + __unsafe_unretained NSString *result = nil; + [invocation getReturnValue:&result]; + return result; + } else { + return [super description]; + } +} + +- (id)copy { + KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:_cmd]; + [self expectMessagePattern:messagePattern]; + NSInvocation *invocation = [NSInvocation invocationWithTarget:self selector:_cmd]; + + if ([self processReceivedInvocation:invocation]) { + __unsafe_unretained id result = nil; + [invocation getReturnValue:&result]; + return result; + } else { + return [super copy]; + } +} + +- (id)mutableCopy { + KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:_cmd]; + [self expectMessagePattern:messagePattern]; + NSInvocation *invocation = [NSInvocation invocationWithTarget:self selector:_cmd]; + + if ([self processReceivedInvocation:invocation]) { + __unsafe_unretained id result = nil; + [invocation getReturnValue:&result]; + return result; + } else { + return [super mutableCopy]; + } +} + +#pragma mark - +#pragma mark Key-Value Coding Support + +static id valueForKeyImplementation(id self, SEL _cmd, id key) { + KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:_cmd]; + [self expectMessagePattern:messagePattern]; + NSInvocation *invocation = [NSInvocation invocationWithTarget:self selector:_cmd messageArguments:&key]; + + if ([self processReceivedInvocation:invocation]) { + __unsafe_unretained id result = nil; + [invocation getReturnValue:&result]; + return result; + } else { + return nil; + } +} + +- (id)valueForKey:(NSString *)key { + return valueForKeyImplementation(self, _cmd, key); +} + +- (id)valueForKeyPath:(NSString *)keyPath { + return valueForKeyImplementation(self, _cmd, keyPath); +} + +static void setValueForKeyImplementation(id self, SEL _cmd, id a, id b) { + KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:_cmd]; + [self expectMessagePattern:messagePattern]; + NSInvocation *invocation = [NSInvocation invocationWithTarget:self selector:_cmd messageArguments:&a, &b]; + + [self processReceivedInvocation:invocation]; +} + +- (void)setValue:(id)value forKey:(NSString *)key { + setValueForKeyImplementation(self, _cmd, value, key); +} + +- (void)setValue:(id)value forKeyPath:(NSString *)keyPath { + setValueForKeyImplementation(self, _cmd, value, keyPath); +} + +@end diff --git a/Pods/Kiwi/Classes/Mocking/NSObject+KiwiMockAdditions.h b/Pods/Kiwi/Classes/Mocking/NSObject+KiwiMockAdditions.h new file mode 100644 index 0000000..34caacc --- /dev/null +++ b/Pods/Kiwi/Classes/Mocking/NSObject+KiwiMockAdditions.h @@ -0,0 +1,23 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KiwiConfiguration.h" + +@protocol KiwiMockAdditions + +#pragma mark - Creating Mocks + ++ (id)mock; ++ (id)mockWithName:(NSString *)aName; + ++ (id)nullMock; ++ (id)nullMockWithName:(NSString *)aName; + +@end + +@interface NSObject(KiwiMockAdditions) + +@end diff --git a/Pods/Kiwi/Classes/Mocking/NSObject+KiwiMockAdditions.m b/Pods/Kiwi/Classes/Mocking/NSObject+KiwiMockAdditions.m new file mode 100644 index 0000000..7e7a0cf --- /dev/null +++ b/Pods/Kiwi/Classes/Mocking/NSObject+KiwiMockAdditions.m @@ -0,0 +1,30 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "NSObject+KiwiMockAdditions.h" +#import "KWMock.h" + +@implementation NSObject(KiwiMockAdditions) + +#pragma mark - Creating Mocks + ++ (id)mock { + return [KWMock mockForClass:[self class]]; +} + ++ (id)mockWithName:(NSString *)aName { + return [KWMock mockWithName:aName forClass:[self class]]; +} + ++ (id)nullMock { + return [KWMock nullMockForClass:[self class]]; +} + ++ (id)nullMockWithName:(NSString *)aName { + return [KWMock nullMockWithName:aName forClass:[self class]]; +} + +@end diff --git a/Pods/Kiwi/Classes/Nodes/KWAfterAllNode.h b/Pods/Kiwi/Classes/Nodes/KWAfterAllNode.h new file mode 100644 index 0000000..421ea5a --- /dev/null +++ b/Pods/Kiwi/Classes/Nodes/KWAfterAllNode.h @@ -0,0 +1,17 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KiwiConfiguration.h" +#import "KWBlockNode.h" +#import "KWExampleNode.h" + +@interface KWAfterAllNode : KWBlockNode + +#pragma mark - Initializing + ++ (id)afterAllNodeWithCallSite:(KWCallSite *)aCallSite block:(void (^)(void))block; + +@end diff --git a/Pods/Kiwi/Classes/Nodes/KWAfterAllNode.m b/Pods/Kiwi/Classes/Nodes/KWAfterAllNode.m new file mode 100644 index 0000000..efb0a03 --- /dev/null +++ b/Pods/Kiwi/Classes/Nodes/KWAfterAllNode.m @@ -0,0 +1,24 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KWAfterAllNode.h" +#import "KWExampleNodeVisitor.h" + +@implementation KWAfterAllNode + +#pragma mark - Initializing + ++ (id)afterAllNodeWithCallSite:(KWCallSite *)aCallSite block:(void (^)(void))block { + return [[self alloc] initWithCallSite:aCallSite description:nil block:block]; +} + +#pragma mark - Accepting Visitors + +- (void)acceptExampleNodeVisitor:(id)aVisitor { + [aVisitor visitAfterAllNode:self]; +} + +@end diff --git a/Pods/Kiwi/Classes/Nodes/KWAfterEachNode.h b/Pods/Kiwi/Classes/Nodes/KWAfterEachNode.h new file mode 100644 index 0000000..4e68279 --- /dev/null +++ b/Pods/Kiwi/Classes/Nodes/KWAfterEachNode.h @@ -0,0 +1,17 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KiwiConfiguration.h" +#import "KWBlockNode.h" +#import "KWExampleNode.h" + +@interface KWAfterEachNode : KWBlockNode + +#pragma mark - Initializing + ++ (id)afterEachNodeWithCallSite:(KWCallSite *)aCallSite block:(void (^)(void))block; + +@end diff --git a/Pods/Kiwi/Classes/Nodes/KWAfterEachNode.m b/Pods/Kiwi/Classes/Nodes/KWAfterEachNode.m new file mode 100644 index 0000000..e6edd3e --- /dev/null +++ b/Pods/Kiwi/Classes/Nodes/KWAfterEachNode.m @@ -0,0 +1,24 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KWAfterEachNode.h" +#import "KWExampleNodeVisitor.h" + +@implementation KWAfterEachNode + +#pragma mark - Initializing + ++ (id)afterEachNodeWithCallSite:(KWCallSite *)aCallSite block:(void (^)(void))block { + return [[self alloc] initWithCallSite:aCallSite description:nil block:block]; +} + +#pragma mark - Accepting Visitors + +- (void)acceptExampleNodeVisitor:(id)aVisitor { + [aVisitor visitAfterEachNode:self]; +} + +@end diff --git a/Pods/Kiwi/Classes/Nodes/KWBeforeAllNode.h b/Pods/Kiwi/Classes/Nodes/KWBeforeAllNode.h new file mode 100644 index 0000000..f5cd2e1 --- /dev/null +++ b/Pods/Kiwi/Classes/Nodes/KWBeforeAllNode.h @@ -0,0 +1,17 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KiwiConfiguration.h" +#import "KWBlockNode.h" +#import "KWExampleNode.h" + +@interface KWBeforeAllNode : KWBlockNode + +#pragma mark - Initializing + ++ (id)beforeAllNodeWithCallSite:(KWCallSite *)aCallSite block:(void (^)(void))block; + +@end diff --git a/Pods/Kiwi/Classes/Nodes/KWBeforeAllNode.m b/Pods/Kiwi/Classes/Nodes/KWBeforeAllNode.m new file mode 100644 index 0000000..41b2e08 --- /dev/null +++ b/Pods/Kiwi/Classes/Nodes/KWBeforeAllNode.m @@ -0,0 +1,24 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KWBeforeAllNode.h" +#import "KWExampleNodeVisitor.h" + +@implementation KWBeforeAllNode + +#pragma mark - Initializing + ++ (id)beforeAllNodeWithCallSite:(KWCallSite *)aCallSite block:(void (^)(void))block { + return [[self alloc] initWithCallSite:aCallSite description:nil block:block]; +} + +#pragma mark - Accepting Visitors + +- (void)acceptExampleNodeVisitor:(id)aVisitor { + [aVisitor visitBeforeAllNode:self]; +} + +@end diff --git a/Pods/Kiwi/Classes/Nodes/KWBeforeEachNode.h b/Pods/Kiwi/Classes/Nodes/KWBeforeEachNode.h new file mode 100644 index 0000000..21c5229 --- /dev/null +++ b/Pods/Kiwi/Classes/Nodes/KWBeforeEachNode.h @@ -0,0 +1,17 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KiwiConfiguration.h" +#import "KWBlockNode.h" +#import "KWExampleNode.h" + +@interface KWBeforeEachNode : KWBlockNode + +#pragma mark - Initializing + ++ (id)beforeEachNodeWithCallSite:(KWCallSite *)aCallSite block:(void (^)(void))block; + +@end diff --git a/Pods/Kiwi/Classes/Nodes/KWBeforeEachNode.m b/Pods/Kiwi/Classes/Nodes/KWBeforeEachNode.m new file mode 100644 index 0000000..8c143e5 --- /dev/null +++ b/Pods/Kiwi/Classes/Nodes/KWBeforeEachNode.m @@ -0,0 +1,24 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KWBeforeEachNode.h" +#import "KWExampleNodeVisitor.h" + +@implementation KWBeforeEachNode + +#pragma mark - Initializing + ++ (id)beforeEachNodeWithCallSite:(KWCallSite *)aCallSite block:(void (^)(void))block { + return [[self alloc] initWithCallSite:aCallSite description:nil block:block]; +} + +#pragma mark - Accepting Visitors + +- (void)acceptExampleNodeVisitor:(id)aVisitor { + [aVisitor visitBeforeEachNode:self]; +} + +@end diff --git a/Pods/Kiwi/Classes/Nodes/KWBlockNode.h b/Pods/Kiwi/Classes/Nodes/KWBlockNode.h new file mode 100644 index 0000000..050ba5c --- /dev/null +++ b/Pods/Kiwi/Classes/Nodes/KWBlockNode.h @@ -0,0 +1,34 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KiwiConfiguration.h" +#import "KWBlock.h" + +@class KWCallSite; + +@interface KWBlockNode : NSObject + +#pragma mark - Initializing + +- (id)initWithCallSite:(KWCallSite *)aCallSite description:(NSString *)aDescription block:(void (^)(void))block; + +#pragma mark - Getting Call Sites + +@property (nonatomic, strong, readonly) KWCallSite *callSite; + +#pragma mark - Getting Descriptions + +@property (nonatomic, copy) NSString *description; + +#pragma mark - Getting Blocks + +@property (nonatomic, copy, readonly) void (^block)(void); + +#pragma mark - Performing blocks + +- (void)performBlock; + +@end diff --git a/Pods/Kiwi/Classes/Nodes/KWBlockNode.m b/Pods/Kiwi/Classes/Nodes/KWBlockNode.m new file mode 100644 index 0000000..4dfd572 --- /dev/null +++ b/Pods/Kiwi/Classes/Nodes/KWBlockNode.m @@ -0,0 +1,30 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KWBlockNode.h" + +@implementation KWBlockNode + +@synthesize description = _description; + +#pragma mark - Initializing + +- (id)initWithCallSite:(KWCallSite *)aCallSite description:(NSString *)aDescription block:(void (^)(void))block { + self = [super init]; + if (self) { + _callSite = aCallSite; + _description = [aDescription copy]; + _block = [block copy]; + } + + return self; +} + +- (void)performBlock { + if (self.block != nil) { self.block(); } +} + +@end diff --git a/Pods/Kiwi/Classes/Nodes/KWContextNode.h b/Pods/Kiwi/Classes/Nodes/KWContextNode.h new file mode 100644 index 0000000..48df4e0 --- /dev/null +++ b/Pods/Kiwi/Classes/Nodes/KWContextNode.h @@ -0,0 +1,65 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KiwiConfiguration.h" +#import "KWExampleNode.h" + +@class KWAfterAllNode; +@class KWAfterEachNode; +@class KWBeforeAllNode; +@class KWBeforeEachNode; +@class KWCallSite; +@class KWLetNode; +@class KWItNode; +@class KWPendingNode; +@class KWRegisterMatchersNode; +@class KWExample; + +@interface KWContextNode : NSObject + +#pragma mark - Initializing + +- (id)initWithCallSite:(KWCallSite *)aCallSite parentContext:(KWContextNode *)node description:(NSString *)aDescription; + ++ (id)contextNodeWithCallSite:(KWCallSite *)aCallSite parentContext:(KWContextNode *)contextNode description:(NSString *)aDescription; + +#pragma mark - Getting Call Sites + +@property (nonatomic, weak, readonly) KWCallSite *callSite; + +#pragma mark - Getting Descriptions + +@property (readonly, copy) NSString *description; + +#pragma mark - Managing Nodes + +@property (nonatomic, strong) KWBeforeAllNode *beforeAllNode; +@property (nonatomic, strong) KWAfterAllNode *afterAllNode; +@property (nonatomic, strong) KWBeforeEachNode *beforeEachNode; +@property (nonatomic, strong) KWAfterEachNode *afterEachNode; +@property (nonatomic, readonly) NSArray *nodes; +@property (nonatomic, readonly) NSArray *registerMatchersNodes; +@property (nonatomic, readonly) NSArray *letNodes; + +@property (nonatomic, readonly) KWContextNode *parentContext; + +@property (nonatomic, assign) BOOL isFocused; + +- (void)addContextNode:(KWContextNode *)aNode; +- (void)addLetNode:(KWLetNode *)aNode; +- (void)addRegisterMatchersNode:(KWRegisterMatchersNode *)aNode; +- (void)addItNode:(KWItNode *)aNode; +- (void)addPendingNode:(KWPendingNode *)aNode; + +- (KWLetNode *)letNodeTree; + +- (void)performExample:(KWExample *)example withBlock:(void (^)(void))exampleBlock; + +#pragma mark - Accepting Visitors + +- (void)acceptExampleNodeVisitor:(id)aVisitor; + +@end diff --git a/Pods/Kiwi/Classes/Nodes/KWContextNode.m b/Pods/Kiwi/Classes/Nodes/KWContextNode.m new file mode 100644 index 0000000..08011f1 --- /dev/null +++ b/Pods/Kiwi/Classes/Nodes/KWContextNode.m @@ -0,0 +1,152 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KWAfterAllNode.h" +#import "KWAfterEachNode.h" +#import "KWBeforeAllNode.h" +#import "KWBeforeEachNode.h" +#import "KWLetNode.h" +#import "KWCallSite.h" +#import "KWContextNode.h" +#import "KWExampleNodeVisitor.h" +#import "KWExample.h" +#import "KWFailure.h" +#import "KWRegisterMatchersNode.h" +#import "KWSymbolicator.h" + +static NSString * const KWContextNodeException = @"KWContextNodeException"; + +@interface KWContextNode() + +@property (nonatomic, assign) NSUInteger performedExampleCount; + +@end + +@implementation KWContextNode + +@synthesize description = _description; + +#pragma mark - Initializing + +- (id)initWithCallSite:(KWCallSite *)aCallSite parentContext:(KWContextNode *)node description:(NSString *)aDescription { + self = [super init]; + if (self) { + _parentContext = node; + _callSite = aCallSite; + _description = [aDescription copy]; + _nodes = [NSMutableArray array]; + _registerMatchersNodes = [NSMutableArray array]; + _letNodes = [NSMutableArray array]; + _performedExampleCount = 0; + } + + return self; +} + ++ (id)contextNodeWithCallSite:(KWCallSite *)aCallSite parentContext:(KWContextNode *)contextNode description:(NSString *)aDescription { + return [[self alloc] initWithCallSite:aCallSite parentContext:contextNode description:aDescription]; +} + +- (void)addContextNode:(KWContextNode *)aNode { + [(NSMutableArray *)self.nodes addObject:aNode]; +} + +- (void)setBeforeEachNode:(KWBeforeEachNode *)aNode { + [self raiseIfNodeAlreadyExists:self.beforeEachNode]; + _beforeEachNode = aNode; +} + +- (void)setAfterEachNode:(KWAfterEachNode *)aNode { + [self raiseIfNodeAlreadyExists:self.afterEachNode]; + _afterEachNode = aNode; +} + +- (void)addLetNode:(KWLetNode *)aNode { + [(NSMutableArray *)self.letNodes addObject:aNode]; +} + +- (void)addRegisterMatchersNode:(KWRegisterMatchersNode *)aNode { + [(NSMutableArray *)self.registerMatchersNodes addObject:aNode]; +} + +- (KWLetNode *)letNodeTree { + KWLetNode *tree = [self.parentContext letNodeTree]; + for (KWLetNode *letNode in self.letNodes) { + if (!tree) { + tree = letNode; + } + else { + [tree addLetNode:letNode]; + } + } + return tree; +} + +- (void)addItNode:(KWItNode *)aNode { + [(NSMutableArray *)self.nodes addObject:aNode]; +} + +- (void)addPendingNode:(KWPendingNode *)aNode { + [(NSMutableArray *)self.nodes addObject:aNode]; +} + +- (void)performExample:(KWExample *)example withBlock:(void (^)(void))exampleBlock +{ + void (^innerExampleBlock)(void) = [exampleBlock copy]; + + void (^outerExampleBlock)(void) = ^{ + @try { + for (KWRegisterMatchersNode *registerNode in self.registerMatchersNodes) { + [registerNode acceptExampleNodeVisitor:example]; + } + + if (self.performedExampleCount == 0) { + [self.beforeAllNode acceptExampleNodeVisitor:example]; + } + + KWLetNode *letNodeTree = [self letNodeTree]; + [letNodeTree acceptExampleNodeVisitor:example]; + + [self.beforeEachNode acceptExampleNodeVisitor:example]; + + innerExampleBlock(); + + [self.afterEachNode acceptExampleNodeVisitor:example]; + + if ([example isLastInContext:self]) { + [self.afterAllNode acceptExampleNodeVisitor:example]; + [letNodeTree unlink]; + } + + } @catch (NSException *exception) { + KWFailure *failure = [KWFailure failureWithCallSite:self.callSite format:@"%@ \"%@\" raised", [exception name], [exception reason]]; + [example reportFailure:failure]; + } + + self.performedExampleCount++; + }; + if (self.parentContext == nil) { + outerExampleBlock(); + } + else { + [self.parentContext performExample:example withBlock:outerExampleBlock]; + } +} + +- (void)raiseIfNodeAlreadyExists:(id)node { + if (node) { + [NSException raise:KWContextNodeException + format:@"A %@ already exists in this context.", NSStringFromClass([node class])]; + } +} + +#pragma mark - Accepting Visitors + +- (void)acceptExampleNodeVisitor:(id)aVisitor { + [aVisitor visitContextNode:self]; +} + +@end diff --git a/Pods/Kiwi/Classes/Nodes/KWExampleNode.h b/Pods/Kiwi/Classes/Nodes/KWExampleNode.h new file mode 100644 index 0000000..b3fc4dc --- /dev/null +++ b/Pods/Kiwi/Classes/Nodes/KWExampleNode.h @@ -0,0 +1,22 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KiwiConfiguration.h" + +@class KWContextNode; +@protocol KWExampleNodeVisitor; + +@protocol KWExampleNode + +#pragma mark - Accepting Visitors + +- (void)acceptExampleNodeVisitor:(id)aVisitor; + +@optional + +- (NSArray *)contextStack; + +@end diff --git a/Pods/Kiwi/Classes/Nodes/KWItNode.h b/Pods/Kiwi/Classes/Nodes/KWItNode.h new file mode 100644 index 0000000..11bcec0 --- /dev/null +++ b/Pods/Kiwi/Classes/Nodes/KWItNode.h @@ -0,0 +1,27 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KiwiConfiguration.h" +#import "KWBlockNode.h" +#import "KWExampleNode.h" + +@class KWPendingNode; +@class KWExample; +@class KWContextNode; + +@interface KWItNode : KWBlockNode + +@property (nonatomic, strong) KWExample *example; +@property (nonatomic, weak, readonly) KWContextNode *context; + +#pragma mark - Initializing + ++ (id)itNodeWithCallSite:(KWCallSite *)aCallSite + description:(NSString *)aDescription + context:(KWContextNode *)context + block:(void (^)(void))block; + +@end diff --git a/Pods/Kiwi/Classes/Nodes/KWItNode.m b/Pods/Kiwi/Classes/Nodes/KWItNode.m new file mode 100644 index 0000000..5e3339d --- /dev/null +++ b/Pods/Kiwi/Classes/Nodes/KWItNode.m @@ -0,0 +1,62 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KWItNode.h" +#import "KWExampleNodeVisitor.h" +#import "KWExample.h" +#import "KWVerifying.h" +#import "KWContextNode.h" + +@interface KWItNode () + +@property (nonatomic, weak) KWContextNode *context; + +@end + +@implementation KWItNode + +#pragma mark - Initializing + ++ (id)itNodeWithCallSite:(KWCallSite *)aCallSite + description:(NSString *)aDescription + context:(KWContextNode *)context + block:(void (^)(void))block { + KWItNode *itNode = [[self alloc] initWithCallSite:aCallSite description:aDescription block:block]; + itNode.context = context; + return itNode; +} + +#pragma mark - Accepting Visitors + +- (void)acceptExampleNodeVisitor:(id)aVisitor { + [aVisitor visitItNode:self]; +} + +#pragma mark - Runtime Description support + +- (NSString *)description { + NSString *description = [super description]; + if (description == nil) { + description = [self.example generateDescriptionForAnonymousItNode]; + } + return description; +} + +#pragma mark - Accessing the context stack + +- (NSArray *)contextStack { + NSMutableArray *contextStack = [NSMutableArray array]; + + KWContextNode *currentContext = _context; + + while (currentContext) { + [contextStack addObject:currentContext]; + currentContext = currentContext.parentContext; + } + return contextStack; +} + +@end diff --git a/Pods/Kiwi/Classes/Nodes/KWLetNode.h b/Pods/Kiwi/Classes/Nodes/KWLetNode.h new file mode 100644 index 0000000..9b763e6 --- /dev/null +++ b/Pods/Kiwi/Classes/Nodes/KWLetNode.h @@ -0,0 +1,36 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KiwiConfiguration.h" +#import "KWExampleNode.h" + +@interface KWLetNode : NSObject + +- (instancetype)initWithSymbolName:(NSString *)aSymbolName objectRef:(id *)anObjectRef block:(id (^)(void))block; ++ (instancetype)letNodeWithSymbolName:(NSString *)aSymbolName objectRef:(id *)anObjectRef block:(id (^)(void))block; + +@property (nonatomic, copy) NSString *symbolName; +@property (nonatomic, copy) id (^block)(void); +@property (nonatomic, readonly) __autoreleasing id *objectRef; + +- (id)evaluate; +- (void)evaluateTree; + +- (void)addLetNode:(KWLetNode *)aNode; +- (void)unlink; + +// The parent/child relationship describes let nodes declared in nested +// contexts -- evaluating a node returns the value of the deepest +// evaluated child. +@property (nonatomic, readonly, weak) KWLetNode *parent; +@property (nonatomic, readonly, strong) KWLetNode *child; + +// The next/previous relationship describes the order in which nodes +// of different symbols were declared. +@property (nonatomic, readonly, strong) KWLetNode *next; +@property (nonatomic, readonly, weak) KWLetNode *previous; + +@end diff --git a/Pods/Kiwi/Classes/Nodes/KWLetNode.m b/Pods/Kiwi/Classes/Nodes/KWLetNode.m new file mode 100644 index 0000000..9a99883 --- /dev/null +++ b/Pods/Kiwi/Classes/Nodes/KWLetNode.m @@ -0,0 +1,145 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KWLetNode.h" +#import "KWExampleNodeVisitor.h" + +@interface KWLetNode () + +@property (nonatomic, weak) KWLetNode *parent; +@property (nonatomic, strong) KWLetNode *child; + +@property (nonatomic, strong) KWLetNode *next; +@property (nonatomic, weak) KWLetNode *previous; + +@end + +@implementation KWLetNode + +@synthesize objectRef = _objectRef; + +- (instancetype)initWithSymbolName:(NSString *)aSymbolName objectRef:(__autoreleasing id *)anObjectRef block:(id (^)(void))block +{ + if ((self = [super init])) { + _symbolName = [aSymbolName copy]; + _objectRef = anObjectRef; + _block = [block copy]; + } + return self; +} + ++ (instancetype)letNodeWithSymbolName:(NSString *)aSymbolName objectRef:(__autoreleasing id *)anObjectRef block:(id (^)(void))block +{ + return [[self alloc] initWithSymbolName:aSymbolName objectRef:anObjectRef block:block]; +} + +#pragma mark - Evaluating nodes + +- (id)evaluate +{ + id result = nil; + if (self.child) { + result = [self.child evaluate]; + } + else if (self.block) { + result = self.block(); + } + + *self.objectRef = result; + return result; +} + +- (void)evaluateTree +{ + [self evaluate]; + [self.next evaluateTree]; +} + +#pragma mark - Managing node relationships + +- (void)addLetNode:(KWLetNode *)aNode +{ + if (![aNode isEqual:self]) { + if ([aNode.symbolName isEqualToString:self.symbolName]) { + [self addChild:aNode]; + } + else if (self.next) { + [self.next addLetNode:aNode]; + } + else { + self.next = aNode; + } + } +} + +- (void)addChild:(KWLetNode *)aNode +{ + if (self.child && ![self.child isEqual:aNode]) { + [self.child addChild:aNode]; + } + else { + self.child = aNode; + } +} + +- (void)setNext:(KWLetNode *)aNode +{ + aNode.previous = self; + _next = aNode; +} + +- (void)setChild:(KWLetNode *)aNode +{ + aNode.parent = self; + _child = aNode; +} + +- (void)unlink +{ + [self.next unlink]; + self.previous.next = nil; + self.previous = nil; + + [self.child unlink]; + self.parent.child = nil; + self.parent = nil; +} + +#pragma mark - Accepting visitors + +- (void)acceptExampleNodeVisitor:(id)aVisitor +{ + [aVisitor visitLetNode:self]; +} + +#pragma mark - Describing nodes + +- (NSString *)description +{ + return [NSString stringWithFormat:@"%@ {%@\n}", [[self class] description], [self recursiveDescription]]; +} + +- (NSString *)nodeDescription +{ + return [NSString stringWithFormat:@"<%@ \"%@\">", [[self class] description], self.block ? self.block() : nil]; +} + +- (NSString *)recursiveDescription +{ + if (!self.parent) { + NSMutableString *description = [NSMutableString stringWithFormat:@"\n\t%@:\n\t\t%@", self.symbolName, [self nodeDescription]]; + if (self.child) [description appendFormat:@"%@", [self.child recursiveDescription]]; + if (self.next) [description appendString:[self.next recursiveDescription]]; + return [description copy]; + } + else { + NSMutableString *description = [NSMutableString stringWithFormat:@",\n\t\t%@", [self nodeDescription]]; + if (self.child) [description appendString:[self.child recursiveDescription]]; + return [description copy]; + } +} + +@end diff --git a/Pods/Kiwi/Classes/Nodes/KWPendingNode.h b/Pods/Kiwi/Classes/Nodes/KWPendingNode.h new file mode 100644 index 0000000..c269758 --- /dev/null +++ b/Pods/Kiwi/Classes/Nodes/KWPendingNode.h @@ -0,0 +1,31 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KiwiConfiguration.h" +#import "KWExampleNode.h" + +@class KWContextNode; +@class KWCallSite; + +@interface KWPendingNode : NSObject + +@property (nonatomic, readonly, strong) KWContextNode *context; + +#pragma mark - Initializing + +- (id)initWithCallSite:(KWCallSite *)aCallSite context:(KWContextNode *)context description:(NSString *)aDescription; + ++ (id)pendingNodeWithCallSite:(KWCallSite *)aCallSite context:(KWContextNode *)context description:(NSString *)aDescription; + +#pragma mark - Getting Call Sites + +@property (nonatomic, readonly) KWCallSite *callSite; + +#pragma mark - Getting Descriptions + +@property (readonly, copy) NSString *description; + +@end diff --git a/Pods/Kiwi/Classes/Nodes/KWPendingNode.m b/Pods/Kiwi/Classes/Nodes/KWPendingNode.m new file mode 100644 index 0000000..c04cb35 --- /dev/null +++ b/Pods/Kiwi/Classes/Nodes/KWPendingNode.m @@ -0,0 +1,55 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KWPendingNode.h" + +#import "KWCallSite.h" +#import "KWContextNode.h" +#import "KWExampleNodeVisitor.h" + +@implementation KWPendingNode + +@synthesize description = _description; + +#pragma mark - Initializing + +- (id)initWithCallSite:(KWCallSite *)aCallSite context:(KWContextNode *)context description:(NSString *)aDescription { + self = [super init]; + if (self) { + _callSite = aCallSite; + _description = [aDescription copy]; + _context = context; + } + + return self; +} + ++ (id)pendingNodeWithCallSite:(KWCallSite *)aCallSite context:(KWContextNode *)context description:(NSString *)aDescription { + return [[self alloc] initWithCallSite:aCallSite context:context description:aDescription]; +} + +#pragma mark - Accepting Visitors + +- (void)acceptExampleNodeVisitor:(id)aVisitor { + [aVisitor visitPendingNode:self]; +} + +#pragma mark - Accessing the context stack + +- (NSArray *)contextStack +{ + NSMutableArray *contextStack = [NSMutableArray array]; + + KWContextNode *currentContext = _context; + + while (currentContext) { + [contextStack addObject:currentContext]; + currentContext = currentContext.parentContext; + } + return contextStack; +} + +@end diff --git a/Pods/Kiwi/Classes/Nodes/KWRegisterMatchersNode.h b/Pods/Kiwi/Classes/Nodes/KWRegisterMatchersNode.h new file mode 100644 index 0000000..f0ef83a --- /dev/null +++ b/Pods/Kiwi/Classes/Nodes/KWRegisterMatchersNode.h @@ -0,0 +1,28 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KiwiConfiguration.h" +#import "KWExampleNode.h" + +@class KWCallSite; + +@interface KWRegisterMatchersNode : NSObject + +#pragma mark - Initializing + +- (id)initWithCallSite:(KWCallSite *)aCallSite namespacePrefix:(NSString *)aNamespacePrefix; + ++ (id)registerMatchersNodeWithCallSite:(KWCallSite *)aCallSite namespacePrefix:(NSString *)aNamespacePrefix; + +#pragma mark - Getting Call Sites + +@property (nonatomic, readonly) KWCallSite *callSite; + +#pragma mark - Getting Namespace Prefixes + +@property (nonatomic, readonly) NSString *namespacePrefix; + +@end diff --git a/Pods/Kiwi/Classes/Nodes/KWRegisterMatchersNode.m b/Pods/Kiwi/Classes/Nodes/KWRegisterMatchersNode.m new file mode 100644 index 0000000..8e6b1cc --- /dev/null +++ b/Pods/Kiwi/Classes/Nodes/KWRegisterMatchersNode.m @@ -0,0 +1,36 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KWRegisterMatchersNode.h" + +#import "KWCallSite.h" +#import "KWExampleNodeVisitor.h" + +@implementation KWRegisterMatchersNode + +#pragma mark - Initializing + +- (id)initWithCallSite:(KWCallSite *)aCallSite namespacePrefix:(NSString *)aNamespacePrefix { + self = [super init]; + if (self) { + _callSite = aCallSite; + _namespacePrefix = [aNamespacePrefix copy]; + } + + return self; +} + ++ (id)registerMatchersNodeWithCallSite:(KWCallSite *)aCallSite namespacePrefix:(NSString *)aNamespacePrefix { + return [[self alloc] initWithCallSite:aCallSite namespacePrefix:aNamespacePrefix]; +} + +#pragma mark - Accepting Visitors + +- (void)acceptExampleNodeVisitor:(id)aVisitor { + [aVisitor visitRegisterMatchersNode:self]; +} + +@end diff --git a/Pods/Kiwi/Classes/Stubbing/KWIntercept.h b/Pods/Kiwi/Classes/Stubbing/KWIntercept.h new file mode 100644 index 0000000..5481c80 --- /dev/null +++ b/Pods/Kiwi/Classes/Stubbing/KWIntercept.h @@ -0,0 +1,45 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KiwiConfiguration.h" +#import + +@class KWMessagePattern; +@class KWStub; + +#pragma mark - Getting Forwarding Implementations + +IMP KWRegularForwardingImplementation(void); +IMP KWStretForwardingImplementation(void); +IMP KWForwardingImplementationForMethodEncoding(const char* encoding); + +#pragma mark - Getting Intercept Class Information + +BOOL KWObjectIsClass(id anObject); +BOOL KWClassIsInterceptClass(Class aClass); +NSString *KWInterceptClassNameForClass(Class aClass); +Class KWInterceptClassForCanonicalClass(Class canonicalClass); +Class KWRealClassForClass(Class aClass); + +#pragma mark - Enabling Intercepting + +Class KWSetupObjectInterceptSupport(id anObject); +void KWSetupMethodInterceptSupport(Class interceptClass, SEL aSelector); + +#pragma mark - Managing Stubs & Spies +void KWClearStubsAndSpies(void); + +#pragma mark - Managing Objects Stubs + +void KWAssociateObjectStub(id anObject, KWStub *aStub, BOOL overrideExisting); +void KWClearObjectStubs(id anObject); +void KWClearAllObjectStubs(void); + +#pragma mark - Managing Message Spies + +void KWAssociateMessageSpy(id anObject, id aSpy, KWMessagePattern *aMessagePattern); +void KWClearObjectSpy(id anObject, id aSpy, KWMessagePattern *aMessagePattern); +void KWClearAllMessageSpies(void); diff --git a/Pods/Kiwi/Classes/Stubbing/KWIntercept.m b/Pods/Kiwi/Classes/Stubbing/KWIntercept.m new file mode 100644 index 0000000..b1a46ff --- /dev/null +++ b/Pods/Kiwi/Classes/Stubbing/KWIntercept.m @@ -0,0 +1,391 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KWIntercept.h" +#import "KWMessagePattern.h" +#import "KWMessageSpying.h" +#import "KWStub.h" + +static const char * const KWInterceptClassSuffix = "_KWIntercept"; + +void KWObjectStubsInit(void); +void KWClearObjectStubs(id anObject); +void KWClearAllObjectStubs(void); +NSMutableArray *KWObjectStubsForObject(id anObject); +void KWObjectStubsSet(id anObject, NSMutableArray *stubs); + +void KWMessageSpiesInit(void); +NSMapTable *KWMessageSpiesForObject(id anObject); +void KWClearMessageSpies(id anObject); +void KWMessageSpiesSet(id anObject, NSMapTable *spies); + +Class KWRestoreOriginalClass(id anObject); +BOOL KWObjectClassRestored(id anObject); + +typedef id (^KWInterceptedObjectBlock)(void); +// Use KWInterceptedObjectKey, instead of the object itself, when +// registering an object in a global map table, to prevent an infinite +// loop when the object is hashed. +KWInterceptedObjectBlock KWInterceptedObjectKey(id anObject); + +#pragma mark - Intercept Enabled Method Implementations + +void KWInterceptedForwardInvocation(id anObject, SEL aSelector, NSInvocation* anInvocation); +void KWInterceptedDealloc(id anObject, SEL aSelector); +Class KWInterceptedClass(id anObject, SEL aSelector); +Class KWInterceptedSuperclass(id anObject, SEL aSelector); + +#pragma mark - Getting Forwarding Implementations + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wundeclared-selector" + +IMP KWRegularForwardingImplementation(void) { + return class_getMethodImplementation([NSObject class], @selector(KWNonExistantSelector)); +} + +IMP KWStretForwardingImplementation(void) { +#ifndef __arm64__ + return class_getMethodImplementation_stret([NSObject class], @selector(KWNonExistantSelector)); +#else + return class_getMethodImplementation([NSObject class], @selector(KWNonExistantSelector)); +#endif +} + +#pragma clang diagnostic pop + +IMP KWForwardingImplementationForMethodEncoding(const char* encoding) { +#if TARGET_CPU_ARM + const NSUInteger stretLengthThreshold = 4; +#elif TARGET_CPU_X86 + const NSUInteger stretLengthThreshold = 8; +#else + // TODO: This just makes an assumption right now. Expand to support all + // official architectures correctly. + const NSUInteger stretLengthThreshold = 8; +#endif // #if TARGET_CPU_ARM + + NSMethodSignature *signature = [NSMethodSignature signatureWithObjCTypes:encoding]; + + if (*[signature methodReturnType] == '{' && [signature methodReturnLength] > stretLengthThreshold) { + NSLog(@"Warning: The Objective-C runtime appears to have bugs when forwarding messages with certain struct layouts as return types, so if a crash occurs this could be the culprit"); + return KWStretForwardingImplementation(); + } else { + return KWRegularForwardingImplementation(); + } +} + +#pragma mark - Getting Intercept Class Information + +BOOL KWObjectIsClass(id anObject) { + return class_isMetaClass(object_getClass(anObject)); +} + +BOOL KWClassIsInterceptClass(Class aClass) { + const char *name = class_getName(aClass); + char *result = strstr(name, KWInterceptClassSuffix); + return result != nil; +} + +int interceptCount = 0; + +NSString *KWInterceptClassNameForClass(Class aClass) { + const char *className = class_getName(aClass); + interceptCount++; + return [NSString stringWithFormat:@"%s%s%d", className, KWInterceptClassSuffix, interceptCount]; +} + +Class KWInterceptClassForCanonicalClass(Class canonicalClass) { + NSString *interceptClassName = KWInterceptClassNameForClass(canonicalClass); + Class interceptClass = NSClassFromString(interceptClassName); + + if (interceptClass != nil) + return interceptClass; + + interceptClass = objc_allocateClassPair(canonicalClass, [interceptClassName UTF8String], 0); + objc_registerClassPair(interceptClass); + + class_addMethod(interceptClass, @selector(forwardInvocation:), (IMP)KWInterceptedForwardInvocation, "v@:@"); + class_addMethod(interceptClass, @selector(class), (IMP)KWInterceptedClass, "#@:"); + //TODO: potentially get rid of this? + class_addMethod(interceptClass, NSSelectorFromString(@"dealloc"), (IMP)KWInterceptedDealloc, "v@:"); + // + class_addMethod(interceptClass, @selector(superclass), (IMP)KWInterceptedSuperclass, "#@:"); + + Class interceptMetaClass = object_getClass(interceptClass); + class_addMethod(interceptMetaClass, @selector(forwardInvocation:), (IMP)KWInterceptedForwardInvocation, "v@:@"); + + return interceptClass; +} + +Class KWRealClassForClass(Class aClass) { + if (KWClassIsInterceptClass(aClass)) + return [aClass superclass]; + + return aClass; +} + +#pragma mark - Enabling Intercepting + +static BOOL IsTollFreeBridged(Class class, id obj) +{ + // this is a naive check, but good enough for the purposes of failing fast + return [NSStringFromClass(class) hasPrefix:@"NSCF"]; +} + +// Canonical class is the non-intercept, non-metaclass, class for an object. +// +// (e.g. [Animal class] would be canonical, not +// object_getClass([Animal class]), if the Animal class has not been touched +// by the intercept mechanism. + +Class KWSetupObjectInterceptSupport(id anObject) { + Class objectClass = object_getClass(anObject); + + if (IsTollFreeBridged(objectClass, anObject)) { + [NSException raise:@"KWTollFreeBridgingInterceptException" format:@"Attempted to stub object of class %@. Kiwi does not support setting expectation or stubbing methods on toll-free bridged objects.", NSStringFromClass(objectClass)]; + } + + if (KWClassIsInterceptClass(objectClass)) + return objectClass; + + BOOL objectIsClass = KWObjectIsClass(anObject); + Class canonicalClass = objectIsClass ? anObject : objectClass; + Class canonicalInterceptClass = KWInterceptClassForCanonicalClass(canonicalClass); + Class interceptClass = objectIsClass ? object_getClass(canonicalInterceptClass) : canonicalInterceptClass; + + object_setClass(anObject, interceptClass); + + return interceptClass; +} + +void KWSetupMethodInterceptSupport(Class interceptClass, SEL aSelector) { + BOOL isMetaClass = class_isMetaClass(interceptClass); + Method method = isMetaClass ? class_getClassMethod(interceptClass, aSelector) + : class_getInstanceMethod(interceptClass, aSelector); + + if (method == nil) { + [NSException raise:NSInvalidArgumentException format:@"cannot setup intercept support for -%@ because no such method exists", + NSStringFromSelector(aSelector)]; + } + + const char *encoding = method_getTypeEncoding(method); + IMP forwardingImplementation = KWForwardingImplementationForMethodEncoding(encoding); + class_addMethod(interceptClass, aSelector, forwardingImplementation, encoding); +} + +#pragma mark - Intercept Enabled Method Implementations + +void KWInterceptedForwardInvocation(id anObject, SEL aSelector, NSInvocation* anInvocation) { + NSMapTable *spiesMap = KWMessageSpiesForObject(anObject); + for (KWMessagePattern *messagePattern in spiesMap) { + if ([messagePattern matchesInvocation:anInvocation]) { + NSArray *spies = [spiesMap objectForKey:messagePattern]; + + for (id spy in spies) { + [spy object:anObject didReceiveInvocation:anInvocation]; + } + } + } + + for (KWStub *stub in KWObjectStubsForObject(anObject)) { + if ([stub processInvocation:anInvocation]) + return; + } + + Class interceptClass = KWRestoreOriginalClass(anObject); + [anInvocation invoke]; + // anObject->isa = interceptClass; + object_setClass(anObject, interceptClass); +} + +void KWInterceptedDealloc(id anObject, SEL aSelector) { + KWClearMessageSpies(anObject); + KWClearObjectStubs(anObject); + KWRestoreOriginalClass(anObject); +} + +Class KWInterceptedClass(id anObject, SEL aSelector) { + Class interceptClass = object_getClass(anObject); + Class originalClass = class_getSuperclass(interceptClass); + return originalClass; +} + +Class KWInterceptedSuperclass(id anObject, SEL aSelector) { + Class interceptClass = object_getClass(anObject); + Class originalClass = class_getSuperclass(interceptClass); + Class originalSuperclass = class_getSuperclass(originalClass); + return originalSuperclass; +} + +#pragma mark - Managing Objects Stubs + +void KWAssociateObjectStub(id anObject, KWStub *aStub, BOOL overrideExisting) { + KWObjectStubsInit(); + + NSMutableArray *stubs = KWObjectStubsForObject(anObject); + if (stubs == nil) { + stubs = [[NSMutableArray alloc] init]; + KWObjectStubsSet(anObject, stubs); + } + + NSUInteger stubCount = [stubs count]; + + for (NSUInteger i = 0; i < stubCount; ++i) { + KWStub *existingStub = stubs[i]; + + if ([aStub.messagePattern isEqualToMessagePattern:existingStub.messagePattern]) { + if (overrideExisting) { + [stubs removeObjectAtIndex:i]; + break; + } else { + return; + } + } + } + + [stubs addObject:aStub]; +} + +#pragma mark - Managing Message Spies + +void KWAssociateMessageSpy(id anObject, id aSpy, KWMessagePattern *aMessagePattern) { + KWMessageSpiesInit(); + + NSMapTable *spies = KWMessageSpiesForObject(anObject); + if (spies == nil) { + spies = [NSMapTable mapTableWithKeyOptions:NSMapTableStrongMemory valueOptions:NSMapTableStrongMemory]; + KWMessageSpiesSet(anObject, spies); + } + + NSMutableArray *messagePatternSpies = [spies objectForKey:aMessagePattern]; + if (messagePatternSpies == nil) { + messagePatternSpies = [[NSMutableArray alloc] init]; + [spies setObject:messagePatternSpies forKey:aMessagePattern]; + } + + + if ([messagePatternSpies containsObject:aSpy]) + return; + + [messagePatternSpies addObject:aSpy]; +} + +#pragma mark - KWMessageSpies + +static NSMapTable *KWMessageSpies = nil; + +void KWMessageSpiesInit(void) { + if (KWMessageSpies == nil) { + KWMessageSpies = [NSMapTable mapTableWithKeyOptions:NSMapTableStrongMemory valueOptions:NSMapTableStrongMemory]; + }; +} + +NSMapTable *KWMessageSpiesForObject(id anObject) { + return [KWMessageSpies objectForKey:KWInterceptedObjectKey(anObject)]; +} + +void KWMessageSpiesSet(id anObject, NSMapTable *spies) { + [KWMessageSpies setObject:spies forKey:KWInterceptedObjectKey(anObject)]; +} + +void KWClearObjectSpy(id anObject, id aSpy, KWMessagePattern *aMessagePattern) { + NSMapTable *spyArrayDictionary = KWMessageSpiesForObject(anObject); + NSMutableArray *spies = [spyArrayDictionary objectForKey:aMessagePattern]; + [spies removeObject:aSpy]; +} + +void KWClearMessageSpies(id anObject) { + [KWMessageSpies removeObjectForKey:KWInterceptedObjectKey(anObject)]; +} + +void KWClearAllMessageSpies(void) { + for (KWInterceptedObjectBlock key in KWMessageSpies) { + id spiedObject = key(); + if (KWObjectClassRestored(spiedObject)) { + continue; + } + KWRestoreOriginalClass(spiedObject); + } + [KWMessageSpies removeAllObjects]; +} + + +#pragma mark KWObjectStubs + +static NSMapTable *KWObjectStubs = nil; + +void KWObjectStubsInit(void) { + if (KWObjectStubs == nil) { + KWObjectStubs = [NSMapTable mapTableWithKeyOptions:NSMapTableStrongMemory valueOptions:NSMapTableStrongMemory]; + } +} + +NSMutableArray *KWObjectStubsForObject(id anObject) { + return [KWObjectStubs objectForKey:KWInterceptedObjectKey(anObject)]; +} + +void KWObjectStubsSet(id anObject, NSMutableArray *stubs) { + [KWObjectStubs setObject:stubs forKey:KWInterceptedObjectKey(anObject)]; +} + +void KWClearObjectStubs(id anObject) { + [KWObjectStubs removeObjectForKey:KWInterceptedObjectKey(anObject)]; +} + +void KWClearAllObjectStubs(void) { + for (KWInterceptedObjectBlock key in KWObjectStubs) { + id stubbedObject = key(); + if (KWObjectClassRestored(stubbedObject)) { + continue; + } + KWRestoreOriginalClass(stubbedObject); + } + [KWObjectStubs removeAllObjects]; +} + +#pragma mark KWRestoredObjects + +static NSMutableArray *KWRestoredObjects = nil; + +BOOL KWObjectClassRestored(id anObject) { + return [KWRestoredObjects containsObject:KWInterceptedObjectKey(anObject)]; +} + +Class KWRestoreOriginalClass(id anObject) { + Class interceptClass = object_getClass(anObject); + if (KWClassIsInterceptClass(interceptClass)) + { + Class originalClass = class_getSuperclass(interceptClass); + // anObject->isa = originalClass; + object_setClass(anObject, originalClass); + } + [KWRestoredObjects addObject:anObject]; + return interceptClass; +} + +#pragma mark KWInterceptedObjectKey + +static void *kKWInterceptedObjectKey = &kKWInterceptedObjectKey; + +KWInterceptedObjectBlock KWInterceptedObjectKey(id anObject) { + KWInterceptedObjectBlock key = objc_getAssociatedObject(anObject, kKWInterceptedObjectKey); + if (key == nil) { + __weak id weakobj = anObject; + key = ^{ return weakobj; }; + objc_setAssociatedObject(anObject, kKWInterceptedObjectKey, [key copy], OBJC_ASSOCIATION_COPY); + } + return key; +} + +#pragma mark - Managing Stubs & Spies + +void KWClearStubsAndSpies(void) { + KWRestoredObjects = [NSMutableArray array]; + KWClearAllMessageSpies(); + KWClearAllObjectStubs(); + KWRestoredObjects = nil; +} diff --git a/Pods/Kiwi/Classes/Stubbing/KWStub.h b/Pods/Kiwi/Classes/Stubbing/KWStub.h new file mode 100644 index 0000000..b16d70e --- /dev/null +++ b/Pods/Kiwi/Classes/Stubbing/KWStub.h @@ -0,0 +1,37 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KiwiConfiguration.h" + +@class KWMessagePattern; + +@interface KWStub : NSObject + +#pragma mark - Initializing + +- (id)initWithMessagePattern:(KWMessagePattern *)aMessagePattern; +- (id)initWithMessagePattern:(KWMessagePattern *)aMessagePattern value:(id)aValue; +- (id)initWithMessagePattern:(KWMessagePattern *)aMessagePattern block:(id (^)(NSArray *params))aBlock; +- (id)initWithMessagePattern:(KWMessagePattern *)aMessagePattern value:(id)aValue times:(id)times afterThatReturn:(id)aSecondValue; + ++ (id)stubWithMessagePattern:(KWMessagePattern *)aMessagePattern; ++ (id)stubWithMessagePattern:(KWMessagePattern *)aMessagePattern value:(id)aValue; ++ (id)stubWithMessagePattern:(KWMessagePattern *)aMessagePattern block:(id (^)(NSArray *params))aBlock; ++ (id)stubWithMessagePattern:(KWMessagePattern *)aMessagePattern value:(id)aValue times:(id)times afterThatReturn:(id)aSecondValue; + +#pragma mark - Properties + +@property (nonatomic, readonly) KWMessagePattern *messagePattern; +@property (nonatomic, readonly) id value; +@property (nonatomic, readonly) id returnValueTimes; +@property (nonatomic, readonly) int returnedValueTimes; +@property (nonatomic, readonly) id secondValue; + +#pragma mark - Processing Invocations + +- (BOOL)processInvocation:(NSInvocation *)anInvocation; + +@end diff --git a/Pods/Kiwi/Classes/Stubbing/KWStub.m b/Pods/Kiwi/Classes/Stubbing/KWStub.m new file mode 100644 index 0000000..3db6c63 --- /dev/null +++ b/Pods/Kiwi/Classes/Stubbing/KWStub.m @@ -0,0 +1,216 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KWStub.h" +#import "KWMessagePattern.h" +#import "KWObjCUtilities.h" +#import "KWStringUtilities.h" +#import "KWValue.h" + +#import "NSInvocation+OCMAdditions.h" + +@interface KWStub(){} +@property (nonatomic, copy) id (^block)(NSArray *params); +@end + +@implementation KWStub + +#pragma mark - Initializing + +- (id)initWithMessagePattern:(KWMessagePattern *)aMessagePattern { + return [self initWithMessagePattern:aMessagePattern value:nil]; +} + +- (id)initWithMessagePattern:(KWMessagePattern *)aMessagePattern value:(id)aValue { + self = [super init]; + if (self) { + messagePattern = aMessagePattern; + value = aValue; + } + return self; +} + +- (id)initWithMessagePattern:(KWMessagePattern *)aMessagePattern block:(id (^)(NSArray *params))aBlock { + self = [super init]; + if (self) { + messagePattern = aMessagePattern; + _block = aBlock; + } + return self; +} + +- (id)initWithMessagePattern:(KWMessagePattern *)aMessagePattern value:(id)aValue times:(id)times afterThatReturn:(id)aSecondValue { + self = [super init]; + if (self) { + messagePattern = aMessagePattern; + value = aValue; + returnValueTimes = times; + secondValue = aSecondValue; + } + return self; +} + ++ (id)stubWithMessagePattern:(KWMessagePattern *)aMessagePattern { + return [self stubWithMessagePattern:aMessagePattern value:nil]; +} + ++ (id)stubWithMessagePattern:(KWMessagePattern *)aMessagePattern value:(id)aValue { + return [[self alloc] initWithMessagePattern:aMessagePattern value:aValue]; +} + ++ (id)stubWithMessagePattern:(KWMessagePattern *)aMessagePattern block:(id (^)(NSArray *params))aBlock { + return [[self alloc] initWithMessagePattern:aMessagePattern block:aBlock]; +} + ++ (id)stubWithMessagePattern:(KWMessagePattern *)aMessagePattern value:(id)aValue times:(id)times afterThatReturn:(id)aSecondValue { + return [[self alloc] initWithMessagePattern:aMessagePattern value:aValue times:times afterThatReturn:aSecondValue]; +} + +#pragma mark - Properties + +@synthesize messagePattern; +@synthesize value; +@synthesize secondValue; +@synthesize returnValueTimes; +@synthesize returnedValueTimes; + +#pragma mark - Processing Invocations + +- (void)writeZerosToInvocationReturnValue:(NSInvocation *)anInvocation { + NSUInteger returnLength = [[anInvocation methodSignature] methodReturnLength]; + + if (returnLength == 0) + return; + + void *bytes = malloc(returnLength); + memset(bytes, 0, returnLength); + [anInvocation setReturnValue:bytes]; + free(bytes); +} + +- (NSData *)valueDataWithObjCType:(const char *)objCType { + assert(self.value && "self.value must not be nil"); + NSData *data = [self.value dataForObjCType:objCType]; + + if (data == nil) { + [NSException raise:@"KWStubException" format:@"wrapped stub value type (%s) could not be converted to the target type (%s)", + [self.value objCType], + objCType]; + } + + return data; +} + +- (void)writeWrappedValueToInvocationReturnValue:(NSInvocation *)anInvocation { + assert(self.value && "self.value must not be nil"); + const char *returnType = [[anInvocation methodSignature] methodReturnType]; + NSData *data = nil; + + NSData *choosedForData = [self.value dataValue]; + + if (returnValueTimes != nil) { + NSString *returnValueTimesString = returnValueTimes; + int returnValueTimesInt = [returnValueTimesString intValue]; + + if (returnedValueTimes >= returnValueTimesInt) { + choosedForData = [self.secondValue dataValue]; + } + returnedValueTimes++; + } + + + // When the return type is not the same as the type of the wrapped value, + // attempt to convert the wrapped value to the desired type. + + if (KWObjCTypeEqualToObjCType([self.value objCType], returnType)) + data = choosedForData; + else + data = [self valueDataWithObjCType:returnType]; + + [anInvocation setReturnValue:(void *)[data bytes]]; +} + +- (void)writeObjectValueToInvocationReturnValue:(NSInvocation *)anInvocation { + assert(self.value && "self.value must not be nil"); + + void *choosedForData = &value; + + if (returnValueTimes != nil) { + NSString *returnValueTimesString = returnValueTimes; + int returnValueTimesInt = [returnValueTimesString intValue]; + + if (returnedValueTimes >= returnValueTimesInt) { + choosedForData = &secondValue; + } + returnedValueTimes++; + } + + [anInvocation setReturnValue:choosedForData]; + +#ifndef __clang_analyzer__ + NSString *selectorString = NSStringFromSelector([anInvocation selector]); + + // To conform to memory management conventions, retain if writing a result + // that begins with alloc, new or contains copy. This shows up as a false + // positive in clang due to the runtime conditional, so ignore it. + if (KWStringHasWordPrefix(selectorString, @"alloc") || + KWStringHasWordPrefix(selectorString, @"new") || + KWStringHasWord(selectorString, @"copy") || + KWStringHasWord(selectorString, @"Copy")) { + + // NOTE: this should be done in a better way. + // If you don't understand it, it's basically just a -performSelector: call + // Currently, I'm rather doing this than suppressing the warnings with #pragma + SEL selector = NSSelectorFromString(@"retain"); + ((void (*)(id, SEL))[self.value methodForSelector:selector])(self.value, selector); + } +#endif +} + +- (BOOL)processInvocation:(NSInvocation *)anInvocation { + if (![self.messagePattern matchesInvocation:anInvocation]) + return NO; + + if (self.block) { + NSUInteger numberOfArguments = [[anInvocation methodSignature] numberOfArguments]; + NSMutableArray *args = [NSMutableArray arrayWithCapacity:(numberOfArguments-2)]; + for (NSUInteger i = 2; i < numberOfArguments; ++i) { + id arg = [anInvocation getArgumentAtIndexAsObject:(int)i]; + + const char *argType = [[anInvocation methodSignature] getArgumentTypeAtIndex:i]; + if (strcmp(argType, "@?") == 0) arg = [arg copy]; + + if (arg == nil) + arg = [NSNull null]; + + [args addObject:arg]; + } + + id newValue = self.block(args); + if (newValue != value) { + value = newValue; + } + + [args removeAllObjects]; // We don't want these objects to be in autorelease pool + } + + if (self.value == nil) + [self writeZerosToInvocationReturnValue:anInvocation]; + else if ([self.value isKindOfClass:[KWValue class]]) + [self writeWrappedValueToInvocationReturnValue:anInvocation]; + else + [self writeObjectValueToInvocationReturnValue:anInvocation]; + + return YES; +} + +#pragma mark - Debugging + +- (NSString *)description { + return [NSString stringWithFormat:@"messagePattern: %@\nvalue: %@", self.messagePattern, self.value]; +} + +@end diff --git a/Pods/Kiwi/Classes/Stubbing/NSObject+KiwiStubAdditions.h b/Pods/Kiwi/Classes/Stubbing/NSObject+KiwiStubAdditions.h new file mode 100644 index 0000000..12775e9 --- /dev/null +++ b/Pods/Kiwi/Classes/Stubbing/NSObject+KiwiStubAdditions.h @@ -0,0 +1,63 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KiwiConfiguration.h" + +@class KWCaptureSpy; +@class KWMessagePattern; + +@protocol KWMessageSpying; + +@protocol KiwiStubAdditions + +#pragma mark - Stubbing Methods + +- (void)stub:(SEL)aSelector; +- (void)stub:(SEL)aSelector withBlock:(id (^)(NSArray *params))block; +- (void)stub:(SEL)aSelector withArguments:(id)firstArgument, ...; +- (void)stub:(SEL)aSelector andReturn:(id)aValue; +- (void)stub:(SEL)aSelector andReturn:(id)aValue withArguments:(id)firstArgument, ...; +- (void)stub:(SEL)aSelector andReturn:(id)aValue times:(NSNumber *)times afterThatReturn:(id)aSecondValue; + ++ (void)stub:(SEL)aSelector; ++ (void)stub:(SEL)aSelector withBlock:(id (^)(NSArray *params))block; ++ (void)stub:(SEL)aSelector withArguments:(id)firstArgument, ...; ++ (void)stub:(SEL)aSelector andReturn:(id)aValue; ++ (void)stub:(SEL)aSelector andReturn:(id)aValue withArguments:(id)firstArgument, ...; ++ (void)stub:(SEL)aSelector andReturn:(id)aValue times:(NSNumber *)times afterThatReturn:(id)aSecondValue; + +- (id)stub DEPRECATED_ATTRIBUTE; +- (id)stubAndReturn:(id)aValue DEPRECATED_ATTRIBUTE; +- (id)stubAndReturn:(id)aValue times:(id)times afterThatReturn:(id)aSecondValue DEPRECATED_ATTRIBUTE; + +// These methods will become private +- (void)stubMessagePattern:(KWMessagePattern *)aMessagePattern andReturn:(id)aValue; +- (void)stubMessagePattern:(KWMessagePattern *)aMessagePattern andReturn:(id)aValue overrideExisting:(BOOL)overrideExisting; +- (void)stubMessagePattern:(KWMessagePattern *)aMessagePattern andReturn:(id)aValue times:(id)times afterThatReturn:(id)aSecondValue; +- (void)stubMessagePattern:(KWMessagePattern *)aMessagePattern withBlock:(id (^)(NSArray *params))block; + +// These methods will become private ++ (void)stubMessagePattern:(KWMessagePattern *)aMessagePattern andReturn:(id)aValue; ++ (void)stubMessagePattern:(KWMessagePattern *)aMessagePattern andReturn:(id)aValue times:(id)times afterThatReturn:(id)aSecondValue; ++ (void)stubMessagePattern:(KWMessagePattern *)aMessagePattern withBlock:(id (^)(NSArray *params))block; + +- (void)clearStubs; + +#pragma mark - Spying on Messages + +- (void)addMessageSpy:(id)aSpy forMessagePattern:(KWMessagePattern *)aMessagePattern; +- (void)removeMessageSpy:(id)aSpy forMessagePattern:(KWMessagePattern *)aMessagePattern; +- (KWCaptureSpy *)captureArgument:(SEL)selector atIndex:(NSUInteger)index; + ++ (void)addMessageSpy:(id)aSpy forMessagePattern:(KWMessagePattern *)aMessagePattern; ++ (void)removeMessageSpy:(id)aSpy forMessagePattern:(KWMessagePattern *)aMessagePattern; ++ (KWCaptureSpy *)captureArgument:(SEL)selector atIndex:(NSUInteger)index; + +@end + +@interface NSObject(KiwiStubAdditions) + +@end diff --git a/Pods/Kiwi/Classes/Stubbing/NSObject+KiwiStubAdditions.m b/Pods/Kiwi/Classes/Stubbing/NSObject+KiwiStubAdditions.m new file mode 100644 index 0000000..bf0e035 --- /dev/null +++ b/Pods/Kiwi/Classes/Stubbing/NSObject+KiwiStubAdditions.m @@ -0,0 +1,266 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "NSObject+KiwiStubAdditions.h" +#import "KWCaptureSpy.h" +#import "KWIntercept.h" +#import "KWInvocationCapturer.h" +#import "KWMessagePattern.h" +#import "KWObjCUtilities.h" +#import "KWStringUtilities.h" +#import "KWStub.h" + +static NSString * const StubValueKey = @"StubValueKey"; +static NSString * const StubSecondValueKey = @"StubSecondValueKey"; +static NSString * const ChangeStubValueAfterTimesKey = @"ChangeStubValueAfterTimesKey"; + +@implementation NSObject(KiwiStubAdditions) + +#pragma mark - Capturing Invocations + +- (NSMethodSignature *)invocationCapturer:(KWInvocationCapturer *)anInvocationCapturer methodSignatureForSelector:(SEL)aSelector { + NSMethodSignature *signature = [self methodSignatureForSelector:aSelector]; + + if (signature != nil) + return signature; + + NSString *encoding = KWEncodingForDefaultMethod(); + return [NSMethodSignature signatureWithObjCTypes:[encoding UTF8String]]; +} + +- (void)invocationCapturer:(KWInvocationCapturer *)anInvocationCapturer didCaptureInvocation:(NSInvocation *)anInvocation { + KWMessagePattern *messagePattern = [KWMessagePattern messagePatternFromInvocation:anInvocation]; + id value = (anInvocationCapturer.userInfo)[StubValueKey]; + if (!(anInvocationCapturer.userInfo)[StubSecondValueKey]) { + [self stubMessagePattern:messagePattern andReturn:value]; + } else { + id times = (anInvocationCapturer.userInfo)[ChangeStubValueAfterTimesKey]; + id secondValue = (anInvocationCapturer.userInfo)[StubSecondValueKey]; + [self stubMessagePattern:messagePattern andReturn:value times:times afterThatReturn:secondValue]; + } +} + +#pragma mark - Stubbing Methods + +- (void)stub:(SEL)aSelector { + KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:aSelector]; + [self stubMessagePattern:messagePattern andReturn:nil]; +} + +- (void)stub:(SEL)aSelector withBlock:(id (^)(NSArray *))block { + KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:aSelector]; + [self stubMessagePattern:messagePattern withBlock:block]; +} + +- (void)stub:(SEL)aSelector withArguments:(id)firstArgument, ... { + va_list argumentList; + va_start(argumentList, firstArgument); + KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:aSelector firstArgumentFilter:firstArgument argumentList:argumentList]; + [self stubMessagePattern:messagePattern andReturn:nil]; +} + +- (void)stub:(SEL)aSelector andReturn:(id)aValue { + KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:aSelector]; + [self stubMessagePattern:messagePattern andReturn:aValue]; +} + +- (void)stub:(SEL)aSelector andReturn:(id)aValue withArguments:(id)firstArgument, ... { + va_list argumentList; + va_start(argumentList, firstArgument); + KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:aSelector firstArgumentFilter:firstArgument argumentList:argumentList]; + [self stubMessagePattern:messagePattern andReturn:aValue]; +} + +- (void)stub:(SEL)aSelector andReturn:(id)aValue times:(NSNumber *)times afterThatReturn:(id)aSecondValue { + KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:aSelector]; + [self stubMessagePattern:messagePattern andReturn:aValue times:times afterThatReturn:aSecondValue]; +} + ++ (void)stub:(SEL)aSelector { + KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:aSelector]; + [self stubMessagePattern:messagePattern andReturn:nil]; +} + ++ (void)stub:(SEL)aSelector withBlock:(id (^)(NSArray *))block { + KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:aSelector]; + [self stubMessagePattern:messagePattern withBlock:block]; +} + ++ (void)stub:(SEL)aSelector withArguments:(id)firstArgument, ... { + va_list argumentList; + va_start(argumentList, firstArgument); + KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:aSelector firstArgumentFilter:firstArgument argumentList:argumentList]; + [self stubMessagePattern:messagePattern andReturn:nil]; +} + ++ (void)stub:(SEL)aSelector andReturn:(id)aValue { + KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:aSelector]; + [self stubMessagePattern:messagePattern andReturn:aValue]; +} + ++ (void)stub:(SEL)aSelector andReturn:(id)aValue withArguments:(id)firstArgument, ... { + va_list argumentList; + va_start(argumentList, firstArgument); + KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:aSelector firstArgumentFilter:firstArgument argumentList:argumentList]; + [self stubMessagePattern:messagePattern andReturn:aValue]; +} + ++ (void)stub:(SEL)aSelector andReturn:(id)aValue times:(NSNumber *)times afterThatReturn:(id)aSecondValue { + KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:aSelector]; + [self stubMessagePattern:messagePattern andReturn:aValue times:times afterThatReturn:aSecondValue]; +} + +- (id)stub { + return [KWInvocationCapturer invocationCapturerWithDelegate:self]; +} + +- (id)stubAndReturn:(id)aValue { + NSDictionary *userInfo = @{StubValueKey: aValue}; + return [KWInvocationCapturer invocationCapturerWithDelegate:self userInfo:userInfo]; +} + +- (id)stubAndReturn:(id)aValue times:(id)times afterThatReturn:(id)aSecondValue { + NSDictionary *userInfo = @{StubValueKey: aValue, ChangeStubValueAfterTimesKey: times, StubSecondValueKey: aSecondValue}; + return [KWInvocationCapturer invocationCapturerWithDelegate:self userInfo:userInfo]; +} + +- (void)stubMessagePattern:(KWMessagePattern *)aMessagePattern andReturn:(id)aValue { + [self stubMessagePattern:aMessagePattern andReturn:aValue overrideExisting:YES]; +} + +- (void)stubMessagePattern:(KWMessagePattern *)aMessagePattern andReturn:(id)aValue overrideExisting:(BOOL)overrideExisting { + if ([self methodSignatureForSelector:aMessagePattern.selector] == nil) { + [NSException raise:@"KWStubException" format:@"cannot stub -%@ because no such method exists", + NSStringFromSelector(aMessagePattern.selector)]; + } + + Class interceptClass = KWSetupObjectInterceptSupport(self); + KWSetupMethodInterceptSupport(interceptClass, aMessagePattern.selector); + KWStub *stub = [KWStub stubWithMessagePattern:aMessagePattern value:aValue]; + KWAssociateObjectStub(self, stub, overrideExisting); +} + +- (void)stubMessagePattern:(KWMessagePattern *)aMessagePattern andReturn:(id)aValue times:(id)times afterThatReturn:(id)aSecondValue { + if ([self methodSignatureForSelector:aMessagePattern.selector] == nil) { + [NSException raise:@"KWStubException" format:@"cannot stub -%@ because no such method exists", + NSStringFromSelector(aMessagePattern.selector)]; + } + + Class interceptClass = KWSetupObjectInterceptSupport(self); + KWSetupMethodInterceptSupport(interceptClass, aMessagePattern.selector); + KWStub *stub = [KWStub stubWithMessagePattern:aMessagePattern value:aValue times:times afterThatReturn:aSecondValue]; + KWAssociateObjectStub(self, stub, YES); +} + +- (void)stubMessagePattern:(KWMessagePattern *)aMessagePattern withBlock:(id (^)(NSArray *params))block { + if ([self methodSignatureForSelector:aMessagePattern.selector] == nil) { + [NSException raise:@"KWStubException" format:@"cannot stub -%@ because no such method exists", + NSStringFromSelector(aMessagePattern.selector)]; + } + + Class interceptClass = KWSetupObjectInterceptSupport(self); + KWSetupMethodInterceptSupport(interceptClass, aMessagePattern.selector); + KWStub *stub = [KWStub stubWithMessagePattern:aMessagePattern block:block]; + KWAssociateObjectStub(self, stub, YES); +} + ++ (void)stubMessagePattern:(KWMessagePattern *)aMessagePattern andReturn:(id)aValue { + [self stubMessagePattern:aMessagePattern andReturn:aValue overrideExisting:YES]; +} + ++ (void)stubMessagePattern:(KWMessagePattern *)aMessagePattern andReturn:(id)aValue overrideExisting:(BOOL)override { + if ([self methodSignatureForSelector:aMessagePattern.selector] == nil) { + [NSException raise:@"KWStubException" format:@"cannot stub -%@ because no such method exists", + NSStringFromSelector(aMessagePattern.selector)]; + } + + Class interceptClass = KWSetupObjectInterceptSupport(self); + KWSetupMethodInterceptSupport(interceptClass, aMessagePattern.selector); + KWStub *stub = [KWStub stubWithMessagePattern:aMessagePattern value:aValue]; + KWAssociateObjectStub(self, stub, override); +} + ++ (void)stubMessagePattern:(KWMessagePattern *)aMessagePattern andReturn:(id)aValue times:(id)times afterThatReturn:(id)aSecondValue { + [self stubMessagePattern:aMessagePattern andReturn:aValue times:times afterThatReturn:aSecondValue overrideExisting:YES]; +} + ++ (void)stubMessagePattern:(KWMessagePattern *)aMessagePattern andReturn:(id)aValue times:(id)times afterThatReturn:(id)aSecondValue overrideExisting:(BOOL)override { + if ([self methodSignatureForSelector:aMessagePattern.selector] == nil) { + [NSException raise:@"KWStubException" format:@"cannot stub -%@ because no such method exists", + NSStringFromSelector(aMessagePattern.selector)]; + } + + Class interceptClass = KWSetupObjectInterceptSupport(self); + KWSetupMethodInterceptSupport(interceptClass, aMessagePattern.selector); + KWStub *stub = [KWStub stubWithMessagePattern:aMessagePattern value:aValue times:times afterThatReturn:aSecondValue]; + KWAssociateObjectStub(self, stub, override); +} + ++ (void)stubMessagePattern:(KWMessagePattern *)aMessagePattern withBlock:(id (^)(NSArray *params))block { + [self stubMessagePattern:aMessagePattern withBlock:block overrideExisting:YES]; +} + ++ (void)stubMessagePattern:(KWMessagePattern *)aMessagePattern withBlock:(id (^)(NSArray *params))block overrideExisting:(BOOL)override { + if ([self methodSignatureForSelector:aMessagePattern.selector] == nil) { + [NSException raise:@"KWStubException" format:@"cannot stub -%@ because no such method exists", + NSStringFromSelector(aMessagePattern.selector)]; + } + + Class interceptClass = KWSetupObjectInterceptSupport(self); + KWSetupMethodInterceptSupport(interceptClass, aMessagePattern.selector); + KWStub *stub = [KWStub stubWithMessagePattern:aMessagePattern block:block]; + KWAssociateObjectStub(self, stub, override); +} + +- (void)clearStubs { + KWClearObjectStubs(self); +} + +#pragma mark - Spying on Messages + +- (void)addMessageSpy:(id)aSpy forMessagePattern:(KWMessagePattern *)aMessagePattern { + if ([self methodSignatureForSelector:aMessagePattern.selector] == nil) { + [NSException raise:@"KWSpyException" format:@"cannot add spy for -%@ because no such method exists", + NSStringFromSelector(aMessagePattern.selector)]; + } + + Class interceptClass = KWSetupObjectInterceptSupport(self); + KWSetupMethodInterceptSupport(interceptClass, aMessagePattern.selector); + KWAssociateMessageSpy(self, aSpy, aMessagePattern); +} + +- (void)removeMessageSpy:(id)aSpy forMessagePattern:(KWMessagePattern *)aMessagePattern { + KWClearObjectSpy(self, aSpy, aMessagePattern); +} + +- (KWCaptureSpy *)captureArgument:(SEL)selector atIndex:(NSUInteger)index { + KWCaptureSpy *spy = [[KWCaptureSpy alloc] initWithArgumentIndex:index]; + [self addMessageSpy:spy forMessagePattern:[KWMessagePattern messagePatternWithSelector:selector]]; + return spy; +} + ++ (void)addMessageSpy:(id)aSpy forMessagePattern:(KWMessagePattern *)aMessagePattern { + if ([self methodSignatureForSelector:aMessagePattern.selector] == nil) { + [NSException raise:@"KWSpyException" format:@"cannot add spy for -%@ because no such method exists", + NSStringFromSelector(aMessagePattern.selector)]; + } + + Class interceptClass = KWSetupObjectInterceptSupport(self); + KWSetupMethodInterceptSupport(interceptClass, aMessagePattern.selector); + KWAssociateMessageSpy(self, aSpy, aMessagePattern); +} + ++ (void)removeMessageSpy:(id)aSpy forMessagePattern:(KWMessagePattern *)aMessagePattern { + KWClearObjectSpy(self, aSpy, aMessagePattern); +} + ++ (KWCaptureSpy *)captureArgument:(SEL)selector atIndex:(NSUInteger)index { + KWCaptureSpy *spy = [[KWCaptureSpy alloc] initWithArgumentIndex:index]; + [self addMessageSpy:spy forMessagePattern:[KWMessagePattern messagePatternWithSelector:selector]]; + return spy; +} + +@end diff --git a/Pods/Kiwi/Classes/Verifiers/KWAsyncVerifier.h b/Pods/Kiwi/Classes/Verifiers/KWAsyncVerifier.h new file mode 100644 index 0000000..dd407c3 --- /dev/null +++ b/Pods/Kiwi/Classes/Verifiers/KWAsyncVerifier.h @@ -0,0 +1,36 @@ +// +// KWAsyncVerifier.h +// iOSFalconCore +// +// Created by Luke Redpath on 13/01/2011. +// Copyright 2011 LJR Software Limited. All rights reserved. +// + +#import +#import "KWMatchVerifier.h" +#import "KWProbe.h" + +#define kKW_DEFAULT_PROBE_TIMEOUT 1.0 + +@class KWAsyncMatcherProbe; + + +@interface KWAsyncVerifier : KWMatchVerifier + +@property (nonatomic, assign) NSTimeInterval timeout; +@property (nonatomic, assign) BOOL shouldWait; + ++ (id)asyncVerifierWithExpectationType:(KWExpectationType)anExpectationType callSite:(KWCallSite *)aCallSite matcherFactory:(KWMatcherFactory *)aMatcherFactory reporter:(id)aReporter probeTimeout:(NSTimeInterval)probeTimeout shouldWait:(BOOL)shouldWait; +- (void)verifyWithProbe:(KWAsyncMatcherProbe *)aProbe; + +@end + + +@interface KWAsyncMatcherProbe : NSObject + +@property (nonatomic, assign) BOOL matchResult; +@property (nonatomic, readonly) id matcher; + +- (id)initWithMatcher:(id)aMatcher; + +@end diff --git a/Pods/Kiwi/Classes/Verifiers/KWAsyncVerifier.m b/Pods/Kiwi/Classes/Verifiers/KWAsyncVerifier.m new file mode 100644 index 0000000..80aaf07 --- /dev/null +++ b/Pods/Kiwi/Classes/Verifiers/KWAsyncVerifier.m @@ -0,0 +1,90 @@ +// +// KWAsyncVerifier.m +// iOSFalconCore +// +// Created by Luke Redpath on 13/01/2011. +// Copyright 2011 LJR Software Limited. All rights reserved. +// + +#import "KWAsyncVerifier.h" +#import "KWFailure.h" +#import "KWMatching.h" +#import "KWReporting.h" +#import "KWProbePoller.h" + +@implementation KWAsyncVerifier + ++ (id)asyncVerifierWithExpectationType:(KWExpectationType)anExpectationType callSite:(KWCallSite *)aCallSite matcherFactory:(KWMatcherFactory *)aMatcherFactory reporter:(id)aReporter probeTimeout:(NSTimeInterval)probeTimeout shouldWait:(BOOL)shouldWait { + KWAsyncVerifier *verifier = [[self alloc] initWithExpectationType:anExpectationType callSite:aCallSite matcherFactory:aMatcherFactory reporter:aReporter]; + verifier.timeout = probeTimeout; + verifier.shouldWait = shouldWait; + return verifier; +} + +- (id)initWithExpectationType:(KWExpectationType)anExpectationType callSite:(KWCallSite *)aCallSite matcherFactory:(KWMatcherFactory *)aMatcherFactory reporter:(id)aReporter { + self = [super initWithExpectationType:anExpectationType callSite:aCallSite matcherFactory:aMatcherFactory reporter:aReporter]; + if (self) { + self.timeout = kKW_DEFAULT_PROBE_TIMEOUT; + } + return self; +} + +- (void)verifyWithProbe:(KWAsyncMatcherProbe *)aProbe { + @try { + KWProbePoller *poller = [[KWProbePoller alloc] initWithTimeout:self.timeout delay:kKW_DEFAULT_PROBE_DELAY shouldWait: self.shouldWait]; + + if (![poller check:aProbe]) { + if (self.expectationType == KWExpectationTypeShould) { + NSString *message = [aProbe.matcher failureMessageForShould]; + KWFailure *failure = [KWFailure failureWithCallSite:self.callSite message:message]; + [self.reporter reportFailure:failure]; + } + } else { + // poller returned YES -- fail if expectation is NOT + if (self.expectationType == KWExpectationTypeShouldNot) { + NSString *message = [aProbe.matcher failureMessageForShouldNot]; + KWFailure *failure = [KWFailure failureWithCallSite:self.callSite message:message]; + [self.reporter reportFailure:failure]; + } + } + + + } @catch (NSException *exception) { + KWFailure *failure = [KWFailure failureWithCallSite:self.callSite message:[exception description]]; + [self.reporter reportFailure:failure]; + } +} + +- (void)verifyWithMatcher:(id)aMatcher { + KWAsyncMatcherProbe *probe = [[KWAsyncMatcherProbe alloc] initWithMatcher:aMatcher]; + [self verifyWithProbe:probe]; +} + +@end + +@implementation KWAsyncMatcherProbe + +- (id)initWithMatcher:(id)aMatcher { + self = [super init]; + if (self) { + _matcher = aMatcher; + + // make sure the matcher knows we are going to evaluate it multiple times + if ([aMatcher respondsToSelector:@selector(willEvaluateMultipleTimes)]) { + [aMatcher setWillEvaluateMultipleTimes:YES]; + } + } + return self; +} + + +- (BOOL)isSatisfied { + return self.matchResult; +} + +- (void)sample { + self.matchResult = [self.matcher evaluate]; +} + +@end + diff --git a/Pods/Kiwi/Classes/Verifiers/KWExistVerifier.h b/Pods/Kiwi/Classes/Verifiers/KWExistVerifier.h new file mode 100644 index 0000000..91c0c18 --- /dev/null +++ b/Pods/Kiwi/Classes/Verifiers/KWExistVerifier.h @@ -0,0 +1,27 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KiwiConfiguration.h" +#import "KWExpectationType.h" +#import "KWVerifying.h" + +@class KWCallSite; + +@protocol KWReporting; + +@interface KWExistVerifier : NSObject + +#pragma mark - Initializing + +- (id)initWithExpectationType:(KWExpectationType)anExpectationType callSite:(KWCallSite *)aCallSite reporter:(id)aReporter; + ++ (id)existVerifierWithExpectationType:(KWExpectationType)anExpectationType callSite:(KWCallSite *)aCallSite reporter:(id)aReporter; + +#pragma mark - Properties + +@property (nonatomic, strong) id subject; + +@end diff --git a/Pods/Kiwi/Classes/Verifiers/KWExistVerifier.m b/Pods/Kiwi/Classes/Verifiers/KWExistVerifier.m new file mode 100644 index 0000000..9485a07 --- /dev/null +++ b/Pods/Kiwi/Classes/Verifiers/KWExistVerifier.m @@ -0,0 +1,63 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KWExistVerifier.h" + +#import "KWCallSite.h" +#import "KWFailure.h" +#import "KWFormatter.h" +#import "KWReporting.h" + +@interface KWExistVerifier() + +@property (nonatomic, readonly) KWExpectationType expectationType; +@property (nonatomic, readonly) id reporter; + +@property (nonatomic, strong) KWCallSite *callSite; + +@end + +@implementation KWExistVerifier + +#pragma mark - Initializing + +- (id)initWithExpectationType:(KWExpectationType)anExpectationType callSite:(KWCallSite *)aCallSite reporter:(id)aReporter { + self = [super init]; + if (self) { + _expectationType = anExpectationType; + _callSite = aCallSite; + _reporter = aReporter; + } + + return self; +} + ++ (id)existVerifierWithExpectationType:(KWExpectationType)anExpectationType callSite:(KWCallSite *)aCallSite reporter:(id)aReporter { + return [[self alloc] initWithExpectationType:anExpectationType callSite:aCallSite reporter:aReporter]; +} + + +- (NSString *)descriptionForAnonymousItNode { + if (self.expectationType == KWExpectationTypeShould) { + return @"should exist"; + } + return @"should not exist"; +} + +#pragma mark - Ending Examples + +- (void)exampleWillEnd { + if (self.expectationType == KWExpectationTypeShould && self.subject == nil) { + KWFailure *failure = [KWFailure failureWithCallSite:self.callSite message:@"expected subject not to be nil"]; + [self.reporter reportFailure:failure]; + } else if (self.expectationType == KWExpectationTypeShouldNot && self.subject != nil) { + KWFailure *failure = [KWFailure failureWithCallSite:self.callSite format:@"expected subject to be nil, got %@", + [KWFormatter formatObject:self.subject]]; + [self.reporter reportFailure:failure]; + } +} + +@end diff --git a/Pods/Kiwi/Classes/Verifiers/KWMatchVerifier.h b/Pods/Kiwi/Classes/Verifiers/KWMatchVerifier.h new file mode 100644 index 0000000..0fa981a --- /dev/null +++ b/Pods/Kiwi/Classes/Verifiers/KWMatchVerifier.h @@ -0,0 +1,39 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KiwiConfiguration.h" +#import "KWExpectationType.h" +#import "KWVerifying.h" + +@class KWCallSite; +@class KWMatcherFactory; + +@protocol KWMatching; +@protocol KWReporting; + +@interface KWMatchVerifier : NSObject + +#pragma mark - Properties + +@property (nonatomic, readonly) KWExpectationType expectationType; + +@property (nonatomic, readonly) KWMatcherFactory *matcherFactory; +@property (nonatomic, readonly) id reporter; + +@property (nonatomic, strong) id subject; + + +#pragma mark - Initializing + +- (id)initForShouldWithCallSite:(KWCallSite *)aCallSite matcherFactory:(KWMatcherFactory *)aMatcherFactory reporter:(id)aReporter; +- (id)initForShouldNotWithCallSite:(KWCallSite *)aCallSite matcherFactory:(KWMatcherFactory *)aMatcherFactory reporter:(id)aReporter; +- (id)initWithExpectationType:(KWExpectationType)anExpectationType callSite:(KWCallSite *)aCallSite matcherFactory:(KWMatcherFactory *)aMatcherFactory reporter:(id)aReporter; + ++ (id)matchVerifierWithExpectationType:(KWExpectationType)anExpectationType callSite:(KWCallSite *)aCallSite matcherFactory:(KWMatcherFactory *)aMatcherFactory reporter:(id)aReporter; + +- (void)verifyWithMatcher:(id)aMatcher; + +@end diff --git a/Pods/Kiwi/Classes/Verifiers/KWMatchVerifier.m b/Pods/Kiwi/Classes/Verifiers/KWMatchVerifier.m new file mode 100644 index 0000000..e90cbec --- /dev/null +++ b/Pods/Kiwi/Classes/Verifiers/KWMatchVerifier.m @@ -0,0 +1,180 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KWMatchVerifier.h" + +#import "KWCallSite.h" +#import "KWExample.h" +#import "KWFailure.h" +#import "KWFormatter.h" +#import "KWInvocationCapturer.h" +#import "KWMatcherFactory.h" +#import "KWReporting.h" +#import "KWStringUtilities.h" +#import "KWWorkarounds.h" +#import "NSInvocation+KiwiAdditions.h" +#import "NSMethodSignature+KiwiAdditions.h" + +@interface KWMatchVerifier() + +#pragma mark - Properties + +@property (nonatomic, readwrite, strong) id endOfExampleMatcher; +@property (nonatomic, readwrite, strong) id matcher; +@property (nonatomic, readwrite, strong) KWExample *example; + +@property (nonatomic, strong) KWCallSite *callSite; + +@end + +@implementation KWMatchVerifier + +#pragma mark - Initializing + +- (id)initForShouldWithCallSite:(KWCallSite *)aCallSite matcherFactory:(KWMatcherFactory *)aMatcherFactory reporter:(id)aReporter { + return [self initWithExpectationType:KWExpectationTypeShould callSite:aCallSite matcherFactory:aMatcherFactory reporter:aReporter]; +} + +- (id)initForShouldNotWithCallSite:(KWCallSite *)aCallSite matcherFactory:(KWMatcherFactory *)aMatcherFactory reporter:(id)aReporter { + return [self initWithExpectationType:KWExpectationTypeShouldNot callSite:aCallSite matcherFactory:aMatcherFactory reporter:aReporter]; +} + +- (id)initWithExpectationType:(KWExpectationType)anExpectationType callSite:(KWCallSite *)aCallSite matcherFactory:(KWMatcherFactory *)aMatcherFactory reporter:(id)aReporter { + self = [super init]; + if (self) { + _expectationType = anExpectationType; + _callSite = aCallSite; + _matcherFactory = aMatcherFactory; + _reporter = aReporter; + _example = (KWExample *)aReporter; + } + + return self; +} + ++ (id)matchVerifierWithExpectationType:(KWExpectationType)anExpectationType callSite:(KWCallSite *)aCallSite matcherFactory:(KWMatcherFactory *)aMatcherFactory reporter:(id)aReporter { + return [[self alloc] initWithExpectationType:anExpectationType callSite:aCallSite matcherFactory:aMatcherFactory reporter:aReporter]; +} + + +- (NSString *)descriptionForAnonymousItNode { + NSString *typeString = @""; + + switch (self.expectationType) { + case KWExpectationTypeShould: + typeString = @"should"; + break; + case KWExpectationTypeShouldNot: + typeString = @"should not"; + } + id actualMatcher = (self.endOfExampleMatcher == nil) ? self.matcher : self.endOfExampleMatcher; + return [NSString stringWithFormat:@"%@ %@", typeString, actualMatcher]; +} + +#pragma mark - Verifying + +- (void)verifyWithMatcher:(id)aMatcher { + BOOL specFailed = NO; + NSString *failureMessage = nil; + + @try { + BOOL matchResult = [aMatcher evaluate]; + + if (self.expectationType == KWExpectationTypeShould && !matchResult) { + failureMessage = [aMatcher failureMessageForShould]; + specFailed = YES; + + } else if (self.expectationType == KWExpectationTypeShouldNot && matchResult) { + failureMessage = [aMatcher failureMessageForShouldNot]; + specFailed = YES; + } + } @catch (NSException *exception) { + failureMessage = [exception description]; + specFailed = YES; + } + @finally { + if (specFailed) { + KWFailure *failure = [KWFailure failureWithCallSite:self.callSite message:failureMessage]; + [self.reporter reportFailure:failure]; + } + } +} + +#pragma mark - Ending Examples + +- (void)exampleWillEnd { + if (self.endOfExampleMatcher) { + [self verifyWithMatcher:self.endOfExampleMatcher]; + } +} + +#pragma mark - Handling Invocations + +- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector { + NSMethodSignature *signature = [super methodSignatureForSelector:aSelector]; + + if (signature != nil) + return signature; + + signature = [self.matcherFactory methodSignatureForMatcherSelector:aSelector]; + + if (signature != nil) + return signature; + + // Return a dummy method signature so that problems can be handled in + // -forwardInvocation:. + NSString *encoding = KWEncodingForDefaultMethod(); + return [NSMethodSignature signatureWithObjCTypes:[encoding UTF8String]]; +} + +- (void)forwardInvocation:(NSInvocation *)anInvocation { +#if KW_TARGET_HAS_INVOCATION_EXCEPTION_BUG + @try { +#endif // #if KW_TARGET_HAS_INVOCATION_EXCEPTION_BUG + + self.matcher = (id)[self.matcherFactory matcherFromInvocation:anInvocation subject:self.subject]; + + if (self.matcher == nil) { + KWFailure *failure = [KWFailure failureWithCallSite:self.callSite format:@"could not create matcher for -%@", + NSStringFromSelector(anInvocation.selector)]; + [self.reporter reportFailure:failure]; + } + + if (self.expectationType == KWExpectationTypeShouldNot && [self.matcher respondsToSelector:@selector(setWillEvaluateAgainstNegativeExpectation:)]) { + [self.matcher setWillEvaluateAgainstNegativeExpectation:YES]; + } + + if (self.example.unresolvedVerifier == self) { + self.example.unresolvedVerifier = nil; + } + + [anInvocation invokeWithTarget:self.matcher]; + +#if KW_TARGET_HAS_INVOCATION_EXCEPTION_BUG + // A matcher might have set an exception within the -invokeWithTarget, so + // raise if one was set. + NSException *exception = KWGetAndClearExceptionFromAcrossInvocationBoundary(); + [exception raise]; +#endif // #if KW_TARGET_HAS_INVOCATION_EXCEPTION_BUG + + if ([self.matcher respondsToSelector:@selector(shouldBeEvaluatedAtEndOfExample)] && [self.matcher shouldBeEvaluatedAtEndOfExample]) { + self.endOfExampleMatcher = self.matcher; + self.matcher = nil; + } + else { + [self verifyWithMatcher:self.matcher]; + } + +#if KW_TARGET_HAS_INVOCATION_EXCEPTION_BUG + } @catch (NSException *exception) { + KWFailure *failure = [KWFailure failureWithCallSite:self.callSite format:[exception reason]]; + [self.reporter reportFailure:failure]; + return; + } +#endif // #if KW_TARGET_HAS_INVOCATION_EXCEPTION_BUG +} + +@end diff --git a/Pods/Kiwi/Classes/Verifiers/KWVerifying.h b/Pods/Kiwi/Classes/Verifiers/KWVerifying.h new file mode 100644 index 0000000..d26d3bc --- /dev/null +++ b/Pods/Kiwi/Classes/Verifiers/KWVerifying.h @@ -0,0 +1,25 @@ +// +// Licensed under the terms in License.txt +// +// Copyright 2010 Allen Ding. All rights reserved. +// + +#import "KiwiConfiguration.h" + +@class KWCallSite; + +@protocol KWVerifying + +@property (nonatomic, readonly) KWCallSite *callSite; + +- (NSString *)descriptionForAnonymousItNode; + +#pragma mark - Subjects + +@property (nonatomic, strong) id subject; + +#pragma mark - Ending Examples + +- (void)exampleWillEnd; + +@end diff --git a/Pods/Kiwi/License.txt b/Pods/Kiwi/License.txt new file mode 100644 index 0000000..5591081 --- /dev/null +++ b/Pods/Kiwi/License.txt @@ -0,0 +1,27 @@ +Copyright (c) 2010, Allen Ding +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. + +3. Neither the name of Allen Ding nor the names of any contributors may be +used to endorse or promote products derived from this software without specific +prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/Pods/Kiwi/Readme.md b/Pods/Kiwi/Readme.md new file mode 100644 index 0000000..a3d258f --- /dev/null +++ b/Pods/Kiwi/Readme.md @@ -0,0 +1,39 @@ +# Simple BDD for iOS +[![Build Status](https://travis-ci.org/kiwi-bdd/Kiwi.svg?branch=master)](https://travis-ci.org/kiwi-bdd/Kiwi) + +Kiwi is a Behavior Driven Development library for iOS development. +The goal is to provide a BDD library that is exquisitely simple to setup and use. + +## Why? +The idea behind Kiwi is to have tests that are more readable than what is possible with the bundled test framework. + +Tests (or rather specs) are written in Objective-C and run within the comfort of Xcode to provide a test environment that is as unobtrusive and seamless as possible in terms of running tests and error reporting. + +Specs look like this: + +```objective-c +describe(@"Team", ^{ + context(@"when newly created", ^{ + it(@"should have a name", ^{ + id team = [Team team]; + [[team.name should] equal:@"Black Hawks"]; + }); + + it(@"should have 11 players", ^{ + id team = [Team team]; + [[[team should] have:11] players]; + }); + }); +}); +``` + +## Documentation +The [Kiwi Wiki](https://github.com/kiwi-bdd/Kiwi/wiki) is the official documentation source. + +## Getting it +The best way to get Kiwi is by using [CocoaPods](https://github.com/cocoapods/cocoapods). +For all the installation details, check out the [Wiki](https://github.com/kiwi-bdd/Kiwi/wiki) + +## Support +For all the questions / suggestions you have, that aren't bug reports please use our [Google Group](https://groups.google.com/forum/#!forum/kiwi-bdd) + diff --git a/Pods/Local Podspecs/TransitionKit.podspec.json b/Pods/Local Podspecs/TransitionKit.podspec.json new file mode 100644 index 0000000..90615d8 --- /dev/null +++ b/Pods/Local Podspecs/TransitionKit.podspec.json @@ -0,0 +1,20 @@ +{ + "name": "TransitionKit", + "version": "2.2.2", + "license": "Apache2", + "summary": "A block-based State Machine API for Objective-C.", + "homepage": "https://github.com/blakewatters/TransitionKit", + "authors": { + "Blake Watters": "blakewatters@gmail.com" + }, + "source": { + "git": "https://github.com/blakewatters/TransitionKit.git", + "tag": "2.2.2" + }, + "source_files": "Code", + "requires_arc": true, + "platforms": { + "ios": "6.0", + "osx": "10.7" + } +} diff --git a/Pods/Manifest.lock b/Pods/Manifest.lock new file mode 100644 index 0000000..75d8275 --- /dev/null +++ b/Pods/Manifest.lock @@ -0,0 +1,19 @@ +PODS: + - Kiwi (2.3.1) + - TransitionKit (2.2.2) + +DEPENDENCIES: + - Kiwi (~> 2.3.0) + - TransitionKit (from `.`) + +EXTERNAL SOURCES: + TransitionKit: + :path: "." + +SPEC CHECKSUMS: + Kiwi: f038a6c61f7a9e4d7766bff5717aa3b3fdb75f55 + TransitionKit: 19d0306ff077193330e9541a0fe83a1b9d60b51a + +PODFILE CHECKSUM: 9d722f9d462a2ecbe03c5482c8efe2da293aec9c + +COCOAPODS: 1.2.0 diff --git a/Pods/Pods.xcodeproj/project.pbxproj b/Pods/Pods.xcodeproj/project.pbxproj new file mode 100644 index 0000000..3b01c7a --- /dev/null +++ b/Pods/Pods.xcodeproj/project.pbxproj @@ -0,0 +1,2122 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 010E6BB736F19FD1AA6971F50607F393 /* KWEqualMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 6918A19DC1D5CAE9508F3926F0CA0D94 /* KWEqualMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 0180AE619D2E90A7B91EC63F3E71FFB0 /* KWAfterAllNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 616DEFC59352FFC06ED487243FFF6B21 /* KWAfterAllNode.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 0182489055E1268F25E8B603C6CC7597 /* KWContainStringMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 37076C5802E00623594BAE04318D8D4E /* KWContainStringMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 02C83D2F844269B5C60A732CCE33ACCF /* KWReceiveMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = E9A767EE0FEFAF78C2DE1FC493B51227 /* KWReceiveMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 03594326A541A67C41C740BEC2A03D2B /* KWUserDefinedMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 4D7C88351B49C622BAF0DC4C9B90F767 /* KWUserDefinedMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 0457C2027603717E8E3817938414A56C /* KWMessageTracker.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A8586A48B0A358C7103C4922AC7B380 /* KWMessageTracker.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 05AC39DE095A5A0E274DA7A45BFEA8D8 /* KWExampleNodeVisitor.h in Headers */ = {isa = PBXBuildFile; fileRef = 212D76EA5FA339A0C58D61F208F6EA66 /* KWExampleNodeVisitor.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 064DFC59E321508CDD171A395218CAE6 /* KWInequalityMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = FB12994D3EF0E8618DFD72B113CE6FDD /* KWInequalityMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 065051075100D0622D41AFC30C960AE9 /* KWProbePoller.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E9D87D62E79368CCD6684A9FF4355BF /* KWProbePoller.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 06C6EF9FC3A32A2B75836DDB78F4A6B9 /* KWRespondToSelectorMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 5304A5F95231E220F6E93622A05954C8 /* KWRespondToSelectorMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 07259889701A4569A51688AFCBB91BB5 /* KWMatcherFactory.h in Headers */ = {isa = PBXBuildFile; fileRef = DC07648E71560AA3BF5E8BD9F4C528A8 /* KWMatcherFactory.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0736EB85307DA8EA09963FA2B7D3FD98 /* KWHaveValueMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = B56D5211DEC0FC63EF4667A7441FAE76 /* KWHaveValueMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 07736F2821DD4EAE940D2E4D6BD53EE5 /* KWSuiteConfigurationBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 19B4F9E95D59C44F83433C051B8360E0 /* KWSuiteConfigurationBase.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 077B3FEF98F626A415ED234B67647815 /* KWCallSite.h in Headers */ = {isa = PBXBuildFile; fileRef = 2E862E7F777D7FF09F2CFC5DFA8CB14F /* KWCallSite.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 07A8C5B470C45BE1DFE22008301A1820 /* Kiwi.h in Headers */ = {isa = PBXBuildFile; fileRef = 43FEA8C258296A47215FA1418AC340E5 /* Kiwi.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 07AF7694FE6381334D06320D73266F5E /* KWMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 2ACAFC3703DEE3F72D38ADED35EB11A7 /* KWMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 07C054A878BF24B1EB65587189D5A9EC /* KWObjCUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = E3EFEE43F7D968D5C20954859E6D98A3 /* KWObjCUtilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0A5C86B31F2F48AC636D9D583FC959E1 /* KWCallSite.m in Sources */ = {isa = PBXBuildFile; fileRef = 17E094ECF9B0E4DFC3FBAD5C205A19DD /* KWCallSite.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 0A7324E8B1ADA246A24826AE05909542 /* KWBeforeAllNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 3E95B982DF325EDFC5857FC3AE79ACB6 /* KWBeforeAllNode.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 0AFB0088768E7BA2305CF207773375A7 /* KWInvocationCapturer.h in Headers */ = {isa = PBXBuildFile; fileRef = 4CAB5D796FF6822200772634A39EEEDD /* KWInvocationCapturer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0B4768417E50F9A26B323C35500D86CE /* TKTransition.m in Sources */ = {isa = PBXBuildFile; fileRef = AF2E9FB8B7A08C2681DFBE771F6DDD64 /* TKTransition.m */; }; + 0C57509F151321562E40A3E37E5AFE8A /* KWBeZeroMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 6DBEBCBD3DECBF4556D3375E80FDE35F /* KWBeZeroMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0D8759AA1745E9406024472541F0B2E5 /* KWMatching.h in Headers */ = {isa = PBXBuildFile; fileRef = 0A45858C5D1F13CFB7E9D72A1DC37F0C /* KWMatching.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0D8FDEE95ED55B98DCE99F5861BC13D5 /* NSNumber+KiwiAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F9F719B5BBCE9382930036499525B39 /* NSNumber+KiwiAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0EDA1A0555848448D20EF0727A7204F4 /* KWGenericMatchingAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = DDD467069D9324A4453D8C98B781B720 /* KWGenericMatchingAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 0F58C42E578263774D5766FB45CCB7C0 /* KWMessagePattern.m in Sources */ = {isa = PBXBuildFile; fileRef = 059420CE8C1DC29FD9EE1B1B2A3E0335 /* KWMessagePattern.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 0F788A212C951290F031D4235FFCF169 /* KiwiBlockMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = A9099286068F40F2D5B95BEB6A0C4CAB /* KiwiBlockMacros.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0FC35F4CD100ED99A9A6F395ADA63C5D /* KWNotificationMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = FAFEF33D625201A59D46CB32EB4A3A8F /* KWNotificationMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1006C13EE31E4963A17BE01EB0E13CBE /* KWBeWithinMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 6BFE0CAE805CF54C07E3BF863F446C61 /* KWBeWithinMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 11A86D103E58377BB99304DD1C66F913 /* KWNilMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 57D0C1D91B37A359DAA73D15AD96586A /* KWNilMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 120305E4CF371CC596589397046E0B5E /* KWSuiteConfigurationBase.m in Sources */ = {isa = PBXBuildFile; fileRef = 5AE7ADADCD07B566FCC1A7ABDDC56F7B /* KWSuiteConfigurationBase.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 12087973B84C90C596E15A4308C842AE /* KWCallSite.h in Headers */ = {isa = PBXBuildFile; fileRef = 2E862E7F777D7FF09F2CFC5DFA8CB14F /* KWCallSite.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 12B26F5CFCD18C0C292C58358E7BE1C4 /* KWMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = FCFA5EE0ED967CD54CA824E8C49A5946 /* KWMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 14A33FDBE96191797350BABD61FC951C /* NSProxy+KiwiVerifierAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 0C649F57F3B4C015E10DFD233992CE16 /* NSProxy+KiwiVerifierAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 14F8A068C1FFD00BFA43B01EA2151285 /* KWStringUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 5B6C76352971E8DC93F728CFCDFE9D78 /* KWStringUtilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 15B0D250017BEC1E777E2939C086AA6F /* KWAsyncVerifier.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B960BA95F7E2372382893C73E851C5F /* KWAsyncVerifier.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 163C5C54F9314B54F27B594C13C5EA08 /* KWLetNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 670B20674A4437F828F4026CA8033171 /* KWLetNode.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 176377C673DF7B6E599A75B48411038A /* NSObject+KiwiSpyAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D1FCCBF683DDBBAE6848A5DE33F64A3 /* NSObject+KiwiSpyAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 1794ABAF0F88A86238A7AA7216AFA4F4 /* KWSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 9E9FB4F5D8ABF9DBB05D40B9E4D350E6 /* KWSpec.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 17A9E6B6973DF83511FD248C84D4D66B /* KWAfterAllNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 0ECFB18D1A19B589397B6D18E4E5A21C /* KWAfterAllNode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 17B89913A1017928C114BF422BDD92F6 /* KWMessagePattern.h in Headers */ = {isa = PBXBuildFile; fileRef = A2F96CE5DC0D8EC6DEDBE2259FA0BE65 /* KWMessagePattern.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 184C04FC32A8440A6CBFB64BE5902836 /* KWFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = 2D7DCCB27760A04D2768AB68AE1363A3 /* KWFormatter.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 199531462ED7392ECB467A508260B8CD /* KWUserDefinedMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = D8E9B5260480E4EA7ED06C6BEE15DF56 /* KWUserDefinedMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 19E3B453EE107807D771EF4BA635924E /* KWChangeMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 78E2ABB82E91C9992234960DD027F1B1 /* KWChangeMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1AF51D75CF9F028C286AF174B67EED83 /* NSInvocation+KiwiAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 847D05418B5B6F10CABA60007ADBCB40 /* NSInvocation+KiwiAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 1BD562AF8A49A4267C032A061DC7D501 /* KWInvocationCapturer.m in Sources */ = {isa = PBXBuildFile; fileRef = 82C58D345F3385EE526EB9E6093F4A9B /* KWInvocationCapturer.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 1D07490EEDA918C13F48243D534C577F /* KWLet.h in Headers */ = {isa = PBXBuildFile; fileRef = C11BE1F6B5286EE0E9399EFAEC329D45 /* KWLet.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1D1CC5F432C0EBB23070C2803A949F88 /* NSObject+KiwiSpyAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 2CE74D52AD87FC18362A0D06C0DB71B2 /* NSObject+KiwiSpyAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1E8D5F5BEBCB64B1B278C0FE4B8E599A /* KWIntercept.h in Headers */ = {isa = PBXBuildFile; fileRef = 5105ED7F6D13025869962A50A6635F3B /* KWIntercept.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1F2DBF32F1A551D7A40AEE4B8F8A44CE /* KWInvocationCapturer.m in Sources */ = {isa = PBXBuildFile; fileRef = 82C58D345F3385EE526EB9E6093F4A9B /* KWInvocationCapturer.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 1F60FEEE4A56F6FFEB3380B4BB37481A /* KWBeSubclassOfClassMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 2C8C3A6BE1E5DCEACB92D753366DF758 /* KWBeSubclassOfClassMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1FF0F25721F5FFFBAAA4030395FEE587 /* KWRegularExpressionPatternMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = E5C056310DD25611B55920F706F9A023 /* KWRegularExpressionPatternMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 207CB6B45DEE6B1591DAF3A982C2A3BE /* KWBeEmptyMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 541F3BE533709B3274E60136132AFD18 /* KWBeEmptyMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 2187C0D534B6141302799E48D8258614 /* NSObject+KiwiSpyAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D1FCCBF683DDBBAE6848A5DE33F64A3 /* NSObject+KiwiSpyAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 22F694957C2F5E11888A947161C9A9A9 /* KWBeBetweenMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 643D7C56E967BA3D7E131EA1BBB094D7 /* KWBeBetweenMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2363BF3A7F0820D9CAD9935AFD60CB67 /* TKEvent.m in Sources */ = {isa = PBXBuildFile; fileRef = EF9DEC550C5A27F945AFE8A095175528 /* TKEvent.m */; }; + 23FB7A13BF35BF4CDACCA9470EFE1152 /* KiwiConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = A7EE6629E43BB2D68A69F97133AEC45E /* KiwiConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 24AFF5156DCB19C96AB91DBCCD2395E7 /* KWBeBetweenMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CC9A6D18B5072D2DF0B38DA413C1A78 /* KWBeBetweenMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 24F4268F620C3FB4D34A69424865D045 /* NSMethodSignature+KiwiAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = E25E46EAB69062E09638D06EB1EFCD4B /* NSMethodSignature+KiwiAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 25378B5EE43F5602BB752B66AC5D81DE /* KWProbePoller.m in Sources */ = {isa = PBXBuildFile; fileRef = E044190493CF6FB17C083B26DDDC24D2 /* KWProbePoller.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 255F6FA56C4EA4AA7FF705725A49E14A /* KWStringUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 5B6C76352971E8DC93F728CFCDFE9D78 /* KWStringUtilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 25E1D66190691CA88C9404DA67132F4F /* KWProbePoller.m in Sources */ = {isa = PBXBuildFile; fileRef = E044190493CF6FB17C083B26DDDC24D2 /* KWProbePoller.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 25F0BB238FE4AA445A2CBB55E96E77E4 /* KWStringContainsMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = E85547003C04A12B37AB4713D4AC488F /* KWStringContainsMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 25F5DCB8CF476D9F62F65F7EABEA94D9 /* KWFutureObject.h in Headers */ = {isa = PBXBuildFile; fileRef = F6DD37FDB7E373823C221B489E7DC4B9 /* KWFutureObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 263F1EA736C06F512CE2733A5949BBDE /* KWExample.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E9C00C464746D026083FA7E144C708F /* KWExample.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 28BFF4C1807BBADD10B1306DBC544B60 /* KWBeMemberOfClassMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 294D205727AABFE5EFA3ECAAC1FC56ED /* KWBeMemberOfClassMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 2A523772E71CAC21E57D51B0766BDD1F /* KWRespondToSelectorMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 148C2542C42112ED2D7CB15FE8831AE1 /* KWRespondToSelectorMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2A6D59BAABE9035419752723266424D6 /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1CC7333B171173016282DC518E43F3F0 /* XCTest.framework */; }; + 2CC4E2A0D33DDD8E62D6BB1ADA595870 /* KWMessagePattern.h in Headers */ = {isa = PBXBuildFile; fileRef = A2F96CE5DC0D8EC6DEDBE2259FA0BE65 /* KWMessagePattern.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2DBD3520B7BDC713252E376AEA5AED98 /* KWRegisterMatchersNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 65F128845017C1E79C0EA03F9F3BCBF7 /* KWRegisterMatchersNode.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 2DFB76A817F3A39FA5797BC5EA4A0398 /* KWHaveValueMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 94F563A02CDEC9274FCA4DB421D4BC73 /* KWHaveValueMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2EA04A056D6EF1EE32476FB599104C50 /* KWMatchVerifier.m in Sources */ = {isa = PBXBuildFile; fileRef = 22A3F9B97668DEDE95EA01736E9F652E /* KWMatchVerifier.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 2F3189D678A5DFE31B5AEEC217EFF916 /* KWBeMemberOfClassMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 294D205727AABFE5EFA3ECAAC1FC56ED /* KWBeMemberOfClassMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 2F70B54DFC18341F899CCA31548F3438 /* KWExample.m in Sources */ = {isa = PBXBuildFile; fileRef = B07A9E216C297461B3F7B35F32D049AF /* KWExample.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 2F94180B86ED7E8CC2EC505934C19321 /* KWFailure.m in Sources */ = {isa = PBXBuildFile; fileRef = 92EEA89B422A33F3B2D62457F182A99E /* KWFailure.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 2FDB3E734F0D46DDEB5EDDA85A536669 /* KWBeBetweenMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CC9A6D18B5072D2DF0B38DA413C1A78 /* KWBeBetweenMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 30C90896AC3F8EA88039851F56728FC5 /* KWChangeMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = ACA878E9592C301AB401C38EF55E4A33 /* KWChangeMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 32343DCFF9A443C585D502CCE7AAD820 /* NSInvocation+KiwiAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = EEB8D19562B679A83C28687DEE1E7BEC /* NSInvocation+KiwiAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 32B39D8A87B0D152D95BBC0D4A097A02 /* KWContainStringMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 2863C373DB49AB3F8C8E423F51C863AE /* KWContainStringMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 32E1A9B3D6CC5F39416FDAE65B1D5C4E /* KWExampleDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 7BA6032F0844756BD46A7E8079D19AC3 /* KWExampleDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 32F01D97F4820974B545C04454F050BB /* KWStringPrefixMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D6ED896B521357E09A4062C09A66CE3 /* KWStringPrefixMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 334793C23533175664D28D90BB96C472 /* KWInequalityMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = FB12994D3EF0E8618DFD72B113CE6FDD /* KWInequalityMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 343AEF850A376878D228948B34F45423 /* KWInequalityMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 06562BE430DC665872475BE5B5175D0B /* KWInequalityMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 350000C5F9112FA7EBF3736470F22D20 /* KWGenericMatchEvaluator.h in Headers */ = {isa = PBXBuildFile; fileRef = 250EBC95B13ABC459B6B8EABD7448826 /* KWGenericMatchEvaluator.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 35DC16E86C84712DA480EE95842D9578 /* KWMatcherFactory.m in Sources */ = {isa = PBXBuildFile; fileRef = 8BEF8601DBDFF67698C86A7465D0DE6D /* KWMatcherFactory.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 368FB1A1E3900230800B77A71E207F17 /* KWStub.h in Headers */ = {isa = PBXBuildFile; fileRef = D98B4B3B4B36CF2D79CA727DAC03DA3B /* KWStub.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 373EB0ED4BC5B0ADAD3E66B8A629C053 /* KWExampleSuiteBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 90B84A9B0042A11B9E60703C9E586918 /* KWExampleSuiteBuilder.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 3778FA0F845FD93630DFE40349EAEBCD /* KWReporting.h in Headers */ = {isa = PBXBuildFile; fileRef = D604F15564BCC64E0D54F6EAC5AE0C78 /* KWReporting.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 37D08572CF57EAB6A0560E4C43875513 /* KWMessageTracker.h in Headers */ = {isa = PBXBuildFile; fileRef = 975A571B9E39A04BB66BECB12B3324D3 /* KWMessageTracker.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3811FB7DA3CAD250353AF5788D2B9976 /* KWNull.m in Sources */ = {isa = PBXBuildFile; fileRef = FA42334A250A8C547004751E11857E1B /* KWNull.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 38E26EF1D335A29D9426061FA3D8F68E /* NSInvocation+OCMAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 69508E0AF28F70BAB3C98863761ED848 /* NSInvocation+OCMAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3AE863BE836C5B87376F36C59ED70362 /* KWBlock.m in Sources */ = {isa = PBXBuildFile; fileRef = EE46777CFFF114CB04E87C56B4AD171C /* KWBlock.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 3B0DD47F194CB0EB08F47E96B0FC5F53 /* KWBeZeroMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 6D7C527685C98ACE3FE01EE25379EE76 /* KWBeZeroMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 3B28CD5909A2F25107F1B673C91B4FED /* NSObject+KiwiStubAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = F44D64D96339AB0F279947116D802AC9 /* NSObject+KiwiStubAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3C8591E2B0740AF80D9A782628EC5ACD /* KWExpectationType.h in Headers */ = {isa = PBXBuildFile; fileRef = E922B62B6EC20FE76AB93A12DAE45D6D /* KWExpectationType.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3D52A2715B20DEEE437D0B2022C106D7 /* KWBeforeEachNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 35A7A4DC14FDD71920BF9A2DFED5A026 /* KWBeforeEachNode.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 3D5C8CDA447DD3056C7B77865FC14A27 /* NSInvocation+KiwiAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 847D05418B5B6F10CABA60007ADBCB40 /* NSInvocation+KiwiAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 3D6D5EB8713C4127E1524C6F35174F5D /* KWSymbolicator.m in Sources */ = {isa = PBXBuildFile; fileRef = B4D2C9D0CB170604E6F9200C03CA1D9A /* KWSymbolicator.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 3DBEAB200D573DBA1B571760D430DD80 /* TKTransition.h in Headers */ = {isa = PBXBuildFile; fileRef = B4A02E00A9BA3C496659704D483248DB /* TKTransition.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3E72BBD8E58BD109BB80145B8F9C1178 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C03EA831D91AD195092236D7BB777AB9 /* Foundation.framework */; }; + 3EFB5FF1FE90FD0797A62C0DE3A8F37A /* KWBeIdenticalToMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 91102A88506DBDC6287A88895B888BDB /* KWBeIdenticalToMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3F55B1ACA6108E90D02D53410A75EE08 /* KWExistVerifier.m in Sources */ = {isa = PBXBuildFile; fileRef = 489C1906472A7F4CB9FE8902259892E0 /* KWExistVerifier.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 3FA153D99DA1B3D9FE6CC640BB4D4EDA /* KWMessageSpying.h in Headers */ = {isa = PBXBuildFile; fileRef = 69DA46C17E7EB139FD868FF009783CED /* KWMessageSpying.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3FDB5E494C3CC94F807A44D1E805580F /* KWCaptureSpy.h in Headers */ = {isa = PBXBuildFile; fileRef = EFDDEBEB2F897787179080F5CE50DBEF /* KWCaptureSpy.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3FFEA4F8AB525AB868D8AEB07EA8C03B /* KWCallSite.m in Sources */ = {isa = PBXBuildFile; fileRef = 17E094ECF9B0E4DFC3FBAD5C205A19DD /* KWCallSite.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 413BBA7435EE7E6A44339130DF646662 /* KWBeTrueMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 1AD1B970493E965C8223D04338FA580E /* KWBeTrueMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 42670A829613D5692FAF2AA60F091C46 /* TKState.h in Headers */ = {isa = PBXBuildFile; fileRef = 393F94421B8F85C548119F76EE48452F /* TKState.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 42F564AFCE5F1C28581F7541F49464E8 /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1390E56741A21D7304092F55FCB26EBB /* XCTest.framework */; }; + 4369473C30925D7FC329DC6613E7B844 /* KWDeviceInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 568BAD5CD52E19264F45E0E0381DA0FD /* KWDeviceInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 44A9B6C3D312821713F24E5AEEEE487B /* KWChangeMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 78E2ABB82E91C9992234960DD027F1B1 /* KWChangeMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 452A0F9169C2A6E0108FE9093CEABBA7 /* KWExpectationType.h in Headers */ = {isa = PBXBuildFile; fileRef = E922B62B6EC20FE76AB93A12DAE45D6D /* KWExpectationType.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 45C0528F6511722C7817F9A7C61CED55 /* NSMethodSignature+KiwiAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 2B07F535CD9693EE287B474286083A2C /* NSMethodSignature+KiwiAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 4633DFE9D741A82F21FDE5EA4A253AB4 /* NSProxy+KiwiVerifierAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = AEEAFD580CA92BE681F25B01C0A8AD08 /* NSProxy+KiwiVerifierAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4660CC5CF74FE66DC3A2896CE2DBCCCC /* KWContextNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C892E8DBF96E3993B73DC024F824CBA /* KWContextNode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 47CC1D8B07476B9A94E153C11972949A /* KWAfterAllNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 0ECFB18D1A19B589397B6D18E4E5A21C /* KWAfterAllNode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 47DAEBE3B4A192BD969FF0A68F5AB87E /* KWMessageSpying.h in Headers */ = {isa = PBXBuildFile; fileRef = 69DA46C17E7EB139FD868FF009783CED /* KWMessageSpying.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 48753BC1F64DEE0D552ABC844596DCB8 /* KWBlockRaiseMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = D5A2992D992C249872890F4DBBE4FD5E /* KWBlockRaiseMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 489C4CB4B9CB7EAF81919ACD0E21C0C7 /* KWHaveValueMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 94F563A02CDEC9274FCA4DB421D4BC73 /* KWHaveValueMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 48EFC34AF677FEF893B91E4E3A47A160 /* KWGenericMatchEvaluator.m in Sources */ = {isa = PBXBuildFile; fileRef = 7FBBDCBAA6261E65D006B972D25D28A1 /* KWGenericMatchEvaluator.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 4943B7B672CF83DAC3B57DA7300AD2FD /* KWSuiteConfigurationBase.m in Sources */ = {isa = PBXBuildFile; fileRef = 5AE7ADADCD07B566FCC1A7ABDDC56F7B /* KWSuiteConfigurationBase.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 49BDD0814A5D76AD8672C24A6F454255 /* Kiwi-iOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 669C539461364A09713D2166205A32A6 /* Kiwi-iOS-dummy.m */; }; + 4BF9A49D3238D0B17FA44DA696BAE87E /* KWBeIdenticalToMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = FF807698AD6A9FB090E1D13BE0625829 /* KWBeIdenticalToMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 4CD35007C025B3ADBF19AD6A2D82F9FC /* KWBeZeroMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 6D7C527685C98ACE3FE01EE25379EE76 /* KWBeZeroMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 4D4263653D1578E9DD609AA83DAF2FA0 /* NSObject+KiwiVerifierAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 2875B32C66DD81C46D31A653122995FA /* NSObject+KiwiVerifierAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4D7BABDFF3502395337D7B89B981C737 /* KWMock.h in Headers */ = {isa = PBXBuildFile; fileRef = A2432F14B5A93B3E4A832E863EC8D274 /* KWMock.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4E1E6454654322B99E9F6DD078F89FDF /* KWValue.m in Sources */ = {isa = PBXBuildFile; fileRef = 9263A3870C29E2DCB5D42C6C30E7ED74 /* KWValue.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 4E4F84A5E2B65ED09DF73F7433EFAC6D /* KWHaveValueMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = B56D5211DEC0FC63EF4667A7441FAE76 /* KWHaveValueMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 4F017117CCAE45745B586319AE73E50A /* KWFutureObject.h in Headers */ = {isa = PBXBuildFile; fileRef = F6DD37FDB7E373823C221B489E7DC4B9 /* KWFutureObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4F1470FBFDBF19386FFFD70D5AC1C0BF /* KWVerifying.h in Headers */ = {isa = PBXBuildFile; fileRef = F7CDBCCA2EF3A6B79094328F2563D194 /* KWVerifying.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 527BC36A14FB8839C65378AA9BC15FE7 /* KWMatchVerifier.h in Headers */ = {isa = PBXBuildFile; fileRef = EA432EC6DB6F989648B12DFC16438C9E /* KWMatchVerifier.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5307061923E305D92977DFB521411996 /* TKTransition.h in Headers */ = {isa = PBXBuildFile; fileRef = B4A02E00A9BA3C496659704D483248DB /* TKTransition.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 53EC4E1B850078B4554A9ACFBC649EAE /* KWBlockNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 351A65F768811A66D14252F4360E6C9C /* KWBlockNode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 547A077A9E6178D9598C300FFF151CF5 /* KWWorkarounds.m in Sources */ = {isa = PBXBuildFile; fileRef = D6823D61CF304E54C491F5960BAA58F6 /* KWWorkarounds.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 54C9F208DDD22272E417F6D2935FA13D /* KWBlockRaiseMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BF0DCD2266DE17DB603E6DBF522F0BD /* KWBlockRaiseMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 5513F143E495B60C4151D3BB69D6B603 /* KWMatchers.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C970E9FDC8AA8D6B5FE73B21B5F8F38 /* KWMatchers.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 56332351EBE74D01ED8CC3FC0F51BB9A /* KWWorkarounds.h in Headers */ = {isa = PBXBuildFile; fileRef = E6CFB6229102ACF8C2F1199E7D42D7F7 /* KWWorkarounds.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 56939F35513122AE97B870AFC1C1048E /* KWGenericMatchEvaluator.h in Headers */ = {isa = PBXBuildFile; fileRef = 250EBC95B13ABC459B6B8EABD7448826 /* KWGenericMatchEvaluator.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 56CE04A2A0DB0D25F07741B53EDC3B3A /* KWNull.h in Headers */ = {isa = PBXBuildFile; fileRef = 754CFB098670EAE31A27C94634697BD7 /* KWNull.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 578D001781D34D09D1CA3640B9D0611B /* KWGenericMatchingAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = E36378CB9EB76D52E79133F25E22361F /* KWGenericMatchingAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 57ADC789A23CF8819993A17276058A17 /* KWAny.m in Sources */ = {isa = PBXBuildFile; fileRef = 113E1B9BC80A7DEDB2792CCD634B0BD6 /* KWAny.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 5ADD80DBD55A52515824AB01C6E53AA1 /* KiwiConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = A7EE6629E43BB2D68A69F97133AEC45E /* KiwiConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5CB3CD73C17442D5B93C65CBC63FBE0B /* KWExampleNodeVisitor.h in Headers */ = {isa = PBXBuildFile; fileRef = 212D76EA5FA339A0C58D61F208F6EA66 /* KWExampleNodeVisitor.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5E792D390FF798FAB7ECCAAAE27B74A3 /* KWHaveMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 546126E831DA125797DBA34D0B0B15C9 /* KWHaveMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 5EC1A72962E5FA55A9661284A3B908D4 /* KWObjCUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 758113E06C1F73B605A9CF5A2C891A21 /* KWObjCUtilities.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 5F6111D380EAB1851F8C72379CE21459 /* NSNumber+KiwiAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 55C97AE1AB95D9CF6768CE01B9CA68E5 /* NSNumber+KiwiAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 60289A33C1FAACF5E462BD11610B666E /* TransitionKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 23E1571FCA3A6EC612572E670F594659 /* TransitionKit.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6078E16B0A6071359372D547FEEEE8C1 /* KWProbe.h in Headers */ = {isa = PBXBuildFile; fileRef = 0EBBF9946B43D7E71A5F2A438DCB4D4E /* KWProbe.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 608383AE35F5C04B9CE379F7C2EBDC90 /* NSInvocation+OCMAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 69508E0AF28F70BAB3C98863761ED848 /* NSInvocation+OCMAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 61F180750CD0CC25B294AF1E1B0AC0F6 /* Pods-Tests-TransitionKit macOS Tests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = EEE29A800ABF3CF88B82DE34324E8142 /* Pods-Tests-TransitionKit macOS Tests-dummy.m */; }; + 6551A7102EC412B1490DA623AF8A290B /* KWGenericMatchingAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = E36378CB9EB76D52E79133F25E22361F /* KWGenericMatchingAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 664E177BBD81DD36DA3EE35449E33E69 /* NSValue+KiwiAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 72816FA54D8B9194113465674457951E /* NSValue+KiwiAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 670FF3349F3A0F8B4BC8FFBD79ED728D /* KWExampleSuite.h in Headers */ = {isa = PBXBuildFile; fileRef = 21911470869B89C13289979D4BD650AE /* KWExampleSuite.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 67707C8AD544DBE7D724910213337B0E /* KWNilMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 57D0C1D91B37A359DAA73D15AD96586A /* KWNilMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 68574D95A9A19F524770A1DBDF5DA162 /* KWContainStringMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 2863C373DB49AB3F8C8E423F51C863AE /* KWContainStringMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 68762E3951FDE0BAAB1352E021602A09 /* KWAsyncVerifier.m in Sources */ = {isa = PBXBuildFile; fileRef = B34A4A73DC8745B202D4328E9FE95AFF /* KWAsyncVerifier.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 68950F726519CC96F62CFFE951E6FF1F /* KWDeviceInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = E86341347141CDD7F7314BE23137DFF3 /* KWDeviceInfo.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 68E14886EA15A961B9E5E1C48A1569C2 /* TransitionKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 23E1571FCA3A6EC612572E670F594659 /* TransitionKit.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6996F6ABC0EAAA48832A67772A4B9A1B /* KWMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 2ACAFC3703DEE3F72D38ADED35EB11A7 /* KWMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 69D6089949BE0A3DE75639E992F91F1F /* KWBeSubclassOfClassMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = AB59D582F4CF6FC48DB8535B21595281 /* KWBeSubclassOfClassMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 6A069EDBCA03B1DED5820E60E1E7A282 /* NSObject+KiwiMockAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = ED4A9764F248CFF43569FF0BFAB30448 /* NSObject+KiwiMockAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 6A4397DDFF899B88996800D6AAE5AF62 /* NSObject+KiwiVerifierAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 2875B32C66DD81C46D31A653122995FA /* NSObject+KiwiVerifierAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6A6081607281830D99A7B4D526B372E3 /* KWBeforeEachNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 630D678B8DADB0BED7FC51FFFF48924A /* KWBeforeEachNode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6BD79E6BC82865BC909830800D61ADE1 /* KWExampleSuite.m in Sources */ = {isa = PBXBuildFile; fileRef = DCE29C3EEECABA223CE9F305FDB9BE84 /* KWExampleSuite.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 6C74A19A8F09516BE8E4AFD8767C5C45 /* KWExampleSuiteBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F2B9871936398B30FC4361D5A71826A /* KWExampleSuiteBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6CB202C83C6A430CC3340A1BD255299F /* KWBlock.h in Headers */ = {isa = PBXBuildFile; fileRef = 73CC2A29DEABE0D93CDCBA1118E8BD9D /* KWBlock.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6D24CD950686584CE3B77526A8899743 /* KWChangeMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = ACA878E9592C301AB401C38EF55E4A33 /* KWChangeMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 6EDA71F89F776BFCAE7E5B8128D06441 /* KWFutureObject.m in Sources */ = {isa = PBXBuildFile; fileRef = BBAD47D3C57FAA56D76723628BCFD574 /* KWFutureObject.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 6FF09585ED02D77C6FC88049779B98DB /* KWSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 9E9FB4F5D8ABF9DBB05D40B9E4D350E6 /* KWSpec.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 70363D67218718B91DDDA219E55F2CCB /* KWObjCUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = E3EFEE43F7D968D5C20954859E6D98A3 /* KWObjCUtilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 706D9F3638386DF7020D8BE31F4755F2 /* KWBeforeAllNode.h in Headers */ = {isa = PBXBuildFile; fileRef = CFD8CC34D996E6495B03B6DAE579BAFD /* KWBeforeAllNode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7186C5BAC933E94F51870E688C697909 /* TKEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 97F048881AF42E17E7F1E7D6F5F6FE67 /* TKEvent.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 71FEB1523D7BB4BA64B003432E5435CF /* KWExampleSuite.h in Headers */ = {isa = PBXBuildFile; fileRef = 21911470869B89C13289979D4BD650AE /* KWExampleSuite.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7213F8B340E9C93B4CF0F265FB81194D /* KWMatchers.m in Sources */ = {isa = PBXBuildFile; fileRef = 527FB1E1ADF4ECC1E7D0903B9A53620B /* KWMatchers.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 73B78F53F4257DCD329BBE3E02893713 /* KWBeforeAllNode.h in Headers */ = {isa = PBXBuildFile; fileRef = CFD8CC34D996E6495B03B6DAE579BAFD /* KWBeforeAllNode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 73E461FE9027AF117D1D5DFB92AE30DE /* KWBeBetweenMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 643D7C56E967BA3D7E131EA1BBB094D7 /* KWBeBetweenMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7493F85BA7B98488F4EAB8F05005E849 /* KWContainMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = D9444A54A51E466BF711929BEC8EF795 /* KWContainMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7536BC000208B941A15C66D9AC3B844B /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 422FAD60290D2EA7012293B8FDE679F8 /* Cocoa.framework */; }; + 75586CC3ECC4BAF133AA7DF0CAC8A80C /* KWMock.h in Headers */ = {isa = PBXBuildFile; fileRef = A2432F14B5A93B3E4A832E863EC8D274 /* KWMock.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 76403E606476CACF72904984BBCF45A9 /* TKTransition.m in Sources */ = {isa = PBXBuildFile; fileRef = AF2E9FB8B7A08C2681DFBE771F6DDD64 /* TKTransition.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 7769F3ACE46424A17E5894C4AF3B8464 /* KWExampleSuiteBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F2B9871936398B30FC4361D5A71826A /* KWExampleSuiteBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 77FEBA873ADC4E8E046841DD45BF50EC /* TransitionKit-iOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 9761199A4AC57161FD46825EE28C0174 /* TransitionKit-iOS-dummy.m */; }; + 77FECDA3511C7322159331970D6056F6 /* KWBeEmptyMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 541F3BE533709B3274E60136132AFD18 /* KWBeEmptyMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 79581937E9D65BA1C1852A80AD29697E /* KWBeKindOfClassMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 2C5659E20E953DFEC130ED99ED3A5B61 /* KWBeKindOfClassMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 797ACC7F2388F34739761C36C55998A0 /* KWExample.m in Sources */ = {isa = PBXBuildFile; fileRef = B07A9E216C297461B3F7B35F32D049AF /* KWExample.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 79B82DDACE11A10435064D89605AF55A /* KWRegularExpressionPatternMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = E5C056310DD25611B55920F706F9A023 /* KWRegularExpressionPatternMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 79CE245D3D7DB125977D3120BB131DCB /* KWBeSubclassOfClassMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 2C8C3A6BE1E5DCEACB92D753366DF758 /* KWBeSubclassOfClassMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7A89BEE2FC57F4BA4D6F8D75546321CC /* KWHaveMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 546126E831DA125797DBA34D0B0B15C9 /* KWHaveMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 7AFEB088F8BA613F6CB04C0C1A9611E8 /* KWInvocationCapturer.h in Headers */ = {isa = PBXBuildFile; fileRef = 4CAB5D796FF6822200772634A39EEEDD /* KWInvocationCapturer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7B95840ED283D3C44176D5DF361BB208 /* NSProxy+KiwiVerifierAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = AEEAFD580CA92BE681F25B01C0A8AD08 /* NSProxy+KiwiVerifierAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7D8906C69E30B165C387C9CB577E72E9 /* TKStateMachine.m in Sources */ = {isa = PBXBuildFile; fileRef = CB5BF753B42AC2690BF9B169CD493C86 /* TKStateMachine.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 7DEFDC0A3FFEE37796CEAF29411020D1 /* KWProbePoller.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E9D87D62E79368CCD6684A9FF4355BF /* KWProbePoller.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7DFDD07DBF392005CBA20DAC5AB898EC /* KWFailure.h in Headers */ = {isa = PBXBuildFile; fileRef = 932BF14AECD2A29276E065EE2B454CF2 /* KWFailure.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7E894B31E2DED258C26BD66099C1A18A /* KWEqualMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 40A69EA9528A384C2C5662193EEE6FE5 /* KWEqualMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7E8F78F9B7CA6A5A97CDE1BB1BF1C0DC /* KWStringContainsMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = E85547003C04A12B37AB4713D4AC488F /* KWStringContainsMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7F61D640908CE988E9983BE3DFD0271A /* KWItNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 3F5ABA49B2E5915A05F4F4D314DE7F77 /* KWItNode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 801989CF9E631F6D524D6DFDA6351945 /* KWBeforeEachNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 35A7A4DC14FDD71920BF9A2DFED5A026 /* KWBeforeEachNode.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 80B246C3B4811E24DA0279460375A51D /* KWUserDefinedMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = D8E9B5260480E4EA7ED06C6BEE15DF56 /* KWUserDefinedMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 83440E0FB9BD1047567E24663B62E0C6 /* NSObject+KiwiStubAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = F44D64D96339AB0F279947116D802AC9 /* NSObject+KiwiStubAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 86047793D0A53863B2C78695B385DD35 /* KWAfterEachNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 0A8AB445D6EC0328FAA1894B40437D6B /* KWAfterEachNode.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 886C6A1950E34F05DBBF85F4060AA649 /* NSInvocation+OCMAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 4D59A4EB3E67A9BFD8E887BDD4BD25A1 /* NSInvocation+OCMAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 88820FD1D69F5580D37B7481704900D0 /* KWGenericMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 29AC97F54FF338B0F3C1DFEA43EB047F /* KWGenericMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8964615A05EE4D78941C4400B0F862D0 /* KWProbe.h in Headers */ = {isa = PBXBuildFile; fileRef = 0EBBF9946B43D7E71A5F2A438DCB4D4E /* KWProbe.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 89FA29670697202F07E2CBF1BC81E94B /* KWBeforeEachNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 630D678B8DADB0BED7FC51FFFF48924A /* KWBeforeEachNode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8A197C5061631D1D45D707AFA0D1E76F /* KWContextNode.m in Sources */ = {isa = PBXBuildFile; fileRef = A9FF2729E28D56E18100AF4F0851D30E /* KWContextNode.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 8AFCA4F7E9A09F62A8E5DC8B63B5FABB /* KWNilMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = BD0A74A8AB1D7AACBAEB25E5A6561A7A /* KWNilMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 8C2125090A33DDAE77FC27579B2DA822 /* NSObject+KiwiSpyAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 2CE74D52AD87FC18362A0D06C0DB71B2 /* NSObject+KiwiSpyAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8C98AF30B55372FC043884A9DF3B4AFB /* KWRespondToSelectorMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 148C2542C42112ED2D7CB15FE8831AE1 /* KWRespondToSelectorMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8DFBA7B6FBF1689E1A9DA3E38DA68F93 /* TKEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 97F048881AF42E17E7F1E7D6F5F6FE67 /* TKEvent.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8E77B2D0AE3944F5BDCEEA67FFC21D7B /* KWStub.m in Sources */ = {isa = PBXBuildFile; fileRef = 26DF249D09AB92EB9692D412D4BF934A /* KWStub.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 8E9B86CC84972221CCF727B6006646EB /* KWBeforeAllNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 3E95B982DF325EDFC5857FC3AE79ACB6 /* KWBeforeAllNode.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 907228CAF3A5A56A0DD88A3ABBEEC4F7 /* KWPendingNode.h in Headers */ = {isa = PBXBuildFile; fileRef = CC14B905FA8567008244E93BBC9BC6F4 /* KWPendingNode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 92C37BD2B243196F7907355631DBCD91 /* KWAny.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BA34CE0BCFEF3D6F6CB188883176EB9 /* KWAny.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 92E98A8D309269B3B27A7EFE6405CB7F /* KWStringPrefixMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 85910BD89BFA64FDFE83917EF907901D /* KWStringPrefixMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 92EF660EA614616E2679B77B6A48FCAA /* KWContainMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 64DEF5400AD4404A94E8A5C096952E12 /* KWContainMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 93775F9843BD8027BA06BE25BE4E3B63 /* KWAny.m in Sources */ = {isa = PBXBuildFile; fileRef = 113E1B9BC80A7DEDB2792CCD634B0BD6 /* KWAny.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 93848992D73D394B1DB0FE1F0BDB267C /* NSNumber+KiwiAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F9F719B5BBCE9382930036499525B39 /* NSNumber+KiwiAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 93A1A3BD88FE79DC63350BEACE575513 /* KWBeWithinMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 6BFE0CAE805CF54C07E3BF863F446C61 /* KWBeWithinMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 940FB0F410414914060A7BB35054751A /* NSValue+KiwiAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C92F272EF0A0B073D7C55273A349F3A /* NSValue+KiwiAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 94550E3EE37A21AA76AB5283C33B9F53 /* KWBeKindOfClassMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 2C5659E20E953DFEC130ED99ED3A5B61 /* KWBeKindOfClassMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 95174DB1EC3E37B7DBFE25952AD3506B /* KWCaptureSpy.m in Sources */ = {isa = PBXBuildFile; fileRef = 5ACC0EC17A9E0127F21610540BA6468B /* KWCaptureSpy.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 9575D0D12346CBD310AA352078383E49 /* KWConformToProtocolMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 4F5E10FF37964EFF6B2D196DEDC49F16 /* KWConformToProtocolMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 96B267E85BAA4586C9BC6BC1F7D06B2A /* KiwiMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = B1FDE3CFE9DF3F2F0D13D797EEA66E2D /* KiwiMacros.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 96BD56A4E87DFD479C8F4A928280FDAB /* NSMethodSignature+KiwiAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = E25E46EAB69062E09638D06EB1EFCD4B /* NSMethodSignature+KiwiAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 974C25893601BD9DF6EA8CAA79473210 /* KWBlockRaiseMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = D5A2992D992C249872890F4DBBE4FD5E /* KWBlockRaiseMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 97F6C0CEBBD1D84DDDBB1B2EF52C9B86 /* KWExistVerifier.m in Sources */ = {isa = PBXBuildFile; fileRef = 489C1906472A7F4CB9FE8902259892E0 /* KWExistVerifier.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 987220996F6A91503CE0C4E22D098C44 /* KWMatcherFactory.m in Sources */ = {isa = PBXBuildFile; fileRef = 8BEF8601DBDFF67698C86A7465D0DE6D /* KWMatcherFactory.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 9899D11758BC813FB0419BC1AC6FAB2C /* KWConformToProtocolMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = DFCFCF9B94B19B1BFC1B2F0819E6AD00 /* KWConformToProtocolMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 98FDDFD391BD267924EE6CC22ED7062A /* KWExample.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E9C00C464746D026083FA7E144C708F /* KWExample.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9A72AB04E9045B0A01EED79520FEB118 /* KWConformToProtocolMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = DFCFCF9B94B19B1BFC1B2F0819E6AD00 /* KWConformToProtocolMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9ABDA22D3CDB0336EFB65BFF18A4D708 /* KWBeKindOfClassMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 1872AE16F181CB62786A96B5ADA3C37C /* KWBeKindOfClassMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9AC7F117690447D71C4AE1037D8915E7 /* KWValue.h in Headers */ = {isa = PBXBuildFile; fileRef = F0273CAD5C5B65C439A64EDDE81B1E24 /* KWValue.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9B03D0CAA15758750810645C9932CA1D /* KWSymbolicator.m in Sources */ = {isa = PBXBuildFile; fileRef = B4D2C9D0CB170604E6F9200C03CA1D9A /* KWSymbolicator.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 9B618C0CD420F0A139A57667C8C8A76E /* KWStringPrefixMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D6ED896B521357E09A4062C09A66CE3 /* KWStringPrefixMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9C1542AF7C58114B9268B2F727B5907C /* KWLetNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 670B20674A4437F828F4026CA8033171 /* KWLetNode.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 9C21170AB9330FEA1658C750EC50076E /* KWMatching.h in Headers */ = {isa = PBXBuildFile; fileRef = 0A45858C5D1F13CFB7E9D72A1DC37F0C /* KWMatching.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9D3216A4B6DE42F86ADEDE82A983733C /* KWRegisterMatchersNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 65F128845017C1E79C0EA03F9F3BCBF7 /* KWRegisterMatchersNode.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 9E0882BDBA6A5FDC8875B0B066F88176 /* KWItNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 3F5ABA49B2E5915A05F4F4D314DE7F77 /* KWItNode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9E1F41D4F02EA6B5C14CBD273B7575D1 /* KWPendingNode.m in Sources */ = {isa = PBXBuildFile; fileRef = CEB7705CFF20069B0AD464D3788E8509 /* KWPendingNode.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 9EDF851C6F4807A8E9883D428A1DADA0 /* KWBeTrueMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 1AD1B970493E965C8223D04338FA580E /* KWBeTrueMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 9EE0C8A77C46248C21438C205B7C2A4A /* KWLet.h in Headers */ = {isa = PBXBuildFile; fileRef = C11BE1F6B5286EE0E9399EFAEC329D45 /* KWLet.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9F8ADF4B8A23DA467A58B2CA85004B1D /* KWAny.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BA34CE0BCFEF3D6F6CB188883176EB9 /* KWAny.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9F9FDC697EA3086EE1F3F283132610F2 /* KWWorkarounds.m in Sources */ = {isa = PBXBuildFile; fileRef = D6823D61CF304E54C491F5960BAA58F6 /* KWWorkarounds.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + A19A6D0233DC476BBEA4FFFF96F9E912 /* KWStringUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = F91E3402743EB2CB50D26AEDAE9F5F95 /* KWStringUtilities.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + A1F0DB582D722677028817A07A64135E /* KWMatchVerifier.m in Sources */ = {isa = PBXBuildFile; fileRef = 22A3F9B97668DEDE95EA01736E9F652E /* KWMatchVerifier.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + A2D2F89E31DCAF9F8FCC75D8A5F8DDA8 /* KWStringUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = F91E3402743EB2CB50D26AEDAE9F5F95 /* KWStringUtilities.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + A5A6CB20CFF1492521765D309E37618B /* NSObject+KiwiVerifierAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = F237C8C61313415A9EBF8DEAC7D45AB3 /* NSObject+KiwiVerifierAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + A5C649646804F9EB9ABF0F47A6B39B7A /* KWLetNode.h in Headers */ = {isa = PBXBuildFile; fileRef = D16A250AB4D5D8A30BC6AEA9384AD724 /* KWLetNode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A5FC2650125F41BEEEDFA5833D8FBD1C /* KWAsyncVerifier.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B960BA95F7E2372382893C73E851C5F /* KWAsyncVerifier.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A68DCDAF09DB5784A0A97E1BE3727A3D /* KWAllTestsSuite.m in Sources */ = {isa = PBXBuildFile; fileRef = 78BB682ADE58F2C57B11F4385418B8D6 /* KWAllTestsSuite.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + A69817743786792F8869367BC0F30498 /* KWNotificationMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = FAFEF33D625201A59D46CB32EB4A3A8F /* KWNotificationMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A6D7EF06BB7272D8C0839CE5879FD347 /* TKStateMachine.h in Headers */ = {isa = PBXBuildFile; fileRef = 034EA5E4571A5F342C7C36A734A37900 /* TKStateMachine.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7EBF3901AD27854FEE945D7BAEE05DE /* KWExampleSuite.m in Sources */ = {isa = PBXBuildFile; fileRef = DCE29C3EEECABA223CE9F305FDB9BE84 /* KWExampleSuite.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + A7F488D91AD3D8FB51CAA6C57DF741C0 /* KWBeZeroMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 6DBEBCBD3DECBF4556D3375E80FDE35F /* KWBeZeroMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A968B33702DD77E5BBC884BFA334D13E /* KWRespondToSelectorMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 5304A5F95231E220F6E93622A05954C8 /* KWRespondToSelectorMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + A9B0C7D39C84527896B212E3A459BAA6 /* KWFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = 14AD1285328ED8B3CA0CDC6242BB6D88 /* KWFormatter.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + A9DC3F82A007C3E089CE72B807F33457 /* KWAllTestsSuite.m in Sources */ = {isa = PBXBuildFile; fileRef = 78BB682ADE58F2C57B11F4385418B8D6 /* KWAllTestsSuite.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + AA32EBD7DA1450CD5E4CC4273D9349CD /* KWMessageTracker.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A8586A48B0A358C7103C4922AC7B380 /* KWMessageTracker.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + AAB0DB1172B404F6347215D7D34EAC46 /* KWExampleNode.h in Headers */ = {isa = PBXBuildFile; fileRef = EAEADAF5178E2B5D2310BB77BC366FB3 /* KWExampleNode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AB183E1EC7605D0A89CD89CCB760885F /* NSValue+KiwiAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C92F272EF0A0B073D7C55273A349F3A /* NSValue+KiwiAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + AB3F1725AA34B0A84A34508B7F2FD18F /* KWHaveMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = B90D667595B25FE8107776F651A911E0 /* KWHaveMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AC51C3442720B7560C15CC80CD3C4A8B /* KWBlockRaiseMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BF0DCD2266DE17DB603E6DBF522F0BD /* KWBlockRaiseMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + AC7AB08A42002500304DE1F4D65DA711 /* KWFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = 14AD1285328ED8B3CA0CDC6242BB6D88 /* KWFormatter.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + AD841562234FF714506B2F97D13FFCA8 /* KWNull.m in Sources */ = {isa = PBXBuildFile; fileRef = FA42334A250A8C547004751E11857E1B /* KWNull.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + AE5B2A1C61A25EDF8F2B70C6004BCE62 /* KWValue.m in Sources */ = {isa = PBXBuildFile; fileRef = 9263A3870C29E2DCB5D42C6C30E7ED74 /* KWValue.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + AE6D7D1BC35B22F1644F5E10B98DB21E /* TKState.m in Sources */ = {isa = PBXBuildFile; fileRef = 648D8A393C28444D622BF37F02B422B7 /* TKState.m */; }; + AE88E82FA28AAE0B5DFF1A6B21BA3585 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 422FAD60290D2EA7012293B8FDE679F8 /* Cocoa.framework */; }; + AF4915797FA9574F6FD837F72E5E8EFB /* KWGenericMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 500E0B5EFFDDF7D6E2537BC1CD76732B /* KWGenericMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + B05ABF483A29F5C61048A5D0E78D961C /* KWCaptureSpy.m in Sources */ = {isa = PBXBuildFile; fileRef = 5ACC0EC17A9E0127F21610540BA6468B /* KWCaptureSpy.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + B0D42A487F03F8D368E83F8BB02A74E3 /* KWSymbolicator.h in Headers */ = {isa = PBXBuildFile; fileRef = 8EE55801BA8EAF4F36D6C4137DE0AFBD /* KWSymbolicator.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B2154F6FBD9A18E1BAFCB2D3C9A7CAC7 /* KWFailure.m in Sources */ = {isa = PBXBuildFile; fileRef = 92EEA89B422A33F3B2D62457F182A99E /* KWFailure.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + B23301896BC4EC3D744313B30B066EDB /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 422FAD60290D2EA7012293B8FDE679F8 /* Cocoa.framework */; }; + B2B20639154A56213D644C575103D323 /* KWContainMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 64DEF5400AD4404A94E8A5C096952E12 /* KWContainMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + B39E633401292DB0CFED005819EBA927 /* NSProxy+KiwiVerifierAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 0C649F57F3B4C015E10DFD233992CE16 /* NSProxy+KiwiVerifierAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + B3AFD9EB4735B642306D1FCC4ACC103B /* KWWorkarounds.h in Headers */ = {isa = PBXBuildFile; fileRef = E6CFB6229102ACF8C2F1199E7D42D7F7 /* KWWorkarounds.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B47D1F954701BAAC7CAB0BC116671D46 /* KWContainStringMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 37076C5802E00623594BAE04318D8D4E /* KWContainStringMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + B4AE5F7362824A8B4E3A5D04F8A37A79 /* KWBlockNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 70892B40A7F42C5557A713B07351BF9A /* KWBlockNode.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + B5388D57FA41AB88D1D555DBBE18560E /* KWBeWithinMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = EB679DECBA9D0FFF026255D78C84FB1A /* KWBeWithinMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + B71F59035F7C46E7BF3521B2939B5A21 /* KWNotificationMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = D5723A007DC1B78FD63A32F36D9165DA /* KWNotificationMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + B72CF0933C475668003DECF5F66132FE /* NSMethodSignature+KiwiAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 2B07F535CD9693EE287B474286083A2C /* NSMethodSignature+KiwiAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + B7FCF79C808419F473F8B10488C4FC8D /* KWMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = FCFA5EE0ED967CD54CA824E8C49A5946 /* KWMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + B8AD393C7DD1C21B89956F08FF8D10F9 /* KWRegularExpressionPatternMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 05585137F87BD6ACB734B44912378228 /* KWRegularExpressionPatternMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B8FCBE3DE70A719CCB71E45F386E58A3 /* KWStringContainsMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = FF4125BC7B176A4EC21EF18019AD8969 /* KWStringContainsMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + B92F4C9B0506606C306877404C0199D0 /* KWFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = 2D7DCCB27760A04D2768AB68AE1363A3 /* KWFormatter.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B93AA4B97C003C7A64CBB18C7858E286 /* KWEqualMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 40A69EA9528A384C2C5662193EEE6FE5 /* KWEqualMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B9748E2C12404D0F5F60A5A715DF7D4F /* KWValue.h in Headers */ = {isa = PBXBuildFile; fileRef = F0273CAD5C5B65C439A64EDDE81B1E24 /* KWValue.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BA594BC05159229EEABE09E2ED750158 /* Pods-Tests-TransitionKit iOS Tests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 501D4C05B73F1D1B4D25C3DD17EE8FD2 /* Pods-Tests-TransitionKit iOS Tests-dummy.m */; }; + BB568DC44BF7951AE5A5B635291F5C22 /* KWIntercept.m in Sources */ = {isa = PBXBuildFile; fileRef = 5E83908F3C4D685D8B8DE9ADFF71CDF8 /* KWIntercept.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + BB9F7EF7582967C4A3BE813E047F1182 /* KWRegisterMatchersNode.h in Headers */ = {isa = PBXBuildFile; fileRef = FB8E3C2A0E050F90BE46AF302869CB3A /* KWRegisterMatchersNode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BC1EDFD79E919CB096A788705CC61349 /* KWMessagePattern.m in Sources */ = {isa = PBXBuildFile; fileRef = 059420CE8C1DC29FD9EE1B1B2A3E0335 /* KWMessagePattern.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + BC61525D23CDC8D0B8586379E2C93F6B /* TKStateMachine.h in Headers */ = {isa = PBXBuildFile; fileRef = 034EA5E4571A5F342C7C36A734A37900 /* TKStateMachine.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BCB1D31899C82234731FDBA070AD18C5 /* KWContextNode.m in Sources */ = {isa = PBXBuildFile; fileRef = A9FF2729E28D56E18100AF4F0851D30E /* KWContextNode.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + BF8964A7EF22E74B3A38AF8CAA722772 /* KWDeviceInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 568BAD5CD52E19264F45E0E0381DA0FD /* KWDeviceInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C3E4BC94B693F1FDB384E218DEA9BEAC /* KWFailure.h in Headers */ = {isa = PBXBuildFile; fileRef = 932BF14AECD2A29276E065EE2B454CF2 /* KWFailure.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C49E0F6B3C2EA36637248B02AFD4952F /* KWObjCUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 758113E06C1F73B605A9CF5A2C891A21 /* KWObjCUtilities.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + C4C4EBB019EBCB6F7CBEEAB64FB15495 /* KWStub.m in Sources */ = {isa = PBXBuildFile; fileRef = 26DF249D09AB92EB9692D412D4BF934A /* KWStub.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + C4E907B261FB46CD30E19DFA5D6B56B0 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C03EA831D91AD195092236D7BB777AB9 /* Foundation.framework */; }; + C5B4BE226A5E953C0D2B17C6BE31C778 /* KWReceiveMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 6D69F5BBAC66284191543C373C50055E /* KWReceiveMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C683F58183CE76C559A2EFB81839F00F /* Kiwi.h in Headers */ = {isa = PBXBuildFile; fileRef = 43FEA8C258296A47215FA1418AC340E5 /* Kiwi.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C6CADACA676A0471F909CA044FD6245C /* KWVerifying.h in Headers */ = {isa = PBXBuildFile; fileRef = F7CDBCCA2EF3A6B79094328F2563D194 /* KWVerifying.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C6F9D6F8C39D0CE3442CB20B04541392 /* KWStub.h in Headers */ = {isa = PBXBuildFile; fileRef = D98B4B3B4B36CF2D79CA727DAC03DA3B /* KWStub.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C814749C2E7E2D6995AB480EAD9DAC19 /* KWReceiveMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 6D69F5BBAC66284191543C373C50055E /* KWReceiveMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C85DDAE94B97D337DD0C03F38629BFB2 /* TKState.m in Sources */ = {isa = PBXBuildFile; fileRef = 648D8A393C28444D622BF37F02B422B7 /* TKState.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + C8B87A09E4BE7169A535ED70B2EF0F84 /* KWBeMemberOfClassMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = CA86054E4BF8A85EBFCCC53B71CD3AD7 /* KWBeMemberOfClassMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C9C699A8F30405DDEC0EDDA09204B717 /* KWNotificationMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = D5723A007DC1B78FD63A32F36D9165DA /* KWNotificationMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + C9C76BD3AEB1FEE8BF99E06DAF762263 /* KWUserDefinedMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 4D7C88351B49C622BAF0DC4C9B90F767 /* KWUserDefinedMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + CA8E39717C2FBFDB1F9B32BCF41C929C /* KWMatchVerifier.h in Headers */ = {isa = PBXBuildFile; fileRef = EA432EC6DB6F989648B12DFC16438C9E /* KWMatchVerifier.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CA93F1365797C2B24F27A8D10DEFD28B /* KWConformToProtocolMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 4F5E10FF37964EFF6B2D196DEDC49F16 /* KWConformToProtocolMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + CC93AC87ABF536A2CE2E2A6295BF9B16 /* KWItNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 1ABEFB505538A1453B7380EDB6331F13 /* KWItNode.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + CCE60C3C4F2F51F1E654856BD90F0918 /* KWBlock.m in Sources */ = {isa = PBXBuildFile; fileRef = EE46777CFFF114CB04E87C56B4AD171C /* KWBlock.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + CD18A54B27E89A347BBF192D19F6204A /* KWPendingNode.h in Headers */ = {isa = PBXBuildFile; fileRef = CC14B905FA8567008244E93BBC9BC6F4 /* KWPendingNode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CD62F0E362C57316DD923BBC9686D5C3 /* TKStateMachine.m in Sources */ = {isa = PBXBuildFile; fileRef = CB5BF753B42AC2690BF9B169CD493C86 /* TKStateMachine.m */; }; + CF28F7715E2CD1D137A9EB429337DF5E /* KWRegularExpressionPatternMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 05585137F87BD6ACB734B44912378228 /* KWRegularExpressionPatternMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CF413D778E74D670ABB03BB3D1A45736 /* KWAfterEachNode.h in Headers */ = {isa = PBXBuildFile; fileRef = C00391BF74FFCEB4E362820633E44A16 /* KWAfterEachNode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CF6DD5AADA77B3344A366DD12EC5B09D /* KWReporting.h in Headers */ = {isa = PBXBuildFile; fileRef = D604F15564BCC64E0D54F6EAC5AE0C78 /* KWReporting.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CF709A346B865CE16FDB52BDFA507228 /* KWBlockNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 351A65F768811A66D14252F4360E6C9C /* KWBlockNode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CFB4D3807E5E452B39534AFB7DB4D5A2 /* KWBeTrueMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = D349CE6FFB645614081D42AA23475E68 /* KWBeTrueMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D027389517585029A1DB3F21FADAD6F3 /* Kiwi-OSX-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = BEC09EF12D36C112A2073415D47EA590 /* Kiwi-OSX-dummy.m */; }; + D0C742678B727EC2241B6575F4671695 /* NSInvocation+OCMAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 4D59A4EB3E67A9BFD8E887BDD4BD25A1 /* NSInvocation+OCMAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + D0F7E3F5BE625C64ECEA00F7BED1AF20 /* KWBeWithinMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = EB679DECBA9D0FFF026255D78C84FB1A /* KWBeWithinMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + D18142C904C1E9672DD910F56E2AF90D /* KWSymbolicator.h in Headers */ = {isa = PBXBuildFile; fileRef = 8EE55801BA8EAF4F36D6C4137DE0AFBD /* KWSymbolicator.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D263FD0792138010B78FC6518C9F9B2F /* NSObject+KiwiVerifierAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = F237C8C61313415A9EBF8DEAC7D45AB3 /* NSObject+KiwiVerifierAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + D3367FD9E9A7D744BDD1E0749AA33BCB /* KWCaptureSpy.h in Headers */ = {isa = PBXBuildFile; fileRef = EFDDEBEB2F897787179080F5CE50DBEF /* KWCaptureSpy.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D35121C657101570DA4DE73989859D4A /* KiwiBlockMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = A9099286068F40F2D5B95BEB6A0C4CAB /* KiwiBlockMacros.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D41101368156778E16E4302CCBEF6F2C /* KWDeviceInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = E86341347141CDD7F7314BE23137DFF3 /* KWDeviceInfo.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + D51F991AA4B2899F6E4DF67B21226005 /* KWRegisterMatchersNode.h in Headers */ = {isa = PBXBuildFile; fileRef = FB8E3C2A0E050F90BE46AF302869CB3A /* KWRegisterMatchersNode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D547AB85F57F83F6E1E1315F54DF6BAB /* KWAsyncVerifier.m in Sources */ = {isa = PBXBuildFile; fileRef = B34A4A73DC8745B202D4328E9FE95AFF /* KWAsyncVerifier.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + D59552DD43EAC5C07F901827F465F075 /* KiwiMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = B1FDE3CFE9DF3F2F0D13D797EEA66E2D /* KiwiMacros.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D5C0BEC54E6E08F27DEFE58C60A93182 /* KWBlock.h in Headers */ = {isa = PBXBuildFile; fileRef = 73CC2A29DEABE0D93CDCBA1118E8BD9D /* KWBlock.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D679FFF2FE84830FE8C6C207EE17020F /* KWIntercept.m in Sources */ = {isa = PBXBuildFile; fileRef = 5E83908F3C4D685D8B8DE9ADFF71CDF8 /* KWIntercept.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + D8BFA49CFBD3FCFF67997040E3ADE0DC /* TKEvent.m in Sources */ = {isa = PBXBuildFile; fileRef = EF9DEC550C5A27F945AFE8A095175528 /* TKEvent.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + D8FE8917FFE9FB8C8D3EA63EC703D0AB /* KWGenericMatchEvaluator.m in Sources */ = {isa = PBXBuildFile; fileRef = 7FBBDCBAA6261E65D006B972D25D28A1 /* KWGenericMatchEvaluator.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + D9BA398056FE88A3439D4F9422757640 /* NSObject+KiwiMockAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = ED4A9764F248CFF43569FF0BFAB30448 /* NSObject+KiwiMockAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + D9F12A025FE4C7CE2FCB8DD33C26F198 /* KWStringPrefixMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 85910BD89BFA64FDFE83917EF907901D /* KWStringPrefixMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + DA612633E3303BD2A48507B1F13E7097 /* KWHaveMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = B90D667595B25FE8107776F651A911E0 /* KWHaveMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DABBD01BE904698B0621EF4DF5172AE3 /* KWMock.m in Sources */ = {isa = PBXBuildFile; fileRef = E80E5E0CFA0B6C597B0B3B3A35415977 /* KWMock.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + DAC40D3A594C6B0AEB18C610B64E9D23 /* KWBeEmptyMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 2611FC65E9B987E3203ECC8545C4DCF1 /* KWBeEmptyMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DC40F10B3621FC00FB7703893E2A7049 /* NSValue+KiwiAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 72816FA54D8B9194113465674457951E /* NSValue+KiwiAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DE400941D2D5B6B8358CA97676C94D22 /* KWSuiteConfigurationBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 19B4F9E95D59C44F83433C051B8360E0 /* KWSuiteConfigurationBase.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DFC34EC5DB5010FA53CD339B61B2395A /* KWNull.h in Headers */ = {isa = PBXBuildFile; fileRef = 754CFB098670EAE31A27C94634697BD7 /* KWNull.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E0AEC8BA31635C2EB289858458E90514 /* NSObject+KiwiStubAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = AD34216E46DBCE86FEFAE4EB35FE8683 /* NSObject+KiwiStubAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + E0F5E8CE257973F986E0399A198B8D51 /* KWIntercept.h in Headers */ = {isa = PBXBuildFile; fileRef = 5105ED7F6D13025869962A50A6635F3B /* KWIntercept.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E1239F5E1844971BC1B744ABCD967591 /* KWExistVerifier.h in Headers */ = {isa = PBXBuildFile; fileRef = 8431073B8C86A3C5F402310A4CCFCD7A /* KWExistVerifier.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E20C519D17ECB56B41089B9E30C3F662 /* KWPendingNode.m in Sources */ = {isa = PBXBuildFile; fileRef = CEB7705CFF20069B0AD464D3788E8509 /* KWPendingNode.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + E38AC06C212AC67F98BAEAB1BF3CC52A /* KWBeSubclassOfClassMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = AB59D582F4CF6FC48DB8535B21595281 /* KWBeSubclassOfClassMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + E40E68902478A30BA8DB0EA5CB6980E7 /* NSObject+KiwiMockAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 96E3F8085FBB092401A31E59CEBCCA05 /* NSObject+KiwiMockAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E482075785F8F7B5768A15D20E89B02B /* KWMatcherFactory.h in Headers */ = {isa = PBXBuildFile; fileRef = DC07648E71560AA3BF5E8BD9F4C528A8 /* KWMatcherFactory.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E52732838C66BD0D2BB07C2E1702E02B /* KWGenericMatchingAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = DDD467069D9324A4453D8C98B781B720 /* KWGenericMatchingAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + E5F3206DCC644EAEF2C337A96730D086 /* KWMatchers.m in Sources */ = {isa = PBXBuildFile; fileRef = 527FB1E1ADF4ECC1E7D0903B9A53620B /* KWMatchers.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + E63B08634F16B49F49B5E3203B794319 /* NSObject+KiwiStubAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = AD34216E46DBCE86FEFAE4EB35FE8683 /* NSObject+KiwiStubAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + E76EE15F1A787C2C52D3B7BCC06D5298 /* KWStringContainsMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = FF4125BC7B176A4EC21EF18019AD8969 /* KWStringContainsMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + E7B5E9D97FD7B214A100EB20452C2047 /* KWContextNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C892E8DBF96E3993B73DC024F824CBA /* KWContextNode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E817928E7D5C52431BB65E2379A024EC /* KWExampleDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 7BA6032F0844756BD46A7E8079D19AC3 /* KWExampleDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E819F87187DAA403D2C7D54B1FBE7F2F /* KWBeMemberOfClassMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = CA86054E4BF8A85EBFCCC53B71CD3AD7 /* KWBeMemberOfClassMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E94CF827E6F3C6718893148BDBBB13BC /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C03EA831D91AD195092236D7BB777AB9 /* Foundation.framework */; }; + EA02236B57C4A7CDE39BDEC43EB46139 /* KWExistVerifier.h in Headers */ = {isa = PBXBuildFile; fileRef = 8431073B8C86A3C5F402310A4CCFCD7A /* KWExistVerifier.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EB8643EEFB250DA966E35161687AC6D6 /* KWItNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 1ABEFB505538A1453B7380EDB6331F13 /* KWItNode.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + EBAB14B188FB1A8E359F8D91CE87344F /* KWSpec.h in Headers */ = {isa = PBXBuildFile; fileRef = 4DC62BEFA5390CA11BE3B98CE2923ECB /* KWSpec.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EBDF157092F3EEFCC0DFD3E3BD67B85C /* KWBeKindOfClassMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 1872AE16F181CB62786A96B5ADA3C37C /* KWBeKindOfClassMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + ECB98F443826BDBD5118CA5556061AEF /* KWAfterEachNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 0A8AB445D6EC0328FAA1894B40437D6B /* KWAfterEachNode.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + EDDAD25DA404DDBF539AFFFD1787FB48 /* KWExampleNode.h in Headers */ = {isa = PBXBuildFile; fileRef = EAEADAF5178E2B5D2310BB77BC366FB3 /* KWExampleNode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EE302C96B9F2CC3491D25EE5C5F7B51E /* KWInequalityMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 06562BE430DC665872475BE5B5175D0B /* KWInequalityMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + EE5CA8398835A13EC3F3E1F9B8344E21 /* KWFutureObject.m in Sources */ = {isa = PBXBuildFile; fileRef = BBAD47D3C57FAA56D76723628BCFD574 /* KWFutureObject.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + EECE294FB1A61066664F75C9993B674F /* KWSpec.h in Headers */ = {isa = PBXBuildFile; fileRef = 4DC62BEFA5390CA11BE3B98CE2923ECB /* KWSpec.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EF72BFCC295BCFEFB28FB330DFB9DD53 /* KWNilMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = BD0A74A8AB1D7AACBAEB25E5A6561A7A /* KWNilMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + F221338F78CBE36A4B9B3980B81A59C0 /* KWBlockNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 70892B40A7F42C5557A713B07351BF9A /* KWBlockNode.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + F2274BE822162179599DE310F66F3135 /* KWBeEmptyMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 2611FC65E9B987E3203ECC8545C4DCF1 /* KWBeEmptyMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3A1E009F594274B126CBC82552A18BB /* KWBeIdenticalToMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 91102A88506DBDC6287A88895B888BDB /* KWBeIdenticalToMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F48BE3290CA0FCF915D941B8066540E3 /* KWLetNode.h in Headers */ = {isa = PBXBuildFile; fileRef = D16A250AB4D5D8A30BC6AEA9384AD724 /* KWLetNode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F4DC7CD545DE7AC583C53C64AAC9EBB7 /* KWEqualMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 6918A19DC1D5CAE9508F3926F0CA0D94 /* KWEqualMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + F539DE93AF83C99F101D0FD577A97170 /* TransitionKit-OSX-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 44C6610BE6F06F04404102ECBFB01DD3 /* TransitionKit-OSX-dummy.m */; }; + F53AE33F06F554C8F1D5DF46A8D63719 /* TKState.h in Headers */ = {isa = PBXBuildFile; fileRef = 393F94421B8F85C548119F76EE48452F /* TKState.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F59D02DBC3C9198DE2E78FD7A429E5A1 /* NSObject+KiwiMockAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 96E3F8085FBB092401A31E59CEBCCA05 /* NSObject+KiwiMockAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F6508813F978E711824D53906423ED9F /* NSNumber+KiwiAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 55C97AE1AB95D9CF6768CE01B9CA68E5 /* NSNumber+KiwiAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + F6F52B8A2E6B79933E309AB97F490BDF /* KWMessageTracker.h in Headers */ = {isa = PBXBuildFile; fileRef = 975A571B9E39A04BB66BECB12B3324D3 /* KWMessageTracker.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F733A59B703FD11A0C30EDCA68C3AB15 /* KWExampleSuiteBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 90B84A9B0042A11B9E60703C9E586918 /* KWExampleSuiteBuilder.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + F85D354DBBDF1A3024A7482E03C56C8C /* KWGenericMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 29AC97F54FF338B0F3C1DFEA43EB047F /* KWGenericMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F862822D7A941C87194F7F31EC441C78 /* KWCountType.h in Headers */ = {isa = PBXBuildFile; fileRef = 42EBE5950F6E0E14DB65083B425C611D /* KWCountType.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F873323951518CF82350C232FCA8DAC4 /* KWAfterEachNode.h in Headers */ = {isa = PBXBuildFile; fileRef = C00391BF74FFCEB4E362820633E44A16 /* KWAfterEachNode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F99A5D8602F91BDE42E17E2CD59FB7DD /* KWContainMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = D9444A54A51E466BF711929BEC8EF795 /* KWContainMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FAF00A1B6E2D90F043B88D0BE38B7006 /* KWBeIdenticalToMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = FF807698AD6A9FB090E1D13BE0625829 /* KWBeIdenticalToMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + FB9F5FAE8140B6FD4248AD4A9059AD1E /* KWGenericMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 500E0B5EFFDDF7D6E2537BC1CD76732B /* KWGenericMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + FBE5BD09AEC4615C08DC390DD781FC42 /* KWMock.m in Sources */ = {isa = PBXBuildFile; fileRef = E80E5E0CFA0B6C597B0B3B3A35415977 /* KWMock.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + FC46F05FFAD4BE39909AE3EDA0B7B09C /* KWCountType.h in Headers */ = {isa = PBXBuildFile; fileRef = 42EBE5950F6E0E14DB65083B425C611D /* KWCountType.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FD58D4D8B73312436CD6AC43EC28D86E /* KWBeTrueMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = D349CE6FFB645614081D42AA23475E68 /* KWBeTrueMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FEA9319D1CE12C02EBFFDF90918174B3 /* KWMatchers.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C970E9FDC8AA8D6B5FE73B21B5F8F38 /* KWMatchers.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FECEB5E5135C5DF75A97E9B9B14FC88D /* KWAfterAllNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 616DEFC59352FFC06ED487243FFF6B21 /* KWAfterAllNode.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + FF1BABAB26615A63BDB0765DF48833D7 /* NSInvocation+KiwiAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = EEB8D19562B679A83C28687DEE1E7BEC /* NSInvocation+KiwiAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FF54E9158DB1B92E682DDCBB6D9B6050 /* KWReceiveMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = E9A767EE0FEFAF78C2DE1FC493B51227 /* KWReceiveMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 9487AB6E8C62E7D23D888C6C9F80DA8D /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = 9C77A4CD37823CC5839C1244E3B4655E; + remoteInfo = "Kiwi-OSX"; + }; + AB4E34AA78D13AFBB23AA850EF5B586E /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = 6C4B72EAD29C118CA0F3246466DBFFE3; + remoteInfo = "TransitionKit-iOS"; + }; + D1A9F006DDCB7DE990672BBF7F2BBC3E /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = C013B188CECFD144F264E15EC3C2A8DA; + remoteInfo = "TransitionKit-OSX"; + }; + EBBC78A34964489ACCC332C919128BF1 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = 96B533C5E6327385FD6AB88890A3A0EB; + remoteInfo = "Kiwi-iOS"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 034EA5E4571A5F342C7C36A734A37900 /* TKStateMachine.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TKStateMachine.h; sourceTree = ""; }; + 05585137F87BD6ACB734B44912378228 /* KWRegularExpressionPatternMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWRegularExpressionPatternMatcher.h; path = Classes/Matchers/KWRegularExpressionPatternMatcher.h; sourceTree = ""; }; + 059420CE8C1DC29FD9EE1B1B2A3E0335 /* KWMessagePattern.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWMessagePattern.m; path = Classes/Core/KWMessagePattern.m; sourceTree = ""; }; + 06562BE430DC665872475BE5B5175D0B /* KWInequalityMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWInequalityMatcher.m; path = Classes/Matchers/KWInequalityMatcher.m; sourceTree = ""; }; + 0A45858C5D1F13CFB7E9D72A1DC37F0C /* KWMatching.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWMatching.h; path = Classes/Core/KWMatching.h; sourceTree = ""; }; + 0A8AB445D6EC0328FAA1894B40437D6B /* KWAfterEachNode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWAfterEachNode.m; path = Classes/Nodes/KWAfterEachNode.m; sourceTree = ""; }; + 0BB6F5764C789C7A2DCC2705F49A926B /* Pods-Tests-TransitionKit macOS Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Tests-TransitionKit macOS Tests.debug.xcconfig"; sourceTree = ""; }; + 0C649F57F3B4C015E10DFD233992CE16 /* NSProxy+KiwiVerifierAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSProxy+KiwiVerifierAdditions.m"; path = "Classes/Core/NSProxy+KiwiVerifierAdditions.m"; sourceTree = ""; }; + 0CC9A6D18B5072D2DF0B38DA413C1A78 /* KWBeBetweenMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWBeBetweenMatcher.m; path = Classes/Matchers/KWBeBetweenMatcher.m; sourceTree = ""; }; + 0EBBF9946B43D7E71A5F2A438DCB4D4E /* KWProbe.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWProbe.h; path = Classes/Core/KWProbe.h; sourceTree = ""; }; + 0ECFB18D1A19B589397B6D18E4E5A21C /* KWAfterAllNode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWAfterAllNode.h; path = Classes/Nodes/KWAfterAllNode.h; sourceTree = ""; }; + 0F2B9871936398B30FC4361D5A71826A /* KWExampleSuiteBuilder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWExampleSuiteBuilder.h; path = Classes/Core/KWExampleSuiteBuilder.h; sourceTree = ""; }; + 10AB2797AAC0DCB6A9B711A1B731B574 /* libTransitionKit-iOS.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libTransitionKit-iOS.a"; path = "libTransitionKit-iOS.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 113E1B9BC80A7DEDB2792CCD634B0BD6 /* KWAny.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWAny.m; path = Classes/Core/KWAny.m; sourceTree = ""; }; + 1390E56741A21D7304092F55FCB26EBB /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/System/Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; }; + 148C2542C42112ED2D7CB15FE8831AE1 /* KWRespondToSelectorMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWRespondToSelectorMatcher.h; path = Classes/Matchers/KWRespondToSelectorMatcher.h; sourceTree = ""; }; + 14AD1285328ED8B3CA0CDC6242BB6D88 /* KWFormatter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWFormatter.m; path = Classes/Core/KWFormatter.m; sourceTree = ""; }; + 14CB7E251F85E37E0EDEF6DDA5F3758B /* Pods-Tests-TransitionKit macOS Tests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-Tests-TransitionKit macOS Tests-frameworks.sh"; sourceTree = ""; }; + 16CEEB90C83E148E1BE783D800B495B2 /* Pods-Tests-TransitionKit iOS Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Tests-TransitionKit iOS Tests.release.xcconfig"; sourceTree = ""; }; + 17E094ECF9B0E4DFC3FBAD5C205A19DD /* KWCallSite.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWCallSite.m; path = Classes/Core/KWCallSite.m; sourceTree = ""; }; + 1872AE16F181CB62786A96B5ADA3C37C /* KWBeKindOfClassMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWBeKindOfClassMatcher.h; path = Classes/Matchers/KWBeKindOfClassMatcher.h; sourceTree = ""; }; + 19B4F9E95D59C44F83433C051B8360E0 /* KWSuiteConfigurationBase.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWSuiteConfigurationBase.h; path = Classes/Config/KWSuiteConfigurationBase.h; sourceTree = ""; }; + 1ABEFB505538A1453B7380EDB6331F13 /* KWItNode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWItNode.m; path = Classes/Nodes/KWItNode.m; sourceTree = ""; }; + 1AD1B970493E965C8223D04338FA580E /* KWBeTrueMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWBeTrueMatcher.m; path = Classes/Matchers/KWBeTrueMatcher.m; sourceTree = ""; }; + 1CC7333B171173016282DC518E43F3F0 /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.0.sdk/System/Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; }; + 1CE262A553A2502921C0E78DA2A7F6DC /* libKiwi-iOS.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libKiwi-iOS.a"; path = "libKiwi-iOS.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 1E9C00C464746D026083FA7E144C708F /* KWExample.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWExample.h; path = Classes/Core/KWExample.h; sourceTree = ""; }; + 212D76EA5FA339A0C58D61F208F6EA66 /* KWExampleNodeVisitor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWExampleNodeVisitor.h; path = Classes/Core/KWExampleNodeVisitor.h; sourceTree = ""; }; + 21911470869B89C13289979D4BD650AE /* KWExampleSuite.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWExampleSuite.h; path = Classes/Core/KWExampleSuite.h; sourceTree = ""; }; + 22A3F9B97668DEDE95EA01736E9F652E /* KWMatchVerifier.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWMatchVerifier.m; path = Classes/Verifiers/KWMatchVerifier.m; sourceTree = ""; }; + 23E1571FCA3A6EC612572E670F594659 /* TransitionKit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TransitionKit.h; sourceTree = ""; }; + 250EBC95B13ABC459B6B8EABD7448826 /* KWGenericMatchEvaluator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWGenericMatchEvaluator.h; path = Classes/Matchers/KWGenericMatchEvaluator.h; sourceTree = ""; }; + 2611FC65E9B987E3203ECC8545C4DCF1 /* KWBeEmptyMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWBeEmptyMatcher.h; path = Classes/Matchers/KWBeEmptyMatcher.h; sourceTree = ""; }; + 26DF249D09AB92EB9692D412D4BF934A /* KWStub.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWStub.m; path = Classes/Stubbing/KWStub.m; sourceTree = ""; }; + 2863C373DB49AB3F8C8E423F51C863AE /* KWContainStringMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWContainStringMatcher.h; path = Classes/Matchers/KWContainStringMatcher.h; sourceTree = ""; }; + 2875B32C66DD81C46D31A653122995FA /* NSObject+KiwiVerifierAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+KiwiVerifierAdditions.h"; path = "Classes/Core/NSObject+KiwiVerifierAdditions.h"; sourceTree = ""; }; + 294D205727AABFE5EFA3ECAAC1FC56ED /* KWBeMemberOfClassMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWBeMemberOfClassMatcher.m; path = Classes/Matchers/KWBeMemberOfClassMatcher.m; sourceTree = ""; }; + 29AC97F54FF338B0F3C1DFEA43EB047F /* KWGenericMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWGenericMatcher.h; path = Classes/Matchers/KWGenericMatcher.h; sourceTree = ""; }; + 2A8586A48B0A358C7103C4922AC7B380 /* KWMessageTracker.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWMessageTracker.m; path = Classes/Core/KWMessageTracker.m; sourceTree = ""; }; + 2ACAFC3703DEE3F72D38ADED35EB11A7 /* KWMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWMatcher.h; path = Classes/Core/KWMatcher.h; sourceTree = ""; }; + 2B07F535CD9693EE287B474286083A2C /* NSMethodSignature+KiwiAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSMethodSignature+KiwiAdditions.m"; path = "Classes/Core/NSMethodSignature+KiwiAdditions.m"; sourceTree = ""; }; + 2C5659E20E953DFEC130ED99ED3A5B61 /* KWBeKindOfClassMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWBeKindOfClassMatcher.m; path = Classes/Matchers/KWBeKindOfClassMatcher.m; sourceTree = ""; }; + 2C8C3A6BE1E5DCEACB92D753366DF758 /* KWBeSubclassOfClassMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWBeSubclassOfClassMatcher.h; path = Classes/Matchers/KWBeSubclassOfClassMatcher.h; sourceTree = ""; }; + 2CE74D52AD87FC18362A0D06C0DB71B2 /* NSObject+KiwiSpyAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+KiwiSpyAdditions.h"; path = "Classes/Core/NSObject+KiwiSpyAdditions.h"; sourceTree = ""; }; + 2D7DCCB27760A04D2768AB68AE1363A3 /* KWFormatter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWFormatter.h; path = Classes/Core/KWFormatter.h; sourceTree = ""; }; + 2E862E7F777D7FF09F2CFC5DFA8CB14F /* KWCallSite.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWCallSite.h; path = Classes/Core/KWCallSite.h; sourceTree = ""; }; + 351A65F768811A66D14252F4360E6C9C /* KWBlockNode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWBlockNode.h; path = Classes/Nodes/KWBlockNode.h; sourceTree = ""; }; + 35A7A4DC14FDD71920BF9A2DFED5A026 /* KWBeforeEachNode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWBeforeEachNode.m; path = Classes/Nodes/KWBeforeEachNode.m; sourceTree = ""; }; + 37076C5802E00623594BAE04318D8D4E /* KWContainStringMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWContainStringMatcher.m; path = Classes/Matchers/KWContainStringMatcher.m; sourceTree = ""; }; + 393F94421B8F85C548119F76EE48452F /* TKState.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TKState.h; sourceTree = ""; }; + 3BA34CE0BCFEF3D6F6CB188883176EB9 /* KWAny.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWAny.h; path = Classes/Core/KWAny.h; sourceTree = ""; }; + 3C92F272EF0A0B073D7C55273A349F3A /* NSValue+KiwiAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSValue+KiwiAdditions.m"; path = "Classes/Core/NSValue+KiwiAdditions.m"; sourceTree = ""; }; + 3D1FCCBF683DDBBAE6848A5DE33F64A3 /* NSObject+KiwiSpyAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+KiwiSpyAdditions.m"; path = "Classes/Core/NSObject+KiwiSpyAdditions.m"; sourceTree = ""; }; + 3D6ED896B521357E09A4062C09A66CE3 /* KWStringPrefixMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWStringPrefixMatcher.h; path = Classes/Matchers/KWStringPrefixMatcher.h; sourceTree = ""; }; + 3E95B982DF325EDFC5857FC3AE79ACB6 /* KWBeforeAllNode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWBeforeAllNode.m; path = Classes/Nodes/KWBeforeAllNode.m; sourceTree = ""; }; + 3F5ABA49B2E5915A05F4F4D314DE7F77 /* KWItNode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWItNode.h; path = Classes/Nodes/KWItNode.h; sourceTree = ""; }; + 40A69EA9528A384C2C5662193EEE6FE5 /* KWEqualMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWEqualMatcher.h; path = Classes/Matchers/KWEqualMatcher.h; sourceTree = ""; }; + 422FAD60290D2EA7012293B8FDE679F8 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/System/Library/Frameworks/Cocoa.framework; sourceTree = DEVELOPER_DIR; }; + 42EBE5950F6E0E14DB65083B425C611D /* KWCountType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWCountType.h; path = Classes/Core/KWCountType.h; sourceTree = ""; }; + 43FEA8C258296A47215FA1418AC340E5 /* Kiwi.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Kiwi.h; path = Classes/Core/Kiwi.h; sourceTree = ""; }; + 44C6610BE6F06F04404102ECBFB01DD3 /* TransitionKit-OSX-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "TransitionKit-OSX-dummy.m"; sourceTree = ""; }; + 480C95E78BCF7FD2EDB54E8ABE0C8719 /* libTransitionKit-OSX.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libTransitionKit-OSX.a"; path = "libTransitionKit-OSX.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 489C1906472A7F4CB9FE8902259892E0 /* KWExistVerifier.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWExistVerifier.m; path = Classes/Verifiers/KWExistVerifier.m; sourceTree = ""; }; + 4BF0DCD2266DE17DB603E6DBF522F0BD /* KWBlockRaiseMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWBlockRaiseMatcher.m; path = Classes/Matchers/KWBlockRaiseMatcher.m; sourceTree = ""; }; + 4C970E9FDC8AA8D6B5FE73B21B5F8F38 /* KWMatchers.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWMatchers.h; path = Classes/Core/KWMatchers.h; sourceTree = ""; }; + 4CAB5D796FF6822200772634A39EEEDD /* KWInvocationCapturer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWInvocationCapturer.h; path = Classes/Core/KWInvocationCapturer.h; sourceTree = ""; }; + 4D59A4EB3E67A9BFD8E887BDD4BD25A1 /* NSInvocation+OCMAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSInvocation+OCMAdditions.m"; path = "Classes/Core/NSInvocation+OCMAdditions.m"; sourceTree = ""; }; + 4D7C88351B49C622BAF0DC4C9B90F767 /* KWUserDefinedMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWUserDefinedMatcher.m; path = Classes/Matchers/KWUserDefinedMatcher.m; sourceTree = ""; }; + 4DC62BEFA5390CA11BE3B98CE2923ECB /* KWSpec.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWSpec.h; path = Classes/Core/KWSpec.h; sourceTree = ""; }; + 4F5E10FF37964EFF6B2D196DEDC49F16 /* KWConformToProtocolMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWConformToProtocolMatcher.m; path = Classes/Matchers/KWConformToProtocolMatcher.m; sourceTree = ""; }; + 500E0B5EFFDDF7D6E2537BC1CD76732B /* KWGenericMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWGenericMatcher.m; path = Classes/Matchers/KWGenericMatcher.m; sourceTree = ""; }; + 501D4C05B73F1D1B4D25C3DD17EE8FD2 /* Pods-Tests-TransitionKit iOS Tests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Tests-TransitionKit iOS Tests-dummy.m"; sourceTree = ""; }; + 5105ED7F6D13025869962A50A6635F3B /* KWIntercept.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWIntercept.h; path = Classes/Stubbing/KWIntercept.h; sourceTree = ""; }; + 527E7E0152A581D6B6A50B3D154A14BB /* TransitionKit-iOS-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "TransitionKit-iOS-prefix.pch"; path = "../TransitionKit-iOS/TransitionKit-iOS-prefix.pch"; sourceTree = ""; }; + 527FB1E1ADF4ECC1E7D0903B9A53620B /* KWMatchers.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWMatchers.m; path = Classes/Core/KWMatchers.m; sourceTree = ""; }; + 5304A5F95231E220F6E93622A05954C8 /* KWRespondToSelectorMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWRespondToSelectorMatcher.m; path = Classes/Matchers/KWRespondToSelectorMatcher.m; sourceTree = ""; }; + 541F3BE533709B3274E60136132AFD18 /* KWBeEmptyMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWBeEmptyMatcher.m; path = Classes/Matchers/KWBeEmptyMatcher.m; sourceTree = ""; }; + 546126E831DA125797DBA34D0B0B15C9 /* KWHaveMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWHaveMatcher.m; path = Classes/Matchers/KWHaveMatcher.m; sourceTree = ""; }; + 55C97AE1AB95D9CF6768CE01B9CA68E5 /* NSNumber+KiwiAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSNumber+KiwiAdditions.m"; path = "Classes/Core/NSNumber+KiwiAdditions.m"; sourceTree = ""; }; + 568BAD5CD52E19264F45E0E0381DA0FD /* KWDeviceInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWDeviceInfo.h; path = Classes/Core/KWDeviceInfo.h; sourceTree = ""; }; + 57D0C1D91B37A359DAA73D15AD96586A /* KWNilMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWNilMatcher.h; path = Classes/Matchers/KWNilMatcher.h; sourceTree = ""; }; + 5ACC0EC17A9E0127F21610540BA6468B /* KWCaptureSpy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWCaptureSpy.m; path = Classes/Core/KWCaptureSpy.m; sourceTree = ""; }; + 5AE7ADADCD07B566FCC1A7ABDDC56F7B /* KWSuiteConfigurationBase.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWSuiteConfigurationBase.m; path = Classes/Config/KWSuiteConfigurationBase.m; sourceTree = ""; }; + 5B6C76352971E8DC93F728CFCDFE9D78 /* KWStringUtilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWStringUtilities.h; path = Classes/Core/KWStringUtilities.h; sourceTree = ""; }; + 5E83908F3C4D685D8B8DE9ADFF71CDF8 /* KWIntercept.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWIntercept.m; path = Classes/Stubbing/KWIntercept.m; sourceTree = ""; }; + 616DEFC59352FFC06ED487243FFF6B21 /* KWAfterAllNode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWAfterAllNode.m; path = Classes/Nodes/KWAfterAllNode.m; sourceTree = ""; }; + 630D678B8DADB0BED7FC51FFFF48924A /* KWBeforeEachNode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWBeforeEachNode.h; path = Classes/Nodes/KWBeforeEachNode.h; sourceTree = ""; }; + 643D7C56E967BA3D7E131EA1BBB094D7 /* KWBeBetweenMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWBeBetweenMatcher.h; path = Classes/Matchers/KWBeBetweenMatcher.h; sourceTree = ""; }; + 6487FCC415D782C5054DA3B881FF98F4 /* Pods-Tests-TransitionKit iOS Tests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-Tests-TransitionKit iOS Tests-acknowledgements.plist"; sourceTree = ""; }; + 648D8A393C28444D622BF37F02B422B7 /* TKState.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TKState.m; sourceTree = ""; }; + 64DEF5400AD4404A94E8A5C096952E12 /* KWContainMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWContainMatcher.m; path = Classes/Matchers/KWContainMatcher.m; sourceTree = ""; }; + 65F128845017C1E79C0EA03F9F3BCBF7 /* KWRegisterMatchersNode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWRegisterMatchersNode.m; path = Classes/Nodes/KWRegisterMatchersNode.m; sourceTree = ""; }; + 669C539461364A09713D2166205A32A6 /* Kiwi-iOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "Kiwi-iOS-dummy.m"; path = "../Kiwi-iOS/Kiwi-iOS-dummy.m"; sourceTree = ""; }; + 670B20674A4437F828F4026CA8033171 /* KWLetNode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWLetNode.m; path = Classes/Nodes/KWLetNode.m; sourceTree = ""; }; + 6918A19DC1D5CAE9508F3926F0CA0D94 /* KWEqualMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWEqualMatcher.m; path = Classes/Matchers/KWEqualMatcher.m; sourceTree = ""; }; + 69508E0AF28F70BAB3C98863761ED848 /* NSInvocation+OCMAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSInvocation+OCMAdditions.h"; path = "Classes/Core/NSInvocation+OCMAdditions.h"; sourceTree = ""; }; + 69DA46C17E7EB139FD868FF009783CED /* KWMessageSpying.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWMessageSpying.h; path = Classes/Core/KWMessageSpying.h; sourceTree = ""; }; + 6BFE0CAE805CF54C07E3BF863F446C61 /* KWBeWithinMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWBeWithinMatcher.h; path = Classes/Matchers/KWBeWithinMatcher.h; sourceTree = ""; }; + 6D69F5BBAC66284191543C373C50055E /* KWReceiveMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWReceiveMatcher.h; path = Classes/Matchers/KWReceiveMatcher.h; sourceTree = ""; }; + 6D7C527685C98ACE3FE01EE25379EE76 /* KWBeZeroMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWBeZeroMatcher.m; path = Classes/Matchers/KWBeZeroMatcher.m; sourceTree = ""; }; + 6DBEBCBD3DECBF4556D3375E80FDE35F /* KWBeZeroMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWBeZeroMatcher.h; path = Classes/Matchers/KWBeZeroMatcher.h; sourceTree = ""; }; + 6E9D87D62E79368CCD6684A9FF4355BF /* KWProbePoller.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWProbePoller.h; path = Classes/Core/KWProbePoller.h; sourceTree = ""; }; + 70892B40A7F42C5557A713B07351BF9A /* KWBlockNode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWBlockNode.m; path = Classes/Nodes/KWBlockNode.m; sourceTree = ""; }; + 72816FA54D8B9194113465674457951E /* NSValue+KiwiAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSValue+KiwiAdditions.h"; path = "Classes/Core/NSValue+KiwiAdditions.h"; sourceTree = ""; }; + 73CC2A29DEABE0D93CDCBA1118E8BD9D /* KWBlock.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWBlock.h; path = Classes/Core/KWBlock.h; sourceTree = ""; }; + 754CFB098670EAE31A27C94634697BD7 /* KWNull.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWNull.h; path = Classes/Core/KWNull.h; sourceTree = ""; }; + 758113E06C1F73B605A9CF5A2C891A21 /* KWObjCUtilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWObjCUtilities.m; path = Classes/Core/KWObjCUtilities.m; sourceTree = ""; }; + 78B81192B4CF29FC2B76DBAF0B7D8799 /* Pods-Tests-TransitionKit iOS Tests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-Tests-TransitionKit iOS Tests-acknowledgements.markdown"; sourceTree = ""; }; + 78BB682ADE58F2C57B11F4385418B8D6 /* KWAllTestsSuite.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWAllTestsSuite.m; path = Classes/Config/KWAllTestsSuite.m; sourceTree = ""; }; + 78E2ABB82E91C9992234960DD027F1B1 /* KWChangeMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWChangeMatcher.h; path = Classes/Matchers/KWChangeMatcher.h; sourceTree = ""; }; + 7BA6032F0844756BD46A7E8079D19AC3 /* KWExampleDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWExampleDelegate.h; path = Classes/Core/KWExampleDelegate.h; sourceTree = ""; }; + 7D7697FE1511358632E4594253DC3571 /* libPods-Tests-TransitionKit macOS Tests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libPods-Tests-TransitionKit macOS Tests.a"; path = "libPods-Tests-TransitionKit macOS Tests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 7E6C4367195FD7CD3EC26AABC022DF10 /* Pods-Tests-TransitionKit macOS Tests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-Tests-TransitionKit macOS Tests-resources.sh"; sourceTree = ""; }; + 7FBBDCBAA6261E65D006B972D25D28A1 /* KWGenericMatchEvaluator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWGenericMatchEvaluator.m; path = Classes/Matchers/KWGenericMatchEvaluator.m; sourceTree = ""; }; + 81709A68610F4926EF12AF994568B7C4 /* Pods-Tests-TransitionKit iOS Tests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-Tests-TransitionKit iOS Tests-frameworks.sh"; sourceTree = ""; }; + 82C58D345F3385EE526EB9E6093F4A9B /* KWInvocationCapturer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWInvocationCapturer.m; path = Classes/Core/KWInvocationCapturer.m; sourceTree = ""; }; + 8360901F15ABA7A40903E016D32D0707 /* Pods-Tests-TransitionKit macOS Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Tests-TransitionKit macOS Tests.release.xcconfig"; sourceTree = ""; }; + 8431073B8C86A3C5F402310A4CCFCD7A /* KWExistVerifier.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWExistVerifier.h; path = Classes/Verifiers/KWExistVerifier.h; sourceTree = ""; }; + 847D05418B5B6F10CABA60007ADBCB40 /* NSInvocation+KiwiAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSInvocation+KiwiAdditions.m"; path = "Classes/Core/NSInvocation+KiwiAdditions.m"; sourceTree = ""; }; + 85910BD89BFA64FDFE83917EF907901D /* KWStringPrefixMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWStringPrefixMatcher.m; path = Classes/Matchers/KWStringPrefixMatcher.m; sourceTree = ""; }; + 866777442F22D145FA6F9C65F8484823 /* libKiwi-OSX.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libKiwi-OSX.a"; path = "libKiwi-OSX.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 8B960BA95F7E2372382893C73E851C5F /* KWAsyncVerifier.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWAsyncVerifier.h; path = Classes/Verifiers/KWAsyncVerifier.h; sourceTree = ""; }; + 8BEF8601DBDFF67698C86A7465D0DE6D /* KWMatcherFactory.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWMatcherFactory.m; path = Classes/Core/KWMatcherFactory.m; sourceTree = ""; }; + 8C892E8DBF96E3993B73DC024F824CBA /* KWContextNode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWContextNode.h; path = Classes/Nodes/KWContextNode.h; sourceTree = ""; }; + 8EE55801BA8EAF4F36D6C4137DE0AFBD /* KWSymbolicator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWSymbolicator.h; path = Classes/Core/KWSymbolicator.h; sourceTree = ""; }; + 8F9F719B5BBCE9382930036499525B39 /* NSNumber+KiwiAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSNumber+KiwiAdditions.h"; path = "Classes/Core/NSNumber+KiwiAdditions.h"; sourceTree = ""; }; + 90B84A9B0042A11B9E60703C9E586918 /* KWExampleSuiteBuilder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWExampleSuiteBuilder.m; path = Classes/Core/KWExampleSuiteBuilder.m; sourceTree = ""; }; + 91102A88506DBDC6287A88895B888BDB /* KWBeIdenticalToMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWBeIdenticalToMatcher.h; path = Classes/Matchers/KWBeIdenticalToMatcher.h; sourceTree = ""; }; + 9263A3870C29E2DCB5D42C6C30E7ED74 /* KWValue.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWValue.m; path = Classes/Core/KWValue.m; sourceTree = ""; }; + 92EEA89B422A33F3B2D62457F182A99E /* KWFailure.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWFailure.m; path = Classes/Core/KWFailure.m; sourceTree = ""; }; + 932BF14AECD2A29276E065EE2B454CF2 /* KWFailure.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWFailure.h; path = Classes/Core/KWFailure.h; sourceTree = ""; }; + 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 94F563A02CDEC9274FCA4DB421D4BC73 /* KWHaveValueMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWHaveValueMatcher.h; path = Classes/Matchers/KWHaveValueMatcher.h; sourceTree = ""; }; + 96E3F8085FBB092401A31E59CEBCCA05 /* NSObject+KiwiMockAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+KiwiMockAdditions.h"; path = "Classes/Mocking/NSObject+KiwiMockAdditions.h"; sourceTree = ""; }; + 975A571B9E39A04BB66BECB12B3324D3 /* KWMessageTracker.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWMessageTracker.h; path = Classes/Core/KWMessageTracker.h; sourceTree = ""; }; + 9761199A4AC57161FD46825EE28C0174 /* TransitionKit-iOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "TransitionKit-iOS-dummy.m"; path = "../TransitionKit-iOS/TransitionKit-iOS-dummy.m"; sourceTree = ""; }; + 97F048881AF42E17E7F1E7D6F5F6FE67 /* TKEvent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TKEvent.h; sourceTree = ""; }; + 9E9FB4F5D8ABF9DBB05D40B9E4D350E6 /* KWSpec.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWSpec.m; path = Classes/Core/KWSpec.m; sourceTree = ""; }; + A0F594363F623208C379DD678DD0ABDD /* Kiwi-OSX-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Kiwi-OSX-prefix.pch"; sourceTree = ""; }; + A2432F14B5A93B3E4A832E863EC8D274 /* KWMock.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWMock.h; path = Classes/Mocking/KWMock.h; sourceTree = ""; }; + A2F96CE5DC0D8EC6DEDBE2259FA0BE65 /* KWMessagePattern.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWMessagePattern.h; path = Classes/Core/KWMessagePattern.h; sourceTree = ""; }; + A7EE6629E43BB2D68A69F97133AEC45E /* KiwiConfiguration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KiwiConfiguration.h; path = Classes/Core/KiwiConfiguration.h; sourceTree = ""; }; + A9099286068F40F2D5B95BEB6A0C4CAB /* KiwiBlockMacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KiwiBlockMacros.h; path = Classes/Core/KiwiBlockMacros.h; sourceTree = ""; }; + A9FF2729E28D56E18100AF4F0851D30E /* KWContextNode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWContextNode.m; path = Classes/Nodes/KWContextNode.m; sourceTree = ""; }; + AB59D582F4CF6FC48DB8535B21595281 /* KWBeSubclassOfClassMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWBeSubclassOfClassMatcher.m; path = Classes/Matchers/KWBeSubclassOfClassMatcher.m; sourceTree = ""; }; + ACA878E9592C301AB401C38EF55E4A33 /* KWChangeMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWChangeMatcher.m; path = Classes/Matchers/KWChangeMatcher.m; sourceTree = ""; }; + AD0AD0691900FE20808DB37D7CE905BD /* Pods-Tests-TransitionKit macOS Tests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-Tests-TransitionKit macOS Tests-acknowledgements.plist"; sourceTree = ""; }; + AD34216E46DBCE86FEFAE4EB35FE8683 /* NSObject+KiwiStubAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+KiwiStubAdditions.m"; path = "Classes/Stubbing/NSObject+KiwiStubAdditions.m"; sourceTree = ""; }; + AEEAFD580CA92BE681F25B01C0A8AD08 /* NSProxy+KiwiVerifierAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSProxy+KiwiVerifierAdditions.h"; path = "Classes/Core/NSProxy+KiwiVerifierAdditions.h"; sourceTree = ""; }; + AF2E9FB8B7A08C2681DFBE771F6DDD64 /* TKTransition.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TKTransition.m; sourceTree = ""; }; + B07A9E216C297461B3F7B35F32D049AF /* KWExample.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWExample.m; path = Classes/Core/KWExample.m; sourceTree = ""; }; + B1FDE3CFE9DF3F2F0D13D797EEA66E2D /* KiwiMacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KiwiMacros.h; path = Classes/Core/KiwiMacros.h; sourceTree = ""; }; + B34A4A73DC8745B202D4328E9FE95AFF /* KWAsyncVerifier.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWAsyncVerifier.m; path = Classes/Verifiers/KWAsyncVerifier.m; sourceTree = ""; }; + B4A02E00A9BA3C496659704D483248DB /* TKTransition.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TKTransition.h; sourceTree = ""; }; + B4D2C9D0CB170604E6F9200C03CA1D9A /* KWSymbolicator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWSymbolicator.m; path = Classes/Core/KWSymbolicator.m; sourceTree = ""; }; + B4D30D55A41A848A797A5009195D0E77 /* TransitionKit-OSX.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "TransitionKit-OSX.xcconfig"; sourceTree = ""; }; + B56D5211DEC0FC63EF4667A7441FAE76 /* KWHaveValueMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWHaveValueMatcher.m; path = Classes/Matchers/KWHaveValueMatcher.m; sourceTree = ""; }; + B7AA28898252FA71C48171258F4DABD3 /* TransitionKit-OSX-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "TransitionKit-OSX-prefix.pch"; sourceTree = ""; }; + B90D667595B25FE8107776F651A911E0 /* KWHaveMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWHaveMatcher.h; path = Classes/Matchers/KWHaveMatcher.h; sourceTree = ""; }; + BBAD47D3C57FAA56D76723628BCFD574 /* KWFutureObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWFutureObject.m; path = Classes/Core/KWFutureObject.m; sourceTree = ""; }; + BCC0A7D3803F2BCC4EA4A1AF84421BD2 /* Kiwi-iOS-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "Kiwi-iOS-prefix.pch"; path = "../Kiwi-iOS/Kiwi-iOS-prefix.pch"; sourceTree = ""; }; + BD0A74A8AB1D7AACBAEB25E5A6561A7A /* KWNilMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWNilMatcher.m; path = Classes/Matchers/KWNilMatcher.m; sourceTree = ""; }; + BE3DB1826B68E076AF2053EB46479F9C /* Kiwi-OSX.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Kiwi-OSX.xcconfig"; sourceTree = ""; }; + BEC09EF12D36C112A2073415D47EA590 /* Kiwi-OSX-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Kiwi-OSX-dummy.m"; sourceTree = ""; }; + C00391BF74FFCEB4E362820633E44A16 /* KWAfterEachNode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWAfterEachNode.h; path = Classes/Nodes/KWAfterEachNode.h; sourceTree = ""; }; + C03EA831D91AD195092236D7BB777AB9 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; + C11BE1F6B5286EE0E9399EFAEC329D45 /* KWLet.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWLet.h; path = Classes/Core/KWLet.h; sourceTree = ""; }; + CA86054E4BF8A85EBFCCC53B71CD3AD7 /* KWBeMemberOfClassMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWBeMemberOfClassMatcher.h; path = Classes/Matchers/KWBeMemberOfClassMatcher.h; sourceTree = ""; }; + CB5BF753B42AC2690BF9B169CD493C86 /* TKStateMachine.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TKStateMachine.m; sourceTree = ""; }; + CC14B905FA8567008244E93BBC9BC6F4 /* KWPendingNode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWPendingNode.h; path = Classes/Nodes/KWPendingNode.h; sourceTree = ""; }; + CEB7705CFF20069B0AD464D3788E8509 /* KWPendingNode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWPendingNode.m; path = Classes/Nodes/KWPendingNode.m; sourceTree = ""; }; + CFD8CC34D996E6495B03B6DAE579BAFD /* KWBeforeAllNode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWBeforeAllNode.h; path = Classes/Nodes/KWBeforeAllNode.h; sourceTree = ""; }; + D16A250AB4D5D8A30BC6AEA9384AD724 /* KWLetNode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWLetNode.h; path = Classes/Nodes/KWLetNode.h; sourceTree = ""; }; + D349CE6FFB645614081D42AA23475E68 /* KWBeTrueMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWBeTrueMatcher.h; path = Classes/Matchers/KWBeTrueMatcher.h; sourceTree = ""; }; + D5723A007DC1B78FD63A32F36D9165DA /* KWNotificationMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWNotificationMatcher.m; path = Classes/Matchers/KWNotificationMatcher.m; sourceTree = ""; }; + D5A2992D992C249872890F4DBBE4FD5E /* KWBlockRaiseMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWBlockRaiseMatcher.h; path = Classes/Matchers/KWBlockRaiseMatcher.h; sourceTree = ""; }; + D604F15564BCC64E0D54F6EAC5AE0C78 /* KWReporting.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWReporting.h; path = Classes/Core/KWReporting.h; sourceTree = ""; }; + D6823D61CF304E54C491F5960BAA58F6 /* KWWorkarounds.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWWorkarounds.m; path = Classes/Core/KWWorkarounds.m; sourceTree = ""; }; + D8E9B5260480E4EA7ED06C6BEE15DF56 /* KWUserDefinedMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWUserDefinedMatcher.h; path = Classes/Matchers/KWUserDefinedMatcher.h; sourceTree = ""; }; + D9444A54A51E466BF711929BEC8EF795 /* KWContainMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWContainMatcher.h; path = Classes/Matchers/KWContainMatcher.h; sourceTree = ""; }; + D962F9362779AE2C4D97F3F663613538 /* Pods-Tests-TransitionKit iOS Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Tests-TransitionKit iOS Tests.debug.xcconfig"; sourceTree = ""; }; + D98B4B3B4B36CF2D79CA727DAC03DA3B /* KWStub.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWStub.h; path = Classes/Stubbing/KWStub.h; sourceTree = ""; }; + DC07648E71560AA3BF5E8BD9F4C528A8 /* KWMatcherFactory.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWMatcherFactory.h; path = Classes/Core/KWMatcherFactory.h; sourceTree = ""; }; + DCE29C3EEECABA223CE9F305FDB9BE84 /* KWExampleSuite.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWExampleSuite.m; path = Classes/Core/KWExampleSuite.m; sourceTree = ""; }; + DDD467069D9324A4453D8C98B781B720 /* KWGenericMatchingAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWGenericMatchingAdditions.m; path = Classes/Matchers/KWGenericMatchingAdditions.m; sourceTree = ""; }; + DFCFCF9B94B19B1BFC1B2F0819E6AD00 /* KWConformToProtocolMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWConformToProtocolMatcher.h; path = Classes/Matchers/KWConformToProtocolMatcher.h; sourceTree = ""; }; + E00C27B968DCB013A54B7C5EB0389177 /* TransitionKit-iOS.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "TransitionKit-iOS.xcconfig"; path = "../TransitionKit-iOS/TransitionKit-iOS.xcconfig"; sourceTree = ""; }; + E044190493CF6FB17C083B26DDDC24D2 /* KWProbePoller.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWProbePoller.m; path = Classes/Core/KWProbePoller.m; sourceTree = ""; }; + E25E46EAB69062E09638D06EB1EFCD4B /* NSMethodSignature+KiwiAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSMethodSignature+KiwiAdditions.h"; path = "Classes/Core/NSMethodSignature+KiwiAdditions.h"; sourceTree = ""; }; + E36378CB9EB76D52E79133F25E22361F /* KWGenericMatchingAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWGenericMatchingAdditions.h; path = Classes/Matchers/KWGenericMatchingAdditions.h; sourceTree = ""; }; + E3EFEE43F7D968D5C20954859E6D98A3 /* KWObjCUtilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWObjCUtilities.h; path = Classes/Core/KWObjCUtilities.h; sourceTree = ""; }; + E456727FDD3E673A571693D0F8E1C0E0 /* Pods-Tests-TransitionKit macOS Tests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-Tests-TransitionKit macOS Tests-acknowledgements.markdown"; sourceTree = ""; }; + E5C056310DD25611B55920F706F9A023 /* KWRegularExpressionPatternMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWRegularExpressionPatternMatcher.m; path = Classes/Matchers/KWRegularExpressionPatternMatcher.m; sourceTree = ""; }; + E6CFB6229102ACF8C2F1199E7D42D7F7 /* KWWorkarounds.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWWorkarounds.h; path = Classes/Core/KWWorkarounds.h; sourceTree = ""; }; + E80E5E0CFA0B6C597B0B3B3A35415977 /* KWMock.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWMock.m; path = Classes/Mocking/KWMock.m; sourceTree = ""; }; + E85547003C04A12B37AB4713D4AC488F /* KWStringContainsMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWStringContainsMatcher.h; path = Classes/Matchers/KWStringContainsMatcher.h; sourceTree = ""; }; + E86341347141CDD7F7314BE23137DFF3 /* KWDeviceInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWDeviceInfo.m; path = Classes/Core/KWDeviceInfo.m; sourceTree = ""; }; + E922B62B6EC20FE76AB93A12DAE45D6D /* KWExpectationType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWExpectationType.h; path = Classes/Core/KWExpectationType.h; sourceTree = ""; }; + E9A767EE0FEFAF78C2DE1FC493B51227 /* KWReceiveMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWReceiveMatcher.m; path = Classes/Matchers/KWReceiveMatcher.m; sourceTree = ""; }; + EA432EC6DB6F989648B12DFC16438C9E /* KWMatchVerifier.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWMatchVerifier.h; path = Classes/Verifiers/KWMatchVerifier.h; sourceTree = ""; }; + EAEADAF5178E2B5D2310BB77BC366FB3 /* KWExampleNode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWExampleNode.h; path = Classes/Nodes/KWExampleNode.h; sourceTree = ""; }; + EB679DECBA9D0FFF026255D78C84FB1A /* KWBeWithinMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWBeWithinMatcher.m; path = Classes/Matchers/KWBeWithinMatcher.m; sourceTree = ""; }; + EBA1B98D14D759934B51499FF4C6EAE1 /* Kiwi-iOS.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Kiwi-iOS.xcconfig"; path = "../Kiwi-iOS/Kiwi-iOS.xcconfig"; sourceTree = ""; }; + ED4A9764F248CFF43569FF0BFAB30448 /* NSObject+KiwiMockAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+KiwiMockAdditions.m"; path = "Classes/Mocking/NSObject+KiwiMockAdditions.m"; sourceTree = ""; }; + EE46777CFFF114CB04E87C56B4AD171C /* KWBlock.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWBlock.m; path = Classes/Core/KWBlock.m; sourceTree = ""; }; + EEB8D19562B679A83C28687DEE1E7BEC /* NSInvocation+KiwiAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSInvocation+KiwiAdditions.h"; path = "Classes/Core/NSInvocation+KiwiAdditions.h"; sourceTree = ""; }; + EEE29A800ABF3CF88B82DE34324E8142 /* Pods-Tests-TransitionKit macOS Tests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Tests-TransitionKit macOS Tests-dummy.m"; sourceTree = ""; }; + EF9DEC550C5A27F945AFE8A095175528 /* TKEvent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TKEvent.m; sourceTree = ""; }; + EFDDEBEB2F897787179080F5CE50DBEF /* KWCaptureSpy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWCaptureSpy.h; path = Classes/Core/KWCaptureSpy.h; sourceTree = ""; }; + F0273CAD5C5B65C439A64EDDE81B1E24 /* KWValue.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWValue.h; path = Classes/Core/KWValue.h; sourceTree = ""; }; + F1E5C5C93CEF5427302C8B5C91C391E3 /* Pods-Tests-TransitionKit iOS Tests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-Tests-TransitionKit iOS Tests-resources.sh"; sourceTree = ""; }; + F237C8C61313415A9EBF8DEAC7D45AB3 /* NSObject+KiwiVerifierAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+KiwiVerifierAdditions.m"; path = "Classes/Core/NSObject+KiwiVerifierAdditions.m"; sourceTree = ""; }; + F44D64D96339AB0F279947116D802AC9 /* NSObject+KiwiStubAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+KiwiStubAdditions.h"; path = "Classes/Stubbing/NSObject+KiwiStubAdditions.h"; sourceTree = ""; }; + F6DD37FDB7E373823C221B489E7DC4B9 /* KWFutureObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWFutureObject.h; path = Classes/Core/KWFutureObject.h; sourceTree = ""; }; + F7CDBCCA2EF3A6B79094328F2563D194 /* KWVerifying.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWVerifying.h; path = Classes/Verifiers/KWVerifying.h; sourceTree = ""; }; + F91E3402743EB2CB50D26AEDAE9F5F95 /* KWStringUtilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWStringUtilities.m; path = Classes/Core/KWStringUtilities.m; sourceTree = ""; }; + FA42334A250A8C547004751E11857E1B /* KWNull.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWNull.m; path = Classes/Core/KWNull.m; sourceTree = ""; }; + FAFEF33D625201A59D46CB32EB4A3A8F /* KWNotificationMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWNotificationMatcher.h; path = Classes/Matchers/KWNotificationMatcher.h; sourceTree = ""; }; + FB12994D3EF0E8618DFD72B113CE6FDD /* KWInequalityMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWInequalityMatcher.h; path = Classes/Matchers/KWInequalityMatcher.h; sourceTree = ""; }; + FB8E3C2A0E050F90BE46AF302869CB3A /* KWRegisterMatchersNode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWRegisterMatchersNode.h; path = Classes/Nodes/KWRegisterMatchersNode.h; sourceTree = ""; }; + FCFA5EE0ED967CD54CA824E8C49A5946 /* KWMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWMatcher.m; path = Classes/Core/KWMatcher.m; sourceTree = ""; }; + FF4091FC5A79BE72E877EB6405345315 /* libPods-Tests-TransitionKit iOS Tests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libPods-Tests-TransitionKit iOS Tests.a"; path = "libPods-Tests-TransitionKit iOS Tests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + FF4125BC7B176A4EC21EF18019AD8969 /* KWStringContainsMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWStringContainsMatcher.m; path = Classes/Matchers/KWStringContainsMatcher.m; sourceTree = ""; }; + FF807698AD6A9FB090E1D13BE0625829 /* KWBeIdenticalToMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWBeIdenticalToMatcher.m; path = Classes/Matchers/KWBeIdenticalToMatcher.m; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 17AE13D4BB4D45EDC8DC825DE5F1F638 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 3E72BBD8E58BD109BB80145B8F9C1178 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 5E25360B55AFFD04D088ADE3201D3BF6 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 7536BC000208B941A15C66D9AC3B844B /* Cocoa.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 75DCDCFF68ED5C3C1B7E4DBFBF5E5E09 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + E94CF827E6F3C6718893148BDBBB13BC /* Foundation.framework in Frameworks */, + 2A6D59BAABE9035419752723266424D6 /* XCTest.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 99B491F5FF1CE3196EA43F3B1E95CC93 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + C4E907B261FB46CD30E19DFA5D6B56B0 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C1FF25098B4B5C3EC76CE9FE3C27C570 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + AE88E82FA28AAE0B5DFF1A6B21BA3585 /* Cocoa.framework in Frameworks */, + 42F564AFCE5F1C28581F7541F49464E8 /* XCTest.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E3590702E5F61CEAD5CCEF4B1F87F744 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + B23301896BC4EC3D744313B30B066EDB /* Cocoa.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 0585E7DE0F9ECED68D2FD0FFEEB4E455 /* Products */ = { + isa = PBXGroup; + children = ( + 1CE262A553A2502921C0E78DA2A7F6DC /* libKiwi-iOS.a */, + 866777442F22D145FA6F9C65F8484823 /* libKiwi-OSX.a */, + FF4091FC5A79BE72E877EB6405345315 /* libPods-Tests-TransitionKit iOS Tests.a */, + 7D7697FE1511358632E4594253DC3571 /* libPods-Tests-TransitionKit macOS Tests.a */, + 10AB2797AAC0DCB6A9B711A1B731B574 /* libTransitionKit-iOS.a */, + 480C95E78BCF7FD2EDB54E8ABE0C8719 /* libTransitionKit-OSX.a */, + ); + name = Products; + sourceTree = ""; + }; + 10DD41A94D5A3AF7CF24D24DBAF649B3 /* OS X */ = { + isa = PBXGroup; + children = ( + 422FAD60290D2EA7012293B8FDE679F8 /* Cocoa.framework */, + 1390E56741A21D7304092F55FCB26EBB /* XCTest.framework */, + ); + name = "OS X"; + sourceTree = ""; + }; + 324E01A98CC579B6EA8523CD8C7FDFA3 /* Support Files */ = { + isa = PBXGroup; + children = ( + EBA1B98D14D759934B51499FF4C6EAE1 /* Kiwi-iOS.xcconfig */, + 669C539461364A09713D2166205A32A6 /* Kiwi-iOS-dummy.m */, + BCC0A7D3803F2BCC4EA4A1AF84421BD2 /* Kiwi-iOS-prefix.pch */, + BE3DB1826B68E076AF2053EB46479F9C /* Kiwi-OSX.xcconfig */, + BEC09EF12D36C112A2073415D47EA590 /* Kiwi-OSX-dummy.m */, + A0F594363F623208C379DD678DD0ABDD /* Kiwi-OSX-prefix.pch */, + ); + name = "Support Files"; + path = "../Target Support Files/Kiwi-OSX"; + sourceTree = ""; + }; + 428085ED33354FC3F65CD9032545EE4B /* iOS */ = { + isa = PBXGroup; + children = ( + C03EA831D91AD195092236D7BB777AB9 /* Foundation.framework */, + 1CC7333B171173016282DC518E43F3F0 /* XCTest.framework */, + ); + name = iOS; + sourceTree = ""; + }; + 59EDFAEC439148502A9DA655CB98F298 /* Pods */ = { + isa = PBXGroup; + children = ( + DD7EF3186A6BDBA8D3AE13812FBCBB93 /* Kiwi */, + ); + name = Pods; + sourceTree = ""; + }; + 7DB346D0F39D3F0E887471402A8071AB = { + isa = PBXGroup; + children = ( + 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */, + 8E27127DF81951A729365A95ADC74123 /* Development Pods */, + A944112664219A87DE27239EDD7E0B22 /* Frameworks */, + 59EDFAEC439148502A9DA655CB98F298 /* Pods */, + 0585E7DE0F9ECED68D2FD0FFEEB4E455 /* Products */, + D3D2822F49B771452759CA6426247623 /* Targets Support Files */, + ); + sourceTree = ""; + }; + 8E27127DF81951A729365A95ADC74123 /* Development Pods */ = { + isa = PBXGroup; + children = ( + F21A01D39E98072E5374650370BA4535 /* TransitionKit */, + ); + name = "Development Pods"; + sourceTree = ""; + }; + 8EF271D2A871ED27938021EF8EA1C38F /* Code */ = { + isa = PBXGroup; + children = ( + 97F048881AF42E17E7F1E7D6F5F6FE67 /* TKEvent.h */, + EF9DEC550C5A27F945AFE8A095175528 /* TKEvent.m */, + 393F94421B8F85C548119F76EE48452F /* TKState.h */, + 648D8A393C28444D622BF37F02B422B7 /* TKState.m */, + 034EA5E4571A5F342C7C36A734A37900 /* TKStateMachine.h */, + CB5BF753B42AC2690BF9B169CD493C86 /* TKStateMachine.m */, + B4A02E00A9BA3C496659704D483248DB /* TKTransition.h */, + AF2E9FB8B7A08C2681DFBE771F6DDD64 /* TKTransition.m */, + 23E1571FCA3A6EC612572E670F594659 /* TransitionKit.h */, + ); + name = Code; + path = Code; + sourceTree = ""; + }; + A944112664219A87DE27239EDD7E0B22 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 428085ED33354FC3F65CD9032545EE4B /* iOS */, + 10DD41A94D5A3AF7CF24D24DBAF649B3 /* OS X */, + ); + name = Frameworks; + sourceTree = ""; + }; + AD708CD4922E58195565A399A8EC530E /* Support Files */ = { + isa = PBXGroup; + children = ( + E00C27B968DCB013A54B7C5EB0389177 /* TransitionKit-iOS.xcconfig */, + 9761199A4AC57161FD46825EE28C0174 /* TransitionKit-iOS-dummy.m */, + 527E7E0152A581D6B6A50B3D154A14BB /* TransitionKit-iOS-prefix.pch */, + B4D30D55A41A848A797A5009195D0E77 /* TransitionKit-OSX.xcconfig */, + 44C6610BE6F06F04404102ECBFB01DD3 /* TransitionKit-OSX-dummy.m */, + B7AA28898252FA71C48171258F4DABD3 /* TransitionKit-OSX-prefix.pch */, + ); + name = "Support Files"; + path = "Pods/Target Support Files/TransitionKit-OSX"; + sourceTree = ""; + }; + D3D2822F49B771452759CA6426247623 /* Targets Support Files */ = { + isa = PBXGroup; + children = ( + E31FAF1084C42B5DD9BAEE298609D99B /* Pods-Tests-TransitionKit iOS Tests */, + E0112F16FF1D622A4CB43AFBD17BCDC5 /* Pods-Tests-TransitionKit macOS Tests */, + ); + name = "Targets Support Files"; + sourceTree = ""; + }; + DD7EF3186A6BDBA8D3AE13812FBCBB93 /* Kiwi */ = { + isa = PBXGroup; + children = ( + 43FEA8C258296A47215FA1418AC340E5 /* Kiwi.h */, + A9099286068F40F2D5B95BEB6A0C4CAB /* KiwiBlockMacros.h */, + A7EE6629E43BB2D68A69F97133AEC45E /* KiwiConfiguration.h */, + B1FDE3CFE9DF3F2F0D13D797EEA66E2D /* KiwiMacros.h */, + 0ECFB18D1A19B589397B6D18E4E5A21C /* KWAfterAllNode.h */, + 616DEFC59352FFC06ED487243FFF6B21 /* KWAfterAllNode.m */, + C00391BF74FFCEB4E362820633E44A16 /* KWAfterEachNode.h */, + 0A8AB445D6EC0328FAA1894B40437D6B /* KWAfterEachNode.m */, + 78BB682ADE58F2C57B11F4385418B8D6 /* KWAllTestsSuite.m */, + 3BA34CE0BCFEF3D6F6CB188883176EB9 /* KWAny.h */, + 113E1B9BC80A7DEDB2792CCD634B0BD6 /* KWAny.m */, + 8B960BA95F7E2372382893C73E851C5F /* KWAsyncVerifier.h */, + B34A4A73DC8745B202D4328E9FE95AFF /* KWAsyncVerifier.m */, + 643D7C56E967BA3D7E131EA1BBB094D7 /* KWBeBetweenMatcher.h */, + 0CC9A6D18B5072D2DF0B38DA413C1A78 /* KWBeBetweenMatcher.m */, + 2611FC65E9B987E3203ECC8545C4DCF1 /* KWBeEmptyMatcher.h */, + 541F3BE533709B3274E60136132AFD18 /* KWBeEmptyMatcher.m */, + CFD8CC34D996E6495B03B6DAE579BAFD /* KWBeforeAllNode.h */, + 3E95B982DF325EDFC5857FC3AE79ACB6 /* KWBeforeAllNode.m */, + 630D678B8DADB0BED7FC51FFFF48924A /* KWBeforeEachNode.h */, + 35A7A4DC14FDD71920BF9A2DFED5A026 /* KWBeforeEachNode.m */, + 91102A88506DBDC6287A88895B888BDB /* KWBeIdenticalToMatcher.h */, + FF807698AD6A9FB090E1D13BE0625829 /* KWBeIdenticalToMatcher.m */, + 1872AE16F181CB62786A96B5ADA3C37C /* KWBeKindOfClassMatcher.h */, + 2C5659E20E953DFEC130ED99ED3A5B61 /* KWBeKindOfClassMatcher.m */, + CA86054E4BF8A85EBFCCC53B71CD3AD7 /* KWBeMemberOfClassMatcher.h */, + 294D205727AABFE5EFA3ECAAC1FC56ED /* KWBeMemberOfClassMatcher.m */, + 2C8C3A6BE1E5DCEACB92D753366DF758 /* KWBeSubclassOfClassMatcher.h */, + AB59D582F4CF6FC48DB8535B21595281 /* KWBeSubclassOfClassMatcher.m */, + D349CE6FFB645614081D42AA23475E68 /* KWBeTrueMatcher.h */, + 1AD1B970493E965C8223D04338FA580E /* KWBeTrueMatcher.m */, + 6BFE0CAE805CF54C07E3BF863F446C61 /* KWBeWithinMatcher.h */, + EB679DECBA9D0FFF026255D78C84FB1A /* KWBeWithinMatcher.m */, + 6DBEBCBD3DECBF4556D3375E80FDE35F /* KWBeZeroMatcher.h */, + 6D7C527685C98ACE3FE01EE25379EE76 /* KWBeZeroMatcher.m */, + 73CC2A29DEABE0D93CDCBA1118E8BD9D /* KWBlock.h */, + EE46777CFFF114CB04E87C56B4AD171C /* KWBlock.m */, + 351A65F768811A66D14252F4360E6C9C /* KWBlockNode.h */, + 70892B40A7F42C5557A713B07351BF9A /* KWBlockNode.m */, + D5A2992D992C249872890F4DBBE4FD5E /* KWBlockRaiseMatcher.h */, + 4BF0DCD2266DE17DB603E6DBF522F0BD /* KWBlockRaiseMatcher.m */, + 2E862E7F777D7FF09F2CFC5DFA8CB14F /* KWCallSite.h */, + 17E094ECF9B0E4DFC3FBAD5C205A19DD /* KWCallSite.m */, + EFDDEBEB2F897787179080F5CE50DBEF /* KWCaptureSpy.h */, + 5ACC0EC17A9E0127F21610540BA6468B /* KWCaptureSpy.m */, + 78E2ABB82E91C9992234960DD027F1B1 /* KWChangeMatcher.h */, + ACA878E9592C301AB401C38EF55E4A33 /* KWChangeMatcher.m */, + DFCFCF9B94B19B1BFC1B2F0819E6AD00 /* KWConformToProtocolMatcher.h */, + 4F5E10FF37964EFF6B2D196DEDC49F16 /* KWConformToProtocolMatcher.m */, + D9444A54A51E466BF711929BEC8EF795 /* KWContainMatcher.h */, + 64DEF5400AD4404A94E8A5C096952E12 /* KWContainMatcher.m */, + 2863C373DB49AB3F8C8E423F51C863AE /* KWContainStringMatcher.h */, + 37076C5802E00623594BAE04318D8D4E /* KWContainStringMatcher.m */, + 8C892E8DBF96E3993B73DC024F824CBA /* KWContextNode.h */, + A9FF2729E28D56E18100AF4F0851D30E /* KWContextNode.m */, + 42EBE5950F6E0E14DB65083B425C611D /* KWCountType.h */, + 568BAD5CD52E19264F45E0E0381DA0FD /* KWDeviceInfo.h */, + E86341347141CDD7F7314BE23137DFF3 /* KWDeviceInfo.m */, + 40A69EA9528A384C2C5662193EEE6FE5 /* KWEqualMatcher.h */, + 6918A19DC1D5CAE9508F3926F0CA0D94 /* KWEqualMatcher.m */, + 1E9C00C464746D026083FA7E144C708F /* KWExample.h */, + B07A9E216C297461B3F7B35F32D049AF /* KWExample.m */, + 7BA6032F0844756BD46A7E8079D19AC3 /* KWExampleDelegate.h */, + EAEADAF5178E2B5D2310BB77BC366FB3 /* KWExampleNode.h */, + 212D76EA5FA339A0C58D61F208F6EA66 /* KWExampleNodeVisitor.h */, + 21911470869B89C13289979D4BD650AE /* KWExampleSuite.h */, + DCE29C3EEECABA223CE9F305FDB9BE84 /* KWExampleSuite.m */, + 0F2B9871936398B30FC4361D5A71826A /* KWExampleSuiteBuilder.h */, + 90B84A9B0042A11B9E60703C9E586918 /* KWExampleSuiteBuilder.m */, + 8431073B8C86A3C5F402310A4CCFCD7A /* KWExistVerifier.h */, + 489C1906472A7F4CB9FE8902259892E0 /* KWExistVerifier.m */, + E922B62B6EC20FE76AB93A12DAE45D6D /* KWExpectationType.h */, + 932BF14AECD2A29276E065EE2B454CF2 /* KWFailure.h */, + 92EEA89B422A33F3B2D62457F182A99E /* KWFailure.m */, + 2D7DCCB27760A04D2768AB68AE1363A3 /* KWFormatter.h */, + 14AD1285328ED8B3CA0CDC6242BB6D88 /* KWFormatter.m */, + F6DD37FDB7E373823C221B489E7DC4B9 /* KWFutureObject.h */, + BBAD47D3C57FAA56D76723628BCFD574 /* KWFutureObject.m */, + 29AC97F54FF338B0F3C1DFEA43EB047F /* KWGenericMatcher.h */, + 500E0B5EFFDDF7D6E2537BC1CD76732B /* KWGenericMatcher.m */, + 250EBC95B13ABC459B6B8EABD7448826 /* KWGenericMatchEvaluator.h */, + 7FBBDCBAA6261E65D006B972D25D28A1 /* KWGenericMatchEvaluator.m */, + E36378CB9EB76D52E79133F25E22361F /* KWGenericMatchingAdditions.h */, + DDD467069D9324A4453D8C98B781B720 /* KWGenericMatchingAdditions.m */, + B90D667595B25FE8107776F651A911E0 /* KWHaveMatcher.h */, + 546126E831DA125797DBA34D0B0B15C9 /* KWHaveMatcher.m */, + 94F563A02CDEC9274FCA4DB421D4BC73 /* KWHaveValueMatcher.h */, + B56D5211DEC0FC63EF4667A7441FAE76 /* KWHaveValueMatcher.m */, + FB12994D3EF0E8618DFD72B113CE6FDD /* KWInequalityMatcher.h */, + 06562BE430DC665872475BE5B5175D0B /* KWInequalityMatcher.m */, + 5105ED7F6D13025869962A50A6635F3B /* KWIntercept.h */, + 5E83908F3C4D685D8B8DE9ADFF71CDF8 /* KWIntercept.m */, + 4CAB5D796FF6822200772634A39EEEDD /* KWInvocationCapturer.h */, + 82C58D345F3385EE526EB9E6093F4A9B /* KWInvocationCapturer.m */, + 3F5ABA49B2E5915A05F4F4D314DE7F77 /* KWItNode.h */, + 1ABEFB505538A1453B7380EDB6331F13 /* KWItNode.m */, + C11BE1F6B5286EE0E9399EFAEC329D45 /* KWLet.h */, + D16A250AB4D5D8A30BC6AEA9384AD724 /* KWLetNode.h */, + 670B20674A4437F828F4026CA8033171 /* KWLetNode.m */, + 2ACAFC3703DEE3F72D38ADED35EB11A7 /* KWMatcher.h */, + FCFA5EE0ED967CD54CA824E8C49A5946 /* KWMatcher.m */, + DC07648E71560AA3BF5E8BD9F4C528A8 /* KWMatcherFactory.h */, + 8BEF8601DBDFF67698C86A7465D0DE6D /* KWMatcherFactory.m */, + 4C970E9FDC8AA8D6B5FE73B21B5F8F38 /* KWMatchers.h */, + 527FB1E1ADF4ECC1E7D0903B9A53620B /* KWMatchers.m */, + 0A45858C5D1F13CFB7E9D72A1DC37F0C /* KWMatching.h */, + EA432EC6DB6F989648B12DFC16438C9E /* KWMatchVerifier.h */, + 22A3F9B97668DEDE95EA01736E9F652E /* KWMatchVerifier.m */, + A2F96CE5DC0D8EC6DEDBE2259FA0BE65 /* KWMessagePattern.h */, + 059420CE8C1DC29FD9EE1B1B2A3E0335 /* KWMessagePattern.m */, + 69DA46C17E7EB139FD868FF009783CED /* KWMessageSpying.h */, + 975A571B9E39A04BB66BECB12B3324D3 /* KWMessageTracker.h */, + 2A8586A48B0A358C7103C4922AC7B380 /* KWMessageTracker.m */, + A2432F14B5A93B3E4A832E863EC8D274 /* KWMock.h */, + E80E5E0CFA0B6C597B0B3B3A35415977 /* KWMock.m */, + 57D0C1D91B37A359DAA73D15AD96586A /* KWNilMatcher.h */, + BD0A74A8AB1D7AACBAEB25E5A6561A7A /* KWNilMatcher.m */, + FAFEF33D625201A59D46CB32EB4A3A8F /* KWNotificationMatcher.h */, + D5723A007DC1B78FD63A32F36D9165DA /* KWNotificationMatcher.m */, + 754CFB098670EAE31A27C94634697BD7 /* KWNull.h */, + FA42334A250A8C547004751E11857E1B /* KWNull.m */, + E3EFEE43F7D968D5C20954859E6D98A3 /* KWObjCUtilities.h */, + 758113E06C1F73B605A9CF5A2C891A21 /* KWObjCUtilities.m */, + CC14B905FA8567008244E93BBC9BC6F4 /* KWPendingNode.h */, + CEB7705CFF20069B0AD464D3788E8509 /* KWPendingNode.m */, + 0EBBF9946B43D7E71A5F2A438DCB4D4E /* KWProbe.h */, + 6E9D87D62E79368CCD6684A9FF4355BF /* KWProbePoller.h */, + E044190493CF6FB17C083B26DDDC24D2 /* KWProbePoller.m */, + 6D69F5BBAC66284191543C373C50055E /* KWReceiveMatcher.h */, + E9A767EE0FEFAF78C2DE1FC493B51227 /* KWReceiveMatcher.m */, + FB8E3C2A0E050F90BE46AF302869CB3A /* KWRegisterMatchersNode.h */, + 65F128845017C1E79C0EA03F9F3BCBF7 /* KWRegisterMatchersNode.m */, + 05585137F87BD6ACB734B44912378228 /* KWRegularExpressionPatternMatcher.h */, + E5C056310DD25611B55920F706F9A023 /* KWRegularExpressionPatternMatcher.m */, + D604F15564BCC64E0D54F6EAC5AE0C78 /* KWReporting.h */, + 148C2542C42112ED2D7CB15FE8831AE1 /* KWRespondToSelectorMatcher.h */, + 5304A5F95231E220F6E93622A05954C8 /* KWRespondToSelectorMatcher.m */, + 4DC62BEFA5390CA11BE3B98CE2923ECB /* KWSpec.h */, + 9E9FB4F5D8ABF9DBB05D40B9E4D350E6 /* KWSpec.m */, + E85547003C04A12B37AB4713D4AC488F /* KWStringContainsMatcher.h */, + FF4125BC7B176A4EC21EF18019AD8969 /* KWStringContainsMatcher.m */, + 3D6ED896B521357E09A4062C09A66CE3 /* KWStringPrefixMatcher.h */, + 85910BD89BFA64FDFE83917EF907901D /* KWStringPrefixMatcher.m */, + 5B6C76352971E8DC93F728CFCDFE9D78 /* KWStringUtilities.h */, + F91E3402743EB2CB50D26AEDAE9F5F95 /* KWStringUtilities.m */, + D98B4B3B4B36CF2D79CA727DAC03DA3B /* KWStub.h */, + 26DF249D09AB92EB9692D412D4BF934A /* KWStub.m */, + 19B4F9E95D59C44F83433C051B8360E0 /* KWSuiteConfigurationBase.h */, + 5AE7ADADCD07B566FCC1A7ABDDC56F7B /* KWSuiteConfigurationBase.m */, + 8EE55801BA8EAF4F36D6C4137DE0AFBD /* KWSymbolicator.h */, + B4D2C9D0CB170604E6F9200C03CA1D9A /* KWSymbolicator.m */, + D8E9B5260480E4EA7ED06C6BEE15DF56 /* KWUserDefinedMatcher.h */, + 4D7C88351B49C622BAF0DC4C9B90F767 /* KWUserDefinedMatcher.m */, + F0273CAD5C5B65C439A64EDDE81B1E24 /* KWValue.h */, + 9263A3870C29E2DCB5D42C6C30E7ED74 /* KWValue.m */, + F7CDBCCA2EF3A6B79094328F2563D194 /* KWVerifying.h */, + E6CFB6229102ACF8C2F1199E7D42D7F7 /* KWWorkarounds.h */, + D6823D61CF304E54C491F5960BAA58F6 /* KWWorkarounds.m */, + EEB8D19562B679A83C28687DEE1E7BEC /* NSInvocation+KiwiAdditions.h */, + 847D05418B5B6F10CABA60007ADBCB40 /* NSInvocation+KiwiAdditions.m */, + 69508E0AF28F70BAB3C98863761ED848 /* NSInvocation+OCMAdditions.h */, + 4D59A4EB3E67A9BFD8E887BDD4BD25A1 /* NSInvocation+OCMAdditions.m */, + E25E46EAB69062E09638D06EB1EFCD4B /* NSMethodSignature+KiwiAdditions.h */, + 2B07F535CD9693EE287B474286083A2C /* NSMethodSignature+KiwiAdditions.m */, + 8F9F719B5BBCE9382930036499525B39 /* NSNumber+KiwiAdditions.h */, + 55C97AE1AB95D9CF6768CE01B9CA68E5 /* NSNumber+KiwiAdditions.m */, + 96E3F8085FBB092401A31E59CEBCCA05 /* NSObject+KiwiMockAdditions.h */, + ED4A9764F248CFF43569FF0BFAB30448 /* NSObject+KiwiMockAdditions.m */, + 2CE74D52AD87FC18362A0D06C0DB71B2 /* NSObject+KiwiSpyAdditions.h */, + 3D1FCCBF683DDBBAE6848A5DE33F64A3 /* NSObject+KiwiSpyAdditions.m */, + F44D64D96339AB0F279947116D802AC9 /* NSObject+KiwiStubAdditions.h */, + AD34216E46DBCE86FEFAE4EB35FE8683 /* NSObject+KiwiStubAdditions.m */, + 2875B32C66DD81C46D31A653122995FA /* NSObject+KiwiVerifierAdditions.h */, + F237C8C61313415A9EBF8DEAC7D45AB3 /* NSObject+KiwiVerifierAdditions.m */, + AEEAFD580CA92BE681F25B01C0A8AD08 /* NSProxy+KiwiVerifierAdditions.h */, + 0C649F57F3B4C015E10DFD233992CE16 /* NSProxy+KiwiVerifierAdditions.m */, + 72816FA54D8B9194113465674457951E /* NSValue+KiwiAdditions.h */, + 3C92F272EF0A0B073D7C55273A349F3A /* NSValue+KiwiAdditions.m */, + 324E01A98CC579B6EA8523CD8C7FDFA3 /* Support Files */, + ); + name = Kiwi; + path = Kiwi; + sourceTree = ""; + }; + E0112F16FF1D622A4CB43AFBD17BCDC5 /* Pods-Tests-TransitionKit macOS Tests */ = { + isa = PBXGroup; + children = ( + E456727FDD3E673A571693D0F8E1C0E0 /* Pods-Tests-TransitionKit macOS Tests-acknowledgements.markdown */, + AD0AD0691900FE20808DB37D7CE905BD /* Pods-Tests-TransitionKit macOS Tests-acknowledgements.plist */, + EEE29A800ABF3CF88B82DE34324E8142 /* Pods-Tests-TransitionKit macOS Tests-dummy.m */, + 14CB7E251F85E37E0EDEF6DDA5F3758B /* Pods-Tests-TransitionKit macOS Tests-frameworks.sh */, + 7E6C4367195FD7CD3EC26AABC022DF10 /* Pods-Tests-TransitionKit macOS Tests-resources.sh */, + 0BB6F5764C789C7A2DCC2705F49A926B /* Pods-Tests-TransitionKit macOS Tests.debug.xcconfig */, + 8360901F15ABA7A40903E016D32D0707 /* Pods-Tests-TransitionKit macOS Tests.release.xcconfig */, + ); + name = "Pods-Tests-TransitionKit macOS Tests"; + path = "Target Support Files/Pods-Tests-TransitionKit macOS Tests"; + sourceTree = ""; + }; + E31FAF1084C42B5DD9BAEE298609D99B /* Pods-Tests-TransitionKit iOS Tests */ = { + isa = PBXGroup; + children = ( + 78B81192B4CF29FC2B76DBAF0B7D8799 /* Pods-Tests-TransitionKit iOS Tests-acknowledgements.markdown */, + 6487FCC415D782C5054DA3B881FF98F4 /* Pods-Tests-TransitionKit iOS Tests-acknowledgements.plist */, + 501D4C05B73F1D1B4D25C3DD17EE8FD2 /* Pods-Tests-TransitionKit iOS Tests-dummy.m */, + 81709A68610F4926EF12AF994568B7C4 /* Pods-Tests-TransitionKit iOS Tests-frameworks.sh */, + F1E5C5C93CEF5427302C8B5C91C391E3 /* Pods-Tests-TransitionKit iOS Tests-resources.sh */, + D962F9362779AE2C4D97F3F663613538 /* Pods-Tests-TransitionKit iOS Tests.debug.xcconfig */, + 16CEEB90C83E148E1BE783D800B495B2 /* Pods-Tests-TransitionKit iOS Tests.release.xcconfig */, + ); + name = "Pods-Tests-TransitionKit iOS Tests"; + path = "Target Support Files/Pods-Tests-TransitionKit iOS Tests"; + sourceTree = ""; + }; + F21A01D39E98072E5374650370BA4535 /* TransitionKit */ = { + isa = PBXGroup; + children = ( + 8EF271D2A871ED27938021EF8EA1C38F /* Code */, + AD708CD4922E58195565A399A8EC530E /* Support Files */, + ); + name = TransitionKit; + path = ..; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + 3A05ED090C4E56048C9DBE5DB9A86732 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 7186C5BAC933E94F51870E688C697909 /* TKEvent.h in Headers */, + F53AE33F06F554C8F1D5DF46A8D63719 /* TKState.h in Headers */, + BC61525D23CDC8D0B8586379E2C93F6B /* TKStateMachine.h in Headers */, + 3DBEAB200D573DBA1B571760D430DD80 /* TKTransition.h in Headers */, + 60289A33C1FAACF5E462BD11610B666E /* TransitionKit.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + AA19E8387D3CCA3517C55A6792275D8D /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + C683F58183CE76C559A2EFB81839F00F /* Kiwi.h in Headers */, + 0F788A212C951290F031D4235FFCF169 /* KiwiBlockMacros.h in Headers */, + 23FB7A13BF35BF4CDACCA9470EFE1152 /* KiwiConfiguration.h in Headers */, + D59552DD43EAC5C07F901827F465F075 /* KiwiMacros.h in Headers */, + 17A9E6B6973DF83511FD248C84D4D66B /* KWAfterAllNode.h in Headers */, + F873323951518CF82350C232FCA8DAC4 /* KWAfterEachNode.h in Headers */, + 92C37BD2B243196F7907355631DBCD91 /* KWAny.h in Headers */, + A5FC2650125F41BEEEDFA5833D8FBD1C /* KWAsyncVerifier.h in Headers */, + 22F694957C2F5E11888A947161C9A9A9 /* KWBeBetweenMatcher.h in Headers */, + F2274BE822162179599DE310F66F3135 /* KWBeEmptyMatcher.h in Headers */, + 706D9F3638386DF7020D8BE31F4755F2 /* KWBeforeAllNode.h in Headers */, + 89FA29670697202F07E2CBF1BC81E94B /* KWBeforeEachNode.h in Headers */, + F3A1E009F594274B126CBC82552A18BB /* KWBeIdenticalToMatcher.h in Headers */, + 9ABDA22D3CDB0336EFB65BFF18A4D708 /* KWBeKindOfClassMatcher.h in Headers */, + C8B87A09E4BE7169A535ED70B2EF0F84 /* KWBeMemberOfClassMatcher.h in Headers */, + 1F60FEEE4A56F6FFEB3380B4BB37481A /* KWBeSubclassOfClassMatcher.h in Headers */, + FD58D4D8B73312436CD6AC43EC28D86E /* KWBeTrueMatcher.h in Headers */, + 93A1A3BD88FE79DC63350BEACE575513 /* KWBeWithinMatcher.h in Headers */, + 0C57509F151321562E40A3E37E5AFE8A /* KWBeZeroMatcher.h in Headers */, + D5C0BEC54E6E08F27DEFE58C60A93182 /* KWBlock.h in Headers */, + CF709A346B865CE16FDB52BDFA507228 /* KWBlockNode.h in Headers */, + 48753BC1F64DEE0D552ABC844596DCB8 /* KWBlockRaiseMatcher.h in Headers */, + 12087973B84C90C596E15A4308C842AE /* KWCallSite.h in Headers */, + D3367FD9E9A7D744BDD1E0749AA33BCB /* KWCaptureSpy.h in Headers */, + 44A9B6C3D312821713F24E5AEEEE487B /* KWChangeMatcher.h in Headers */, + 9A72AB04E9045B0A01EED79520FEB118 /* KWConformToProtocolMatcher.h in Headers */, + F99A5D8602F91BDE42E17E2CD59FB7DD /* KWContainMatcher.h in Headers */, + 32B39D8A87B0D152D95BBC0D4A097A02 /* KWContainStringMatcher.h in Headers */, + E7B5E9D97FD7B214A100EB20452C2047 /* KWContextNode.h in Headers */, + F862822D7A941C87194F7F31EC441C78 /* KWCountType.h in Headers */, + BF8964A7EF22E74B3A38AF8CAA722772 /* KWDeviceInfo.h in Headers */, + 7E894B31E2DED258C26BD66099C1A18A /* KWEqualMatcher.h in Headers */, + 263F1EA736C06F512CE2733A5949BBDE /* KWExample.h in Headers */, + E817928E7D5C52431BB65E2379A024EC /* KWExampleDelegate.h in Headers */, + EDDAD25DA404DDBF539AFFFD1787FB48 /* KWExampleNode.h in Headers */, + 5CB3CD73C17442D5B93C65CBC63FBE0B /* KWExampleNodeVisitor.h in Headers */, + 71FEB1523D7BB4BA64B003432E5435CF /* KWExampleSuite.h in Headers */, + 7769F3ACE46424A17E5894C4AF3B8464 /* KWExampleSuiteBuilder.h in Headers */, + EA02236B57C4A7CDE39BDEC43EB46139 /* KWExistVerifier.h in Headers */, + 3C8591E2B0740AF80D9A782628EC5ACD /* KWExpectationType.h in Headers */, + C3E4BC94B693F1FDB384E218DEA9BEAC /* KWFailure.h in Headers */, + B92F4C9B0506606C306877404C0199D0 /* KWFormatter.h in Headers */, + 4F017117CCAE45745B586319AE73E50A /* KWFutureObject.h in Headers */, + 88820FD1D69F5580D37B7481704900D0 /* KWGenericMatcher.h in Headers */, + 56939F35513122AE97B870AFC1C1048E /* KWGenericMatchEvaluator.h in Headers */, + 578D001781D34D09D1CA3640B9D0611B /* KWGenericMatchingAdditions.h in Headers */, + AB3F1725AA34B0A84A34508B7F2FD18F /* KWHaveMatcher.h in Headers */, + 489C4CB4B9CB7EAF81919ACD0E21C0C7 /* KWHaveValueMatcher.h in Headers */, + 064DFC59E321508CDD171A395218CAE6 /* KWInequalityMatcher.h in Headers */, + 1E8D5F5BEBCB64B1B278C0FE4B8E599A /* KWIntercept.h in Headers */, + 0AFB0088768E7BA2305CF207773375A7 /* KWInvocationCapturer.h in Headers */, + 9E0882BDBA6A5FDC8875B0B066F88176 /* KWItNode.h in Headers */, + 1D07490EEDA918C13F48243D534C577F /* KWLet.h in Headers */, + F48BE3290CA0FCF915D941B8066540E3 /* KWLetNode.h in Headers */, + 07AF7694FE6381334D06320D73266F5E /* KWMatcher.h in Headers */, + 07259889701A4569A51688AFCBB91BB5 /* KWMatcherFactory.h in Headers */, + 5513F143E495B60C4151D3BB69D6B603 /* KWMatchers.h in Headers */, + 0D8759AA1745E9406024472541F0B2E5 /* KWMatching.h in Headers */, + CA8E39717C2FBFDB1F9B32BCF41C929C /* KWMatchVerifier.h in Headers */, + 17B89913A1017928C114BF422BDD92F6 /* KWMessagePattern.h in Headers */, + 47DAEBE3B4A192BD969FF0A68F5AB87E /* KWMessageSpying.h in Headers */, + 37D08572CF57EAB6A0560E4C43875513 /* KWMessageTracker.h in Headers */, + 75586CC3ECC4BAF133AA7DF0CAC8A80C /* KWMock.h in Headers */, + 67707C8AD544DBE7D724910213337B0E /* KWNilMatcher.h in Headers */, + A69817743786792F8869367BC0F30498 /* KWNotificationMatcher.h in Headers */, + DFC34EC5DB5010FA53CD339B61B2395A /* KWNull.h in Headers */, + 07C054A878BF24B1EB65587189D5A9EC /* KWObjCUtilities.h in Headers */, + CD18A54B27E89A347BBF192D19F6204A /* KWPendingNode.h in Headers */, + 6078E16B0A6071359372D547FEEEE8C1 /* KWProbe.h in Headers */, + 065051075100D0622D41AFC30C960AE9 /* KWProbePoller.h in Headers */, + C5B4BE226A5E953C0D2B17C6BE31C778 /* KWReceiveMatcher.h in Headers */, + BB9F7EF7582967C4A3BE813E047F1182 /* KWRegisterMatchersNode.h in Headers */, + CF28F7715E2CD1D137A9EB429337DF5E /* KWRegularExpressionPatternMatcher.h in Headers */, + 3778FA0F845FD93630DFE40349EAEBCD /* KWReporting.h in Headers */, + 8C98AF30B55372FC043884A9DF3B4AFB /* KWRespondToSelectorMatcher.h in Headers */, + EBAB14B188FB1A8E359F8D91CE87344F /* KWSpec.h in Headers */, + 25F0BB238FE4AA445A2CBB55E96E77E4 /* KWStringContainsMatcher.h in Headers */, + 32F01D97F4820974B545C04454F050BB /* KWStringPrefixMatcher.h in Headers */, + 14F8A068C1FFD00BFA43B01EA2151285 /* KWStringUtilities.h in Headers */, + C6F9D6F8C39D0CE3442CB20B04541392 /* KWStub.h in Headers */, + DE400941D2D5B6B8358CA97676C94D22 /* KWSuiteConfigurationBase.h in Headers */, + B0D42A487F03F8D368E83F8BB02A74E3 /* KWSymbolicator.h in Headers */, + 80B246C3B4811E24DA0279460375A51D /* KWUserDefinedMatcher.h in Headers */, + 9AC7F117690447D71C4AE1037D8915E7 /* KWValue.h in Headers */, + 4F1470FBFDBF19386FFFD70D5AC1C0BF /* KWVerifying.h in Headers */, + B3AFD9EB4735B642306D1FCC4ACC103B /* KWWorkarounds.h in Headers */, + 32343DCFF9A443C585D502CCE7AAD820 /* NSInvocation+KiwiAdditions.h in Headers */, + 608383AE35F5C04B9CE379F7C2EBDC90 /* NSInvocation+OCMAdditions.h in Headers */, + 24F4268F620C3FB4D34A69424865D045 /* NSMethodSignature+KiwiAdditions.h in Headers */, + 93848992D73D394B1DB0FE1F0BDB267C /* NSNumber+KiwiAdditions.h in Headers */, + F59D02DBC3C9198DE2E78FD7A429E5A1 /* NSObject+KiwiMockAdditions.h in Headers */, + 1D1CC5F432C0EBB23070C2803A949F88 /* NSObject+KiwiSpyAdditions.h in Headers */, + 3B28CD5909A2F25107F1B673C91B4FED /* NSObject+KiwiStubAdditions.h in Headers */, + 6A4397DDFF899B88996800D6AAE5AF62 /* NSObject+KiwiVerifierAdditions.h in Headers */, + 4633DFE9D741A82F21FDE5EA4A253AB4 /* NSProxy+KiwiVerifierAdditions.h in Headers */, + DC40F10B3621FC00FB7703893E2A7049 /* NSValue+KiwiAdditions.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB42A021F85E896E7B4859530C77601A /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 07A8C5B470C45BE1DFE22008301A1820 /* Kiwi.h in Headers */, + D35121C657101570DA4DE73989859D4A /* KiwiBlockMacros.h in Headers */, + 5ADD80DBD55A52515824AB01C6E53AA1 /* KiwiConfiguration.h in Headers */, + 96B267E85BAA4586C9BC6BC1F7D06B2A /* KiwiMacros.h in Headers */, + 47CC1D8B07476B9A94E153C11972949A /* KWAfterAllNode.h in Headers */, + CF413D778E74D670ABB03BB3D1A45736 /* KWAfterEachNode.h in Headers */, + 9F8ADF4B8A23DA467A58B2CA85004B1D /* KWAny.h in Headers */, + 15B0D250017BEC1E777E2939C086AA6F /* KWAsyncVerifier.h in Headers */, + 73E461FE9027AF117D1D5DFB92AE30DE /* KWBeBetweenMatcher.h in Headers */, + DAC40D3A594C6B0AEB18C610B64E9D23 /* KWBeEmptyMatcher.h in Headers */, + 73B78F53F4257DCD329BBE3E02893713 /* KWBeforeAllNode.h in Headers */, + 6A6081607281830D99A7B4D526B372E3 /* KWBeforeEachNode.h in Headers */, + 3EFB5FF1FE90FD0797A62C0DE3A8F37A /* KWBeIdenticalToMatcher.h in Headers */, + EBDF157092F3EEFCC0DFD3E3BD67B85C /* KWBeKindOfClassMatcher.h in Headers */, + E819F87187DAA403D2C7D54B1FBE7F2F /* KWBeMemberOfClassMatcher.h in Headers */, + 79CE245D3D7DB125977D3120BB131DCB /* KWBeSubclassOfClassMatcher.h in Headers */, + CFB4D3807E5E452B39534AFB7DB4D5A2 /* KWBeTrueMatcher.h in Headers */, + 1006C13EE31E4963A17BE01EB0E13CBE /* KWBeWithinMatcher.h in Headers */, + A7F488D91AD3D8FB51CAA6C57DF741C0 /* KWBeZeroMatcher.h in Headers */, + 6CB202C83C6A430CC3340A1BD255299F /* KWBlock.h in Headers */, + 53EC4E1B850078B4554A9ACFBC649EAE /* KWBlockNode.h in Headers */, + 974C25893601BD9DF6EA8CAA79473210 /* KWBlockRaiseMatcher.h in Headers */, + 077B3FEF98F626A415ED234B67647815 /* KWCallSite.h in Headers */, + 3FDB5E494C3CC94F807A44D1E805580F /* KWCaptureSpy.h in Headers */, + 19E3B453EE107807D771EF4BA635924E /* KWChangeMatcher.h in Headers */, + 9899D11758BC813FB0419BC1AC6FAB2C /* KWConformToProtocolMatcher.h in Headers */, + 7493F85BA7B98488F4EAB8F05005E849 /* KWContainMatcher.h in Headers */, + 68574D95A9A19F524770A1DBDF5DA162 /* KWContainStringMatcher.h in Headers */, + 4660CC5CF74FE66DC3A2896CE2DBCCCC /* KWContextNode.h in Headers */, + FC46F05FFAD4BE39909AE3EDA0B7B09C /* KWCountType.h in Headers */, + 4369473C30925D7FC329DC6613E7B844 /* KWDeviceInfo.h in Headers */, + B93AA4B97C003C7A64CBB18C7858E286 /* KWEqualMatcher.h in Headers */, + 98FDDFD391BD267924EE6CC22ED7062A /* KWExample.h in Headers */, + 32E1A9B3D6CC5F39416FDAE65B1D5C4E /* KWExampleDelegate.h in Headers */, + AAB0DB1172B404F6347215D7D34EAC46 /* KWExampleNode.h in Headers */, + 05AC39DE095A5A0E274DA7A45BFEA8D8 /* KWExampleNodeVisitor.h in Headers */, + 670FF3349F3A0F8B4BC8FFBD79ED728D /* KWExampleSuite.h in Headers */, + 6C74A19A8F09516BE8E4AFD8767C5C45 /* KWExampleSuiteBuilder.h in Headers */, + E1239F5E1844971BC1B744ABCD967591 /* KWExistVerifier.h in Headers */, + 452A0F9169C2A6E0108FE9093CEABBA7 /* KWExpectationType.h in Headers */, + 7DFDD07DBF392005CBA20DAC5AB898EC /* KWFailure.h in Headers */, + 184C04FC32A8440A6CBFB64BE5902836 /* KWFormatter.h in Headers */, + 25F5DCB8CF476D9F62F65F7EABEA94D9 /* KWFutureObject.h in Headers */, + F85D354DBBDF1A3024A7482E03C56C8C /* KWGenericMatcher.h in Headers */, + 350000C5F9112FA7EBF3736470F22D20 /* KWGenericMatchEvaluator.h in Headers */, + 6551A7102EC412B1490DA623AF8A290B /* KWGenericMatchingAdditions.h in Headers */, + DA612633E3303BD2A48507B1F13E7097 /* KWHaveMatcher.h in Headers */, + 2DFB76A817F3A39FA5797BC5EA4A0398 /* KWHaveValueMatcher.h in Headers */, + 334793C23533175664D28D90BB96C472 /* KWInequalityMatcher.h in Headers */, + E0F5E8CE257973F986E0399A198B8D51 /* KWIntercept.h in Headers */, + 7AFEB088F8BA613F6CB04C0C1A9611E8 /* KWInvocationCapturer.h in Headers */, + 7F61D640908CE988E9983BE3DFD0271A /* KWItNode.h in Headers */, + 9EE0C8A77C46248C21438C205B7C2A4A /* KWLet.h in Headers */, + A5C649646804F9EB9ABF0F47A6B39B7A /* KWLetNode.h in Headers */, + 6996F6ABC0EAAA48832A67772A4B9A1B /* KWMatcher.h in Headers */, + E482075785F8F7B5768A15D20E89B02B /* KWMatcherFactory.h in Headers */, + FEA9319D1CE12C02EBFFDF90918174B3 /* KWMatchers.h in Headers */, + 9C21170AB9330FEA1658C750EC50076E /* KWMatching.h in Headers */, + 527BC36A14FB8839C65378AA9BC15FE7 /* KWMatchVerifier.h in Headers */, + 2CC4E2A0D33DDD8E62D6BB1ADA595870 /* KWMessagePattern.h in Headers */, + 3FA153D99DA1B3D9FE6CC640BB4D4EDA /* KWMessageSpying.h in Headers */, + F6F52B8A2E6B79933E309AB97F490BDF /* KWMessageTracker.h in Headers */, + 4D7BABDFF3502395337D7B89B981C737 /* KWMock.h in Headers */, + 11A86D103E58377BB99304DD1C66F913 /* KWNilMatcher.h in Headers */, + 0FC35F4CD100ED99A9A6F395ADA63C5D /* KWNotificationMatcher.h in Headers */, + 56CE04A2A0DB0D25F07741B53EDC3B3A /* KWNull.h in Headers */, + 70363D67218718B91DDDA219E55F2CCB /* KWObjCUtilities.h in Headers */, + 907228CAF3A5A56A0DD88A3ABBEEC4F7 /* KWPendingNode.h in Headers */, + 8964615A05EE4D78941C4400B0F862D0 /* KWProbe.h in Headers */, + 7DEFDC0A3FFEE37796CEAF29411020D1 /* KWProbePoller.h in Headers */, + C814749C2E7E2D6995AB480EAD9DAC19 /* KWReceiveMatcher.h in Headers */, + D51F991AA4B2899F6E4DF67B21226005 /* KWRegisterMatchersNode.h in Headers */, + B8AD393C7DD1C21B89956F08FF8D10F9 /* KWRegularExpressionPatternMatcher.h in Headers */, + CF6DD5AADA77B3344A366DD12EC5B09D /* KWReporting.h in Headers */, + 2A523772E71CAC21E57D51B0766BDD1F /* KWRespondToSelectorMatcher.h in Headers */, + EECE294FB1A61066664F75C9993B674F /* KWSpec.h in Headers */, + 7E8F78F9B7CA6A5A97CDE1BB1BF1C0DC /* KWStringContainsMatcher.h in Headers */, + 9B618C0CD420F0A139A57667C8C8A76E /* KWStringPrefixMatcher.h in Headers */, + 255F6FA56C4EA4AA7FF705725A49E14A /* KWStringUtilities.h in Headers */, + 368FB1A1E3900230800B77A71E207F17 /* KWStub.h in Headers */, + 07736F2821DD4EAE940D2E4D6BD53EE5 /* KWSuiteConfigurationBase.h in Headers */, + D18142C904C1E9672DD910F56E2AF90D /* KWSymbolicator.h in Headers */, + 199531462ED7392ECB467A508260B8CD /* KWUserDefinedMatcher.h in Headers */, + B9748E2C12404D0F5F60A5A715DF7D4F /* KWValue.h in Headers */, + C6CADACA676A0471F909CA044FD6245C /* KWVerifying.h in Headers */, + 56332351EBE74D01ED8CC3FC0F51BB9A /* KWWorkarounds.h in Headers */, + FF1BABAB26615A63BDB0765DF48833D7 /* NSInvocation+KiwiAdditions.h in Headers */, + 38E26EF1D335A29D9426061FA3D8F68E /* NSInvocation+OCMAdditions.h in Headers */, + 96BD56A4E87DFD479C8F4A928280FDAB /* NSMethodSignature+KiwiAdditions.h in Headers */, + 0D8FDEE95ED55B98DCE99F5861BC13D5 /* NSNumber+KiwiAdditions.h in Headers */, + E40E68902478A30BA8DB0EA5CB6980E7 /* NSObject+KiwiMockAdditions.h in Headers */, + 8C2125090A33DDAE77FC27579B2DA822 /* NSObject+KiwiSpyAdditions.h in Headers */, + 83440E0FB9BD1047567E24663B62E0C6 /* NSObject+KiwiStubAdditions.h in Headers */, + 4D4263653D1578E9DD609AA83DAF2FA0 /* NSObject+KiwiVerifierAdditions.h in Headers */, + 7B95840ED283D3C44176D5DF361BB208 /* NSProxy+KiwiVerifierAdditions.h in Headers */, + 664E177BBD81DD36DA3EE35449E33E69 /* NSValue+KiwiAdditions.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E35253596729DAF68C86B283DC215523 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 8DFBA7B6FBF1689E1A9DA3E38DA68F93 /* TKEvent.h in Headers */, + 42670A829613D5692FAF2AA60F091C46 /* TKState.h in Headers */, + A6D7EF06BB7272D8C0839CE5879FD347 /* TKStateMachine.h in Headers */, + 5307061923E305D92977DFB521411996 /* TKTransition.h in Headers */, + 68E14886EA15A961B9E5E1C48A1569C2 /* TransitionKit.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + 6C4B72EAD29C118CA0F3246466DBFFE3 /* TransitionKit-iOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = F83A3E3FC031DDB52C5711A8EA618980 /* Build configuration list for PBXNativeTarget "TransitionKit-iOS" */; + buildPhases = ( + FCD05DE2B27FBEA62ADC144E2996C8F5 /* Sources */, + 99B491F5FF1CE3196EA43F3B1E95CC93 /* Frameworks */, + 3A05ED090C4E56048C9DBE5DB9A86732 /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "TransitionKit-iOS"; + productName = "TransitionKit-iOS"; + productReference = 10AB2797AAC0DCB6A9B711A1B731B574 /* libTransitionKit-iOS.a */; + productType = "com.apple.product-type.library.static"; + }; + 96B533C5E6327385FD6AB88890A3A0EB /* Kiwi-iOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = 7ED8A66845390748D47100DC49BBACC1 /* Build configuration list for PBXNativeTarget "Kiwi-iOS" */; + buildPhases = ( + 43FCCB491D325818E58281D24711FA91 /* Sources */, + 75DCDCFF68ED5C3C1B7E4DBFBF5E5E09 /* Frameworks */, + DB42A021F85E896E7B4859530C77601A /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Kiwi-iOS"; + productName = "Kiwi-iOS"; + productReference = 1CE262A553A2502921C0E78DA2A7F6DC /* libKiwi-iOS.a */; + productType = "com.apple.product-type.library.static"; + }; + 9C77A4CD37823CC5839C1244E3B4655E /* Kiwi-OSX */ = { + isa = PBXNativeTarget; + buildConfigurationList = D29BF99BD59A94E27F6564D8F69F8668 /* Build configuration list for PBXNativeTarget "Kiwi-OSX" */; + buildPhases = ( + 9B958589B11C3F568BEA5B93CCE55FFA /* Sources */, + C1FF25098B4B5C3EC76CE9FE3C27C570 /* Frameworks */, + AA19E8387D3CCA3517C55A6792275D8D /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Kiwi-OSX"; + productName = "Kiwi-OSX"; + productReference = 866777442F22D145FA6F9C65F8484823 /* libKiwi-OSX.a */; + productType = "com.apple.product-type.library.static"; + }; + C013B188CECFD144F264E15EC3C2A8DA /* TransitionKit-OSX */ = { + isa = PBXNativeTarget; + buildConfigurationList = DCCAB301F1A74A65F88E628330868946 /* Build configuration list for PBXNativeTarget "TransitionKit-OSX" */; + buildPhases = ( + 8FACBB7AC191F48FC5AE27A3B9BDBC9B /* Sources */, + 5E25360B55AFFD04D088ADE3201D3BF6 /* Frameworks */, + E35253596729DAF68C86B283DC215523 /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "TransitionKit-OSX"; + productName = "TransitionKit-OSX"; + productReference = 480C95E78BCF7FD2EDB54E8ABE0C8719 /* libTransitionKit-OSX.a */; + productType = "com.apple.product-type.library.static"; + }; + D77BEF52F4D78CECA48B0CB09FBD290F /* Pods-Tests-TransitionKit macOS Tests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 732241965CA0943B1A35E4972B6D2D38 /* Build configuration list for PBXNativeTarget "Pods-Tests-TransitionKit macOS Tests" */; + buildPhases = ( + 1081079837F147F5073749CFFA6B736D /* Sources */, + E3590702E5F61CEAD5CCEF4B1F87F744 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 580543BEE42281E85EB3A4320F80B860 /* PBXTargetDependency */, + 266A469DFC53418AAD7133CB940300D6 /* PBXTargetDependency */, + ); + name = "Pods-Tests-TransitionKit macOS Tests"; + productName = "Pods-Tests-TransitionKit macOS Tests"; + productReference = 7D7697FE1511358632E4594253DC3571 /* libPods-Tests-TransitionKit macOS Tests.a */; + productType = "com.apple.product-type.library.static"; + }; + E9ECB5AF80EAA077EFBF9F7AE188570C /* Pods-Tests-TransitionKit iOS Tests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 4197FBCDF4581E8B51CE53E1F97273F5 /* Build configuration list for PBXNativeTarget "Pods-Tests-TransitionKit iOS Tests" */; + buildPhases = ( + F827F4E067AC0F67D2C0B83A2445B0C8 /* Sources */, + 17AE13D4BB4D45EDC8DC825DE5F1F638 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 91387026FCD8B8617BFE269927EAECE4 /* PBXTargetDependency */, + A9E5EA1AF4CFE193BD955390605BFBC3 /* PBXTargetDependency */, + ); + name = "Pods-Tests-TransitionKit iOS Tests"; + productName = "Pods-Tests-TransitionKit iOS Tests"; + productReference = FF4091FC5A79BE72E877EB6405345315 /* libPods-Tests-TransitionKit iOS Tests.a */; + productType = "com.apple.product-type.library.static"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D41D8CD98F00B204E9800998ECF8427E /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 0730; + LastUpgradeCheck = 0700; + }; + buildConfigurationList = 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = 7DB346D0F39D3F0E887471402A8071AB; + productRefGroup = 0585E7DE0F9ECED68D2FD0FFEEB4E455 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 96B533C5E6327385FD6AB88890A3A0EB /* Kiwi-iOS */, + 9C77A4CD37823CC5839C1244E3B4655E /* Kiwi-OSX */, + E9ECB5AF80EAA077EFBF9F7AE188570C /* Pods-Tests-TransitionKit iOS Tests */, + D77BEF52F4D78CECA48B0CB09FBD290F /* Pods-Tests-TransitionKit macOS Tests */, + 6C4B72EAD29C118CA0F3246466DBFFE3 /* TransitionKit-iOS */, + C013B188CECFD144F264E15EC3C2A8DA /* TransitionKit-OSX */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXSourcesBuildPhase section */ + 1081079837F147F5073749CFFA6B736D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 61F180750CD0CC25B294AF1E1B0AC0F6 /* Pods-Tests-TransitionKit macOS Tests-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 43FCCB491D325818E58281D24711FA91 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 49BDD0814A5D76AD8672C24A6F454255 /* Kiwi-iOS-dummy.m in Sources */, + 0180AE619D2E90A7B91EC63F3E71FFB0 /* KWAfterAllNode.m in Sources */, + 86047793D0A53863B2C78695B385DD35 /* KWAfterEachNode.m in Sources */, + A9DC3F82A007C3E089CE72B807F33457 /* KWAllTestsSuite.m in Sources */, + 93775F9843BD8027BA06BE25BE4E3B63 /* KWAny.m in Sources */, + D547AB85F57F83F6E1E1315F54DF6BAB /* KWAsyncVerifier.m in Sources */, + 24AFF5156DCB19C96AB91DBCCD2395E7 /* KWBeBetweenMatcher.m in Sources */, + 207CB6B45DEE6B1591DAF3A982C2A3BE /* KWBeEmptyMatcher.m in Sources */, + 8E9B86CC84972221CCF727B6006646EB /* KWBeforeAllNode.m in Sources */, + 801989CF9E631F6D524D6DFDA6351945 /* KWBeforeEachNode.m in Sources */, + FAF00A1B6E2D90F043B88D0BE38B7006 /* KWBeIdenticalToMatcher.m in Sources */, + 79581937E9D65BA1C1852A80AD29697E /* KWBeKindOfClassMatcher.m in Sources */, + 2F3189D678A5DFE31B5AEEC217EFF916 /* KWBeMemberOfClassMatcher.m in Sources */, + 69D6089949BE0A3DE75639E992F91F1F /* KWBeSubclassOfClassMatcher.m in Sources */, + 413BBA7435EE7E6A44339130DF646662 /* KWBeTrueMatcher.m in Sources */, + B5388D57FA41AB88D1D555DBBE18560E /* KWBeWithinMatcher.m in Sources */, + 4CD35007C025B3ADBF19AD6A2D82F9FC /* KWBeZeroMatcher.m in Sources */, + 3AE863BE836C5B87376F36C59ED70362 /* KWBlock.m in Sources */, + B4AE5F7362824A8B4E3A5D04F8A37A79 /* KWBlockNode.m in Sources */, + AC51C3442720B7560C15CC80CD3C4A8B /* KWBlockRaiseMatcher.m in Sources */, + 3FFEA4F8AB525AB868D8AEB07EA8C03B /* KWCallSite.m in Sources */, + B05ABF483A29F5C61048A5D0E78D961C /* KWCaptureSpy.m in Sources */, + 30C90896AC3F8EA88039851F56728FC5 /* KWChangeMatcher.m in Sources */, + 9575D0D12346CBD310AA352078383E49 /* KWConformToProtocolMatcher.m in Sources */, + B2B20639154A56213D644C575103D323 /* KWContainMatcher.m in Sources */, + 0182489055E1268F25E8B603C6CC7597 /* KWContainStringMatcher.m in Sources */, + 8A197C5061631D1D45D707AFA0D1E76F /* KWContextNode.m in Sources */, + 68950F726519CC96F62CFFE951E6FF1F /* KWDeviceInfo.m in Sources */, + F4DC7CD545DE7AC583C53C64AAC9EBB7 /* KWEqualMatcher.m in Sources */, + 2F70B54DFC18341F899CCA31548F3438 /* KWExample.m in Sources */, + A7EBF3901AD27854FEE945D7BAEE05DE /* KWExampleSuite.m in Sources */, + F733A59B703FD11A0C30EDCA68C3AB15 /* KWExampleSuiteBuilder.m in Sources */, + 3F55B1ACA6108E90D02D53410A75EE08 /* KWExistVerifier.m in Sources */, + B2154F6FBD9A18E1BAFCB2D3C9A7CAC7 /* KWFailure.m in Sources */, + AC7AB08A42002500304DE1F4D65DA711 /* KWFormatter.m in Sources */, + 6EDA71F89F776BFCAE7E5B8128D06441 /* KWFutureObject.m in Sources */, + AF4915797FA9574F6FD837F72E5E8EFB /* KWGenericMatcher.m in Sources */, + D8FE8917FFE9FB8C8D3EA63EC703D0AB /* KWGenericMatchEvaluator.m in Sources */, + E52732838C66BD0D2BB07C2E1702E02B /* KWGenericMatchingAdditions.m in Sources */, + 5E792D390FF798FAB7ECCAAAE27B74A3 /* KWHaveMatcher.m in Sources */, + 0736EB85307DA8EA09963FA2B7D3FD98 /* KWHaveValueMatcher.m in Sources */, + EE302C96B9F2CC3491D25EE5C5F7B51E /* KWInequalityMatcher.m in Sources */, + D679FFF2FE84830FE8C6C207EE17020F /* KWIntercept.m in Sources */, + 1F2DBF32F1A551D7A40AEE4B8F8A44CE /* KWInvocationCapturer.m in Sources */, + CC93AC87ABF536A2CE2E2A6295BF9B16 /* KWItNode.m in Sources */, + 163C5C54F9314B54F27B594C13C5EA08 /* KWLetNode.m in Sources */, + 12B26F5CFCD18C0C292C58358E7BE1C4 /* KWMatcher.m in Sources */, + 987220996F6A91503CE0C4E22D098C44 /* KWMatcherFactory.m in Sources */, + 7213F8B340E9C93B4CF0F265FB81194D /* KWMatchers.m in Sources */, + 2EA04A056D6EF1EE32476FB599104C50 /* KWMatchVerifier.m in Sources */, + BC1EDFD79E919CB096A788705CC61349 /* KWMessagePattern.m in Sources */, + AA32EBD7DA1450CD5E4CC4273D9349CD /* KWMessageTracker.m in Sources */, + FBE5BD09AEC4615C08DC390DD781FC42 /* KWMock.m in Sources */, + 8AFCA4F7E9A09F62A8E5DC8B63B5FABB /* KWNilMatcher.m in Sources */, + C9C699A8F30405DDEC0EDDA09204B717 /* KWNotificationMatcher.m in Sources */, + 3811FB7DA3CAD250353AF5788D2B9976 /* KWNull.m in Sources */, + 5EC1A72962E5FA55A9661284A3B908D4 /* KWObjCUtilities.m in Sources */, + 9E1F41D4F02EA6B5C14CBD273B7575D1 /* KWPendingNode.m in Sources */, + 25E1D66190691CA88C9404DA67132F4F /* KWProbePoller.m in Sources */, + FF54E9158DB1B92E682DDCBB6D9B6050 /* KWReceiveMatcher.m in Sources */, + 2DBD3520B7BDC713252E376AEA5AED98 /* KWRegisterMatchersNode.m in Sources */, + 79B82DDACE11A10435064D89605AF55A /* KWRegularExpressionPatternMatcher.m in Sources */, + A968B33702DD77E5BBC884BFA334D13E /* KWRespondToSelectorMatcher.m in Sources */, + 6FF09585ED02D77C6FC88049779B98DB /* KWSpec.m in Sources */, + B8FCBE3DE70A719CCB71E45F386E58A3 /* KWStringContainsMatcher.m in Sources */, + 92E98A8D309269B3B27A7EFE6405CB7F /* KWStringPrefixMatcher.m in Sources */, + A19A6D0233DC476BBEA4FFFF96F9E912 /* KWStringUtilities.m in Sources */, + C4C4EBB019EBCB6F7CBEEAB64FB15495 /* KWStub.m in Sources */, + 120305E4CF371CC596589397046E0B5E /* KWSuiteConfigurationBase.m in Sources */, + 3D6D5EB8713C4127E1524C6F35174F5D /* KWSymbolicator.m in Sources */, + C9C76BD3AEB1FEE8BF99E06DAF762263 /* KWUserDefinedMatcher.m in Sources */, + AE5B2A1C61A25EDF8F2B70C6004BCE62 /* KWValue.m in Sources */, + 547A077A9E6178D9598C300FFF151CF5 /* KWWorkarounds.m in Sources */, + 3D5C8CDA447DD3056C7B77865FC14A27 /* NSInvocation+KiwiAdditions.m in Sources */, + D0C742678B727EC2241B6575F4671695 /* NSInvocation+OCMAdditions.m in Sources */, + B72CF0933C475668003DECF5F66132FE /* NSMethodSignature+KiwiAdditions.m in Sources */, + 5F6111D380EAB1851F8C72379CE21459 /* NSNumber+KiwiAdditions.m in Sources */, + D9BA398056FE88A3439D4F9422757640 /* NSObject+KiwiMockAdditions.m in Sources */, + 2187C0D534B6141302799E48D8258614 /* NSObject+KiwiSpyAdditions.m in Sources */, + E63B08634F16B49F49B5E3203B794319 /* NSObject+KiwiStubAdditions.m in Sources */, + A5A6CB20CFF1492521765D309E37618B /* NSObject+KiwiVerifierAdditions.m in Sources */, + B39E633401292DB0CFED005819EBA927 /* NSProxy+KiwiVerifierAdditions.m in Sources */, + AB183E1EC7605D0A89CD89CCB760885F /* NSValue+KiwiAdditions.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 8FACBB7AC191F48FC5AE27A3B9BDBC9B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D8BFA49CFBD3FCFF67997040E3ADE0DC /* TKEvent.m in Sources */, + C85DDAE94B97D337DD0C03F38629BFB2 /* TKState.m in Sources */, + 7D8906C69E30B165C387C9CB577E72E9 /* TKStateMachine.m in Sources */, + 76403E606476CACF72904984BBCF45A9 /* TKTransition.m in Sources */, + F539DE93AF83C99F101D0FD577A97170 /* TransitionKit-OSX-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 9B958589B11C3F568BEA5B93CCE55FFA /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D027389517585029A1DB3F21FADAD6F3 /* Kiwi-OSX-dummy.m in Sources */, + FECEB5E5135C5DF75A97E9B9B14FC88D /* KWAfterAllNode.m in Sources */, + ECB98F443826BDBD5118CA5556061AEF /* KWAfterEachNode.m in Sources */, + A68DCDAF09DB5784A0A97E1BE3727A3D /* KWAllTestsSuite.m in Sources */, + 57ADC789A23CF8819993A17276058A17 /* KWAny.m in Sources */, + 68762E3951FDE0BAAB1352E021602A09 /* KWAsyncVerifier.m in Sources */, + 2FDB3E734F0D46DDEB5EDDA85A536669 /* KWBeBetweenMatcher.m in Sources */, + 77FECDA3511C7322159331970D6056F6 /* KWBeEmptyMatcher.m in Sources */, + 0A7324E8B1ADA246A24826AE05909542 /* KWBeforeAllNode.m in Sources */, + 3D52A2715B20DEEE437D0B2022C106D7 /* KWBeforeEachNode.m in Sources */, + 4BF9A49D3238D0B17FA44DA696BAE87E /* KWBeIdenticalToMatcher.m in Sources */, + 94550E3EE37A21AA76AB5283C33B9F53 /* KWBeKindOfClassMatcher.m in Sources */, + 28BFF4C1807BBADD10B1306DBC544B60 /* KWBeMemberOfClassMatcher.m in Sources */, + E38AC06C212AC67F98BAEAB1BF3CC52A /* KWBeSubclassOfClassMatcher.m in Sources */, + 9EDF851C6F4807A8E9883D428A1DADA0 /* KWBeTrueMatcher.m in Sources */, + D0F7E3F5BE625C64ECEA00F7BED1AF20 /* KWBeWithinMatcher.m in Sources */, + 3B0DD47F194CB0EB08F47E96B0FC5F53 /* KWBeZeroMatcher.m in Sources */, + CCE60C3C4F2F51F1E654856BD90F0918 /* KWBlock.m in Sources */, + F221338F78CBE36A4B9B3980B81A59C0 /* KWBlockNode.m in Sources */, + 54C9F208DDD22272E417F6D2935FA13D /* KWBlockRaiseMatcher.m in Sources */, + 0A5C86B31F2F48AC636D9D583FC959E1 /* KWCallSite.m in Sources */, + 95174DB1EC3E37B7DBFE25952AD3506B /* KWCaptureSpy.m in Sources */, + 6D24CD950686584CE3B77526A8899743 /* KWChangeMatcher.m in Sources */, + CA93F1365797C2B24F27A8D10DEFD28B /* KWConformToProtocolMatcher.m in Sources */, + 92EF660EA614616E2679B77B6A48FCAA /* KWContainMatcher.m in Sources */, + B47D1F954701BAAC7CAB0BC116671D46 /* KWContainStringMatcher.m in Sources */, + BCB1D31899C82234731FDBA070AD18C5 /* KWContextNode.m in Sources */, + D41101368156778E16E4302CCBEF6F2C /* KWDeviceInfo.m in Sources */, + 010E6BB736F19FD1AA6971F50607F393 /* KWEqualMatcher.m in Sources */, + 797ACC7F2388F34739761C36C55998A0 /* KWExample.m in Sources */, + 6BD79E6BC82865BC909830800D61ADE1 /* KWExampleSuite.m in Sources */, + 373EB0ED4BC5B0ADAD3E66B8A629C053 /* KWExampleSuiteBuilder.m in Sources */, + 97F6C0CEBBD1D84DDDBB1B2EF52C9B86 /* KWExistVerifier.m in Sources */, + 2F94180B86ED7E8CC2EC505934C19321 /* KWFailure.m in Sources */, + A9B0C7D39C84527896B212E3A459BAA6 /* KWFormatter.m in Sources */, + EE5CA8398835A13EC3F3E1F9B8344E21 /* KWFutureObject.m in Sources */, + FB9F5FAE8140B6FD4248AD4A9059AD1E /* KWGenericMatcher.m in Sources */, + 48EFC34AF677FEF893B91E4E3A47A160 /* KWGenericMatchEvaluator.m in Sources */, + 0EDA1A0555848448D20EF0727A7204F4 /* KWGenericMatchingAdditions.m in Sources */, + 7A89BEE2FC57F4BA4D6F8D75546321CC /* KWHaveMatcher.m in Sources */, + 4E4F84A5E2B65ED09DF73F7433EFAC6D /* KWHaveValueMatcher.m in Sources */, + 343AEF850A376878D228948B34F45423 /* KWInequalityMatcher.m in Sources */, + BB568DC44BF7951AE5A5B635291F5C22 /* KWIntercept.m in Sources */, + 1BD562AF8A49A4267C032A061DC7D501 /* KWInvocationCapturer.m in Sources */, + EB8643EEFB250DA966E35161687AC6D6 /* KWItNode.m in Sources */, + 9C1542AF7C58114B9268B2F727B5907C /* KWLetNode.m in Sources */, + B7FCF79C808419F473F8B10488C4FC8D /* KWMatcher.m in Sources */, + 35DC16E86C84712DA480EE95842D9578 /* KWMatcherFactory.m in Sources */, + E5F3206DCC644EAEF2C337A96730D086 /* KWMatchers.m in Sources */, + A1F0DB582D722677028817A07A64135E /* KWMatchVerifier.m in Sources */, + 0F58C42E578263774D5766FB45CCB7C0 /* KWMessagePattern.m in Sources */, + 0457C2027603717E8E3817938414A56C /* KWMessageTracker.m in Sources */, + DABBD01BE904698B0621EF4DF5172AE3 /* KWMock.m in Sources */, + EF72BFCC295BCFEFB28FB330DFB9DD53 /* KWNilMatcher.m in Sources */, + B71F59035F7C46E7BF3521B2939B5A21 /* KWNotificationMatcher.m in Sources */, + AD841562234FF714506B2F97D13FFCA8 /* KWNull.m in Sources */, + C49E0F6B3C2EA36637248B02AFD4952F /* KWObjCUtilities.m in Sources */, + E20C519D17ECB56B41089B9E30C3F662 /* KWPendingNode.m in Sources */, + 25378B5EE43F5602BB752B66AC5D81DE /* KWProbePoller.m in Sources */, + 02C83D2F844269B5C60A732CCE33ACCF /* KWReceiveMatcher.m in Sources */, + 9D3216A4B6DE42F86ADEDE82A983733C /* KWRegisterMatchersNode.m in Sources */, + 1FF0F25721F5FFFBAAA4030395FEE587 /* KWRegularExpressionPatternMatcher.m in Sources */, + 06C6EF9FC3A32A2B75836DDB78F4A6B9 /* KWRespondToSelectorMatcher.m in Sources */, + 1794ABAF0F88A86238A7AA7216AFA4F4 /* KWSpec.m in Sources */, + E76EE15F1A787C2C52D3B7BCC06D5298 /* KWStringContainsMatcher.m in Sources */, + D9F12A025FE4C7CE2FCB8DD33C26F198 /* KWStringPrefixMatcher.m in Sources */, + A2D2F89E31DCAF9F8FCC75D8A5F8DDA8 /* KWStringUtilities.m in Sources */, + 8E77B2D0AE3944F5BDCEEA67FFC21D7B /* KWStub.m in Sources */, + 4943B7B672CF83DAC3B57DA7300AD2FD /* KWSuiteConfigurationBase.m in Sources */, + 9B03D0CAA15758750810645C9932CA1D /* KWSymbolicator.m in Sources */, + 03594326A541A67C41C740BEC2A03D2B /* KWUserDefinedMatcher.m in Sources */, + 4E1E6454654322B99E9F6DD078F89FDF /* KWValue.m in Sources */, + 9F9FDC697EA3086EE1F3F283132610F2 /* KWWorkarounds.m in Sources */, + 1AF51D75CF9F028C286AF174B67EED83 /* NSInvocation+KiwiAdditions.m in Sources */, + 886C6A1950E34F05DBBF85F4060AA649 /* NSInvocation+OCMAdditions.m in Sources */, + 45C0528F6511722C7817F9A7C61CED55 /* NSMethodSignature+KiwiAdditions.m in Sources */, + F6508813F978E711824D53906423ED9F /* NSNumber+KiwiAdditions.m in Sources */, + 6A069EDBCA03B1DED5820E60E1E7A282 /* NSObject+KiwiMockAdditions.m in Sources */, + 176377C673DF7B6E599A75B48411038A /* NSObject+KiwiSpyAdditions.m in Sources */, + E0AEC8BA31635C2EB289858458E90514 /* NSObject+KiwiStubAdditions.m in Sources */, + D263FD0792138010B78FC6518C9F9B2F /* NSObject+KiwiVerifierAdditions.m in Sources */, + 14A33FDBE96191797350BABD61FC951C /* NSProxy+KiwiVerifierAdditions.m in Sources */, + 940FB0F410414914060A7BB35054751A /* NSValue+KiwiAdditions.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + F827F4E067AC0F67D2C0B83A2445B0C8 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BA594BC05159229EEABE09E2ED750158 /* Pods-Tests-TransitionKit iOS Tests-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCD05DE2B27FBEA62ADC144E2996C8F5 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 2363BF3A7F0820D9CAD9935AFD60CB67 /* TKEvent.m in Sources */, + AE6D7D1BC35B22F1644F5E10B98DB21E /* TKState.m in Sources */, + CD62F0E362C57316DD923BBC9686D5C3 /* TKStateMachine.m in Sources */, + 0B4768417E50F9A26B323C35500D86CE /* TKTransition.m in Sources */, + 77FEBA873ADC4E8E046841DD45BF50EC /* TransitionKit-iOS-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 266A469DFC53418AAD7133CB940300D6 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "TransitionKit-OSX"; + target = C013B188CECFD144F264E15EC3C2A8DA /* TransitionKit-OSX */; + targetProxy = D1A9F006DDCB7DE990672BBF7F2BBC3E /* PBXContainerItemProxy */; + }; + 580543BEE42281E85EB3A4320F80B860 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Kiwi-OSX"; + target = 9C77A4CD37823CC5839C1244E3B4655E /* Kiwi-OSX */; + targetProxy = 9487AB6E8C62E7D23D888C6C9F80DA8D /* PBXContainerItemProxy */; + }; + 91387026FCD8B8617BFE269927EAECE4 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Kiwi-iOS"; + target = 96B533C5E6327385FD6AB88890A3A0EB /* Kiwi-iOS */; + targetProxy = EBBC78A34964489ACCC332C919128BF1 /* PBXContainerItemProxy */; + }; + A9E5EA1AF4CFE193BD955390605BFBC3 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "TransitionKit-iOS"; + target = 6C4B72EAD29C118CA0F3246466DBFFE3 /* TransitionKit-iOS */; + targetProxy = AB4E34AA78D13AFBB23AA850EF5B586E /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 1720CAA85D3A460378317197F522234A /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = E00C27B968DCB013A54B7C5EB0389177 /* TransitionKit-iOS.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREFIX_HEADER = "Target Support Files/TransitionKit-iOS/TransitionKit-iOS-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 6.0; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRIVATE_HEADERS_FOLDER_PATH = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + PUBLIC_HEADERS_FOLDER_PATH = ""; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Release; + }; + 23B5166CBAFAAC7B317EAAD1A8246883 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = BE3DB1826B68E076AF2053EB46479F9C /* Kiwi-OSX.xcconfig */; + buildSettings = { + CODE_SIGN_IDENTITY = "-"; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + EXECUTABLE_PREFIX = lib; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREFIX_HEADER = "Target Support Files/Kiwi-OSX/Kiwi-OSX-prefix.pch"; + MACOSX_DEPLOYMENT_TARGET = 10.7; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRIVATE_HEADERS_FOLDER_PATH = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + PUBLIC_HEADERS_FOLDER_PATH = ""; + SDKROOT = macosx; + }; + name = Release; + }; + 277DE89115430C595E1621B0086C09F2 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 8360901F15ABA7A40903E016D32D0707 /* Pods-Tests-TransitionKit macOS Tests.release.xcconfig */; + buildSettings = { + CODE_SIGN_IDENTITY = "-"; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + EXECUTABLE_PREFIX = lib; + GCC_NO_COMMON_BLOCKS = YES; + MACH_O_TYPE = staticlib; + MACOSX_DEPLOYMENT_TARGET = 10.7; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + }; + name = Release; + }; + 3C6732BA3B3DC863E5CE09412490FC54 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = D962F9362779AE2C4D97F3F663613538 /* Pods-Tests-TransitionKit iOS Tests.debug.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_NO_COMMON_BLOCKS = YES; + IPHONEOS_DEPLOYMENT_TARGET = 6.0; + MACH_O_TYPE = staticlib; + MTL_ENABLE_DEBUG_INFO = YES; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + 429AF1EFF704A6FD70885A0E758FB363 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = E00C27B968DCB013A54B7C5EB0389177 /* TransitionKit-iOS.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREFIX_HEADER = "Target Support Files/TransitionKit-iOS/TransitionKit-iOS-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 6.0; + MTL_ENABLE_DEBUG_INFO = YES; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRIVATE_HEADERS_FOLDER_PATH = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + PUBLIC_HEADERS_FOLDER_PATH = ""; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + 4D5914BB57674FF304D4C120B9F94A02 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGNING_REQUIRED = NO; + COPY_PHASE_STRIP = YES; + ENABLE_NS_ASSERTIONS = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_PREPROCESSOR_DEFINITIONS = ( + "POD_CONFIGURATION_RELEASE=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 6.0; + MACOSX_DEPLOYMENT_TARGET = 10.7; + PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/; + STRIP_INSTALLED_PRODUCT = NO; + SYMROOT = "${SRCROOT}/../build"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 55F18F2E91F927FDD8BC5744A1CAFE61 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 0BB6F5764C789C7A2DCC2705F49A926B /* Pods-Tests-TransitionKit macOS Tests.debug.xcconfig */; + buildSettings = { + CODE_SIGN_IDENTITY = "-"; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + EXECUTABLE_PREFIX = lib; + GCC_NO_COMMON_BLOCKS = YES; + MACH_O_TYPE = staticlib; + MACOSX_DEPLOYMENT_TARGET = 10.7; + MTL_ENABLE_DEBUG_INFO = YES; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + 5985AF023DD0C15C8D5C013F65BB551A /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = B4D30D55A41A848A797A5009195D0E77 /* TransitionKit-OSX.xcconfig */; + buildSettings = { + CODE_SIGN_IDENTITY = "-"; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + EXECUTABLE_PREFIX = lib; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREFIX_HEADER = "Target Support Files/TransitionKit-OSX/TransitionKit-OSX-prefix.pch"; + MACOSX_DEPLOYMENT_TARGET = 10.7; + MTL_ENABLE_DEBUG_INFO = YES; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRIVATE_HEADERS_FOLDER_PATH = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + PUBLIC_HEADERS_FOLDER_PATH = ""; + SDKROOT = macosx; + }; + name = Debug; + }; + 5A861044A950069B568F4D93153F40EB /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = B4D30D55A41A848A797A5009195D0E77 /* TransitionKit-OSX.xcconfig */; + buildSettings = { + CODE_SIGN_IDENTITY = "-"; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + EXECUTABLE_PREFIX = lib; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREFIX_HEADER = "Target Support Files/TransitionKit-OSX/TransitionKit-OSX-prefix.pch"; + MACOSX_DEPLOYMENT_TARGET = 10.7; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRIVATE_HEADERS_FOLDER_PATH = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + PUBLIC_HEADERS_FOLDER_PATH = ""; + SDKROOT = macosx; + }; + name = Release; + }; + 6069721D9E8EA870122B39CD801512C1 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = BE3DB1826B68E076AF2053EB46479F9C /* Kiwi-OSX.xcconfig */; + buildSettings = { + CODE_SIGN_IDENTITY = "-"; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + EXECUTABLE_PREFIX = lib; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREFIX_HEADER = "Target Support Files/Kiwi-OSX/Kiwi-OSX-prefix.pch"; + MACOSX_DEPLOYMENT_TARGET = 10.7; + MTL_ENABLE_DEBUG_INFO = YES; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRIVATE_HEADERS_FOLDER_PATH = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + PUBLIC_HEADERS_FOLDER_PATH = ""; + SDKROOT = macosx; + }; + name = Debug; + }; + 93C9734A3F2B1CFBA9ADAE4869C9A083 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = EBA1B98D14D759934B51499FF4C6EAE1 /* Kiwi-iOS.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREFIX_HEADER = "Target Support Files/Kiwi-iOS/Kiwi-iOS-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 5.0; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRIVATE_HEADERS_FOLDER_PATH = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + PUBLIC_HEADERS_FOLDER_PATH = ""; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Release; + }; + ADD0062EF21E06B1E3B28F97750232A5 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = EBA1B98D14D759934B51499FF4C6EAE1 /* Kiwi-iOS.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREFIX_HEADER = "Target Support Files/Kiwi-iOS/Kiwi-iOS-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 5.0; + MTL_ENABLE_DEBUG_INFO = YES; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRIVATE_HEADERS_FOLDER_PATH = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + PUBLIC_HEADERS_FOLDER_PATH = ""; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + C697A3CF048C7DAEE6215D1950770D3E /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 16CEEB90C83E148E1BE783D800B495B2 /* Pods-Tests-TransitionKit iOS Tests.release.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_NO_COMMON_BLOCKS = YES; + IPHONEOS_DEPLOYMENT_TARGET = 6.0; + MACH_O_TYPE = staticlib; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Release; + }; + EBC5C79E7E365C10A8D690582C717947 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGNING_REQUIRED = NO; + COPY_PHASE_STRIP = NO; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "POD_CONFIGURATION_DEBUG=1", + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 6.0; + MACOSX_DEPLOYMENT_TARGET = 10.7; + ONLY_ACTIVE_ARCH = YES; + PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/; + STRIP_INSTALLED_PRODUCT = NO; + SYMROOT = "${SRCROOT}/../build"; + }; + name = Debug; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + EBC5C79E7E365C10A8D690582C717947 /* Debug */, + 4D5914BB57674FF304D4C120B9F94A02 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 4197FBCDF4581E8B51CE53E1F97273F5 /* Build configuration list for PBXNativeTarget "Pods-Tests-TransitionKit iOS Tests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 3C6732BA3B3DC863E5CE09412490FC54 /* Debug */, + C697A3CF048C7DAEE6215D1950770D3E /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 732241965CA0943B1A35E4972B6D2D38 /* Build configuration list for PBXNativeTarget "Pods-Tests-TransitionKit macOS Tests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 55F18F2E91F927FDD8BC5744A1CAFE61 /* Debug */, + 277DE89115430C595E1621B0086C09F2 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 7ED8A66845390748D47100DC49BBACC1 /* Build configuration list for PBXNativeTarget "Kiwi-iOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + ADD0062EF21E06B1E3B28F97750232A5 /* Debug */, + 93C9734A3F2B1CFBA9ADAE4869C9A083 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + D29BF99BD59A94E27F6564D8F69F8668 /* Build configuration list for PBXNativeTarget "Kiwi-OSX" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 6069721D9E8EA870122B39CD801512C1 /* Debug */, + 23B5166CBAFAAC7B317EAAD1A8246883 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + DCCAB301F1A74A65F88E628330868946 /* Build configuration list for PBXNativeTarget "TransitionKit-OSX" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 5985AF023DD0C15C8D5C013F65BB551A /* Debug */, + 5A861044A950069B568F4D93153F40EB /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + F83A3E3FC031DDB52C5711A8EA618980 /* Build configuration list for PBXNativeTarget "TransitionKit-iOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 429AF1EFF704A6FD70885A0E758FB363 /* Debug */, + 1720CAA85D3A460378317197F522234A /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = D41D8CD98F00B204E9800998ECF8427E /* Project object */; +} diff --git a/Pods/Target Support Files/Kiwi-OSX/Kiwi-OSX-dummy.m b/Pods/Target Support Files/Kiwi-OSX/Kiwi-OSX-dummy.m new file mode 100644 index 0000000..bc3aa14 --- /dev/null +++ b/Pods/Target Support Files/Kiwi-OSX/Kiwi-OSX-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Kiwi_OSX : NSObject +@end +@implementation PodsDummy_Kiwi_OSX +@end diff --git a/Pods/Target Support Files/Kiwi-OSX/Kiwi-OSX-prefix.pch b/Pods/Target Support Files/Kiwi-OSX/Kiwi-OSX-prefix.pch new file mode 100644 index 0000000..a1c6284 --- /dev/null +++ b/Pods/Target Support Files/Kiwi-OSX/Kiwi-OSX-prefix.pch @@ -0,0 +1,13 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + +#import diff --git a/Pods/Target Support Files/Kiwi-OSX/Kiwi-OSX.xcconfig b/Pods/Target Support Files/Kiwi-OSX/Kiwi-OSX.xcconfig new file mode 100644 index 0000000..ce32753 --- /dev/null +++ b/Pods/Target Support Files/Kiwi-OSX/Kiwi-OSX.xcconfig @@ -0,0 +1,12 @@ +CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/Kiwi-OSX +FRAMEWORK_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks" $(DEVELOPER_FRAMEWORKS_DIR) +FRAMEWORK_SEARCH_PATHS[sdk=macosx10.10] = $(inherited) $(DEVELOPER_DIR)/Platforms/MacOSX.platform/Developer/Library/Frameworks +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/Kiwi" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Kiwi" "${PODS_ROOT}/Headers/Public/TransitionKit" +OTHER_LDFLAGS = -framework "XCTest" +PODS_BUILD_DIR = $BUILD_DIR +PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/Kiwi +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES diff --git a/Pods/Target Support Files/Kiwi-iOS/Kiwi-iOS-dummy.m b/Pods/Target Support Files/Kiwi-iOS/Kiwi-iOS-dummy.m new file mode 100644 index 0000000..08fcb9d --- /dev/null +++ b/Pods/Target Support Files/Kiwi-iOS/Kiwi-iOS-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Kiwi_iOS : NSObject +@end +@implementation PodsDummy_Kiwi_iOS +@end diff --git a/Pods/Target Support Files/Kiwi-iOS/Kiwi-iOS-prefix.pch b/Pods/Target Support Files/Kiwi-iOS/Kiwi-iOS-prefix.pch new file mode 100644 index 0000000..f188b83 --- /dev/null +++ b/Pods/Target Support Files/Kiwi-iOS/Kiwi-iOS-prefix.pch @@ -0,0 +1,13 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + +#import diff --git a/Pods/Target Support Files/Kiwi-iOS/Kiwi-iOS.xcconfig b/Pods/Target Support Files/Kiwi-iOS/Kiwi-iOS.xcconfig new file mode 100644 index 0000000..8eaae27 --- /dev/null +++ b/Pods/Target Support Files/Kiwi-iOS/Kiwi-iOS.xcconfig @@ -0,0 +1,13 @@ +CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/Kiwi-iOS +FRAMEWORK_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks" $(SDKROOT)/Developer/Library/Frameworks $(inherited) $(DEVELOPER_FRAMEWORKS_DIR) +FRAMEWORK_SEARCH_PATHS[sdk=iphoneos8.0] = $(inherited) $(DEVELOPER_DIR)/Platforms/iPhoneOS.platform/Developer/Library/Frameworks +FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator8.0] = $(inherited) $(DEVELOPER_DIR)/Platforms/iPhoneSimulator.platform/Developer/Library/Frameworks +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/Kiwi" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Kiwi" "${PODS_ROOT}/Headers/Public/TransitionKit" +OTHER_LDFLAGS = -framework "XCTest" +PODS_BUILD_DIR = $BUILD_DIR +PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/Kiwi +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES diff --git a/Pods/Target Support Files/Pods-Tests-TransitionKit iOS Tests/Pods-Tests-TransitionKit iOS Tests-acknowledgements.markdown b/Pods/Target Support Files/Pods-Tests-TransitionKit iOS Tests/Pods-Tests-TransitionKit iOS Tests-acknowledgements.markdown new file mode 100644 index 0000000..25eb981 --- /dev/null +++ b/Pods/Target Support Files/Pods-Tests-TransitionKit iOS Tests/Pods-Tests-TransitionKit iOS Tests-acknowledgements.markdown @@ -0,0 +1,240 @@ +# Acknowledgements +This application makes use of the following third party libraries: + +## Kiwi + +Copyright (c) 2010, Allen Ding +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. + +3. Neither the name of Allen Ding nor the names of any contributors may be +used to endorse or promote products derived from this software without specific +prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +## TransitionKit + + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2013-2014 Blake Watters + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +Generated by CocoaPods - https://cocoapods.org diff --git a/Pods/Target Support Files/Pods-Tests-TransitionKit iOS Tests/Pods-Tests-TransitionKit iOS Tests-acknowledgements.plist b/Pods/Target Support Files/Pods-Tests-TransitionKit iOS Tests/Pods-Tests-TransitionKit iOS Tests-acknowledgements.plist new file mode 100644 index 0000000..108f417 --- /dev/null +++ b/Pods/Target Support Files/Pods-Tests-TransitionKit iOS Tests/Pods-Tests-TransitionKit iOS Tests-acknowledgements.plist @@ -0,0 +1,278 @@ + + + + + PreferenceSpecifiers + + + FooterText + This application makes use of the following third party libraries: + Title + Acknowledgements + Type + PSGroupSpecifier + + + FooterText + Copyright (c) 2010, Allen Ding +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. + +3. Neither the name of Allen Ding nor the names of any contributors may be +used to endorse or promote products derived from this software without specific +prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + License + MIT + Title + Kiwi + Type + PSGroupSpecifier + + + FooterText + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2013-2014 Blake Watters + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + License + Apache2 + Title + TransitionKit + Type + PSGroupSpecifier + + + FooterText + Generated by CocoaPods - https://cocoapods.org + Title + + Type + PSGroupSpecifier + + + StringsTable + Acknowledgements + Title + Acknowledgements + + diff --git a/Pods/Target Support Files/Pods-Tests-TransitionKit iOS Tests/Pods-Tests-TransitionKit iOS Tests-dummy.m b/Pods/Target Support Files/Pods-Tests-TransitionKit iOS Tests/Pods-Tests-TransitionKit iOS Tests-dummy.m new file mode 100644 index 0000000..de0ad5b --- /dev/null +++ b/Pods/Target Support Files/Pods-Tests-TransitionKit iOS Tests/Pods-Tests-TransitionKit iOS Tests-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_Tests_TransitionKit_iOS_Tests : NSObject +@end +@implementation PodsDummy_Pods_Tests_TransitionKit_iOS_Tests +@end diff --git a/Pods/Target Support Files/Pods-Tests-TransitionKit iOS Tests/Pods-Tests-TransitionKit iOS Tests-frameworks.sh b/Pods/Target Support Files/Pods-Tests-TransitionKit iOS Tests/Pods-Tests-TransitionKit iOS Tests-frameworks.sh new file mode 100755 index 0000000..0f29f13 --- /dev/null +++ b/Pods/Target Support Files/Pods-Tests-TransitionKit iOS Tests/Pods-Tests-TransitionKit iOS Tests-frameworks.sh @@ -0,0 +1,92 @@ +#!/bin/sh +set -e + +echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" +mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + +SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" + +install_framework() +{ + if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then + local source="${BUILT_PRODUCTS_DIR}/$1" + elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then + local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")" + elif [ -r "$1" ]; then + local source="$1" + fi + + local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + + if [ -L "${source}" ]; then + echo "Symlinked..." + source="$(readlink "${source}")" + fi + + # use filter instead of exclude so missing patterns dont' throw errors + echo "rsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" + rsync -av --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" + + local basename + basename="$(basename -s .framework "$1")" + binary="${destination}/${basename}.framework/${basename}" + if ! [ -r "$binary" ]; then + binary="${destination}/${basename}" + fi + + # Strip invalid architectures so "fat" simulator / device frameworks work on device + if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then + strip_invalid_archs "$binary" + fi + + # Resign the code if required by the build settings to avoid unstable apps + code_sign_if_enabled "${destination}/$(basename "$1")" + + # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. + if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then + local swift_runtime_libs + swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u && exit ${PIPESTATUS[0]}) + for lib in $swift_runtime_libs; do + echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" + rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" + code_sign_if_enabled "${destination}/${lib}" + done + fi +} + +# Signs a framework with the provided identity +code_sign_if_enabled() { + if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then + # Use the current code_sign_identitiy + echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" + local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements '$1'" + + if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then + code_sign_cmd="$code_sign_cmd &" + fi + echo "$code_sign_cmd" + eval "$code_sign_cmd" + fi +} + +# Strip invalid architectures +strip_invalid_archs() { + binary="$1" + # Get architectures for current file + archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | rev)" + stripped="" + for arch in $archs; do + if ! [[ "${VALID_ARCHS}" == *"$arch"* ]]; then + # Strip non-valid architectures in-place + lipo -remove "$arch" -output "$binary" "$binary" || exit 1 + stripped="$stripped $arch" + fi + done + if [[ "$stripped" ]]; then + echo "Stripped $binary of architectures:$stripped" + fi +} + +if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then + wait +fi diff --git a/Pods/Target Support Files/Pods-Tests-TransitionKit iOS Tests/Pods-Tests-TransitionKit iOS Tests-resources.sh b/Pods/Target Support Files/Pods-Tests-TransitionKit iOS Tests/Pods-Tests-TransitionKit iOS Tests-resources.sh new file mode 100755 index 0000000..4602c68 --- /dev/null +++ b/Pods/Target Support Files/Pods-Tests-TransitionKit iOS Tests/Pods-Tests-TransitionKit iOS Tests-resources.sh @@ -0,0 +1,99 @@ +#!/bin/sh +set -e + +mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + +RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt +> "$RESOURCES_TO_COPY" + +XCASSET_FILES=() + +case "${TARGETED_DEVICE_FAMILY}" in + 1,2) + TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" + ;; + 1) + TARGET_DEVICE_ARGS="--target-device iphone" + ;; + 2) + TARGET_DEVICE_ARGS="--target-device ipad" + ;; + 3) + TARGET_DEVICE_ARGS="--target-device tv" + ;; + *) + TARGET_DEVICE_ARGS="--target-device mac" + ;; +esac + +install_resource() +{ + if [[ "$1" = /* ]] ; then + RESOURCE_PATH="$1" + else + RESOURCE_PATH="${PODS_ROOT}/$1" + fi + if [[ ! -e "$RESOURCE_PATH" ]] ; then + cat << EOM +error: Resource "$RESOURCE_PATH" not found. Run 'pod install' to update the copy resources script. +EOM + exit 1 + fi + case $RESOURCE_PATH in + *.storyboard) + echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" + ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} + ;; + *.xib) + echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" + ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} + ;; + *.framework) + echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + echo "rsync -av $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + rsync -av "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + ;; + *.xcdatamodel) + echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" + xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom" + ;; + *.xcdatamodeld) + echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" + xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd" + ;; + *.xcmappingmodel) + echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" + xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm" + ;; + *.xcassets) + ABSOLUTE_XCASSET_FILE="$RESOURCE_PATH" + XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE") + ;; + *) + echo "$RESOURCE_PATH" + echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY" + ;; + esac +} + +mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then + mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +fi +rm -f "$RESOURCES_TO_COPY" + +if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "$XCASSET_FILES" ] +then + # Find all other xcassets (this unfortunately includes those of path pods and other targets). + OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d) + while read line; do + if [[ $line != "${PODS_ROOT}*" ]]; then + XCASSET_FILES+=("$line") + fi + done <<<"$OTHER_XCASSETS" + + printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +fi diff --git a/Pods/Target Support Files/Pods-Tests-TransitionKit iOS Tests/Pods-Tests-TransitionKit iOS Tests.debug.xcconfig b/Pods/Target Support Files/Pods-Tests-TransitionKit iOS Tests/Pods-Tests-TransitionKit iOS Tests.debug.xcconfig new file mode 100644 index 0000000..0d54282 --- /dev/null +++ b/Pods/Target Support Files/Pods-Tests-TransitionKit iOS Tests/Pods-Tests-TransitionKit iOS Tests.debug.xcconfig @@ -0,0 +1,11 @@ +FRAMEWORK_SEARCH_PATHS = $(inherited) $(SDKROOT)/Developer/Library/Frameworks $(inherited) $(DEVELOPER_FRAMEWORKS_DIR) "$(PLATFORM_DIR)/Developer/Library/Frameworks" +FRAMEWORK_SEARCH_PATHS[sdk=iphoneos8.0] = $(inherited) $(DEVELOPER_DIR)/Platforms/iPhoneOS.platform/Developer/Library/Frameworks +FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator8.0] = $(inherited) $(DEVELOPER_DIR)/Platforms/iPhoneSimulator.platform/Developer/Library/Frameworks +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Kiwi" "${PODS_ROOT}/Headers/Public/TransitionKit" +LIBRARY_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/Kiwi-iOS" "$PODS_CONFIGURATION_BUILD_DIR/TransitionKit-iOS" +OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/Kiwi" -isystem "${PODS_ROOT}/Headers/Public/TransitionKit" +OTHER_LDFLAGS = $(inherited) -ObjC -l"Kiwi-iOS" -l"TransitionKit-iOS" -framework "XCTest" +PODS_BUILD_DIR = $BUILD_DIR +PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT}/Pods diff --git a/Pods/Target Support Files/Pods-Tests-TransitionKit iOS Tests/Pods-Tests-TransitionKit iOS Tests.release.xcconfig b/Pods/Target Support Files/Pods-Tests-TransitionKit iOS Tests/Pods-Tests-TransitionKit iOS Tests.release.xcconfig new file mode 100644 index 0000000..0d54282 --- /dev/null +++ b/Pods/Target Support Files/Pods-Tests-TransitionKit iOS Tests/Pods-Tests-TransitionKit iOS Tests.release.xcconfig @@ -0,0 +1,11 @@ +FRAMEWORK_SEARCH_PATHS = $(inherited) $(SDKROOT)/Developer/Library/Frameworks $(inherited) $(DEVELOPER_FRAMEWORKS_DIR) "$(PLATFORM_DIR)/Developer/Library/Frameworks" +FRAMEWORK_SEARCH_PATHS[sdk=iphoneos8.0] = $(inherited) $(DEVELOPER_DIR)/Platforms/iPhoneOS.platform/Developer/Library/Frameworks +FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator8.0] = $(inherited) $(DEVELOPER_DIR)/Platforms/iPhoneSimulator.platform/Developer/Library/Frameworks +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Kiwi" "${PODS_ROOT}/Headers/Public/TransitionKit" +LIBRARY_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/Kiwi-iOS" "$PODS_CONFIGURATION_BUILD_DIR/TransitionKit-iOS" +OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/Kiwi" -isystem "${PODS_ROOT}/Headers/Public/TransitionKit" +OTHER_LDFLAGS = $(inherited) -ObjC -l"Kiwi-iOS" -l"TransitionKit-iOS" -framework "XCTest" +PODS_BUILD_DIR = $BUILD_DIR +PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT}/Pods diff --git a/Pods/Target Support Files/Pods-Tests-TransitionKit macOS Tests/Pods-Tests-TransitionKit macOS Tests-acknowledgements.markdown b/Pods/Target Support Files/Pods-Tests-TransitionKit macOS Tests/Pods-Tests-TransitionKit macOS Tests-acknowledgements.markdown new file mode 100644 index 0000000..25eb981 --- /dev/null +++ b/Pods/Target Support Files/Pods-Tests-TransitionKit macOS Tests/Pods-Tests-TransitionKit macOS Tests-acknowledgements.markdown @@ -0,0 +1,240 @@ +# Acknowledgements +This application makes use of the following third party libraries: + +## Kiwi + +Copyright (c) 2010, Allen Ding +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. + +3. Neither the name of Allen Ding nor the names of any contributors may be +used to endorse or promote products derived from this software without specific +prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +## TransitionKit + + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2013-2014 Blake Watters + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +Generated by CocoaPods - https://cocoapods.org diff --git a/Pods/Target Support Files/Pods-Tests-TransitionKit macOS Tests/Pods-Tests-TransitionKit macOS Tests-acknowledgements.plist b/Pods/Target Support Files/Pods-Tests-TransitionKit macOS Tests/Pods-Tests-TransitionKit macOS Tests-acknowledgements.plist new file mode 100644 index 0000000..108f417 --- /dev/null +++ b/Pods/Target Support Files/Pods-Tests-TransitionKit macOS Tests/Pods-Tests-TransitionKit macOS Tests-acknowledgements.plist @@ -0,0 +1,278 @@ + + + + + PreferenceSpecifiers + + + FooterText + This application makes use of the following third party libraries: + Title + Acknowledgements + Type + PSGroupSpecifier + + + FooterText + Copyright (c) 2010, Allen Ding +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. + +3. Neither the name of Allen Ding nor the names of any contributors may be +used to endorse or promote products derived from this software without specific +prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + License + MIT + Title + Kiwi + Type + PSGroupSpecifier + + + FooterText + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2013-2014 Blake Watters + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + License + Apache2 + Title + TransitionKit + Type + PSGroupSpecifier + + + FooterText + Generated by CocoaPods - https://cocoapods.org + Title + + Type + PSGroupSpecifier + + + StringsTable + Acknowledgements + Title + Acknowledgements + + diff --git a/Pods/Target Support Files/Pods-Tests-TransitionKit macOS Tests/Pods-Tests-TransitionKit macOS Tests-dummy.m b/Pods/Target Support Files/Pods-Tests-TransitionKit macOS Tests/Pods-Tests-TransitionKit macOS Tests-dummy.m new file mode 100644 index 0000000..043d689 --- /dev/null +++ b/Pods/Target Support Files/Pods-Tests-TransitionKit macOS Tests/Pods-Tests-TransitionKit macOS Tests-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_Tests_TransitionKit_macOS_Tests : NSObject +@end +@implementation PodsDummy_Pods_Tests_TransitionKit_macOS_Tests +@end diff --git a/Pods/Target Support Files/Pods-Tests-TransitionKit macOS Tests/Pods-Tests-TransitionKit macOS Tests-frameworks.sh b/Pods/Target Support Files/Pods-Tests-TransitionKit macOS Tests/Pods-Tests-TransitionKit macOS Tests-frameworks.sh new file mode 100755 index 0000000..0f29f13 --- /dev/null +++ b/Pods/Target Support Files/Pods-Tests-TransitionKit macOS Tests/Pods-Tests-TransitionKit macOS Tests-frameworks.sh @@ -0,0 +1,92 @@ +#!/bin/sh +set -e + +echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" +mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + +SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" + +install_framework() +{ + if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then + local source="${BUILT_PRODUCTS_DIR}/$1" + elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then + local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")" + elif [ -r "$1" ]; then + local source="$1" + fi + + local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + + if [ -L "${source}" ]; then + echo "Symlinked..." + source="$(readlink "${source}")" + fi + + # use filter instead of exclude so missing patterns dont' throw errors + echo "rsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" + rsync -av --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" + + local basename + basename="$(basename -s .framework "$1")" + binary="${destination}/${basename}.framework/${basename}" + if ! [ -r "$binary" ]; then + binary="${destination}/${basename}" + fi + + # Strip invalid architectures so "fat" simulator / device frameworks work on device + if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then + strip_invalid_archs "$binary" + fi + + # Resign the code if required by the build settings to avoid unstable apps + code_sign_if_enabled "${destination}/$(basename "$1")" + + # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. + if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then + local swift_runtime_libs + swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u && exit ${PIPESTATUS[0]}) + for lib in $swift_runtime_libs; do + echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" + rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" + code_sign_if_enabled "${destination}/${lib}" + done + fi +} + +# Signs a framework with the provided identity +code_sign_if_enabled() { + if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then + # Use the current code_sign_identitiy + echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" + local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements '$1'" + + if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then + code_sign_cmd="$code_sign_cmd &" + fi + echo "$code_sign_cmd" + eval "$code_sign_cmd" + fi +} + +# Strip invalid architectures +strip_invalid_archs() { + binary="$1" + # Get architectures for current file + archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | rev)" + stripped="" + for arch in $archs; do + if ! [[ "${VALID_ARCHS}" == *"$arch"* ]]; then + # Strip non-valid architectures in-place + lipo -remove "$arch" -output "$binary" "$binary" || exit 1 + stripped="$stripped $arch" + fi + done + if [[ "$stripped" ]]; then + echo "Stripped $binary of architectures:$stripped" + fi +} + +if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then + wait +fi diff --git a/Pods/Target Support Files/Pods-Tests-TransitionKit macOS Tests/Pods-Tests-TransitionKit macOS Tests-resources.sh b/Pods/Target Support Files/Pods-Tests-TransitionKit macOS Tests/Pods-Tests-TransitionKit macOS Tests-resources.sh new file mode 100755 index 0000000..443d4b3 --- /dev/null +++ b/Pods/Target Support Files/Pods-Tests-TransitionKit macOS Tests/Pods-Tests-TransitionKit macOS Tests-resources.sh @@ -0,0 +1,99 @@ +#!/bin/sh +set -e + +mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + +RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt +> "$RESOURCES_TO_COPY" + +XCASSET_FILES=() + +case "${TARGETED_DEVICE_FAMILY}" in + 1,2) + TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" + ;; + 1) + TARGET_DEVICE_ARGS="--target-device iphone" + ;; + 2) + TARGET_DEVICE_ARGS="--target-device ipad" + ;; + 3) + TARGET_DEVICE_ARGS="--target-device tv" + ;; + *) + TARGET_DEVICE_ARGS="--target-device mac" + ;; +esac + +install_resource() +{ + if [[ "$1" = /* ]] ; then + RESOURCE_PATH="$1" + else + RESOURCE_PATH="${PODS_ROOT}/$1" + fi + if [[ ! -e "$RESOURCE_PATH" ]] ; then + cat << EOM +error: Resource "$RESOURCE_PATH" not found. Run 'pod install' to update the copy resources script. +EOM + exit 1 + fi + case $RESOURCE_PATH in + *.storyboard) + echo "ibtool --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" + ibtool --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} + ;; + *.xib) + echo "ibtool --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" + ibtool --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} + ;; + *.framework) + echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + echo "rsync -av $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + rsync -av "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + ;; + *.xcdatamodel) + echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" + xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom" + ;; + *.xcdatamodeld) + echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" + xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd" + ;; + *.xcmappingmodel) + echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" + xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm" + ;; + *.xcassets) + ABSOLUTE_XCASSET_FILE="$RESOURCE_PATH" + XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE") + ;; + *) + echo "$RESOURCE_PATH" + echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY" + ;; + esac +} + +mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then + mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +fi +rm -f "$RESOURCES_TO_COPY" + +if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "$XCASSET_FILES" ] +then + # Find all other xcassets (this unfortunately includes those of path pods and other targets). + OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d) + while read line; do + if [[ $line != "${PODS_ROOT}*" ]]; then + XCASSET_FILES+=("$line") + fi + done <<<"$OTHER_XCASSETS" + + printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +fi diff --git a/Pods/Target Support Files/Pods-Tests-TransitionKit macOS Tests/Pods-Tests-TransitionKit macOS Tests.debug.xcconfig b/Pods/Target Support Files/Pods-Tests-TransitionKit macOS Tests/Pods-Tests-TransitionKit macOS Tests.debug.xcconfig new file mode 100644 index 0000000..296c0ee --- /dev/null +++ b/Pods/Target Support Files/Pods-Tests-TransitionKit macOS Tests/Pods-Tests-TransitionKit macOS Tests.debug.xcconfig @@ -0,0 +1,10 @@ +FRAMEWORK_SEARCH_PATHS = $(inherited) $(DEVELOPER_FRAMEWORKS_DIR) "$(PLATFORM_DIR)/Developer/Library/Frameworks" +FRAMEWORK_SEARCH_PATHS[sdk=macosx10.10] = $(inherited) $(DEVELOPER_DIR)/Platforms/MacOSX.platform/Developer/Library/Frameworks +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Kiwi" "${PODS_ROOT}/Headers/Public/TransitionKit" +LIBRARY_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/Kiwi-OSX" "$PODS_CONFIGURATION_BUILD_DIR/TransitionKit-OSX" +OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/Kiwi" -isystem "${PODS_ROOT}/Headers/Public/TransitionKit" +OTHER_LDFLAGS = $(inherited) -ObjC -l"Kiwi-OSX" -l"TransitionKit-OSX" -framework "XCTest" +PODS_BUILD_DIR = $BUILD_DIR +PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT}/Pods diff --git a/Pods/Target Support Files/Pods-Tests-TransitionKit macOS Tests/Pods-Tests-TransitionKit macOS Tests.release.xcconfig b/Pods/Target Support Files/Pods-Tests-TransitionKit macOS Tests/Pods-Tests-TransitionKit macOS Tests.release.xcconfig new file mode 100644 index 0000000..296c0ee --- /dev/null +++ b/Pods/Target Support Files/Pods-Tests-TransitionKit macOS Tests/Pods-Tests-TransitionKit macOS Tests.release.xcconfig @@ -0,0 +1,10 @@ +FRAMEWORK_SEARCH_PATHS = $(inherited) $(DEVELOPER_FRAMEWORKS_DIR) "$(PLATFORM_DIR)/Developer/Library/Frameworks" +FRAMEWORK_SEARCH_PATHS[sdk=macosx10.10] = $(inherited) $(DEVELOPER_DIR)/Platforms/MacOSX.platform/Developer/Library/Frameworks +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Kiwi" "${PODS_ROOT}/Headers/Public/TransitionKit" +LIBRARY_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/Kiwi-OSX" "$PODS_CONFIGURATION_BUILD_DIR/TransitionKit-OSX" +OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/Kiwi" -isystem "${PODS_ROOT}/Headers/Public/TransitionKit" +OTHER_LDFLAGS = $(inherited) -ObjC -l"Kiwi-OSX" -l"TransitionKit-OSX" -framework "XCTest" +PODS_BUILD_DIR = $BUILD_DIR +PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT}/Pods diff --git a/Pods/Target Support Files/TransitionKit-OSX/TransitionKit-OSX-dummy.m b/Pods/Target Support Files/TransitionKit-OSX/TransitionKit-OSX-dummy.m new file mode 100644 index 0000000..06b26d5 --- /dev/null +++ b/Pods/Target Support Files/TransitionKit-OSX/TransitionKit-OSX-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_TransitionKit_OSX : NSObject +@end +@implementation PodsDummy_TransitionKit_OSX +@end diff --git a/Pods/Target Support Files/TransitionKit-OSX/TransitionKit-OSX-prefix.pch b/Pods/Target Support Files/TransitionKit-OSX/TransitionKit-OSX-prefix.pch new file mode 100644 index 0000000..082f8af --- /dev/null +++ b/Pods/Target Support Files/TransitionKit-OSX/TransitionKit-OSX-prefix.pch @@ -0,0 +1,12 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + diff --git a/Pods/Target Support Files/TransitionKit-OSX/TransitionKit-OSX.xcconfig b/Pods/Target Support Files/TransitionKit-OSX/TransitionKit-OSX.xcconfig new file mode 100644 index 0000000..c82bb31 --- /dev/null +++ b/Pods/Target Support Files/TransitionKit-OSX/TransitionKit-OSX.xcconfig @@ -0,0 +1,9 @@ +CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/TransitionKit-OSX +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/TransitionKit" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Kiwi" "${PODS_ROOT}/Headers/Public/TransitionKit" +PODS_BUILD_DIR = $BUILD_DIR +PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/.. +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES diff --git a/Pods/Target Support Files/TransitionKit-iOS/TransitionKit-iOS-dummy.m b/Pods/Target Support Files/TransitionKit-iOS/TransitionKit-iOS-dummy.m new file mode 100644 index 0000000..0752cef --- /dev/null +++ b/Pods/Target Support Files/TransitionKit-iOS/TransitionKit-iOS-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_TransitionKit_iOS : NSObject +@end +@implementation PodsDummy_TransitionKit_iOS +@end diff --git a/Pods/Target Support Files/TransitionKit-iOS/TransitionKit-iOS-prefix.pch b/Pods/Target Support Files/TransitionKit-iOS/TransitionKit-iOS-prefix.pch new file mode 100644 index 0000000..beb2a24 --- /dev/null +++ b/Pods/Target Support Files/TransitionKit-iOS/TransitionKit-iOS-prefix.pch @@ -0,0 +1,12 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + diff --git a/Pods/Target Support Files/TransitionKit-iOS/TransitionKit-iOS.xcconfig b/Pods/Target Support Files/TransitionKit-iOS/TransitionKit-iOS.xcconfig new file mode 100644 index 0000000..8007187 --- /dev/null +++ b/Pods/Target Support Files/TransitionKit-iOS/TransitionKit-iOS.xcconfig @@ -0,0 +1,9 @@ +CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/TransitionKit-iOS +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/TransitionKit" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Kiwi" "${PODS_ROOT}/Headers/Public/TransitionKit" +PODS_BUILD_DIR = $BUILD_DIR +PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/.. +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES diff --git a/Specs/TransitionKitTests-Info.plist b/Specs/Info.plist similarity index 77% rename from Specs/TransitionKitTests-Info.plist rename to Specs/Info.plist index c2dc499..6c6c23c 100644 --- a/Specs/TransitionKitTests-Info.plist +++ b/Specs/Info.plist @@ -5,17 +5,17 @@ CFBundleDevelopmentRegion en CFBundleExecutable - ${EXECUTABLE_NAME} + $(EXECUTABLE_NAME) CFBundleIdentifier - org.blakewatters.${PRODUCT_NAME:rfc1034identifier} + $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleInfoDictionaryVersion 6.0 + CFBundleName + $(PRODUCT_NAME) CFBundlePackageType BNDL CFBundleShortVersionString 1.0 - CFBundleSignature - ???? CFBundleVersion 1 diff --git a/TransitionKit.podspec b/TransitionKit.podspec index c9fcd0e..5edf74e 100644 --- a/TransitionKit.podspec +++ b/TransitionKit.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'TransitionKit' - s.version = '2.2.1' + s.version = '2.2.2' s.license = 'Apache2' s.summary = 'A block-based State Machine API for Objective-C.' s.homepage = 'https://github.com/blakewatters/TransitionKit' @@ -8,6 +8,6 @@ Pod::Spec.new do |s| s.source = { :git => 'https://github.com/blakewatters/TransitionKit.git', :tag => s.version.to_s } s.source_files = 'Code' s.requires_arc = true - s.ios.deployment_target = '5.0' + s.ios.deployment_target = '6.0' s.osx.deployment_target = '10.7' end diff --git a/TransitionKit.xcodeproj/project.pbxproj b/TransitionKit.xcodeproj/project.pbxproj index 71cefc0..773ede1 100644 --- a/TransitionKit.xcodeproj/project.pbxproj +++ b/TransitionKit.xcodeproj/project.pbxproj @@ -1,1174 +1,969 @@ - - - - - archiveVersion - 1 - classes - - objectVersion - 46 - objects - - 039C53C97223B376E518B6C8 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - text.xcconfig - name - Pods-osx.release.xcconfig - path - Pods/Target Support Files/Pods-osx/Pods-osx.release.xcconfig - sourceTree - <group> - - 252C45CF16F681D400CF1FEA - - children - - 252C460316F6833D00CF1FEA - 252C460816F6835900CF1FEA - 252C45DA16F681D400CF1FEA - 252C45D916F681D400CF1FEA - 592F22F9056A5A6C9B079323 - - isa - PBXGroup - sourceTree - <group> - - 252C45D016F681D400CF1FEA - - attributes - - LastTestingUpgradeCheck - 0510 - LastUpgradeCheck - 0510 - - buildConfigurationList - 252C45D316F681D400CF1FEA - compatibilityVersion - Xcode 3.2 - developmentRegion - English - hasScannedForEncodings - 0 - isa - PBXProject - knownRegions - - en - - mainGroup - 252C45CF16F681D400CF1FEA - productRefGroup - 252C45D916F681D400CF1FEA - projectDirPath - - projectReferences - - projectRoot - - targets - - 252C462B16F6849A00CF1FEA - 25AE19B41809A70E00AF5535 - - - 252C45D316F681D400CF1FEA - - buildConfigurations - - 252C45FB16F681D500CF1FEA - 252C45FC16F681D500CF1FEA - - defaultConfigurationIsVisible - 0 - defaultConfigurationName - Release - isa - XCConfigurationList - - 252C45D916F681D400CF1FEA - - children - - 252C462C16F6849A00CF1FEA - 25AE19B51809A70E00AF5535 - - isa - PBXGroup - name - Products - sourceTree - <group> - - 252C45DA16F681D400CF1FEA - - children - - 252C45DB16F681D400CF1FEA - 252C45EC16F681D500CF1FEA - 252C461716F6849A00CF1FEA - 252C461916F6849A00CF1FEA - 32A48E628DDE45B98F10DBA5 - C96E76A4064B44C8AECE57E9 - - isa - PBXGroup - name - Frameworks - sourceTree - <group> - - 252C45DB16F681D400CF1FEA - - isa - PBXFileReference - lastKnownFileType - wrapper.framework - name - Foundation.framework - path - System/Library/Frameworks/Foundation.framework - sourceTree - SDKROOT - - 252C45EC16F681D500CF1FEA - - isa - PBXFileReference - lastKnownFileType - wrapper.framework - name - UIKit.framework - path - Library/Frameworks/UIKit.framework - sourceTree - DEVELOPER_DIR - - 252C45FB16F681D500CF1FEA - - buildSettings - - ALWAYS_SEARCH_USER_PATHS - NO - CLANG_CXX_LANGUAGE_STANDARD - gnu++0x - CLANG_CXX_LIBRARY - libc++ - CLANG_ENABLE_OBJC_ARC - YES - CLANG_WARN_CONSTANT_CONVERSION - YES - CLANG_WARN_EMPTY_BODY - YES - CLANG_WARN_ENUM_CONVERSION - YES - CLANG_WARN_INT_CONVERSION - YES - CLANG_WARN__DUPLICATE_METHOD_MATCH - YES - COPY_PHASE_STRIP - NO - GCC_C_LANGUAGE_STANDARD - gnu99 - GCC_DYNAMIC_NO_PIC - NO - GCC_OPTIMIZATION_LEVEL - 0 - GCC_PREPROCESSOR_DEFINITIONS - - DEBUG=1 - $(inherited) - - GCC_SYMBOLS_PRIVATE_EXTERN - NO - GCC_WARN_ABOUT_RETURN_TYPE - YES - GCC_WARN_UNINITIALIZED_AUTOS - YES - GCC_WARN_UNUSED_VARIABLE - YES - IPHONEOS_DEPLOYMENT_TARGET - 6.1 - ONLY_ACTIVE_ARCH - YES - SDKROOT - iphoneos - - isa - XCBuildConfiguration - name - Debug - - 252C45FC16F681D500CF1FEA - - buildSettings - - ALWAYS_SEARCH_USER_PATHS - NO - CLANG_CXX_LANGUAGE_STANDARD - gnu++0x - CLANG_CXX_LIBRARY - libc++ - CLANG_ENABLE_OBJC_ARC - YES - CLANG_WARN_CONSTANT_CONVERSION - YES - CLANG_WARN_EMPTY_BODY - YES - CLANG_WARN_ENUM_CONVERSION - YES - CLANG_WARN_INT_CONVERSION - YES - CLANG_WARN__DUPLICATE_METHOD_MATCH - YES - COPY_PHASE_STRIP - YES - GCC_C_LANGUAGE_STANDARD - gnu99 - GCC_WARN_ABOUT_RETURN_TYPE - YES - GCC_WARN_UNINITIALIZED_AUTOS - YES - GCC_WARN_UNUSED_VARIABLE - YES - IPHONEOS_DEPLOYMENT_TARGET - 6.1 - SDKROOT - iphoneos - VALIDATE_PRODUCT - YES - - isa - XCBuildConfiguration - name - Release - - 252C460316F6833D00CF1FEA - - children - - 252C460416F6833D00CF1FEA - 252C464116F6A4B500CF1FEA - 252C464216F6A4B500CF1FEA - 252C464616F6A4C200CF1FEA - 252C464716F6A4C200CF1FEA - 252C464B16F6A4DF00CF1FEA - 252C464C16F6A4DF00CF1FEA - 25B01F9A1808941D007488E1 - 25B01F9B1808941D007488E1 - 252C465C16F6A79100CF1FEA - - isa - PBXGroup - path - Code - sourceTree - <group> - - 252C460416F6833D00CF1FEA - - fileEncoding - 4 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - path - TransitionKit-Prefix.pch - sourceTree - <group> - - 252C460816F6835900CF1FEA - - children - - 252C460916F6835900CF1FEA - 252C460B16F6835900CF1FEA - 252C465116F6A57700CF1FEA - 252C465516F6A58700CF1FEA - 252C465916F6A59500CF1FEA - - isa - PBXGroup - path - Specs - sourceTree - <group> - - 252C460916F6835900CF1FEA - - children - - 252C460A16F6835900CF1FEA - - isa - PBXVariantGroup - name - InfoPlist.strings - sourceTree - <group> - - 252C460A16F6835900CF1FEA - - isa - PBXFileReference - lastKnownFileType - text.plist.strings - name - en - path - en.lproj/InfoPlist.strings - sourceTree - <group> - - 252C460B16F6835900CF1FEA - - fileEncoding - 4 - isa - PBXFileReference - lastKnownFileType - text.plist.xml - path - TransitionKitTests-Info.plist - sourceTree - <group> - - 252C461716F6849A00CF1FEA - - isa - PBXFileReference - lastKnownFileType - wrapper.framework - name - Cocoa.framework - path - Library/Frameworks/Cocoa.framework - sourceTree - DEVELOPER_DIR - - 252C461916F6849A00CF1FEA - - children - - 252C461A16F6849A00CF1FEA - 252C461B16F6849A00CF1FEA - 252C461C16F6849A00CF1FEA - - isa - PBXGroup - name - Other Frameworks - sourceTree - <group> - - 252C461A16F6849A00CF1FEA - - isa - PBXFileReference - lastKnownFileType - wrapper.framework - name - AppKit.framework - path - Library/Frameworks/AppKit.framework - sourceTree - SDKROOT - - 252C461B16F6849A00CF1FEA - - isa - PBXFileReference - lastKnownFileType - wrapper.framework - name - CoreData.framework - path - Library/Frameworks/CoreData.framework - sourceTree - SDKROOT - - 252C461C16F6849A00CF1FEA - - isa - PBXFileReference - lastKnownFileType - wrapper.framework - name - Foundation.framework - path - Library/Frameworks/Foundation.framework - sourceTree - SDKROOT - - 252C462716F6849A00CF1FEA - - buildActionMask - 2147483647 - files - - 252C465316F6A57700CF1FEA - 252C465716F6A58700CF1FEA - 252C465B16F6A59500CF1FEA - - isa - PBXSourcesBuildPhase - runOnlyForDeploymentPostprocessing - 0 - - 252C462816F6849A00CF1FEA - - buildActionMask - 2147483647 - files - - 252C462E16F6849A00CF1FEA - 42AE467DF3384AE6834629CA - - isa - PBXFrameworksBuildPhase - runOnlyForDeploymentPostprocessing - 0 - - 252C462916F6849A00CF1FEA - - buildActionMask - 2147483647 - files - - isa - PBXResourcesBuildPhase - runOnlyForDeploymentPostprocessing - 0 - - 252C462A16F6849A00CF1FEA - - buildActionMask - 2147483647 - files - - inputPaths - - isa - PBXShellScriptBuildPhase - outputPaths - - runOnlyForDeploymentPostprocessing - 0 - shellPath - /bin/sh - shellScript - # Run the unit tests in this test bundle. -"${SYSTEM_DEVELOPER_DIR}/Tools/RunUnitTests" - - - 252C462B16F6849A00CF1FEA - - buildConfigurationList - 252C463E16F6849A00CF1FEA - buildPhases - - 252C462716F6849A00CF1FEA - 252C462816F6849A00CF1FEA - 252C462916F6849A00CF1FEA - 252C462A16F6849A00CF1FEA - AA43535990A24CE6A7A9E0A2 - - buildRules - - dependencies - - isa - PBXNativeTarget - name - OS X Specs - productName - TransitionKitFrameworkTests - productReference - 252C462C16F6849A00CF1FEA - productType - com.apple.product-type.bundle.unit-test - - 252C462C16F6849A00CF1FEA - - explicitFileType - wrapper.cfbundle - includeInIndex - 0 - isa - PBXFileReference - path - OS X Specs.xctest - sourceTree - BUILT_PRODUCTS_DIR - - 252C462E16F6849A00CF1FEA - - fileRef - 252C461716F6849A00CF1FEA - isa - PBXBuildFile - - 252C463E16F6849A00CF1FEA - - buildConfigurations - - 252C463F16F6849A00CF1FEA - 252C464016F6849A00CF1FEA - - defaultConfigurationIsVisible - 0 - defaultConfigurationName - Release - isa - XCConfigurationList - - 252C463F16F6849A00CF1FEA - - baseConfigurationReference - EDCE38A01AB58323C1616481 - buildSettings - - COMBINE_HIDPI_IMAGES - YES - GCC_ENABLE_OBJC_EXCEPTIONS - YES - GCC_PRECOMPILE_PREFIX_HEADER - YES - GCC_PREFIX_HEADER - Code/TransitionKit-Prefix.pch - GCC_WARN_64_TO_32_BIT_CONVERSION - YES - INFOPLIST_FILE - Specs/TransitionKitTests-Info.plist - MACOSX_DEPLOYMENT_TARGET - 10.8 - PRODUCT_NAME - $(TARGET_NAME) - SDKROOT - macosx - - isa - XCBuildConfiguration - name - Debug - - 252C464016F6849A00CF1FEA - - baseConfigurationReference - 039C53C97223B376E518B6C8 - buildSettings - - COMBINE_HIDPI_IMAGES - YES - DEBUG_INFORMATION_FORMAT - dwarf-with-dsym - GCC_ENABLE_OBJC_EXCEPTIONS - YES - GCC_PRECOMPILE_PREFIX_HEADER - YES - GCC_PREFIX_HEADER - Code/TransitionKit-Prefix.pch - GCC_WARN_64_TO_32_BIT_CONVERSION - YES - INFOPLIST_FILE - Specs/TransitionKitTests-Info.plist - MACOSX_DEPLOYMENT_TARGET - 10.8 - PRODUCT_NAME - $(TARGET_NAME) - SDKROOT - macosx - - isa - XCBuildConfiguration - name - Release - - 252C464116F6A4B500CF1FEA - - fileEncoding - 4 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - path - TKStateMachine.h - sourceTree - <group> - - 252C464216F6A4B500CF1FEA - - fileEncoding - 4 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - path - TKStateMachine.m - sourceTree - <group> - - 252C464616F6A4C200CF1FEA - - fileEncoding - 4 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - path - TKEvent.h - sourceTree - <group> - - 252C464716F6A4C200CF1FEA - - fileEncoding - 4 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - path - TKEvent.m - sourceTree - <group> - - 252C464B16F6A4DF00CF1FEA - - fileEncoding - 4 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - path - TKState.h - sourceTree - <group> - - 252C464C16F6A4DF00CF1FEA - - fileEncoding - 4 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - path - TKState.m - sourceTree - <group> - - 252C465116F6A57700CF1FEA - - fileEncoding - 4 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - path - TKStateMachineSpec.m - sourceTree - <group> - - 252C465316F6A57700CF1FEA - - fileRef - 252C465116F6A57700CF1FEA - isa - PBXBuildFile - - 252C465516F6A58700CF1FEA - - fileEncoding - 4 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - path - TKEventSpec.m - sourceTree - <group> - - 252C465716F6A58700CF1FEA - - fileRef - 252C465516F6A58700CF1FEA - isa - PBXBuildFile - - 252C465916F6A59500CF1FEA - - fileEncoding - 4 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - path - TKStateSpec.m - sourceTree - <group> - - 252C465B16F6A59500CF1FEA - - fileRef - 252C465916F6A59500CF1FEA - isa - PBXBuildFile - - 252C465C16F6A79100CF1FEA - - fileEncoding - 4 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - path - TransitionKit.h - sourceTree - <group> - - 25AE19B11809A70E00AF5535 - - buildActionMask - 2147483647 - files - - 25AE19C51809A72400AF5535 - 25AE19C61809A72400AF5535 - 25AE19C71809A72400AF5535 - - isa - PBXSourcesBuildPhase - runOnlyForDeploymentPostprocessing - 0 - - 25AE19B21809A70E00AF5535 - - buildActionMask - 2147483647 - files - - 25AE19B81809A70E00AF5535 - 25AE19B71809A70E00AF5535 - 2F4EC36CAD4D4CB08D744BB4 - - isa - PBXFrameworksBuildPhase - runOnlyForDeploymentPostprocessing - 0 - - 25AE19B31809A70E00AF5535 - - buildActionMask - 2147483647 - files - - isa - PBXResourcesBuildPhase - runOnlyForDeploymentPostprocessing - 0 - - 25AE19B41809A70E00AF5535 - - buildConfigurationList - 25AE19C21809A70E00AF5535 - buildPhases - - FB4F6E92C45C44DF8B42F3A3 - 25AE19B11809A70E00AF5535 - 25AE19B21809A70E00AF5535 - 25AE19B31809A70E00AF5535 - 8E44984BB1724F918488E8F7 - - buildRules - - dependencies - - isa - PBXNativeTarget - name - iOS Specs - productName - iOS Specs - productReference - 25AE19B51809A70E00AF5535 - productType - com.apple.product-type.bundle.unit-test - - 25AE19B51809A70E00AF5535 - - explicitFileType - wrapper.cfbundle - includeInIndex - 0 - isa - PBXFileReference - path - iOS Specs.xctest - sourceTree - BUILT_PRODUCTS_DIR - - 25AE19B71809A70E00AF5535 - - fileRef - 252C45DB16F681D400CF1FEA - isa - PBXBuildFile - - 25AE19B81809A70E00AF5535 - - fileRef - 252C45EC16F681D500CF1FEA - isa - PBXBuildFile - - 25AE19C21809A70E00AF5535 - - buildConfigurations - - 25AE19C31809A70E00AF5535 - 25AE19C41809A70E00AF5535 - - defaultConfigurationIsVisible - 0 - defaultConfigurationName - Release - isa - XCConfigurationList - - 25AE19C31809A70E00AF5535 - - baseConfigurationReference - AD73E569A343DBC89D42B79D - buildSettings - - CLANG_ENABLE_MODULES - YES - CLANG_WARN_BOOL_CONVERSION - YES - CLANG_WARN_DIRECT_OBJC_ISA_USAGE - YES_ERROR - CLANG_WARN_OBJC_ROOT_CLASS - YES_ERROR - FRAMEWORK_SEARCH_PATHS - - $(SDKROOT)/Developer/Library/Frameworks - $(inherited) - $(DEVELOPER_FRAMEWORKS_DIR) - - GCC_PRECOMPILE_PREFIX_HEADER - YES - GCC_PREFIX_HEADER - Code/TransitionKit-Prefix.pch - GCC_PREPROCESSOR_DEFINITIONS - - DEBUG=1 - $(inherited) - - GCC_WARN_64_TO_32_BIT_CONVERSION - YES - GCC_WARN_ABOUT_RETURN_TYPE - YES_ERROR - GCC_WARN_UNDECLARED_SELECTOR - YES - GCC_WARN_UNUSED_FUNCTION - YES - INFOPLIST_FILE - Specs/TransitionKitTests-Info.plist - IPHONEOS_DEPLOYMENT_TARGET - 7.0 - PRODUCT_NAME - $(TARGET_NAME) - - isa - XCBuildConfiguration - name - Debug - - 25AE19C41809A70E00AF5535 - - baseConfigurationReference - F7EF53C22C2E393B467BE847 - buildSettings - - CLANG_ENABLE_MODULES - YES - CLANG_WARN_BOOL_CONVERSION - YES - CLANG_WARN_DIRECT_OBJC_ISA_USAGE - YES_ERROR - CLANG_WARN_OBJC_ROOT_CLASS - YES_ERROR - ENABLE_NS_ASSERTIONS - NO - FRAMEWORK_SEARCH_PATHS - - $(SDKROOT)/Developer/Library/Frameworks - $(inherited) - $(DEVELOPER_FRAMEWORKS_DIR) - - GCC_PRECOMPILE_PREFIX_HEADER - YES - GCC_PREFIX_HEADER - Code/TransitionKit-Prefix.pch - GCC_WARN_64_TO_32_BIT_CONVERSION - YES - GCC_WARN_ABOUT_RETURN_TYPE - YES_ERROR - GCC_WARN_UNDECLARED_SELECTOR - YES - GCC_WARN_UNUSED_FUNCTION - YES - INFOPLIST_FILE - Specs/TransitionKitTests-Info.plist - IPHONEOS_DEPLOYMENT_TARGET - 7.0 - PRODUCT_NAME - $(TARGET_NAME) - - isa - XCBuildConfiguration - name - Release - - 25AE19C51809A72400AF5535 - - fileRef - 252C465116F6A57700CF1FEA - isa - PBXBuildFile - - 25AE19C61809A72400AF5535 - - fileRef - 252C465516F6A58700CF1FEA - isa - PBXBuildFile - - 25AE19C71809A72400AF5535 - - fileRef - 252C465916F6A59500CF1FEA - isa - PBXBuildFile - - 25B01F9A1808941D007488E1 - - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - path - TKTransition.h - sourceTree - <group> - - 25B01F9B1808941D007488E1 - - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - path - TKTransition.m - sourceTree - <group> - - 2F4EC36CAD4D4CB08D744BB4 - - fileRef - 32A48E628DDE45B98F10DBA5 - isa - PBXBuildFile - - 32A48E628DDE45B98F10DBA5 - - explicitFileType - archive.ar - includeInIndex - 0 - isa - PBXFileReference - path - libPods-ios.a - sourceTree - BUILT_PRODUCTS_DIR - - 42AE467DF3384AE6834629CA - - fileRef - C96E76A4064B44C8AECE57E9 - isa - PBXBuildFile - - 592F22F9056A5A6C9B079323 - - children - - AD73E569A343DBC89D42B79D - F7EF53C22C2E393B467BE847 - EDCE38A01AB58323C1616481 - 039C53C97223B376E518B6C8 - - isa - PBXGroup - name - Pods - sourceTree - <group> - - 8E44984BB1724F918488E8F7 - - buildActionMask - 2147483647 - files - - inputPaths - - isa - PBXShellScriptBuildPhase - name - Copy Pods Resources - outputPaths - - runOnlyForDeploymentPostprocessing - 0 - shellPath - /bin/sh - shellScript - "${SRCROOT}/Pods/Target Support Files/Pods-ios/Pods-ios-resources.sh" - - showEnvVarsInLog - 0 - - AA43535990A24CE6A7A9E0A2 - - buildActionMask - 2147483647 - files - - inputPaths - - isa - PBXShellScriptBuildPhase - name - Copy Pods Resources - outputPaths - - runOnlyForDeploymentPostprocessing - 0 - shellPath - /bin/sh - shellScript - "${SRCROOT}/Pods/Target Support Files/Pods-osx/Pods-osx-resources.sh" - - - AD73E569A343DBC89D42B79D - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - text.xcconfig - name - Pods-ios.debug.xcconfig - path - Pods/Target Support Files/Pods-ios/Pods-ios.debug.xcconfig - sourceTree - <group> - - C96E76A4064B44C8AECE57E9 - - explicitFileType - archive.ar - includeInIndex - 0 - isa - PBXFileReference - path - libPods-osx.a - sourceTree - BUILT_PRODUCTS_DIR - - EDCE38A01AB58323C1616481 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - text.xcconfig - name - Pods-osx.debug.xcconfig - path - Pods/Target Support Files/Pods-osx/Pods-osx.debug.xcconfig - sourceTree - <group> - - F7EF53C22C2E393B467BE847 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - text.xcconfig - name - Pods-ios.release.xcconfig - path - Pods/Target Support Files/Pods-ios/Pods-ios.release.xcconfig - sourceTree - <group> - - FB4F6E92C45C44DF8B42F3A3 - - buildActionMask - 2147483647 - files - - inputPaths - - isa - PBXShellScriptBuildPhase - name - Check Pods Manifest.lock - outputPaths - - runOnlyForDeploymentPostprocessing - 0 - shellPath - /bin/sh - shellScript - diff "${PODS_ROOT}/../Podfile.lock" "${PODS_ROOT}/Manifest.lock" > /dev/null -if [[ $? != 0 ]] ; then - cat << EOM -error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation. -EOM - exit 1 -fi - - showEnvVarsInLog - 0 - - - rootObject - 252C45D016F681D400CF1FEA - - +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 4A2BB047F5A14535F57C1A51 /* libPods-Tests-TransitionKit macOS Tests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 74EFA08FC6503BC6182379E9 /* libPods-Tests-TransitionKit macOS Tests.a */; }; + C26DECB7911ABDD5730805CF /* libPods-Tests-TransitionKit iOS Tests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 12FA2DE0BA99C2E7137B2DB7 /* libPods-Tests-TransitionKit iOS Tests.a */; }; + FE0936171E80374A0092BF67 /* TransitionKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FE0935F91E8037330092BF67 /* TransitionKit.framework */; }; + FE0936261E8037520092BF67 /* TransitionKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FE0936061E80373D0092BF67 /* TransitionKit.framework */; }; + FE09362E1E8037E00092BF67 /* TKStateMachine.h in Headers */ = {isa = PBXBuildFile; fileRef = 252C464116F6A4B500CF1FEA /* TKStateMachine.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FE09362F1E8037E00092BF67 /* TKStateMachine.h in Headers */ = {isa = PBXBuildFile; fileRef = 252C464116F6A4B500CF1FEA /* TKStateMachine.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FE0936301E8037E90092BF67 /* TKEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 252C464616F6A4C200CF1FEA /* TKEvent.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FE0936311E8037E90092BF67 /* TKState.h in Headers */ = {isa = PBXBuildFile; fileRef = 252C464B16F6A4DF00CF1FEA /* TKState.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FE0936321E8037E90092BF67 /* TKTransition.h in Headers */ = {isa = PBXBuildFile; fileRef = 25B01F9A1808941D007488E1 /* TKTransition.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FE0936331E8037E90092BF67 /* TransitionKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 252C465C16F6A79100CF1FEA /* TransitionKit.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FE0936341E8037E90092BF67 /* TKEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 252C464616F6A4C200CF1FEA /* TKEvent.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FE0936351E8037E90092BF67 /* TKState.h in Headers */ = {isa = PBXBuildFile; fileRef = 252C464B16F6A4DF00CF1FEA /* TKState.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FE0936361E8037E90092BF67 /* TKTransition.h in Headers */ = {isa = PBXBuildFile; fileRef = 25B01F9A1808941D007488E1 /* TKTransition.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FE0936371E8037E90092BF67 /* TransitionKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 252C465C16F6A79100CF1FEA /* TransitionKit.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FE0936381E8037F20092BF67 /* TKStateMachine.m in Sources */ = {isa = PBXBuildFile; fileRef = 252C464216F6A4B500CF1FEA /* TKStateMachine.m */; }; + FE0936391E8037F20092BF67 /* TKEvent.m in Sources */ = {isa = PBXBuildFile; fileRef = 252C464716F6A4C200CF1FEA /* TKEvent.m */; }; + FE09363A1E8037F20092BF67 /* TKState.m in Sources */ = {isa = PBXBuildFile; fileRef = 252C464C16F6A4DF00CF1FEA /* TKState.m */; }; + FE09363B1E8037F20092BF67 /* TKTransition.m in Sources */ = {isa = PBXBuildFile; fileRef = 25B01F9B1808941D007488E1 /* TKTransition.m */; }; + FE0936481E8037F50092BF67 /* TKStateMachine.m in Sources */ = {isa = PBXBuildFile; fileRef = 252C464216F6A4B500CF1FEA /* TKStateMachine.m */; }; + FE0936491E8037F50092BF67 /* TKEvent.m in Sources */ = {isa = PBXBuildFile; fileRef = 252C464716F6A4C200CF1FEA /* TKEvent.m */; }; + FE09364A1E8037F50092BF67 /* TKState.m in Sources */ = {isa = PBXBuildFile; fileRef = 252C464C16F6A4DF00CF1FEA /* TKState.m */; }; + FE09364B1E8037F50092BF67 /* TKTransition.m in Sources */ = {isa = PBXBuildFile; fileRef = 25B01F9B1808941D007488E1 /* TKTransition.m */; }; + FE09364C1E8038000092BF67 /* TKStateMachineSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 252C465116F6A57700CF1FEA /* TKStateMachineSpec.m */; }; + FE09364D1E8038000092BF67 /* TKEventSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 252C465516F6A58700CF1FEA /* TKEventSpec.m */; }; + FE09364E1E8038000092BF67 /* TKStateSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 252C465916F6A59500CF1FEA /* TKStateSpec.m */; }; + FE09364F1E8038010092BF67 /* TKStateMachineSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 252C465116F6A57700CF1FEA /* TKStateMachineSpec.m */; }; + FE0936501E8038010092BF67 /* TKEventSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 252C465516F6A58700CF1FEA /* TKEventSpec.m */; }; + FE0936511E8038010092BF67 /* TKStateSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 252C465916F6A59500CF1FEA /* TKStateSpec.m */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + FE0936181E80374A0092BF67 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 252C45D016F681D400CF1FEA /* Project object */; + proxyType = 1; + remoteGlobalIDString = FE0935F81E8037330092BF67; + remoteInfo = "TransitionKit iOS"; + }; + FE0936271E8037520092BF67 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 252C45D016F681D400CF1FEA /* Project object */; + proxyType = 1; + remoteGlobalIDString = FE0936051E80373D0092BF67; + remoteInfo = "TransitionKit macOS"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 12FA2DE0BA99C2E7137B2DB7 /* libPods-Tests-TransitionKit iOS Tests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Tests-TransitionKit iOS Tests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 18D08393BB039C0A0161C451 /* Pods-Tests-TransitionKit iOS Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Tests-TransitionKit iOS Tests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Tests-TransitionKit iOS Tests/Pods-Tests-TransitionKit iOS Tests.debug.xcconfig"; sourceTree = ""; }; + 252C45DB16F681D400CF1FEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + 252C45EC16F681D500CF1FEA /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; }; + 252C460416F6833D00CF1FEA /* TransitionKit-Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "TransitionKit-Prefix.pch"; sourceTree = ""; }; + 252C460A16F6835900CF1FEA /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; + 252C461716F6849A00CF1FEA /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = Library/Frameworks/Cocoa.framework; sourceTree = DEVELOPER_DIR; }; + 252C461A16F6849A00CF1FEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; }; + 252C461B16F6849A00CF1FEA /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; }; + 252C461C16F6849A00CF1FEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + 252C464116F6A4B500CF1FEA /* TKStateMachine.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TKStateMachine.h; sourceTree = ""; }; + 252C464216F6A4B500CF1FEA /* TKStateMachine.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TKStateMachine.m; sourceTree = ""; }; + 252C464616F6A4C200CF1FEA /* TKEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TKEvent.h; sourceTree = ""; }; + 252C464716F6A4C200CF1FEA /* TKEvent.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TKEvent.m; sourceTree = ""; }; + 252C464B16F6A4DF00CF1FEA /* TKState.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TKState.h; sourceTree = ""; }; + 252C464C16F6A4DF00CF1FEA /* TKState.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TKState.m; sourceTree = ""; }; + 252C465116F6A57700CF1FEA /* TKStateMachineSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TKStateMachineSpec.m; sourceTree = ""; }; + 252C465516F6A58700CF1FEA /* TKEventSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TKEventSpec.m; sourceTree = ""; }; + 252C465916F6A59500CF1FEA /* TKStateSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TKStateSpec.m; sourceTree = ""; }; + 252C465C16F6A79100CF1FEA /* TransitionKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TransitionKit.h; sourceTree = ""; }; + 25B01F9A1808941D007488E1 /* TKTransition.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TKTransition.h; sourceTree = ""; }; + 25B01F9B1808941D007488E1 /* TKTransition.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TKTransition.m; sourceTree = ""; }; + 74EFA08FC6503BC6182379E9 /* libPods-Tests-TransitionKit macOS Tests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Tests-TransitionKit macOS Tests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 8392F2C67B8853B2F81DC73D /* Pods-Tests-TransitionKit macOS Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Tests-TransitionKit macOS Tests.release.xcconfig"; path = "Pods/Target Support Files/Pods-Tests-TransitionKit macOS Tests/Pods-Tests-TransitionKit macOS Tests.release.xcconfig"; sourceTree = ""; }; + D2405CF76733FE28D497CC0C /* Pods-Tests-TransitionKit macOS Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Tests-TransitionKit macOS Tests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Tests-TransitionKit macOS Tests/Pods-Tests-TransitionKit macOS Tests.debug.xcconfig"; sourceTree = ""; }; + ED941CE9FACB859E3E50920F /* Pods-Tests-TransitionKit iOS Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Tests-TransitionKit iOS Tests.release.xcconfig"; path = "Pods/Target Support Files/Pods-Tests-TransitionKit iOS Tests/Pods-Tests-TransitionKit iOS Tests.release.xcconfig"; sourceTree = ""; }; + FE0935F91E8037330092BF67 /* TransitionKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = TransitionKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + FE0936061E80373D0092BF67 /* TransitionKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = TransitionKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + FE0936121E80374A0092BF67 /* TransitionKit.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = TransitionKit.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + FE0936211E8037520092BF67 /* TransitionKit.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = TransitionKit.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + FE09362C1E8037A70092BF67 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + FE0936521E8038120092BF67 /* Podfile */ = {isa = PBXFileReference; lastKnownFileType = text; path = Podfile; sourceTree = ""; }; + FE0936531E8038120092BF67 /* TransitionKit.podspec */ = {isa = PBXFileReference; lastKnownFileType = text; path = TransitionKit.podspec; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + FE0935F51E8037330092BF67 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FE0936021E80373D0092BF67 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FE09360F1E80374A0092BF67 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + FE0936171E80374A0092BF67 /* TransitionKit.framework in Frameworks */, + C26DECB7911ABDD5730805CF /* libPods-Tests-TransitionKit iOS Tests.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FE09361E1E8037520092BF67 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + FE0936261E8037520092BF67 /* TransitionKit.framework in Frameworks */, + 4A2BB047F5A14535F57C1A51 /* libPods-Tests-TransitionKit macOS Tests.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 252C45CF16F681D400CF1FEA = { + isa = PBXGroup; + children = ( + FE0936521E8038120092BF67 /* Podfile */, + FE0936531E8038120092BF67 /* TransitionKit.podspec */, + 252C460316F6833D00CF1FEA /* Code */, + 252C460816F6835900CF1FEA /* Specs */, + 252C45DA16F681D400CF1FEA /* Frameworks */, + 252C45D916F681D400CF1FEA /* Products */, + 81FF891CF10A469DBB77FC6A /* Pods */, + ); + sourceTree = ""; + }; + 252C45D916F681D400CF1FEA /* Products */ = { + isa = PBXGroup; + children = ( + FE0935F91E8037330092BF67 /* TransitionKit.framework */, + FE0936061E80373D0092BF67 /* TransitionKit.framework */, + FE0936121E80374A0092BF67 /* TransitionKit.xctest */, + FE0936211E8037520092BF67 /* TransitionKit.xctest */, + ); + name = Products; + sourceTree = ""; + }; + 252C45DA16F681D400CF1FEA /* Frameworks */ = { + isa = PBXGroup; + children = ( + 252C45DB16F681D400CF1FEA /* Foundation.framework */, + 252C45EC16F681D500CF1FEA /* UIKit.framework */, + 252C461716F6849A00CF1FEA /* Cocoa.framework */, + 252C461916F6849A00CF1FEA /* Other Frameworks */, + 12FA2DE0BA99C2E7137B2DB7 /* libPods-Tests-TransitionKit iOS Tests.a */, + 74EFA08FC6503BC6182379E9 /* libPods-Tests-TransitionKit macOS Tests.a */, + ); + name = Frameworks; + sourceTree = ""; + }; + 252C460316F6833D00CF1FEA /* Code */ = { + isa = PBXGroup; + children = ( + 252C460416F6833D00CF1FEA /* TransitionKit-Prefix.pch */, + 252C464116F6A4B500CF1FEA /* TKStateMachine.h */, + 252C464216F6A4B500CF1FEA /* TKStateMachine.m */, + 252C464616F6A4C200CF1FEA /* TKEvent.h */, + 252C464716F6A4C200CF1FEA /* TKEvent.m */, + 252C464B16F6A4DF00CF1FEA /* TKState.h */, + 252C464C16F6A4DF00CF1FEA /* TKState.m */, + 25B01F9A1808941D007488E1 /* TKTransition.h */, + 25B01F9B1808941D007488E1 /* TKTransition.m */, + 252C465C16F6A79100CF1FEA /* TransitionKit.h */, + ); + path = Code; + sourceTree = ""; + }; + 252C460816F6835900CF1FEA /* Specs */ = { + isa = PBXGroup; + children = ( + FE09362C1E8037A70092BF67 /* Info.plist */, + 252C460916F6835900CF1FEA /* InfoPlist.strings */, + 252C465116F6A57700CF1FEA /* TKStateMachineSpec.m */, + 252C465516F6A58700CF1FEA /* TKEventSpec.m */, + 252C465916F6A59500CF1FEA /* TKStateSpec.m */, + ); + path = Specs; + sourceTree = ""; + }; + 252C461916F6849A00CF1FEA /* Other Frameworks */ = { + isa = PBXGroup; + children = ( + 252C461A16F6849A00CF1FEA /* AppKit.framework */, + 252C461B16F6849A00CF1FEA /* CoreData.framework */, + 252C461C16F6849A00CF1FEA /* Foundation.framework */, + ); + name = "Other Frameworks"; + sourceTree = ""; + }; + 81FF891CF10A469DBB77FC6A /* Pods */ = { + isa = PBXGroup; + children = ( + 18D08393BB039C0A0161C451 /* Pods-Tests-TransitionKit iOS Tests.debug.xcconfig */, + ED941CE9FACB859E3E50920F /* Pods-Tests-TransitionKit iOS Tests.release.xcconfig */, + D2405CF76733FE28D497CC0C /* Pods-Tests-TransitionKit macOS Tests.debug.xcconfig */, + 8392F2C67B8853B2F81DC73D /* Pods-Tests-TransitionKit macOS Tests.release.xcconfig */, + ); + name = Pods; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + FE0935F61E8037330092BF67 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + FE0936331E8037E90092BF67 /* TransitionKit.h in Headers */, + FE0936301E8037E90092BF67 /* TKEvent.h in Headers */, + FE0936311E8037E90092BF67 /* TKState.h in Headers */, + FE0936321E8037E90092BF67 /* TKTransition.h in Headers */, + FE09362E1E8037E00092BF67 /* TKStateMachine.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FE0936031E80373D0092BF67 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + FE0936371E8037E90092BF67 /* TransitionKit.h in Headers */, + FE0936341E8037E90092BF67 /* TKEvent.h in Headers */, + FE0936351E8037E90092BF67 /* TKState.h in Headers */, + FE0936361E8037E90092BF67 /* TKTransition.h in Headers */, + FE09362F1E8037E00092BF67 /* TKStateMachine.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + FE0935F81E8037330092BF67 /* TransitionKit iOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = FE0936001E8037330092BF67 /* Build configuration list for PBXNativeTarget "TransitionKit iOS" */; + buildPhases = ( + FE0935F41E8037330092BF67 /* Sources */, + FE0935F51E8037330092BF67 /* Frameworks */, + FE0935F61E8037330092BF67 /* Headers */, + FE0935F71E8037330092BF67 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "TransitionKit iOS"; + productName = "TransitionKit iOS"; + productReference = FE0935F91E8037330092BF67 /* TransitionKit.framework */; + productType = "com.apple.product-type.framework"; + }; + FE0936051E80373D0092BF67 /* TransitionKit macOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = FE09360B1E80373D0092BF67 /* Build configuration list for PBXNativeTarget "TransitionKit macOS" */; + buildPhases = ( + FE0936011E80373D0092BF67 /* Sources */, + FE0936021E80373D0092BF67 /* Frameworks */, + FE0936031E80373D0092BF67 /* Headers */, + FE0936041E80373D0092BF67 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "TransitionKit macOS"; + productName = "TransitionKit macOS"; + productReference = FE0936061E80373D0092BF67 /* TransitionKit.framework */; + productType = "com.apple.product-type.framework"; + }; + FE0936111E80374A0092BF67 /* TransitionKit iOS Tests */ = { + isa = PBXNativeTarget; + buildConfigurationList = FE09361A1E80374A0092BF67 /* Build configuration list for PBXNativeTarget "TransitionKit iOS Tests" */; + buildPhases = ( + 846A313D99D77F7E0DD43BCE /* [CP] Check Pods Manifest.lock */, + FE09360E1E80374A0092BF67 /* Sources */, + FE09360F1E80374A0092BF67 /* Frameworks */, + FE0936101E80374A0092BF67 /* Resources */, + 28DC7AEF0DE18072EFA0F7F7 /* [CP] Embed Pods Frameworks */, + A1EA6FBC5B59CCAF48AD73BB /* [CP] Copy Pods Resources */, + ); + buildRules = ( + ); + dependencies = ( + FE0936191E80374A0092BF67 /* PBXTargetDependency */, + ); + name = "TransitionKit iOS Tests"; + productName = "TransitionKit iOS Tests"; + productReference = FE0936121E80374A0092BF67 /* TransitionKit.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + FE0936201E8037520092BF67 /* TransitionKit macOS Tests */ = { + isa = PBXNativeTarget; + buildConfigurationList = FE0936291E8037520092BF67 /* Build configuration list for PBXNativeTarget "TransitionKit macOS Tests" */; + buildPhases = ( + 727FED450CBB192386E2059F /* [CP] Check Pods Manifest.lock */, + FE09361D1E8037520092BF67 /* Sources */, + FE09361E1E8037520092BF67 /* Frameworks */, + FE09361F1E8037520092BF67 /* Resources */, + 41DBB6D291A913F5CA2092B6 /* [CP] Embed Pods Frameworks */, + 8EE80F62A4568759F8B09A37 /* [CP] Copy Pods Resources */, + ); + buildRules = ( + ); + dependencies = ( + FE0936281E8037520092BF67 /* PBXTargetDependency */, + ); + name = "TransitionKit macOS Tests"; + productName = "TransitionKit macOS Tests"; + productReference = FE0936211E8037520092BF67 /* TransitionKit.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 252C45D016F681D400CF1FEA /* Project object */ = { + isa = PBXProject; + attributes = { + LastTestingUpgradeCheck = 0510; + LastUpgradeCheck = 0510; + TargetAttributes = { + FE0935F81E8037330092BF67 = { + CreatedOnToolsVersion = 8.2.1; + ProvisioningStyle = Automatic; + }; + FE0936051E80373D0092BF67 = { + CreatedOnToolsVersion = 8.2.1; + ProvisioningStyle = Automatic; + }; + FE0936111E80374A0092BF67 = { + CreatedOnToolsVersion = 8.2.1; + ProvisioningStyle = Automatic; + }; + FE0936201E8037520092BF67 = { + CreatedOnToolsVersion = 8.2.1; + ProvisioningStyle = Automatic; + }; + }; + }; + buildConfigurationList = 252C45D316F681D400CF1FEA /* Build configuration list for PBXProject "TransitionKit" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = 252C45CF16F681D400CF1FEA; + productRefGroup = 252C45D916F681D400CF1FEA /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + FE0935F81E8037330092BF67 /* TransitionKit iOS */, + FE0936111E80374A0092BF67 /* TransitionKit iOS Tests */, + FE0936051E80373D0092BF67 /* TransitionKit macOS */, + FE0936201E8037520092BF67 /* TransitionKit macOS Tests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + FE0935F71E8037330092BF67 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FE0936041E80373D0092BF67 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FE0936101E80374A0092BF67 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FE09361F1E8037520092BF67 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 28DC7AEF0DE18072EFA0F7F7 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Embed Pods Frameworks"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Tests-TransitionKit iOS Tests/Pods-Tests-TransitionKit iOS Tests-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + 41DBB6D291A913F5CA2092B6 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Embed Pods Frameworks"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Tests-TransitionKit macOS Tests/Pods-Tests-TransitionKit macOS Tests-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + 727FED450CBB192386E2059F /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Check Pods Manifest.lock"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n"; + showEnvVarsInLog = 0; + }; + 846A313D99D77F7E0DD43BCE /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Check Pods Manifest.lock"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n"; + showEnvVarsInLog = 0; + }; + 8EE80F62A4568759F8B09A37 /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Copy Pods Resources"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Tests-TransitionKit macOS Tests/Pods-Tests-TransitionKit macOS Tests-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; + A1EA6FBC5B59CCAF48AD73BB /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Copy Pods Resources"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Tests-TransitionKit iOS Tests/Pods-Tests-TransitionKit iOS Tests-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + FE0935F41E8037330092BF67 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + FE0936381E8037F20092BF67 /* TKStateMachine.m in Sources */, + FE09363A1E8037F20092BF67 /* TKState.m in Sources */, + FE0936391E8037F20092BF67 /* TKEvent.m in Sources */, + FE09363B1E8037F20092BF67 /* TKTransition.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FE0936011E80373D0092BF67 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + FE0936481E8037F50092BF67 /* TKStateMachine.m in Sources */, + FE09364A1E8037F50092BF67 /* TKState.m in Sources */, + FE0936491E8037F50092BF67 /* TKEvent.m in Sources */, + FE09364B1E8037F50092BF67 /* TKTransition.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FE09360E1E80374A0092BF67 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + FE09364D1E8038000092BF67 /* TKEventSpec.m in Sources */, + FE09364C1E8038000092BF67 /* TKStateMachineSpec.m in Sources */, + FE09364E1E8038000092BF67 /* TKStateSpec.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FE09361D1E8037520092BF67 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + FE0936501E8038010092BF67 /* TKEventSpec.m in Sources */, + FE09364F1E8038010092BF67 /* TKStateMachineSpec.m in Sources */, + FE0936511E8038010092BF67 /* TKStateSpec.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + FE0936191E80374A0092BF67 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FE0935F81E8037330092BF67 /* TransitionKit iOS */; + targetProxy = FE0936181E80374A0092BF67 /* PBXContainerItemProxy */; + }; + FE0936281E8037520092BF67 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FE0936051E80373D0092BF67 /* TransitionKit macOS */; + targetProxy = FE0936271E8037520092BF67 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + 252C460916F6835900CF1FEA /* InfoPlist.strings */ = { + isa = PBXVariantGroup; + children = ( + 252C460A16F6835900CF1FEA /* en */, + ); + name = InfoPlist.strings; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 252C45FB16F681D500CF1FEA /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 6.1; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_NAME = TransitionKit; + SDKROOT = iphoneos; + }; + name = Debug; + }; + 252C45FC16F681D500CF1FEA /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 6.1; + PRODUCT_NAME = TransitionKit; + SDKROOT = iphoneos; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + FE0935FE1E8037330092BF67 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ANALYZER_NONNULL = YES; + CLANG_ENABLE_MODULES = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 6.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MTL_ENABLE_DEBUG_INFO = YES; + PRODUCT_BUNDLE_IDENTIFIER = "org.blakewatters.TransitionKit-iOS"; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + FE0935FF1E8037330092BF67 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ANALYZER_NONNULL = YES; + CLANG_ENABLE_MODULES = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 6.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_BUNDLE_IDENTIFIER = "org.blakewatters.TransitionKit-iOS"; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + FE09360C1E80373D0092BF67 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ANALYZER_NONNULL = YES; + CLANG_ENABLE_MODULES = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CODE_SIGN_IDENTITY = "-"; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + FRAMEWORK_VERSION = A; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 10.7; + MTL_ENABLE_DEBUG_INFO = YES; + PRODUCT_BUNDLE_IDENTIFIER = "org.blakewatters.TransitionKit-macOS"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + FE09360D1E80373D0092BF67 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ANALYZER_NONNULL = YES; + CLANG_ENABLE_MODULES = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CODE_SIGN_IDENTITY = "-"; + COMBINE_HIDPI_IMAGES = YES; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + FRAMEWORK_VERSION = A; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 10.7; + MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_BUNDLE_IDENTIFIER = "org.blakewatters.TransitionKit-macOS"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + FE09361B1E80374A0092BF67 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 18D08393BB039C0A0161C451 /* Pods-Tests-TransitionKit iOS Tests.debug.xcconfig */; + buildSettings = { + CLANG_ANALYZER_NONNULL = YES; + CLANG_ENABLE_MODULES = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + INFOPLIST_FILE = Specs/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 10.2; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MTL_ENABLE_DEBUG_INFO = YES; + PRODUCT_BUNDLE_IDENTIFIER = "org.blakewatters.TransitionKit-iOS-Tests"; + }; + name = Debug; + }; + FE09361C1E80374A0092BF67 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = ED941CE9FACB859E3E50920F /* Pods-Tests-TransitionKit iOS Tests.release.xcconfig */; + buildSettings = { + CLANG_ANALYZER_NONNULL = YES; + CLANG_ENABLE_MODULES = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + INFOPLIST_FILE = Specs/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 10.2; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_BUNDLE_IDENTIFIER = "org.blakewatters.TransitionKit-iOS-Tests"; + }; + name = Release; + }; + FE09362A1E8037520092BF67 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = D2405CF76733FE28D497CC0C /* Pods-Tests-TransitionKit macOS Tests.debug.xcconfig */; + buildSettings = { + CLANG_ANALYZER_NONNULL = YES; + CLANG_ENABLE_MODULES = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CODE_SIGN_IDENTITY = "-"; + COMBINE_HIDPI_IMAGES = YES; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + INFOPLIST_FILE = Specs/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 10.12; + MTL_ENABLE_DEBUG_INFO = YES; + PRODUCT_BUNDLE_IDENTIFIER = "org.blakewatters.TransitionKit-macOS-Tests"; + SDKROOT = macosx; + }; + name = Debug; + }; + FE09362B1E8037520092BF67 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 8392F2C67B8853B2F81DC73D /* Pods-Tests-TransitionKit macOS Tests.release.xcconfig */; + buildSettings = { + CLANG_ANALYZER_NONNULL = YES; + CLANG_ENABLE_MODULES = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CODE_SIGN_IDENTITY = "-"; + COMBINE_HIDPI_IMAGES = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + INFOPLIST_FILE = Specs/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 10.12; + MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_BUNDLE_IDENTIFIER = "org.blakewatters.TransitionKit-macOS-Tests"; + SDKROOT = macosx; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 252C45D316F681D400CF1FEA /* Build configuration list for PBXProject "TransitionKit" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 252C45FB16F681D500CF1FEA /* Debug */, + 252C45FC16F681D500CF1FEA /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + FE0936001E8037330092BF67 /* Build configuration list for PBXNativeTarget "TransitionKit iOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FE0935FE1E8037330092BF67 /* Debug */, + FE0935FF1E8037330092BF67 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + FE09360B1E80373D0092BF67 /* Build configuration list for PBXNativeTarget "TransitionKit macOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FE09360C1E80373D0092BF67 /* Debug */, + FE09360D1E80373D0092BF67 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + FE09361A1E80374A0092BF67 /* Build configuration list for PBXNativeTarget "TransitionKit iOS Tests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FE09361B1E80374A0092BF67 /* Debug */, + FE09361C1E80374A0092BF67 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + FE0936291E8037520092BF67 /* Build configuration list for PBXNativeTarget "TransitionKit macOS Tests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FE09362A1E8037520092BF67 /* Debug */, + FE09362B1E8037520092BF67 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 252C45D016F681D400CF1FEA /* Project object */; +} diff --git a/TransitionKit.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/TransitionKit.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/TransitionKit.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/TransitionKit.xcodeproj/xcshareddata/xcschemes/TransitionKit iOS.xcscheme b/TransitionKit.xcodeproj/xcshareddata/xcschemes/TransitionKit iOS.xcscheme new file mode 100644 index 0000000..73bd918 --- /dev/null +++ b/TransitionKit.xcodeproj/xcshareddata/xcschemes/TransitionKit iOS.xcscheme @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/TransitionKit.xcodeproj/xcshareddata/xcschemes/TransitionKit macOS.xcscheme b/TransitionKit.xcodeproj/xcshareddata/xcschemes/TransitionKit macOS.xcscheme new file mode 100644 index 0000000..b22c6a3 --- /dev/null +++ b/TransitionKit.xcodeproj/xcshareddata/xcschemes/TransitionKit macOS.xcscheme @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/TransitionKit.xcworkspace/contents.xcworkspacedata b/TransitionKit.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..63c0189 --- /dev/null +++ b/TransitionKit.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + From 1fdebb4ffd4178a19c3d61655836e07ea579968f Mon Sep 17 00:00:00 2001 From: Artur Grigor Date: Tue, 21 Mar 2017 00:18:12 +0200 Subject: [PATCH 02/19] Travis CI build method changes. --- .travis.yml | 33 ++++++++++++++++++++++++++++++--- 1 file changed, 30 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 56f9f17..a519447 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,4 +1,31 @@ language: objective-c -before_install: - - gem install cocoapods -script: bundle exec rake spec +osx_image: xcode8 +env: + global: + - LC_CTYPE=en_US.UTF-8 + - LANG=en_US.UTF-8 + - WORKSPACE=TransitionKit.xcworkspace + - IOS_FRAMEWORK_SCHEME="TransitionKit iOS" + - MACOS_FRAMEWORK_SCHEME="TransitionKit macOS" + matrix: + - DESTINATION="OS=10.0,name=iPhone 7 Plus" SCHEME="$IOS_FRAMEWORK_SCHEME" RUN_TESTS="YES" + - DESTINATION="OS=9.0,name=iPad 2" SCHEME="$IOS_FRAMEWORK_SCHEME" RUN_TESTS="YES" + + - DESTINATION="arch=x86_64" SCHEME="$MACOS_FRAMEWORK_SCHEME" RUN_TESTS="YES" +script: + - set -o pipefail + - xcodebuild -version + + # Build Framework in Debug and Run Tests if specified + - if [ $RUN_TESTS == "YES" ]; then + travis_retry xcodebuild -workspace "$WORKSPACE" -scheme "$SCHEME" -destination "$DESTINATION" -configuration Debug ONLY_ACTIVE_ARCH=NO ENABLE_TESTABILITY=YES test | xcpretty; + else + travis_retry xcodebuild -workspace "$WORKSPACE" -scheme "$SCHEME" -destination "$DESTINATION" -configuration Debug ONLY_ACTIVE_ARCH=NO build | xcpretty; + fi + + # Build Framework in Release and Run Tests if specified + - if [ $RUN_TESTS == "YES" ]; then + travis_retry xcodebuild -workspace "$WORKSPACE" -scheme "$SCHEME" -destination "$DESTINATION" -configuration Release ONLY_ACTIVE_ARCH=NO ENABLE_TESTABILITY=YES test | xcpretty; + else + travis_retry xcodebuild -workspace "$WORKSPACE" -scheme "$SCHEME" -destination "$DESTINATION" -configuration Release ONLY_ACTIVE_ARCH=NO build | xcpretty; + fi From a2a1b8923a2b44d47d1f381addc93fea7eb54110 Mon Sep 17 00:00:00 2001 From: Artur Grigor Date: Tue, 21 Mar 2017 00:57:11 +0200 Subject: [PATCH 03/19] Install missing tool for Travis CI. --- .travis.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.travis.yml b/.travis.yml index a519447..0158cd8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,6 +12,8 @@ env: - DESTINATION="OS=9.0,name=iPad 2" SCHEME="$IOS_FRAMEWORK_SCHEME" RUN_TESTS="YES" - DESTINATION="arch=x86_64" SCHEME="$MACOS_FRAMEWORK_SCHEME" RUN_TESTS="YES" +install: + - gem install xcpretty --no-rdoc --no-ri --no-document --quiet script: - set -o pipefail - xcodebuild -version From 760aa73abf1779c73d21566a7cd027253532015d Mon Sep 17 00:00:00 2001 From: Artur Grigor Date: Tue, 21 Mar 2017 01:08:43 +0200 Subject: [PATCH 04/19] Changed the Travis CI image. --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 0158cd8..4f39c3c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,5 @@ language: objective-c -osx_image: xcode8 +osx_image: xcode8.1 env: global: - LC_CTYPE=en_US.UTF-8 From 93022af580e5f70d0c62f95cb334176ed324009a Mon Sep 17 00:00:00 2001 From: Artur Grigor Date: Tue, 21 Mar 2017 01:16:57 +0200 Subject: [PATCH 05/19] Removed the xcpretty calls. --- .travis.yml | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/.travis.yml b/.travis.yml index 4f39c3c..23e11a8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,22 +12,20 @@ env: - DESTINATION="OS=9.0,name=iPad 2" SCHEME="$IOS_FRAMEWORK_SCHEME" RUN_TESTS="YES" - DESTINATION="arch=x86_64" SCHEME="$MACOS_FRAMEWORK_SCHEME" RUN_TESTS="YES" -install: - - gem install xcpretty --no-rdoc --no-ri --no-document --quiet script: - set -o pipefail - xcodebuild -version # Build Framework in Debug and Run Tests if specified - if [ $RUN_TESTS == "YES" ]; then - travis_retry xcodebuild -workspace "$WORKSPACE" -scheme "$SCHEME" -destination "$DESTINATION" -configuration Debug ONLY_ACTIVE_ARCH=NO ENABLE_TESTABILITY=YES test | xcpretty; + travis_retry xcodebuild -workspace "$WORKSPACE" -scheme "$SCHEME" -destination "$DESTINATION" -configuration Debug ONLY_ACTIVE_ARCH=NO ENABLE_TESTABILITY=YES test; else - travis_retry xcodebuild -workspace "$WORKSPACE" -scheme "$SCHEME" -destination "$DESTINATION" -configuration Debug ONLY_ACTIVE_ARCH=NO build | xcpretty; + travis_retry xcodebuild -workspace "$WORKSPACE" -scheme "$SCHEME" -destination "$DESTINATION" -configuration Debug ONLY_ACTIVE_ARCH=NO build; fi # Build Framework in Release and Run Tests if specified - if [ $RUN_TESTS == "YES" ]; then - travis_retry xcodebuild -workspace "$WORKSPACE" -scheme "$SCHEME" -destination "$DESTINATION" -configuration Release ONLY_ACTIVE_ARCH=NO ENABLE_TESTABILITY=YES test | xcpretty; + travis_retry xcodebuild -workspace "$WORKSPACE" -scheme "$SCHEME" -destination "$DESTINATION" -configuration Release ONLY_ACTIVE_ARCH=NO ENABLE_TESTABILITY=YES test; else - travis_retry xcodebuild -workspace "$WORKSPACE" -scheme "$SCHEME" -destination "$DESTINATION" -configuration Release ONLY_ACTIVE_ARCH=NO build | xcpretty; + travis_retry xcodebuild -workspace "$WORKSPACE" -scheme "$SCHEME" -destination "$DESTINATION" -configuration Release ONLY_ACTIVE_ARCH=NO build; fi From c4270ce0d8f2f0316fdd7e6a320db8e84fccbca2 Mon Sep 17 00:00:00 2001 From: Artur Grigor Date: Tue, 21 Mar 2017 01:31:47 +0200 Subject: [PATCH 06/19] Changed a Travis CI build destination because the older is no longer available. --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 23e11a8..76bbf7a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,7 +8,7 @@ env: - IOS_FRAMEWORK_SCHEME="TransitionKit iOS" - MACOS_FRAMEWORK_SCHEME="TransitionKit macOS" matrix: - - DESTINATION="OS=10.0,name=iPhone 7 Plus" SCHEME="$IOS_FRAMEWORK_SCHEME" RUN_TESTS="YES" + - DESTINATION="OS=10.0,name=iPhone 6s Plus" SCHEME="$IOS_FRAMEWORK_SCHEME" RUN_TESTS="YES" - DESTINATION="OS=9.0,name=iPad 2" SCHEME="$IOS_FRAMEWORK_SCHEME" RUN_TESTS="YES" - DESTINATION="arch=x86_64" SCHEME="$MACOS_FRAMEWORK_SCHEME" RUN_TESTS="YES" From ffa22b4387250a4e69dcd419535b65527aabda76 Mon Sep 17 00:00:00 2001 From: Artur Grigor Date: Fri, 19 May 2017 09:57:05 +0300 Subject: [PATCH 07/19] Deintegrated CocoaPods. Added the Kiwi test framework as a private Carthage dependecy. Updated the Travis CI config to use Carthage. Bumped the podspec version to 2.2.3. Updated the project settings to the recommended settings. --- .travis.yml | 5 + Cartfile.private | 1 + Cartfile.resolved | 1 + Podfile | 12 - Podfile.lock | 19 - Pods/Headers/Private/Kiwi/KWAfterAllNode.h | 1 - Pods/Headers/Private/Kiwi/KWAfterEachNode.h | 1 - Pods/Headers/Private/Kiwi/KWAny.h | 1 - Pods/Headers/Private/Kiwi/KWAsyncVerifier.h | 1 - .../Headers/Private/Kiwi/KWBeBetweenMatcher.h | 1 - Pods/Headers/Private/Kiwi/KWBeEmptyMatcher.h | 1 - .../Private/Kiwi/KWBeIdenticalToMatcher.h | 1 - .../Private/Kiwi/KWBeKindOfClassMatcher.h | 1 - .../Private/Kiwi/KWBeMemberOfClassMatcher.h | 1 - .../Private/Kiwi/KWBeSubclassOfClassMatcher.h | 1 - Pods/Headers/Private/Kiwi/KWBeTrueMatcher.h | 1 - Pods/Headers/Private/Kiwi/KWBeWithinMatcher.h | 1 - Pods/Headers/Private/Kiwi/KWBeZeroMatcher.h | 1 - Pods/Headers/Private/Kiwi/KWBeforeAllNode.h | 1 - Pods/Headers/Private/Kiwi/KWBeforeEachNode.h | 1 - Pods/Headers/Private/Kiwi/KWBlock.h | 1 - Pods/Headers/Private/Kiwi/KWBlockNode.h | 1 - .../Private/Kiwi/KWBlockRaiseMatcher.h | 1 - Pods/Headers/Private/Kiwi/KWCallSite.h | 1 - Pods/Headers/Private/Kiwi/KWCaptureSpy.h | 1 - Pods/Headers/Private/Kiwi/KWChangeMatcher.h | 1 - .../Private/Kiwi/KWConformToProtocolMatcher.h | 1 - Pods/Headers/Private/Kiwi/KWContainMatcher.h | 1 - .../Private/Kiwi/KWContainStringMatcher.h | 1 - Pods/Headers/Private/Kiwi/KWContextNode.h | 1 - Pods/Headers/Private/Kiwi/KWCountType.h | 1 - Pods/Headers/Private/Kiwi/KWDeviceInfo.h | 1 - Pods/Headers/Private/Kiwi/KWEqualMatcher.h | 1 - Pods/Headers/Private/Kiwi/KWExample.h | 1 - Pods/Headers/Private/Kiwi/KWExampleDelegate.h | 1 - Pods/Headers/Private/Kiwi/KWExampleNode.h | 1 - .../Private/Kiwi/KWExampleNodeVisitor.h | 1 - Pods/Headers/Private/Kiwi/KWExampleSuite.h | 1 - .../Private/Kiwi/KWExampleSuiteBuilder.h | 1 - Pods/Headers/Private/Kiwi/KWExistVerifier.h | 1 - Pods/Headers/Private/Kiwi/KWExpectationType.h | 1 - Pods/Headers/Private/Kiwi/KWFailure.h | 1 - Pods/Headers/Private/Kiwi/KWFormatter.h | 1 - Pods/Headers/Private/Kiwi/KWFutureObject.h | 1 - .../Private/Kiwi/KWGenericMatchEvaluator.h | 1 - Pods/Headers/Private/Kiwi/KWGenericMatcher.h | 1 - .../Private/Kiwi/KWGenericMatchingAdditions.h | 1 - Pods/Headers/Private/Kiwi/KWHaveMatcher.h | 1 - .../Headers/Private/Kiwi/KWHaveValueMatcher.h | 1 - .../Private/Kiwi/KWInequalityMatcher.h | 1 - Pods/Headers/Private/Kiwi/KWIntercept.h | 1 - .../Private/Kiwi/KWInvocationCapturer.h | 1 - Pods/Headers/Private/Kiwi/KWItNode.h | 1 - Pods/Headers/Private/Kiwi/KWLet.h | 1 - Pods/Headers/Private/Kiwi/KWLetNode.h | 1 - Pods/Headers/Private/Kiwi/KWMatchVerifier.h | 1 - Pods/Headers/Private/Kiwi/KWMatcher.h | 1 - Pods/Headers/Private/Kiwi/KWMatcherFactory.h | 1 - Pods/Headers/Private/Kiwi/KWMatchers.h | 1 - Pods/Headers/Private/Kiwi/KWMatching.h | 1 - Pods/Headers/Private/Kiwi/KWMessagePattern.h | 1 - Pods/Headers/Private/Kiwi/KWMessageSpying.h | 1 - Pods/Headers/Private/Kiwi/KWMessageTracker.h | 1 - Pods/Headers/Private/Kiwi/KWMock.h | 1 - Pods/Headers/Private/Kiwi/KWNilMatcher.h | 1 - .../Private/Kiwi/KWNotificationMatcher.h | 1 - Pods/Headers/Private/Kiwi/KWNull.h | 1 - Pods/Headers/Private/Kiwi/KWObjCUtilities.h | 1 - Pods/Headers/Private/Kiwi/KWPendingNode.h | 1 - Pods/Headers/Private/Kiwi/KWProbe.h | 1 - Pods/Headers/Private/Kiwi/KWProbePoller.h | 1 - Pods/Headers/Private/Kiwi/KWReceiveMatcher.h | 1 - .../Private/Kiwi/KWRegisterMatchersNode.h | 1 - .../Kiwi/KWRegularExpressionPatternMatcher.h | 1 - Pods/Headers/Private/Kiwi/KWReporting.h | 1 - .../Private/Kiwi/KWRespondToSelectorMatcher.h | 1 - Pods/Headers/Private/Kiwi/KWSpec.h | 1 - .../Private/Kiwi/KWStringContainsMatcher.h | 1 - .../Private/Kiwi/KWStringPrefixMatcher.h | 1 - Pods/Headers/Private/Kiwi/KWStringUtilities.h | 1 - Pods/Headers/Private/Kiwi/KWStub.h | 1 - .../Private/Kiwi/KWSuiteConfigurationBase.h | 1 - Pods/Headers/Private/Kiwi/KWSymbolicator.h | 1 - .../Private/Kiwi/KWUserDefinedMatcher.h | 1 - Pods/Headers/Private/Kiwi/KWValue.h | 1 - Pods/Headers/Private/Kiwi/KWVerifying.h | 1 - Pods/Headers/Private/Kiwi/KWWorkarounds.h | 1 - Pods/Headers/Private/Kiwi/Kiwi.h | 1 - Pods/Headers/Private/Kiwi/KiwiBlockMacros.h | 1 - Pods/Headers/Private/Kiwi/KiwiConfiguration.h | 1 - Pods/Headers/Private/Kiwi/KiwiMacros.h | 1 - .../Private/Kiwi/NSInvocation+KiwiAdditions.h | 1 - .../Private/Kiwi/NSInvocation+OCMAdditions.h | 1 - .../Kiwi/NSMethodSignature+KiwiAdditions.h | 1 - .../Private/Kiwi/NSNumber+KiwiAdditions.h | 1 - .../Private/Kiwi/NSObject+KiwiMockAdditions.h | 1 - .../Private/Kiwi/NSObject+KiwiSpyAdditions.h | 1 - .../Private/Kiwi/NSObject+KiwiStubAdditions.h | 1 - .../Kiwi/NSObject+KiwiVerifierAdditions.h | 1 - .../Kiwi/NSProxy+KiwiVerifierAdditions.h | 1 - .../Private/Kiwi/NSValue+KiwiAdditions.h | 1 - Pods/Headers/Private/TransitionKit/TKEvent.h | 1 - Pods/Headers/Private/TransitionKit/TKState.h | 1 - .../Private/TransitionKit/TKStateMachine.h | 1 - .../Private/TransitionKit/TKTransition.h | 1 - .../Private/TransitionKit/TransitionKit.h | 1 - Pods/Headers/Public/Kiwi/KWAfterAllNode.h | 1 - Pods/Headers/Public/Kiwi/KWAfterEachNode.h | 1 - Pods/Headers/Public/Kiwi/KWAny.h | 1 - Pods/Headers/Public/Kiwi/KWAsyncVerifier.h | 1 - Pods/Headers/Public/Kiwi/KWBeBetweenMatcher.h | 1 - Pods/Headers/Public/Kiwi/KWBeEmptyMatcher.h | 1 - .../Public/Kiwi/KWBeIdenticalToMatcher.h | 1 - .../Public/Kiwi/KWBeKindOfClassMatcher.h | 1 - .../Public/Kiwi/KWBeMemberOfClassMatcher.h | 1 - .../Public/Kiwi/KWBeSubclassOfClassMatcher.h | 1 - Pods/Headers/Public/Kiwi/KWBeTrueMatcher.h | 1 - Pods/Headers/Public/Kiwi/KWBeWithinMatcher.h | 1 - Pods/Headers/Public/Kiwi/KWBeZeroMatcher.h | 1 - Pods/Headers/Public/Kiwi/KWBeforeAllNode.h | 1 - Pods/Headers/Public/Kiwi/KWBeforeEachNode.h | 1 - Pods/Headers/Public/Kiwi/KWBlock.h | 1 - Pods/Headers/Public/Kiwi/KWBlockNode.h | 1 - .../Headers/Public/Kiwi/KWBlockRaiseMatcher.h | 1 - Pods/Headers/Public/Kiwi/KWCallSite.h | 1 - Pods/Headers/Public/Kiwi/KWCaptureSpy.h | 1 - Pods/Headers/Public/Kiwi/KWChangeMatcher.h | 1 - .../Public/Kiwi/KWConformToProtocolMatcher.h | 1 - Pods/Headers/Public/Kiwi/KWContainMatcher.h | 1 - .../Public/Kiwi/KWContainStringMatcher.h | 1 - Pods/Headers/Public/Kiwi/KWContextNode.h | 1 - Pods/Headers/Public/Kiwi/KWCountType.h | 1 - Pods/Headers/Public/Kiwi/KWDeviceInfo.h | 1 - Pods/Headers/Public/Kiwi/KWEqualMatcher.h | 1 - Pods/Headers/Public/Kiwi/KWExample.h | 1 - Pods/Headers/Public/Kiwi/KWExampleDelegate.h | 1 - Pods/Headers/Public/Kiwi/KWExampleNode.h | 1 - .../Public/Kiwi/KWExampleNodeVisitor.h | 1 - Pods/Headers/Public/Kiwi/KWExampleSuite.h | 1 - .../Public/Kiwi/KWExampleSuiteBuilder.h | 1 - Pods/Headers/Public/Kiwi/KWExistVerifier.h | 1 - Pods/Headers/Public/Kiwi/KWExpectationType.h | 1 - Pods/Headers/Public/Kiwi/KWFailure.h | 1 - Pods/Headers/Public/Kiwi/KWFormatter.h | 1 - Pods/Headers/Public/Kiwi/KWFutureObject.h | 1 - .../Public/Kiwi/KWGenericMatchEvaluator.h | 1 - Pods/Headers/Public/Kiwi/KWGenericMatcher.h | 1 - .../Public/Kiwi/KWGenericMatchingAdditions.h | 1 - Pods/Headers/Public/Kiwi/KWHaveMatcher.h | 1 - Pods/Headers/Public/Kiwi/KWHaveValueMatcher.h | 1 - .../Headers/Public/Kiwi/KWInequalityMatcher.h | 1 - Pods/Headers/Public/Kiwi/KWIntercept.h | 1 - .../Public/Kiwi/KWInvocationCapturer.h | 1 - Pods/Headers/Public/Kiwi/KWItNode.h | 1 - Pods/Headers/Public/Kiwi/KWLet.h | 1 - Pods/Headers/Public/Kiwi/KWLetNode.h | 1 - Pods/Headers/Public/Kiwi/KWMatchVerifier.h | 1 - Pods/Headers/Public/Kiwi/KWMatcher.h | 1 - Pods/Headers/Public/Kiwi/KWMatcherFactory.h | 1 - Pods/Headers/Public/Kiwi/KWMatchers.h | 1 - Pods/Headers/Public/Kiwi/KWMatching.h | 1 - Pods/Headers/Public/Kiwi/KWMessagePattern.h | 1 - Pods/Headers/Public/Kiwi/KWMessageSpying.h | 1 - Pods/Headers/Public/Kiwi/KWMessageTracker.h | 1 - Pods/Headers/Public/Kiwi/KWMock.h | 1 - Pods/Headers/Public/Kiwi/KWNilMatcher.h | 1 - .../Public/Kiwi/KWNotificationMatcher.h | 1 - Pods/Headers/Public/Kiwi/KWNull.h | 1 - Pods/Headers/Public/Kiwi/KWObjCUtilities.h | 1 - Pods/Headers/Public/Kiwi/KWPendingNode.h | 1 - Pods/Headers/Public/Kiwi/KWProbe.h | 1 - Pods/Headers/Public/Kiwi/KWProbePoller.h | 1 - Pods/Headers/Public/Kiwi/KWReceiveMatcher.h | 1 - .../Public/Kiwi/KWRegisterMatchersNode.h | 1 - .../Kiwi/KWRegularExpressionPatternMatcher.h | 1 - Pods/Headers/Public/Kiwi/KWReporting.h | 1 - .../Public/Kiwi/KWRespondToSelectorMatcher.h | 1 - Pods/Headers/Public/Kiwi/KWSpec.h | 1 - .../Public/Kiwi/KWStringContainsMatcher.h | 1 - .../Public/Kiwi/KWStringPrefixMatcher.h | 1 - Pods/Headers/Public/Kiwi/KWStringUtilities.h | 1 - Pods/Headers/Public/Kiwi/KWStub.h | 1 - .../Public/Kiwi/KWSuiteConfigurationBase.h | 1 - Pods/Headers/Public/Kiwi/KWSymbolicator.h | 1 - .../Public/Kiwi/KWUserDefinedMatcher.h | 1 - Pods/Headers/Public/Kiwi/KWValue.h | 1 - Pods/Headers/Public/Kiwi/KWVerifying.h | 1 - Pods/Headers/Public/Kiwi/KWWorkarounds.h | 1 - Pods/Headers/Public/Kiwi/Kiwi.h | 1 - Pods/Headers/Public/Kiwi/KiwiBlockMacros.h | 1 - Pods/Headers/Public/Kiwi/KiwiConfiguration.h | 1 - Pods/Headers/Public/Kiwi/KiwiMacros.h | 1 - .../Public/Kiwi/NSInvocation+KiwiAdditions.h | 1 - .../Public/Kiwi/NSInvocation+OCMAdditions.h | 1 - .../Kiwi/NSMethodSignature+KiwiAdditions.h | 1 - .../Public/Kiwi/NSNumber+KiwiAdditions.h | 1 - .../Public/Kiwi/NSObject+KiwiMockAdditions.h | 1 - .../Public/Kiwi/NSObject+KiwiSpyAdditions.h | 1 - .../Public/Kiwi/NSObject+KiwiStubAdditions.h | 1 - .../Kiwi/NSObject+KiwiVerifierAdditions.h | 1 - .../Kiwi/NSProxy+KiwiVerifierAdditions.h | 1 - .../Public/Kiwi/NSValue+KiwiAdditions.h | 1 - Pods/Headers/Public/TransitionKit/TKEvent.h | 1 - Pods/Headers/Public/TransitionKit/TKState.h | 1 - .../Public/TransitionKit/TKStateMachine.h | 1 - .../Public/TransitionKit/TKTransition.h | 1 - .../Public/TransitionKit/TransitionKit.h | 1 - Pods/Kiwi/Classes/Config/KWAllTestsSuite.m | 51 - .../Classes/Config/KWSuiteConfigurationBase.h | 26 - .../Classes/Config/KWSuiteConfigurationBase.m | 77 - Pods/Kiwi/Classes/Core/KWAny.h | 17 - Pods/Kiwi/Classes/Core/KWAny.m | 23 - Pods/Kiwi/Classes/Core/KWBlock.h | 25 - Pods/Kiwi/Classes/Core/KWBlock.m | 50 - Pods/Kiwi/Classes/Core/KWCallSite.h | 26 - Pods/Kiwi/Classes/Core/KWCallSite.m | 44 - Pods/Kiwi/Classes/Core/KWCaptureSpy.h | 9 - Pods/Kiwi/Classes/Core/KWCaptureSpy.m | 64 - Pods/Kiwi/Classes/Core/KWCountType.h | 15 - Pods/Kiwi/Classes/Core/KWDeviceInfo.h | 16 - Pods/Kiwi/Classes/Core/KWDeviceInfo.m | 31 - Pods/Kiwi/Classes/Core/KWExample.h | 153 -- Pods/Kiwi/Classes/Core/KWExample.m | 428 ---- Pods/Kiwi/Classes/Core/KWExampleDelegate.h | 18 - Pods/Kiwi/Classes/Core/KWExampleNodeVisitor.h | 35 - Pods/Kiwi/Classes/Core/KWExampleSuite.h | 31 - Pods/Kiwi/Classes/Core/KWExampleSuite.m | 92 - .../Kiwi/Classes/Core/KWExampleSuiteBuilder.h | 46 - .../Kiwi/Classes/Core/KWExampleSuiteBuilder.m | 237 -- Pods/Kiwi/Classes/Core/KWExpectationType.h | 15 - Pods/Kiwi/Classes/Core/KWFailure.h | 26 - Pods/Kiwi/Classes/Core/KWFailure.m | 44 - Pods/Kiwi/Classes/Core/KWFormatter.h | 16 - Pods/Kiwi/Classes/Core/KWFormatter.m | 59 - Pods/Kiwi/Classes/Core/KWFutureObject.h | 20 - Pods/Kiwi/Classes/Core/KWFutureObject.m | 40 - Pods/Kiwi/Classes/Core/KWInvocationCapturer.h | 35 - Pods/Kiwi/Classes/Core/KWInvocationCapturer.m | 88 - Pods/Kiwi/Classes/Core/KWLet.h | 15 - Pods/Kiwi/Classes/Core/KWMatcher.h | 39 - Pods/Kiwi/Classes/Core/KWMatcher.m | 80 - Pods/Kiwi/Classes/Core/KWMatcherFactory.h | 37 - Pods/Kiwi/Classes/Core/KWMatcherFactory.m | 133 -- Pods/Kiwi/Classes/Core/KWMatchers.h | 32 - Pods/Kiwi/Classes/Core/KWMatchers.m | 75 - Pods/Kiwi/Classes/Core/KWMatching.h | 42 - Pods/Kiwi/Classes/Core/KWMessagePattern.h | 40 - Pods/Kiwi/Classes/Core/KWMessagePattern.m | 219 -- Pods/Kiwi/Classes/Core/KWMessageSpying.h | 15 - Pods/Kiwi/Classes/Core/KWMessageTracker.h | 41 - Pods/Kiwi/Classes/Core/KWMessageTracker.m | 130 - Pods/Kiwi/Classes/Core/KWNull.h | 18 - Pods/Kiwi/Classes/Core/KWNull.m | 25 - Pods/Kiwi/Classes/Core/KWObjCUtilities.h | 31 - Pods/Kiwi/Classes/Core/KWObjCUtilities.m | 104 - Pods/Kiwi/Classes/Core/KWProbe.h | 14 - Pods/Kiwi/Classes/Core/KWProbePoller.h | 19 - Pods/Kiwi/Classes/Core/KWProbePoller.m | 72 - Pods/Kiwi/Classes/Core/KWReporting.h | 17 - Pods/Kiwi/Classes/Core/KWSpec.h | 29 - Pods/Kiwi/Classes/Core/KWSpec.m | 127 - Pods/Kiwi/Classes/Core/KWStringUtilities.h | 19 - Pods/Kiwi/Classes/Core/KWStringUtilities.m | 92 - Pods/Kiwi/Classes/Core/KWSymbolicator.h | 17 - Pods/Kiwi/Classes/Core/KWSymbolicator.m | 62 - Pods/Kiwi/Classes/Core/KWValue.h | 87 - Pods/Kiwi/Classes/Core/KWValue.m | 350 --- Pods/Kiwi/Classes/Core/KWWorkarounds.h | 17 - Pods/Kiwi/Classes/Core/KWWorkarounds.m | 26 - Pods/Kiwi/Classes/Core/Kiwi.h | 102 - Pods/Kiwi/Classes/Core/KiwiBlockMacros.h | 16 - Pods/Kiwi/Classes/Core/KiwiConfiguration.h | 18 - Pods/Kiwi/Classes/Core/KiwiMacros.h | 111 - .../Classes/Core/NSInvocation+KiwiAdditions.h | 26 - .../Classes/Core/NSInvocation+KiwiAdditions.m | 91 - .../Classes/Core/NSInvocation+OCMAdditions.h | 34 - .../Classes/Core/NSInvocation+OCMAdditions.m | 343 --- .../Core/NSMethodSignature+KiwiAdditions.h | 16 - .../Core/NSMethodSignature+KiwiAdditions.m | 21 - .../Classes/Core/NSNumber+KiwiAdditions.h | 31 - .../Classes/Core/NSNumber+KiwiAdditions.m | 116 - .../Classes/Core/NSObject+KiwiSpyAdditions.h | 20 - .../Classes/Core/NSObject+KiwiSpyAdditions.m | 29 - .../Core/NSObject+KiwiVerifierAdditions.h | 17 - .../Core/NSObject+KiwiVerifierAdditions.m | 19 - .../Core/NSProxy+KiwiVerifierAdditions.h | 20 - .../Core/NSProxy+KiwiVerifierAdditions.m | 27 - .../Kiwi/Classes/Core/NSValue+KiwiAdditions.h | 15 - .../Kiwi/Classes/Core/NSValue+KiwiAdditions.m | 23 - .../Classes/Matchers/KWBeBetweenMatcher.h | 18 - .../Classes/Matchers/KWBeBetweenMatcher.m | 63 - Pods/Kiwi/Classes/Matchers/KWBeEmptyMatcher.h | 16 - Pods/Kiwi/Classes/Matchers/KWBeEmptyMatcher.m | 68 - .../Classes/Matchers/KWBeIdenticalToMatcher.h | 16 - .../Classes/Matchers/KWBeIdenticalToMatcher.m | 58 - .../Classes/Matchers/KWBeKindOfClassMatcher.h | 16 - .../Classes/Matchers/KWBeKindOfClassMatcher.m | 48 - .../Matchers/KWBeMemberOfClassMatcher.h | 16 - .../Matchers/KWBeMemberOfClassMatcher.m | 49 - .../Matchers/KWBeSubclassOfClassMatcher.h | 16 - .../Matchers/KWBeSubclassOfClassMatcher.m | 51 - Pods/Kiwi/Classes/Matchers/KWBeTrueMatcher.h | 19 - Pods/Kiwi/Classes/Matchers/KWBeTrueMatcher.m | 64 - .../Kiwi/Classes/Matchers/KWBeWithinMatcher.h | 17 - .../Kiwi/Classes/Matchers/KWBeWithinMatcher.m | 91 - Pods/Kiwi/Classes/Matchers/KWBeZeroMatcher.h | 16 - Pods/Kiwi/Classes/Matchers/KWBeZeroMatcher.m | 53 - .../Classes/Matchers/KWBlockRaiseMatcher.h | 19 - .../Classes/Matchers/KWBlockRaiseMatcher.m | 103 - Pods/Kiwi/Classes/Matchers/KWChangeMatcher.h | 21 - Pods/Kiwi/Classes/Matchers/KWChangeMatcher.m | 73 - .../Matchers/KWConformToProtocolMatcher.h | 16 - .../Matchers/KWConformToProtocolMatcher.m | 47 - Pods/Kiwi/Classes/Matchers/KWContainMatcher.h | 26 - Pods/Kiwi/Classes/Matchers/KWContainMatcher.m | 88 - .../Classes/Matchers/KWContainStringMatcher.h | 39 - .../Classes/Matchers/KWContainStringMatcher.m | 85 - Pods/Kiwi/Classes/Matchers/KWEqualMatcher.h | 16 - Pods/Kiwi/Classes/Matchers/KWEqualMatcher.m | 68 - .../Matchers/KWGenericMatchEvaluator.h | 17 - .../Matchers/KWGenericMatchEvaluator.m | 65 - Pods/Kiwi/Classes/Matchers/KWGenericMatcher.h | 24 - Pods/Kiwi/Classes/Matchers/KWGenericMatcher.m | 48 - .../Matchers/KWGenericMatchingAdditions.h | 34 - .../Matchers/KWGenericMatchingAdditions.m | 67 - Pods/Kiwi/Classes/Matchers/KWHaveMatcher.h | 48 - Pods/Kiwi/Classes/Matchers/KWHaveMatcher.m | 254 -- .../Classes/Matchers/KWHaveValueMatcher.h | 21 - .../Classes/Matchers/KWHaveValueMatcher.m | 128 - .../Classes/Matchers/KWInequalityMatcher.h | 19 - .../Classes/Matchers/KWInequalityMatcher.m | 109 - Pods/Kiwi/Classes/Matchers/KWNilMatcher.h | 23 - Pods/Kiwi/Classes/Matchers/KWNilMatcher.m | 112 - .../Classes/Matchers/KWNotificationMatcher.h | 20 - .../Classes/Matchers/KWNotificationMatcher.m | 118 - Pods/Kiwi/Classes/Matchers/KWReceiveMatcher.h | 61 - Pods/Kiwi/Classes/Matchers/KWReceiveMatcher.m | 325 --- .../KWRegularExpressionPatternMatcher.h | 18 - .../KWRegularExpressionPatternMatcher.m | 82 - .../Matchers/KWRespondToSelectorMatcher.h | 16 - .../Matchers/KWRespondToSelectorMatcher.m | 49 - .../Matchers/KWStringContainsMatcher.h | 19 - .../Matchers/KWStringContainsMatcher.m | 42 - .../Classes/Matchers/KWStringPrefixMatcher.h | 18 - .../Classes/Matchers/KWStringPrefixMatcher.m | 41 - .../Classes/Matchers/KWUserDefinedMatcher.h | 53 - .../Classes/Matchers/KWUserDefinedMatcher.m | 150 -- Pods/Kiwi/Classes/Mocking/KWMock.h | 87 - Pods/Kiwi/Classes/Mocking/KWMock.m | 626 ----- .../Mocking/NSObject+KiwiMockAdditions.h | 23 - .../Mocking/NSObject+KiwiMockAdditions.m | 30 - Pods/Kiwi/Classes/Nodes/KWAfterAllNode.h | 17 - Pods/Kiwi/Classes/Nodes/KWAfterAllNode.m | 24 - Pods/Kiwi/Classes/Nodes/KWAfterEachNode.h | 17 - Pods/Kiwi/Classes/Nodes/KWAfterEachNode.m | 24 - Pods/Kiwi/Classes/Nodes/KWBeforeAllNode.h | 17 - Pods/Kiwi/Classes/Nodes/KWBeforeAllNode.m | 24 - Pods/Kiwi/Classes/Nodes/KWBeforeEachNode.h | 17 - Pods/Kiwi/Classes/Nodes/KWBeforeEachNode.m | 24 - Pods/Kiwi/Classes/Nodes/KWBlockNode.h | 34 - Pods/Kiwi/Classes/Nodes/KWBlockNode.m | 30 - Pods/Kiwi/Classes/Nodes/KWContextNode.h | 65 - Pods/Kiwi/Classes/Nodes/KWContextNode.m | 152 -- Pods/Kiwi/Classes/Nodes/KWExampleNode.h | 22 - Pods/Kiwi/Classes/Nodes/KWItNode.h | 27 - Pods/Kiwi/Classes/Nodes/KWItNode.m | 62 - Pods/Kiwi/Classes/Nodes/KWLetNode.h | 36 - Pods/Kiwi/Classes/Nodes/KWLetNode.m | 145 -- Pods/Kiwi/Classes/Nodes/KWPendingNode.h | 31 - Pods/Kiwi/Classes/Nodes/KWPendingNode.m | 55 - .../Classes/Nodes/KWRegisterMatchersNode.h | 28 - .../Classes/Nodes/KWRegisterMatchersNode.m | 36 - Pods/Kiwi/Classes/Stubbing/KWIntercept.h | 45 - Pods/Kiwi/Classes/Stubbing/KWIntercept.m | 391 --- Pods/Kiwi/Classes/Stubbing/KWStub.h | 37 - Pods/Kiwi/Classes/Stubbing/KWStub.m | 216 -- .../Stubbing/NSObject+KiwiStubAdditions.h | 63 - .../Stubbing/NSObject+KiwiStubAdditions.m | 266 --- Pods/Kiwi/Classes/Verifiers/KWAsyncVerifier.h | 36 - Pods/Kiwi/Classes/Verifiers/KWAsyncVerifier.m | 90 - Pods/Kiwi/Classes/Verifiers/KWExistVerifier.h | 27 - Pods/Kiwi/Classes/Verifiers/KWExistVerifier.m | 63 - Pods/Kiwi/Classes/Verifiers/KWMatchVerifier.h | 39 - Pods/Kiwi/Classes/Verifiers/KWMatchVerifier.m | 180 -- Pods/Kiwi/Classes/Verifiers/KWVerifying.h | 25 - Pods/Kiwi/License.txt | 27 - Pods/Kiwi/Readme.md | 39 - .../Local Podspecs/TransitionKit.podspec.json | 20 - Pods/Manifest.lock | 19 - Pods/Pods.xcodeproj/project.pbxproj | 2122 ----------------- .../Kiwi-OSX/Kiwi-OSX-dummy.m | 5 - .../Kiwi-OSX/Kiwi-OSX-prefix.pch | 13 - .../Kiwi-OSX/Kiwi-OSX.xcconfig | 12 - .../Kiwi-iOS/Kiwi-iOS-dummy.m | 5 - .../Kiwi-iOS/Kiwi-iOS-prefix.pch | 13 - .../Kiwi-iOS/Kiwi-iOS.xcconfig | 13 - ...ionKit iOS Tests-acknowledgements.markdown | 240 -- ...sitionKit iOS Tests-acknowledgements.plist | 278 --- ...Pods-Tests-TransitionKit iOS Tests-dummy.m | 5 - ...ests-TransitionKit iOS Tests-frameworks.sh | 92 - ...Tests-TransitionKit iOS Tests-resources.sh | 99 - ...sts-TransitionKit iOS Tests.debug.xcconfig | 11 - ...s-TransitionKit iOS Tests.release.xcconfig | 11 - ...nKit macOS Tests-acknowledgements.markdown | 240 -- ...tionKit macOS Tests-acknowledgements.plist | 278 --- ...ds-Tests-TransitionKit macOS Tests-dummy.m | 5 - ...ts-TransitionKit macOS Tests-frameworks.sh | 92 - ...sts-TransitionKit macOS Tests-resources.sh | 99 - ...s-TransitionKit macOS Tests.debug.xcconfig | 10 - ...TransitionKit macOS Tests.release.xcconfig | 10 - .../TransitionKit-OSX-dummy.m | 5 - .../TransitionKit-OSX-prefix.pch | 12 - .../TransitionKit-OSX.xcconfig | 9 - .../TransitionKit-iOS-dummy.m | 5 - .../TransitionKit-iOS-prefix.pch | 12 - .../TransitionKit-iOS.xcconfig | 9 - Specs/TKEventSpec.m | 2 +- Specs/TKStateMachineSpec.m | 2 +- Specs/TKStateSpec.m | 2 +- TransitionKit.podspec | 2 +- TransitionKit.xcodeproj/project.pbxproj | 185 +- .../xcschemes/TransitionKit iOS.xcscheme | 2 +- .../xcschemes/TransitionKit macOS.xcscheme | 2 +- .../contents.xcworkspacedata | 3 - 424 files changed, 96 insertions(+), 15538 deletions(-) create mode 100644 Cartfile.private create mode 100644 Cartfile.resolved delete mode 100644 Podfile delete mode 100644 Podfile.lock delete mode 120000 Pods/Headers/Private/Kiwi/KWAfterAllNode.h delete mode 120000 Pods/Headers/Private/Kiwi/KWAfterEachNode.h delete mode 120000 Pods/Headers/Private/Kiwi/KWAny.h delete mode 120000 Pods/Headers/Private/Kiwi/KWAsyncVerifier.h delete mode 120000 Pods/Headers/Private/Kiwi/KWBeBetweenMatcher.h delete mode 120000 Pods/Headers/Private/Kiwi/KWBeEmptyMatcher.h delete mode 120000 Pods/Headers/Private/Kiwi/KWBeIdenticalToMatcher.h delete mode 120000 Pods/Headers/Private/Kiwi/KWBeKindOfClassMatcher.h delete mode 120000 Pods/Headers/Private/Kiwi/KWBeMemberOfClassMatcher.h delete mode 120000 Pods/Headers/Private/Kiwi/KWBeSubclassOfClassMatcher.h delete mode 120000 Pods/Headers/Private/Kiwi/KWBeTrueMatcher.h delete mode 120000 Pods/Headers/Private/Kiwi/KWBeWithinMatcher.h delete mode 120000 Pods/Headers/Private/Kiwi/KWBeZeroMatcher.h delete mode 120000 Pods/Headers/Private/Kiwi/KWBeforeAllNode.h delete mode 120000 Pods/Headers/Private/Kiwi/KWBeforeEachNode.h delete mode 120000 Pods/Headers/Private/Kiwi/KWBlock.h delete mode 120000 Pods/Headers/Private/Kiwi/KWBlockNode.h delete mode 120000 Pods/Headers/Private/Kiwi/KWBlockRaiseMatcher.h delete mode 120000 Pods/Headers/Private/Kiwi/KWCallSite.h delete mode 120000 Pods/Headers/Private/Kiwi/KWCaptureSpy.h delete mode 120000 Pods/Headers/Private/Kiwi/KWChangeMatcher.h delete mode 120000 Pods/Headers/Private/Kiwi/KWConformToProtocolMatcher.h delete mode 120000 Pods/Headers/Private/Kiwi/KWContainMatcher.h delete mode 120000 Pods/Headers/Private/Kiwi/KWContainStringMatcher.h delete mode 120000 Pods/Headers/Private/Kiwi/KWContextNode.h delete mode 120000 Pods/Headers/Private/Kiwi/KWCountType.h delete mode 120000 Pods/Headers/Private/Kiwi/KWDeviceInfo.h delete mode 120000 Pods/Headers/Private/Kiwi/KWEqualMatcher.h delete mode 120000 Pods/Headers/Private/Kiwi/KWExample.h delete mode 120000 Pods/Headers/Private/Kiwi/KWExampleDelegate.h delete mode 120000 Pods/Headers/Private/Kiwi/KWExampleNode.h delete mode 120000 Pods/Headers/Private/Kiwi/KWExampleNodeVisitor.h delete mode 120000 Pods/Headers/Private/Kiwi/KWExampleSuite.h delete mode 120000 Pods/Headers/Private/Kiwi/KWExampleSuiteBuilder.h delete mode 120000 Pods/Headers/Private/Kiwi/KWExistVerifier.h delete mode 120000 Pods/Headers/Private/Kiwi/KWExpectationType.h delete mode 120000 Pods/Headers/Private/Kiwi/KWFailure.h delete mode 120000 Pods/Headers/Private/Kiwi/KWFormatter.h delete mode 120000 Pods/Headers/Private/Kiwi/KWFutureObject.h delete mode 120000 Pods/Headers/Private/Kiwi/KWGenericMatchEvaluator.h delete mode 120000 Pods/Headers/Private/Kiwi/KWGenericMatcher.h delete mode 120000 Pods/Headers/Private/Kiwi/KWGenericMatchingAdditions.h delete mode 120000 Pods/Headers/Private/Kiwi/KWHaveMatcher.h delete mode 120000 Pods/Headers/Private/Kiwi/KWHaveValueMatcher.h delete mode 120000 Pods/Headers/Private/Kiwi/KWInequalityMatcher.h delete mode 120000 Pods/Headers/Private/Kiwi/KWIntercept.h delete mode 120000 Pods/Headers/Private/Kiwi/KWInvocationCapturer.h delete mode 120000 Pods/Headers/Private/Kiwi/KWItNode.h delete mode 120000 Pods/Headers/Private/Kiwi/KWLet.h delete mode 120000 Pods/Headers/Private/Kiwi/KWLetNode.h delete mode 120000 Pods/Headers/Private/Kiwi/KWMatchVerifier.h delete mode 120000 Pods/Headers/Private/Kiwi/KWMatcher.h delete mode 120000 Pods/Headers/Private/Kiwi/KWMatcherFactory.h delete mode 120000 Pods/Headers/Private/Kiwi/KWMatchers.h delete mode 120000 Pods/Headers/Private/Kiwi/KWMatching.h delete mode 120000 Pods/Headers/Private/Kiwi/KWMessagePattern.h delete mode 120000 Pods/Headers/Private/Kiwi/KWMessageSpying.h delete mode 120000 Pods/Headers/Private/Kiwi/KWMessageTracker.h delete mode 120000 Pods/Headers/Private/Kiwi/KWMock.h delete mode 120000 Pods/Headers/Private/Kiwi/KWNilMatcher.h delete mode 120000 Pods/Headers/Private/Kiwi/KWNotificationMatcher.h delete mode 120000 Pods/Headers/Private/Kiwi/KWNull.h delete mode 120000 Pods/Headers/Private/Kiwi/KWObjCUtilities.h delete mode 120000 Pods/Headers/Private/Kiwi/KWPendingNode.h delete mode 120000 Pods/Headers/Private/Kiwi/KWProbe.h delete mode 120000 Pods/Headers/Private/Kiwi/KWProbePoller.h delete mode 120000 Pods/Headers/Private/Kiwi/KWReceiveMatcher.h delete mode 120000 Pods/Headers/Private/Kiwi/KWRegisterMatchersNode.h delete mode 120000 Pods/Headers/Private/Kiwi/KWRegularExpressionPatternMatcher.h delete mode 120000 Pods/Headers/Private/Kiwi/KWReporting.h delete mode 120000 Pods/Headers/Private/Kiwi/KWRespondToSelectorMatcher.h delete mode 120000 Pods/Headers/Private/Kiwi/KWSpec.h delete mode 120000 Pods/Headers/Private/Kiwi/KWStringContainsMatcher.h delete mode 120000 Pods/Headers/Private/Kiwi/KWStringPrefixMatcher.h delete mode 120000 Pods/Headers/Private/Kiwi/KWStringUtilities.h delete mode 120000 Pods/Headers/Private/Kiwi/KWStub.h delete mode 120000 Pods/Headers/Private/Kiwi/KWSuiteConfigurationBase.h delete mode 120000 Pods/Headers/Private/Kiwi/KWSymbolicator.h delete mode 120000 Pods/Headers/Private/Kiwi/KWUserDefinedMatcher.h delete mode 120000 Pods/Headers/Private/Kiwi/KWValue.h delete mode 120000 Pods/Headers/Private/Kiwi/KWVerifying.h delete mode 120000 Pods/Headers/Private/Kiwi/KWWorkarounds.h delete mode 120000 Pods/Headers/Private/Kiwi/Kiwi.h delete mode 120000 Pods/Headers/Private/Kiwi/KiwiBlockMacros.h delete mode 120000 Pods/Headers/Private/Kiwi/KiwiConfiguration.h delete mode 120000 Pods/Headers/Private/Kiwi/KiwiMacros.h delete mode 120000 Pods/Headers/Private/Kiwi/NSInvocation+KiwiAdditions.h delete mode 120000 Pods/Headers/Private/Kiwi/NSInvocation+OCMAdditions.h delete mode 120000 Pods/Headers/Private/Kiwi/NSMethodSignature+KiwiAdditions.h delete mode 120000 Pods/Headers/Private/Kiwi/NSNumber+KiwiAdditions.h delete mode 120000 Pods/Headers/Private/Kiwi/NSObject+KiwiMockAdditions.h delete mode 120000 Pods/Headers/Private/Kiwi/NSObject+KiwiSpyAdditions.h delete mode 120000 Pods/Headers/Private/Kiwi/NSObject+KiwiStubAdditions.h delete mode 120000 Pods/Headers/Private/Kiwi/NSObject+KiwiVerifierAdditions.h delete mode 120000 Pods/Headers/Private/Kiwi/NSProxy+KiwiVerifierAdditions.h delete mode 120000 Pods/Headers/Private/Kiwi/NSValue+KiwiAdditions.h delete mode 120000 Pods/Headers/Private/TransitionKit/TKEvent.h delete mode 120000 Pods/Headers/Private/TransitionKit/TKState.h delete mode 120000 Pods/Headers/Private/TransitionKit/TKStateMachine.h delete mode 120000 Pods/Headers/Private/TransitionKit/TKTransition.h delete mode 120000 Pods/Headers/Private/TransitionKit/TransitionKit.h delete mode 120000 Pods/Headers/Public/Kiwi/KWAfterAllNode.h delete mode 120000 Pods/Headers/Public/Kiwi/KWAfterEachNode.h delete mode 120000 Pods/Headers/Public/Kiwi/KWAny.h delete mode 120000 Pods/Headers/Public/Kiwi/KWAsyncVerifier.h delete mode 120000 Pods/Headers/Public/Kiwi/KWBeBetweenMatcher.h delete mode 120000 Pods/Headers/Public/Kiwi/KWBeEmptyMatcher.h delete mode 120000 Pods/Headers/Public/Kiwi/KWBeIdenticalToMatcher.h delete mode 120000 Pods/Headers/Public/Kiwi/KWBeKindOfClassMatcher.h delete mode 120000 Pods/Headers/Public/Kiwi/KWBeMemberOfClassMatcher.h delete mode 120000 Pods/Headers/Public/Kiwi/KWBeSubclassOfClassMatcher.h delete mode 120000 Pods/Headers/Public/Kiwi/KWBeTrueMatcher.h delete mode 120000 Pods/Headers/Public/Kiwi/KWBeWithinMatcher.h delete mode 120000 Pods/Headers/Public/Kiwi/KWBeZeroMatcher.h delete mode 120000 Pods/Headers/Public/Kiwi/KWBeforeAllNode.h delete mode 120000 Pods/Headers/Public/Kiwi/KWBeforeEachNode.h delete mode 120000 Pods/Headers/Public/Kiwi/KWBlock.h delete mode 120000 Pods/Headers/Public/Kiwi/KWBlockNode.h delete mode 120000 Pods/Headers/Public/Kiwi/KWBlockRaiseMatcher.h delete mode 120000 Pods/Headers/Public/Kiwi/KWCallSite.h delete mode 120000 Pods/Headers/Public/Kiwi/KWCaptureSpy.h delete mode 120000 Pods/Headers/Public/Kiwi/KWChangeMatcher.h delete mode 120000 Pods/Headers/Public/Kiwi/KWConformToProtocolMatcher.h delete mode 120000 Pods/Headers/Public/Kiwi/KWContainMatcher.h delete mode 120000 Pods/Headers/Public/Kiwi/KWContainStringMatcher.h delete mode 120000 Pods/Headers/Public/Kiwi/KWContextNode.h delete mode 120000 Pods/Headers/Public/Kiwi/KWCountType.h delete mode 120000 Pods/Headers/Public/Kiwi/KWDeviceInfo.h delete mode 120000 Pods/Headers/Public/Kiwi/KWEqualMatcher.h delete mode 120000 Pods/Headers/Public/Kiwi/KWExample.h delete mode 120000 Pods/Headers/Public/Kiwi/KWExampleDelegate.h delete mode 120000 Pods/Headers/Public/Kiwi/KWExampleNode.h delete mode 120000 Pods/Headers/Public/Kiwi/KWExampleNodeVisitor.h delete mode 120000 Pods/Headers/Public/Kiwi/KWExampleSuite.h delete mode 120000 Pods/Headers/Public/Kiwi/KWExampleSuiteBuilder.h delete mode 120000 Pods/Headers/Public/Kiwi/KWExistVerifier.h delete mode 120000 Pods/Headers/Public/Kiwi/KWExpectationType.h delete mode 120000 Pods/Headers/Public/Kiwi/KWFailure.h delete mode 120000 Pods/Headers/Public/Kiwi/KWFormatter.h delete mode 120000 Pods/Headers/Public/Kiwi/KWFutureObject.h delete mode 120000 Pods/Headers/Public/Kiwi/KWGenericMatchEvaluator.h delete mode 120000 Pods/Headers/Public/Kiwi/KWGenericMatcher.h delete mode 120000 Pods/Headers/Public/Kiwi/KWGenericMatchingAdditions.h delete mode 120000 Pods/Headers/Public/Kiwi/KWHaveMatcher.h delete mode 120000 Pods/Headers/Public/Kiwi/KWHaveValueMatcher.h delete mode 120000 Pods/Headers/Public/Kiwi/KWInequalityMatcher.h delete mode 120000 Pods/Headers/Public/Kiwi/KWIntercept.h delete mode 120000 Pods/Headers/Public/Kiwi/KWInvocationCapturer.h delete mode 120000 Pods/Headers/Public/Kiwi/KWItNode.h delete mode 120000 Pods/Headers/Public/Kiwi/KWLet.h delete mode 120000 Pods/Headers/Public/Kiwi/KWLetNode.h delete mode 120000 Pods/Headers/Public/Kiwi/KWMatchVerifier.h delete mode 120000 Pods/Headers/Public/Kiwi/KWMatcher.h delete mode 120000 Pods/Headers/Public/Kiwi/KWMatcherFactory.h delete mode 120000 Pods/Headers/Public/Kiwi/KWMatchers.h delete mode 120000 Pods/Headers/Public/Kiwi/KWMatching.h delete mode 120000 Pods/Headers/Public/Kiwi/KWMessagePattern.h delete mode 120000 Pods/Headers/Public/Kiwi/KWMessageSpying.h delete mode 120000 Pods/Headers/Public/Kiwi/KWMessageTracker.h delete mode 120000 Pods/Headers/Public/Kiwi/KWMock.h delete mode 120000 Pods/Headers/Public/Kiwi/KWNilMatcher.h delete mode 120000 Pods/Headers/Public/Kiwi/KWNotificationMatcher.h delete mode 120000 Pods/Headers/Public/Kiwi/KWNull.h delete mode 120000 Pods/Headers/Public/Kiwi/KWObjCUtilities.h delete mode 120000 Pods/Headers/Public/Kiwi/KWPendingNode.h delete mode 120000 Pods/Headers/Public/Kiwi/KWProbe.h delete mode 120000 Pods/Headers/Public/Kiwi/KWProbePoller.h delete mode 120000 Pods/Headers/Public/Kiwi/KWReceiveMatcher.h delete mode 120000 Pods/Headers/Public/Kiwi/KWRegisterMatchersNode.h delete mode 120000 Pods/Headers/Public/Kiwi/KWRegularExpressionPatternMatcher.h delete mode 120000 Pods/Headers/Public/Kiwi/KWReporting.h delete mode 120000 Pods/Headers/Public/Kiwi/KWRespondToSelectorMatcher.h delete mode 120000 Pods/Headers/Public/Kiwi/KWSpec.h delete mode 120000 Pods/Headers/Public/Kiwi/KWStringContainsMatcher.h delete mode 120000 Pods/Headers/Public/Kiwi/KWStringPrefixMatcher.h delete mode 120000 Pods/Headers/Public/Kiwi/KWStringUtilities.h delete mode 120000 Pods/Headers/Public/Kiwi/KWStub.h delete mode 120000 Pods/Headers/Public/Kiwi/KWSuiteConfigurationBase.h delete mode 120000 Pods/Headers/Public/Kiwi/KWSymbolicator.h delete mode 120000 Pods/Headers/Public/Kiwi/KWUserDefinedMatcher.h delete mode 120000 Pods/Headers/Public/Kiwi/KWValue.h delete mode 120000 Pods/Headers/Public/Kiwi/KWVerifying.h delete mode 120000 Pods/Headers/Public/Kiwi/KWWorkarounds.h delete mode 120000 Pods/Headers/Public/Kiwi/Kiwi.h delete mode 120000 Pods/Headers/Public/Kiwi/KiwiBlockMacros.h delete mode 120000 Pods/Headers/Public/Kiwi/KiwiConfiguration.h delete mode 120000 Pods/Headers/Public/Kiwi/KiwiMacros.h delete mode 120000 Pods/Headers/Public/Kiwi/NSInvocation+KiwiAdditions.h delete mode 120000 Pods/Headers/Public/Kiwi/NSInvocation+OCMAdditions.h delete mode 120000 Pods/Headers/Public/Kiwi/NSMethodSignature+KiwiAdditions.h delete mode 120000 Pods/Headers/Public/Kiwi/NSNumber+KiwiAdditions.h delete mode 120000 Pods/Headers/Public/Kiwi/NSObject+KiwiMockAdditions.h delete mode 120000 Pods/Headers/Public/Kiwi/NSObject+KiwiSpyAdditions.h delete mode 120000 Pods/Headers/Public/Kiwi/NSObject+KiwiStubAdditions.h delete mode 120000 Pods/Headers/Public/Kiwi/NSObject+KiwiVerifierAdditions.h delete mode 120000 Pods/Headers/Public/Kiwi/NSProxy+KiwiVerifierAdditions.h delete mode 120000 Pods/Headers/Public/Kiwi/NSValue+KiwiAdditions.h delete mode 120000 Pods/Headers/Public/TransitionKit/TKEvent.h delete mode 120000 Pods/Headers/Public/TransitionKit/TKState.h delete mode 120000 Pods/Headers/Public/TransitionKit/TKStateMachine.h delete mode 120000 Pods/Headers/Public/TransitionKit/TKTransition.h delete mode 120000 Pods/Headers/Public/TransitionKit/TransitionKit.h delete mode 100644 Pods/Kiwi/Classes/Config/KWAllTestsSuite.m delete mode 100644 Pods/Kiwi/Classes/Config/KWSuiteConfigurationBase.h delete mode 100644 Pods/Kiwi/Classes/Config/KWSuiteConfigurationBase.m delete mode 100644 Pods/Kiwi/Classes/Core/KWAny.h delete mode 100644 Pods/Kiwi/Classes/Core/KWAny.m delete mode 100644 Pods/Kiwi/Classes/Core/KWBlock.h delete mode 100644 Pods/Kiwi/Classes/Core/KWBlock.m delete mode 100644 Pods/Kiwi/Classes/Core/KWCallSite.h delete mode 100644 Pods/Kiwi/Classes/Core/KWCallSite.m delete mode 100644 Pods/Kiwi/Classes/Core/KWCaptureSpy.h delete mode 100644 Pods/Kiwi/Classes/Core/KWCaptureSpy.m delete mode 100644 Pods/Kiwi/Classes/Core/KWCountType.h delete mode 100644 Pods/Kiwi/Classes/Core/KWDeviceInfo.h delete mode 100644 Pods/Kiwi/Classes/Core/KWDeviceInfo.m delete mode 100644 Pods/Kiwi/Classes/Core/KWExample.h delete mode 100644 Pods/Kiwi/Classes/Core/KWExample.m delete mode 100644 Pods/Kiwi/Classes/Core/KWExampleDelegate.h delete mode 100644 Pods/Kiwi/Classes/Core/KWExampleNodeVisitor.h delete mode 100644 Pods/Kiwi/Classes/Core/KWExampleSuite.h delete mode 100644 Pods/Kiwi/Classes/Core/KWExampleSuite.m delete mode 100644 Pods/Kiwi/Classes/Core/KWExampleSuiteBuilder.h delete mode 100644 Pods/Kiwi/Classes/Core/KWExampleSuiteBuilder.m delete mode 100644 Pods/Kiwi/Classes/Core/KWExpectationType.h delete mode 100644 Pods/Kiwi/Classes/Core/KWFailure.h delete mode 100644 Pods/Kiwi/Classes/Core/KWFailure.m delete mode 100644 Pods/Kiwi/Classes/Core/KWFormatter.h delete mode 100644 Pods/Kiwi/Classes/Core/KWFormatter.m delete mode 100644 Pods/Kiwi/Classes/Core/KWFutureObject.h delete mode 100644 Pods/Kiwi/Classes/Core/KWFutureObject.m delete mode 100644 Pods/Kiwi/Classes/Core/KWInvocationCapturer.h delete mode 100644 Pods/Kiwi/Classes/Core/KWInvocationCapturer.m delete mode 100644 Pods/Kiwi/Classes/Core/KWLet.h delete mode 100644 Pods/Kiwi/Classes/Core/KWMatcher.h delete mode 100644 Pods/Kiwi/Classes/Core/KWMatcher.m delete mode 100644 Pods/Kiwi/Classes/Core/KWMatcherFactory.h delete mode 100644 Pods/Kiwi/Classes/Core/KWMatcherFactory.m delete mode 100644 Pods/Kiwi/Classes/Core/KWMatchers.h delete mode 100644 Pods/Kiwi/Classes/Core/KWMatchers.m delete mode 100644 Pods/Kiwi/Classes/Core/KWMatching.h delete mode 100644 Pods/Kiwi/Classes/Core/KWMessagePattern.h delete mode 100644 Pods/Kiwi/Classes/Core/KWMessagePattern.m delete mode 100644 Pods/Kiwi/Classes/Core/KWMessageSpying.h delete mode 100644 Pods/Kiwi/Classes/Core/KWMessageTracker.h delete mode 100644 Pods/Kiwi/Classes/Core/KWMessageTracker.m delete mode 100644 Pods/Kiwi/Classes/Core/KWNull.h delete mode 100644 Pods/Kiwi/Classes/Core/KWNull.m delete mode 100644 Pods/Kiwi/Classes/Core/KWObjCUtilities.h delete mode 100644 Pods/Kiwi/Classes/Core/KWObjCUtilities.m delete mode 100644 Pods/Kiwi/Classes/Core/KWProbe.h delete mode 100644 Pods/Kiwi/Classes/Core/KWProbePoller.h delete mode 100644 Pods/Kiwi/Classes/Core/KWProbePoller.m delete mode 100644 Pods/Kiwi/Classes/Core/KWReporting.h delete mode 100644 Pods/Kiwi/Classes/Core/KWSpec.h delete mode 100644 Pods/Kiwi/Classes/Core/KWSpec.m delete mode 100644 Pods/Kiwi/Classes/Core/KWStringUtilities.h delete mode 100644 Pods/Kiwi/Classes/Core/KWStringUtilities.m delete mode 100644 Pods/Kiwi/Classes/Core/KWSymbolicator.h delete mode 100644 Pods/Kiwi/Classes/Core/KWSymbolicator.m delete mode 100644 Pods/Kiwi/Classes/Core/KWValue.h delete mode 100644 Pods/Kiwi/Classes/Core/KWValue.m delete mode 100644 Pods/Kiwi/Classes/Core/KWWorkarounds.h delete mode 100644 Pods/Kiwi/Classes/Core/KWWorkarounds.m delete mode 100644 Pods/Kiwi/Classes/Core/Kiwi.h delete mode 100644 Pods/Kiwi/Classes/Core/KiwiBlockMacros.h delete mode 100644 Pods/Kiwi/Classes/Core/KiwiConfiguration.h delete mode 100644 Pods/Kiwi/Classes/Core/KiwiMacros.h delete mode 100644 Pods/Kiwi/Classes/Core/NSInvocation+KiwiAdditions.h delete mode 100644 Pods/Kiwi/Classes/Core/NSInvocation+KiwiAdditions.m delete mode 100644 Pods/Kiwi/Classes/Core/NSInvocation+OCMAdditions.h delete mode 100644 Pods/Kiwi/Classes/Core/NSInvocation+OCMAdditions.m delete mode 100644 Pods/Kiwi/Classes/Core/NSMethodSignature+KiwiAdditions.h delete mode 100644 Pods/Kiwi/Classes/Core/NSMethodSignature+KiwiAdditions.m delete mode 100644 Pods/Kiwi/Classes/Core/NSNumber+KiwiAdditions.h delete mode 100644 Pods/Kiwi/Classes/Core/NSNumber+KiwiAdditions.m delete mode 100644 Pods/Kiwi/Classes/Core/NSObject+KiwiSpyAdditions.h delete mode 100644 Pods/Kiwi/Classes/Core/NSObject+KiwiSpyAdditions.m delete mode 100644 Pods/Kiwi/Classes/Core/NSObject+KiwiVerifierAdditions.h delete mode 100644 Pods/Kiwi/Classes/Core/NSObject+KiwiVerifierAdditions.m delete mode 100644 Pods/Kiwi/Classes/Core/NSProxy+KiwiVerifierAdditions.h delete mode 100644 Pods/Kiwi/Classes/Core/NSProxy+KiwiVerifierAdditions.m delete mode 100644 Pods/Kiwi/Classes/Core/NSValue+KiwiAdditions.h delete mode 100644 Pods/Kiwi/Classes/Core/NSValue+KiwiAdditions.m delete mode 100644 Pods/Kiwi/Classes/Matchers/KWBeBetweenMatcher.h delete mode 100644 Pods/Kiwi/Classes/Matchers/KWBeBetweenMatcher.m delete mode 100644 Pods/Kiwi/Classes/Matchers/KWBeEmptyMatcher.h delete mode 100644 Pods/Kiwi/Classes/Matchers/KWBeEmptyMatcher.m delete mode 100644 Pods/Kiwi/Classes/Matchers/KWBeIdenticalToMatcher.h delete mode 100644 Pods/Kiwi/Classes/Matchers/KWBeIdenticalToMatcher.m delete mode 100644 Pods/Kiwi/Classes/Matchers/KWBeKindOfClassMatcher.h delete mode 100644 Pods/Kiwi/Classes/Matchers/KWBeKindOfClassMatcher.m delete mode 100644 Pods/Kiwi/Classes/Matchers/KWBeMemberOfClassMatcher.h delete mode 100644 Pods/Kiwi/Classes/Matchers/KWBeMemberOfClassMatcher.m delete mode 100644 Pods/Kiwi/Classes/Matchers/KWBeSubclassOfClassMatcher.h delete mode 100644 Pods/Kiwi/Classes/Matchers/KWBeSubclassOfClassMatcher.m delete mode 100644 Pods/Kiwi/Classes/Matchers/KWBeTrueMatcher.h delete mode 100644 Pods/Kiwi/Classes/Matchers/KWBeTrueMatcher.m delete mode 100644 Pods/Kiwi/Classes/Matchers/KWBeWithinMatcher.h delete mode 100644 Pods/Kiwi/Classes/Matchers/KWBeWithinMatcher.m delete mode 100644 Pods/Kiwi/Classes/Matchers/KWBeZeroMatcher.h delete mode 100644 Pods/Kiwi/Classes/Matchers/KWBeZeroMatcher.m delete mode 100644 Pods/Kiwi/Classes/Matchers/KWBlockRaiseMatcher.h delete mode 100644 Pods/Kiwi/Classes/Matchers/KWBlockRaiseMatcher.m delete mode 100644 Pods/Kiwi/Classes/Matchers/KWChangeMatcher.h delete mode 100644 Pods/Kiwi/Classes/Matchers/KWChangeMatcher.m delete mode 100644 Pods/Kiwi/Classes/Matchers/KWConformToProtocolMatcher.h delete mode 100644 Pods/Kiwi/Classes/Matchers/KWConformToProtocolMatcher.m delete mode 100644 Pods/Kiwi/Classes/Matchers/KWContainMatcher.h delete mode 100644 Pods/Kiwi/Classes/Matchers/KWContainMatcher.m delete mode 100644 Pods/Kiwi/Classes/Matchers/KWContainStringMatcher.h delete mode 100644 Pods/Kiwi/Classes/Matchers/KWContainStringMatcher.m delete mode 100644 Pods/Kiwi/Classes/Matchers/KWEqualMatcher.h delete mode 100644 Pods/Kiwi/Classes/Matchers/KWEqualMatcher.m delete mode 100644 Pods/Kiwi/Classes/Matchers/KWGenericMatchEvaluator.h delete mode 100644 Pods/Kiwi/Classes/Matchers/KWGenericMatchEvaluator.m delete mode 100644 Pods/Kiwi/Classes/Matchers/KWGenericMatcher.h delete mode 100644 Pods/Kiwi/Classes/Matchers/KWGenericMatcher.m delete mode 100644 Pods/Kiwi/Classes/Matchers/KWGenericMatchingAdditions.h delete mode 100644 Pods/Kiwi/Classes/Matchers/KWGenericMatchingAdditions.m delete mode 100644 Pods/Kiwi/Classes/Matchers/KWHaveMatcher.h delete mode 100644 Pods/Kiwi/Classes/Matchers/KWHaveMatcher.m delete mode 100644 Pods/Kiwi/Classes/Matchers/KWHaveValueMatcher.h delete mode 100644 Pods/Kiwi/Classes/Matchers/KWHaveValueMatcher.m delete mode 100644 Pods/Kiwi/Classes/Matchers/KWInequalityMatcher.h delete mode 100644 Pods/Kiwi/Classes/Matchers/KWInequalityMatcher.m delete mode 100644 Pods/Kiwi/Classes/Matchers/KWNilMatcher.h delete mode 100644 Pods/Kiwi/Classes/Matchers/KWNilMatcher.m delete mode 100644 Pods/Kiwi/Classes/Matchers/KWNotificationMatcher.h delete mode 100644 Pods/Kiwi/Classes/Matchers/KWNotificationMatcher.m delete mode 100644 Pods/Kiwi/Classes/Matchers/KWReceiveMatcher.h delete mode 100644 Pods/Kiwi/Classes/Matchers/KWReceiveMatcher.m delete mode 100644 Pods/Kiwi/Classes/Matchers/KWRegularExpressionPatternMatcher.h delete mode 100644 Pods/Kiwi/Classes/Matchers/KWRegularExpressionPatternMatcher.m delete mode 100644 Pods/Kiwi/Classes/Matchers/KWRespondToSelectorMatcher.h delete mode 100644 Pods/Kiwi/Classes/Matchers/KWRespondToSelectorMatcher.m delete mode 100644 Pods/Kiwi/Classes/Matchers/KWStringContainsMatcher.h delete mode 100644 Pods/Kiwi/Classes/Matchers/KWStringContainsMatcher.m delete mode 100644 Pods/Kiwi/Classes/Matchers/KWStringPrefixMatcher.h delete mode 100644 Pods/Kiwi/Classes/Matchers/KWStringPrefixMatcher.m delete mode 100644 Pods/Kiwi/Classes/Matchers/KWUserDefinedMatcher.h delete mode 100644 Pods/Kiwi/Classes/Matchers/KWUserDefinedMatcher.m delete mode 100644 Pods/Kiwi/Classes/Mocking/KWMock.h delete mode 100644 Pods/Kiwi/Classes/Mocking/KWMock.m delete mode 100644 Pods/Kiwi/Classes/Mocking/NSObject+KiwiMockAdditions.h delete mode 100644 Pods/Kiwi/Classes/Mocking/NSObject+KiwiMockAdditions.m delete mode 100644 Pods/Kiwi/Classes/Nodes/KWAfterAllNode.h delete mode 100644 Pods/Kiwi/Classes/Nodes/KWAfterAllNode.m delete mode 100644 Pods/Kiwi/Classes/Nodes/KWAfterEachNode.h delete mode 100644 Pods/Kiwi/Classes/Nodes/KWAfterEachNode.m delete mode 100644 Pods/Kiwi/Classes/Nodes/KWBeforeAllNode.h delete mode 100644 Pods/Kiwi/Classes/Nodes/KWBeforeAllNode.m delete mode 100644 Pods/Kiwi/Classes/Nodes/KWBeforeEachNode.h delete mode 100644 Pods/Kiwi/Classes/Nodes/KWBeforeEachNode.m delete mode 100644 Pods/Kiwi/Classes/Nodes/KWBlockNode.h delete mode 100644 Pods/Kiwi/Classes/Nodes/KWBlockNode.m delete mode 100644 Pods/Kiwi/Classes/Nodes/KWContextNode.h delete mode 100644 Pods/Kiwi/Classes/Nodes/KWContextNode.m delete mode 100644 Pods/Kiwi/Classes/Nodes/KWExampleNode.h delete mode 100644 Pods/Kiwi/Classes/Nodes/KWItNode.h delete mode 100644 Pods/Kiwi/Classes/Nodes/KWItNode.m delete mode 100644 Pods/Kiwi/Classes/Nodes/KWLetNode.h delete mode 100644 Pods/Kiwi/Classes/Nodes/KWLetNode.m delete mode 100644 Pods/Kiwi/Classes/Nodes/KWPendingNode.h delete mode 100644 Pods/Kiwi/Classes/Nodes/KWPendingNode.m delete mode 100644 Pods/Kiwi/Classes/Nodes/KWRegisterMatchersNode.h delete mode 100644 Pods/Kiwi/Classes/Nodes/KWRegisterMatchersNode.m delete mode 100644 Pods/Kiwi/Classes/Stubbing/KWIntercept.h delete mode 100644 Pods/Kiwi/Classes/Stubbing/KWIntercept.m delete mode 100644 Pods/Kiwi/Classes/Stubbing/KWStub.h delete mode 100644 Pods/Kiwi/Classes/Stubbing/KWStub.m delete mode 100644 Pods/Kiwi/Classes/Stubbing/NSObject+KiwiStubAdditions.h delete mode 100644 Pods/Kiwi/Classes/Stubbing/NSObject+KiwiStubAdditions.m delete mode 100644 Pods/Kiwi/Classes/Verifiers/KWAsyncVerifier.h delete mode 100644 Pods/Kiwi/Classes/Verifiers/KWAsyncVerifier.m delete mode 100644 Pods/Kiwi/Classes/Verifiers/KWExistVerifier.h delete mode 100644 Pods/Kiwi/Classes/Verifiers/KWExistVerifier.m delete mode 100644 Pods/Kiwi/Classes/Verifiers/KWMatchVerifier.h delete mode 100644 Pods/Kiwi/Classes/Verifiers/KWMatchVerifier.m delete mode 100644 Pods/Kiwi/Classes/Verifiers/KWVerifying.h delete mode 100644 Pods/Kiwi/License.txt delete mode 100644 Pods/Kiwi/Readme.md delete mode 100644 Pods/Local Podspecs/TransitionKit.podspec.json delete mode 100644 Pods/Manifest.lock delete mode 100644 Pods/Pods.xcodeproj/project.pbxproj delete mode 100644 Pods/Target Support Files/Kiwi-OSX/Kiwi-OSX-dummy.m delete mode 100644 Pods/Target Support Files/Kiwi-OSX/Kiwi-OSX-prefix.pch delete mode 100644 Pods/Target Support Files/Kiwi-OSX/Kiwi-OSX.xcconfig delete mode 100644 Pods/Target Support Files/Kiwi-iOS/Kiwi-iOS-dummy.m delete mode 100644 Pods/Target Support Files/Kiwi-iOS/Kiwi-iOS-prefix.pch delete mode 100644 Pods/Target Support Files/Kiwi-iOS/Kiwi-iOS.xcconfig delete mode 100644 Pods/Target Support Files/Pods-Tests-TransitionKit iOS Tests/Pods-Tests-TransitionKit iOS Tests-acknowledgements.markdown delete mode 100644 Pods/Target Support Files/Pods-Tests-TransitionKit iOS Tests/Pods-Tests-TransitionKit iOS Tests-acknowledgements.plist delete mode 100644 Pods/Target Support Files/Pods-Tests-TransitionKit iOS Tests/Pods-Tests-TransitionKit iOS Tests-dummy.m delete mode 100755 Pods/Target Support Files/Pods-Tests-TransitionKit iOS Tests/Pods-Tests-TransitionKit iOS Tests-frameworks.sh delete mode 100755 Pods/Target Support Files/Pods-Tests-TransitionKit iOS Tests/Pods-Tests-TransitionKit iOS Tests-resources.sh delete mode 100644 Pods/Target Support Files/Pods-Tests-TransitionKit iOS Tests/Pods-Tests-TransitionKit iOS Tests.debug.xcconfig delete mode 100644 Pods/Target Support Files/Pods-Tests-TransitionKit iOS Tests/Pods-Tests-TransitionKit iOS Tests.release.xcconfig delete mode 100644 Pods/Target Support Files/Pods-Tests-TransitionKit macOS Tests/Pods-Tests-TransitionKit macOS Tests-acknowledgements.markdown delete mode 100644 Pods/Target Support Files/Pods-Tests-TransitionKit macOS Tests/Pods-Tests-TransitionKit macOS Tests-acknowledgements.plist delete mode 100644 Pods/Target Support Files/Pods-Tests-TransitionKit macOS Tests/Pods-Tests-TransitionKit macOS Tests-dummy.m delete mode 100755 Pods/Target Support Files/Pods-Tests-TransitionKit macOS Tests/Pods-Tests-TransitionKit macOS Tests-frameworks.sh delete mode 100755 Pods/Target Support Files/Pods-Tests-TransitionKit macOS Tests/Pods-Tests-TransitionKit macOS Tests-resources.sh delete mode 100644 Pods/Target Support Files/Pods-Tests-TransitionKit macOS Tests/Pods-Tests-TransitionKit macOS Tests.debug.xcconfig delete mode 100644 Pods/Target Support Files/Pods-Tests-TransitionKit macOS Tests/Pods-Tests-TransitionKit macOS Tests.release.xcconfig delete mode 100644 Pods/Target Support Files/TransitionKit-OSX/TransitionKit-OSX-dummy.m delete mode 100644 Pods/Target Support Files/TransitionKit-OSX/TransitionKit-OSX-prefix.pch delete mode 100644 Pods/Target Support Files/TransitionKit-OSX/TransitionKit-OSX.xcconfig delete mode 100644 Pods/Target Support Files/TransitionKit-iOS/TransitionKit-iOS-dummy.m delete mode 100644 Pods/Target Support Files/TransitionKit-iOS/TransitionKit-iOS-prefix.pch delete mode 100644 Pods/Target Support Files/TransitionKit-iOS/TransitionKit-iOS.xcconfig diff --git a/.travis.yml b/.travis.yml index 76bbf7a..0725b10 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,6 +12,11 @@ env: - DESTINATION="OS=9.0,name=iPad 2" SCHEME="$IOS_FRAMEWORK_SCHEME" RUN_TESTS="YES" - DESTINATION="arch=x86_64" SCHEME="$MACOS_FRAMEWORK_SCHEME" RUN_TESTS="YES" +before_install: + - brew update + - brew outdated carthage || brew upgrade carthage +before_script: + - carthage bootstrap script: - set -o pipefail - xcodebuild -version diff --git a/Cartfile.private b/Cartfile.private new file mode 100644 index 0000000..70a30a5 --- /dev/null +++ b/Cartfile.private @@ -0,0 +1 @@ +github "kiwi-bdd/Kiwi" diff --git a/Cartfile.resolved b/Cartfile.resolved new file mode 100644 index 0000000..e65fc98 --- /dev/null +++ b/Cartfile.resolved @@ -0,0 +1 @@ +github "kiwi-bdd/Kiwi" "v2.4.0" diff --git a/Podfile b/Podfile deleted file mode 100644 index 166a662..0000000 --- a/Podfile +++ /dev/null @@ -1,12 +0,0 @@ -abstract_target 'Tests' do - pod 'TransitionKit', path: '.' - pod 'Kiwi', '~> 2.3.0' - - target 'TransitionKit iOS Tests' do - platform :ios, '6.0' - end - - target 'TransitionKit macOS Tests' do - platform :osx, '10.7' - end -end diff --git a/Podfile.lock b/Podfile.lock deleted file mode 100644 index 75d8275..0000000 --- a/Podfile.lock +++ /dev/null @@ -1,19 +0,0 @@ -PODS: - - Kiwi (2.3.1) - - TransitionKit (2.2.2) - -DEPENDENCIES: - - Kiwi (~> 2.3.0) - - TransitionKit (from `.`) - -EXTERNAL SOURCES: - TransitionKit: - :path: "." - -SPEC CHECKSUMS: - Kiwi: f038a6c61f7a9e4d7766bff5717aa3b3fdb75f55 - TransitionKit: 19d0306ff077193330e9541a0fe83a1b9d60b51a - -PODFILE CHECKSUM: 9d722f9d462a2ecbe03c5482c8efe2da293aec9c - -COCOAPODS: 1.2.0 diff --git a/Pods/Headers/Private/Kiwi/KWAfterAllNode.h b/Pods/Headers/Private/Kiwi/KWAfterAllNode.h deleted file mode 120000 index 01374b7..0000000 --- a/Pods/Headers/Private/Kiwi/KWAfterAllNode.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Nodes/KWAfterAllNode.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWAfterEachNode.h b/Pods/Headers/Private/Kiwi/KWAfterEachNode.h deleted file mode 120000 index 759284d..0000000 --- a/Pods/Headers/Private/Kiwi/KWAfterEachNode.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Nodes/KWAfterEachNode.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWAny.h b/Pods/Headers/Private/Kiwi/KWAny.h deleted file mode 120000 index 58f2c5c..0000000 --- a/Pods/Headers/Private/Kiwi/KWAny.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KWAny.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWAsyncVerifier.h b/Pods/Headers/Private/Kiwi/KWAsyncVerifier.h deleted file mode 120000 index d79b1b9..0000000 --- a/Pods/Headers/Private/Kiwi/KWAsyncVerifier.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Verifiers/KWAsyncVerifier.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWBeBetweenMatcher.h b/Pods/Headers/Private/Kiwi/KWBeBetweenMatcher.h deleted file mode 120000 index 20f47b4..0000000 --- a/Pods/Headers/Private/Kiwi/KWBeBetweenMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Matchers/KWBeBetweenMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWBeEmptyMatcher.h b/Pods/Headers/Private/Kiwi/KWBeEmptyMatcher.h deleted file mode 120000 index 9e0e648..0000000 --- a/Pods/Headers/Private/Kiwi/KWBeEmptyMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Matchers/KWBeEmptyMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWBeIdenticalToMatcher.h b/Pods/Headers/Private/Kiwi/KWBeIdenticalToMatcher.h deleted file mode 120000 index f881624..0000000 --- a/Pods/Headers/Private/Kiwi/KWBeIdenticalToMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Matchers/KWBeIdenticalToMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWBeKindOfClassMatcher.h b/Pods/Headers/Private/Kiwi/KWBeKindOfClassMatcher.h deleted file mode 120000 index cb1ba8f..0000000 --- a/Pods/Headers/Private/Kiwi/KWBeKindOfClassMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Matchers/KWBeKindOfClassMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWBeMemberOfClassMatcher.h b/Pods/Headers/Private/Kiwi/KWBeMemberOfClassMatcher.h deleted file mode 120000 index cbd60b1..0000000 --- a/Pods/Headers/Private/Kiwi/KWBeMemberOfClassMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Matchers/KWBeMemberOfClassMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWBeSubclassOfClassMatcher.h b/Pods/Headers/Private/Kiwi/KWBeSubclassOfClassMatcher.h deleted file mode 120000 index 5b22213..0000000 --- a/Pods/Headers/Private/Kiwi/KWBeSubclassOfClassMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Matchers/KWBeSubclassOfClassMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWBeTrueMatcher.h b/Pods/Headers/Private/Kiwi/KWBeTrueMatcher.h deleted file mode 120000 index 77f4eca..0000000 --- a/Pods/Headers/Private/Kiwi/KWBeTrueMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Matchers/KWBeTrueMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWBeWithinMatcher.h b/Pods/Headers/Private/Kiwi/KWBeWithinMatcher.h deleted file mode 120000 index 9e88024..0000000 --- a/Pods/Headers/Private/Kiwi/KWBeWithinMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Matchers/KWBeWithinMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWBeZeroMatcher.h b/Pods/Headers/Private/Kiwi/KWBeZeroMatcher.h deleted file mode 120000 index 39250c8..0000000 --- a/Pods/Headers/Private/Kiwi/KWBeZeroMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Matchers/KWBeZeroMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWBeforeAllNode.h b/Pods/Headers/Private/Kiwi/KWBeforeAllNode.h deleted file mode 120000 index 4d5a8e2..0000000 --- a/Pods/Headers/Private/Kiwi/KWBeforeAllNode.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Nodes/KWBeforeAllNode.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWBeforeEachNode.h b/Pods/Headers/Private/Kiwi/KWBeforeEachNode.h deleted file mode 120000 index fccc14c..0000000 --- a/Pods/Headers/Private/Kiwi/KWBeforeEachNode.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Nodes/KWBeforeEachNode.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWBlock.h b/Pods/Headers/Private/Kiwi/KWBlock.h deleted file mode 120000 index 56d2ae6..0000000 --- a/Pods/Headers/Private/Kiwi/KWBlock.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KWBlock.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWBlockNode.h b/Pods/Headers/Private/Kiwi/KWBlockNode.h deleted file mode 120000 index bc56278..0000000 --- a/Pods/Headers/Private/Kiwi/KWBlockNode.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Nodes/KWBlockNode.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWBlockRaiseMatcher.h b/Pods/Headers/Private/Kiwi/KWBlockRaiseMatcher.h deleted file mode 120000 index 0cb1562..0000000 --- a/Pods/Headers/Private/Kiwi/KWBlockRaiseMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Matchers/KWBlockRaiseMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWCallSite.h b/Pods/Headers/Private/Kiwi/KWCallSite.h deleted file mode 120000 index a10e1f9..0000000 --- a/Pods/Headers/Private/Kiwi/KWCallSite.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KWCallSite.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWCaptureSpy.h b/Pods/Headers/Private/Kiwi/KWCaptureSpy.h deleted file mode 120000 index a8db34e..0000000 --- a/Pods/Headers/Private/Kiwi/KWCaptureSpy.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KWCaptureSpy.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWChangeMatcher.h b/Pods/Headers/Private/Kiwi/KWChangeMatcher.h deleted file mode 120000 index b4f8a1d..0000000 --- a/Pods/Headers/Private/Kiwi/KWChangeMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Matchers/KWChangeMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWConformToProtocolMatcher.h b/Pods/Headers/Private/Kiwi/KWConformToProtocolMatcher.h deleted file mode 120000 index 593c408..0000000 --- a/Pods/Headers/Private/Kiwi/KWConformToProtocolMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Matchers/KWConformToProtocolMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWContainMatcher.h b/Pods/Headers/Private/Kiwi/KWContainMatcher.h deleted file mode 120000 index a5b19ea..0000000 --- a/Pods/Headers/Private/Kiwi/KWContainMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Matchers/KWContainMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWContainStringMatcher.h b/Pods/Headers/Private/Kiwi/KWContainStringMatcher.h deleted file mode 120000 index a35f824..0000000 --- a/Pods/Headers/Private/Kiwi/KWContainStringMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Matchers/KWContainStringMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWContextNode.h b/Pods/Headers/Private/Kiwi/KWContextNode.h deleted file mode 120000 index 0094504..0000000 --- a/Pods/Headers/Private/Kiwi/KWContextNode.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Nodes/KWContextNode.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWCountType.h b/Pods/Headers/Private/Kiwi/KWCountType.h deleted file mode 120000 index 8085d02..0000000 --- a/Pods/Headers/Private/Kiwi/KWCountType.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KWCountType.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWDeviceInfo.h b/Pods/Headers/Private/Kiwi/KWDeviceInfo.h deleted file mode 120000 index c3a443c..0000000 --- a/Pods/Headers/Private/Kiwi/KWDeviceInfo.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KWDeviceInfo.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWEqualMatcher.h b/Pods/Headers/Private/Kiwi/KWEqualMatcher.h deleted file mode 120000 index c8e8824..0000000 --- a/Pods/Headers/Private/Kiwi/KWEqualMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Matchers/KWEqualMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWExample.h b/Pods/Headers/Private/Kiwi/KWExample.h deleted file mode 120000 index a54de2e..0000000 --- a/Pods/Headers/Private/Kiwi/KWExample.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KWExample.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWExampleDelegate.h b/Pods/Headers/Private/Kiwi/KWExampleDelegate.h deleted file mode 120000 index 4d0f763..0000000 --- a/Pods/Headers/Private/Kiwi/KWExampleDelegate.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KWExampleDelegate.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWExampleNode.h b/Pods/Headers/Private/Kiwi/KWExampleNode.h deleted file mode 120000 index df62cd4..0000000 --- a/Pods/Headers/Private/Kiwi/KWExampleNode.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Nodes/KWExampleNode.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWExampleNodeVisitor.h b/Pods/Headers/Private/Kiwi/KWExampleNodeVisitor.h deleted file mode 120000 index 2452186..0000000 --- a/Pods/Headers/Private/Kiwi/KWExampleNodeVisitor.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KWExampleNodeVisitor.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWExampleSuite.h b/Pods/Headers/Private/Kiwi/KWExampleSuite.h deleted file mode 120000 index c4075cf..0000000 --- a/Pods/Headers/Private/Kiwi/KWExampleSuite.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KWExampleSuite.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWExampleSuiteBuilder.h b/Pods/Headers/Private/Kiwi/KWExampleSuiteBuilder.h deleted file mode 120000 index 60bd385..0000000 --- a/Pods/Headers/Private/Kiwi/KWExampleSuiteBuilder.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KWExampleSuiteBuilder.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWExistVerifier.h b/Pods/Headers/Private/Kiwi/KWExistVerifier.h deleted file mode 120000 index a0c1eb8..0000000 --- a/Pods/Headers/Private/Kiwi/KWExistVerifier.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Verifiers/KWExistVerifier.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWExpectationType.h b/Pods/Headers/Private/Kiwi/KWExpectationType.h deleted file mode 120000 index d517aff..0000000 --- a/Pods/Headers/Private/Kiwi/KWExpectationType.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KWExpectationType.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWFailure.h b/Pods/Headers/Private/Kiwi/KWFailure.h deleted file mode 120000 index 2689b98..0000000 --- a/Pods/Headers/Private/Kiwi/KWFailure.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KWFailure.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWFormatter.h b/Pods/Headers/Private/Kiwi/KWFormatter.h deleted file mode 120000 index 048c515..0000000 --- a/Pods/Headers/Private/Kiwi/KWFormatter.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KWFormatter.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWFutureObject.h b/Pods/Headers/Private/Kiwi/KWFutureObject.h deleted file mode 120000 index 5b5d5db..0000000 --- a/Pods/Headers/Private/Kiwi/KWFutureObject.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KWFutureObject.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWGenericMatchEvaluator.h b/Pods/Headers/Private/Kiwi/KWGenericMatchEvaluator.h deleted file mode 120000 index 253040a..0000000 --- a/Pods/Headers/Private/Kiwi/KWGenericMatchEvaluator.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Matchers/KWGenericMatchEvaluator.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWGenericMatcher.h b/Pods/Headers/Private/Kiwi/KWGenericMatcher.h deleted file mode 120000 index 865f922..0000000 --- a/Pods/Headers/Private/Kiwi/KWGenericMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Matchers/KWGenericMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWGenericMatchingAdditions.h b/Pods/Headers/Private/Kiwi/KWGenericMatchingAdditions.h deleted file mode 120000 index 8a33647..0000000 --- a/Pods/Headers/Private/Kiwi/KWGenericMatchingAdditions.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Matchers/KWGenericMatchingAdditions.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWHaveMatcher.h b/Pods/Headers/Private/Kiwi/KWHaveMatcher.h deleted file mode 120000 index e1c3aa5..0000000 --- a/Pods/Headers/Private/Kiwi/KWHaveMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Matchers/KWHaveMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWHaveValueMatcher.h b/Pods/Headers/Private/Kiwi/KWHaveValueMatcher.h deleted file mode 120000 index 7eaadc2..0000000 --- a/Pods/Headers/Private/Kiwi/KWHaveValueMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Matchers/KWHaveValueMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWInequalityMatcher.h b/Pods/Headers/Private/Kiwi/KWInequalityMatcher.h deleted file mode 120000 index 88b6d4f..0000000 --- a/Pods/Headers/Private/Kiwi/KWInequalityMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Matchers/KWInequalityMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWIntercept.h b/Pods/Headers/Private/Kiwi/KWIntercept.h deleted file mode 120000 index a5520c5..0000000 --- a/Pods/Headers/Private/Kiwi/KWIntercept.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Stubbing/KWIntercept.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWInvocationCapturer.h b/Pods/Headers/Private/Kiwi/KWInvocationCapturer.h deleted file mode 120000 index 493a954..0000000 --- a/Pods/Headers/Private/Kiwi/KWInvocationCapturer.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KWInvocationCapturer.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWItNode.h b/Pods/Headers/Private/Kiwi/KWItNode.h deleted file mode 120000 index 65394c3..0000000 --- a/Pods/Headers/Private/Kiwi/KWItNode.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Nodes/KWItNode.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWLet.h b/Pods/Headers/Private/Kiwi/KWLet.h deleted file mode 120000 index eaa3e21..0000000 --- a/Pods/Headers/Private/Kiwi/KWLet.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KWLet.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWLetNode.h b/Pods/Headers/Private/Kiwi/KWLetNode.h deleted file mode 120000 index 3826b26..0000000 --- a/Pods/Headers/Private/Kiwi/KWLetNode.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Nodes/KWLetNode.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWMatchVerifier.h b/Pods/Headers/Private/Kiwi/KWMatchVerifier.h deleted file mode 120000 index 3cc1e00..0000000 --- a/Pods/Headers/Private/Kiwi/KWMatchVerifier.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Verifiers/KWMatchVerifier.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWMatcher.h b/Pods/Headers/Private/Kiwi/KWMatcher.h deleted file mode 120000 index b2c279a..0000000 --- a/Pods/Headers/Private/Kiwi/KWMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KWMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWMatcherFactory.h b/Pods/Headers/Private/Kiwi/KWMatcherFactory.h deleted file mode 120000 index 29678fb..0000000 --- a/Pods/Headers/Private/Kiwi/KWMatcherFactory.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KWMatcherFactory.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWMatchers.h b/Pods/Headers/Private/Kiwi/KWMatchers.h deleted file mode 120000 index 8276cf6..0000000 --- a/Pods/Headers/Private/Kiwi/KWMatchers.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KWMatchers.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWMatching.h b/Pods/Headers/Private/Kiwi/KWMatching.h deleted file mode 120000 index 218263e..0000000 --- a/Pods/Headers/Private/Kiwi/KWMatching.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KWMatching.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWMessagePattern.h b/Pods/Headers/Private/Kiwi/KWMessagePattern.h deleted file mode 120000 index 0372a51..0000000 --- a/Pods/Headers/Private/Kiwi/KWMessagePattern.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KWMessagePattern.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWMessageSpying.h b/Pods/Headers/Private/Kiwi/KWMessageSpying.h deleted file mode 120000 index 031408b..0000000 --- a/Pods/Headers/Private/Kiwi/KWMessageSpying.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KWMessageSpying.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWMessageTracker.h b/Pods/Headers/Private/Kiwi/KWMessageTracker.h deleted file mode 120000 index 7d115f7..0000000 --- a/Pods/Headers/Private/Kiwi/KWMessageTracker.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KWMessageTracker.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWMock.h b/Pods/Headers/Private/Kiwi/KWMock.h deleted file mode 120000 index 022af92..0000000 --- a/Pods/Headers/Private/Kiwi/KWMock.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Mocking/KWMock.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWNilMatcher.h b/Pods/Headers/Private/Kiwi/KWNilMatcher.h deleted file mode 120000 index 6fd7ad2..0000000 --- a/Pods/Headers/Private/Kiwi/KWNilMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Matchers/KWNilMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWNotificationMatcher.h b/Pods/Headers/Private/Kiwi/KWNotificationMatcher.h deleted file mode 120000 index 3df422a..0000000 --- a/Pods/Headers/Private/Kiwi/KWNotificationMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Matchers/KWNotificationMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWNull.h b/Pods/Headers/Private/Kiwi/KWNull.h deleted file mode 120000 index c579730..0000000 --- a/Pods/Headers/Private/Kiwi/KWNull.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KWNull.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWObjCUtilities.h b/Pods/Headers/Private/Kiwi/KWObjCUtilities.h deleted file mode 120000 index d1f30e1..0000000 --- a/Pods/Headers/Private/Kiwi/KWObjCUtilities.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KWObjCUtilities.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWPendingNode.h b/Pods/Headers/Private/Kiwi/KWPendingNode.h deleted file mode 120000 index c8c7abc..0000000 --- a/Pods/Headers/Private/Kiwi/KWPendingNode.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Nodes/KWPendingNode.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWProbe.h b/Pods/Headers/Private/Kiwi/KWProbe.h deleted file mode 120000 index 4a6ceaf..0000000 --- a/Pods/Headers/Private/Kiwi/KWProbe.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KWProbe.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWProbePoller.h b/Pods/Headers/Private/Kiwi/KWProbePoller.h deleted file mode 120000 index f8df179..0000000 --- a/Pods/Headers/Private/Kiwi/KWProbePoller.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KWProbePoller.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWReceiveMatcher.h b/Pods/Headers/Private/Kiwi/KWReceiveMatcher.h deleted file mode 120000 index a727a53..0000000 --- a/Pods/Headers/Private/Kiwi/KWReceiveMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Matchers/KWReceiveMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWRegisterMatchersNode.h b/Pods/Headers/Private/Kiwi/KWRegisterMatchersNode.h deleted file mode 120000 index f0a1dcd..0000000 --- a/Pods/Headers/Private/Kiwi/KWRegisterMatchersNode.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Nodes/KWRegisterMatchersNode.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWRegularExpressionPatternMatcher.h b/Pods/Headers/Private/Kiwi/KWRegularExpressionPatternMatcher.h deleted file mode 120000 index 776f719..0000000 --- a/Pods/Headers/Private/Kiwi/KWRegularExpressionPatternMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Matchers/KWRegularExpressionPatternMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWReporting.h b/Pods/Headers/Private/Kiwi/KWReporting.h deleted file mode 120000 index cb55a02..0000000 --- a/Pods/Headers/Private/Kiwi/KWReporting.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KWReporting.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWRespondToSelectorMatcher.h b/Pods/Headers/Private/Kiwi/KWRespondToSelectorMatcher.h deleted file mode 120000 index 9f44022..0000000 --- a/Pods/Headers/Private/Kiwi/KWRespondToSelectorMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Matchers/KWRespondToSelectorMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWSpec.h b/Pods/Headers/Private/Kiwi/KWSpec.h deleted file mode 120000 index 6d3c677..0000000 --- a/Pods/Headers/Private/Kiwi/KWSpec.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KWSpec.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWStringContainsMatcher.h b/Pods/Headers/Private/Kiwi/KWStringContainsMatcher.h deleted file mode 120000 index 617a623..0000000 --- a/Pods/Headers/Private/Kiwi/KWStringContainsMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Matchers/KWStringContainsMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWStringPrefixMatcher.h b/Pods/Headers/Private/Kiwi/KWStringPrefixMatcher.h deleted file mode 120000 index 3f4ff3b..0000000 --- a/Pods/Headers/Private/Kiwi/KWStringPrefixMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Matchers/KWStringPrefixMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWStringUtilities.h b/Pods/Headers/Private/Kiwi/KWStringUtilities.h deleted file mode 120000 index 76c1a3c..0000000 --- a/Pods/Headers/Private/Kiwi/KWStringUtilities.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KWStringUtilities.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWStub.h b/Pods/Headers/Private/Kiwi/KWStub.h deleted file mode 120000 index 5193213..0000000 --- a/Pods/Headers/Private/Kiwi/KWStub.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Stubbing/KWStub.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWSuiteConfigurationBase.h b/Pods/Headers/Private/Kiwi/KWSuiteConfigurationBase.h deleted file mode 120000 index 1c4e45b..0000000 --- a/Pods/Headers/Private/Kiwi/KWSuiteConfigurationBase.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Config/KWSuiteConfigurationBase.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWSymbolicator.h b/Pods/Headers/Private/Kiwi/KWSymbolicator.h deleted file mode 120000 index 4d43085..0000000 --- a/Pods/Headers/Private/Kiwi/KWSymbolicator.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KWSymbolicator.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWUserDefinedMatcher.h b/Pods/Headers/Private/Kiwi/KWUserDefinedMatcher.h deleted file mode 120000 index 0dac6b3..0000000 --- a/Pods/Headers/Private/Kiwi/KWUserDefinedMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Matchers/KWUserDefinedMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWValue.h b/Pods/Headers/Private/Kiwi/KWValue.h deleted file mode 120000 index 0e28e06..0000000 --- a/Pods/Headers/Private/Kiwi/KWValue.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KWValue.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWVerifying.h b/Pods/Headers/Private/Kiwi/KWVerifying.h deleted file mode 120000 index 5724e73..0000000 --- a/Pods/Headers/Private/Kiwi/KWVerifying.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Verifiers/KWVerifying.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KWWorkarounds.h b/Pods/Headers/Private/Kiwi/KWWorkarounds.h deleted file mode 120000 index d2033a1..0000000 --- a/Pods/Headers/Private/Kiwi/KWWorkarounds.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KWWorkarounds.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/Kiwi.h b/Pods/Headers/Private/Kiwi/Kiwi.h deleted file mode 120000 index a665ef2..0000000 --- a/Pods/Headers/Private/Kiwi/Kiwi.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/Kiwi.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KiwiBlockMacros.h b/Pods/Headers/Private/Kiwi/KiwiBlockMacros.h deleted file mode 120000 index b61d992..0000000 --- a/Pods/Headers/Private/Kiwi/KiwiBlockMacros.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KiwiBlockMacros.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KiwiConfiguration.h b/Pods/Headers/Private/Kiwi/KiwiConfiguration.h deleted file mode 120000 index b051eaa..0000000 --- a/Pods/Headers/Private/Kiwi/KiwiConfiguration.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KiwiConfiguration.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/KiwiMacros.h b/Pods/Headers/Private/Kiwi/KiwiMacros.h deleted file mode 120000 index bb83872..0000000 --- a/Pods/Headers/Private/Kiwi/KiwiMacros.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KiwiMacros.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/NSInvocation+KiwiAdditions.h b/Pods/Headers/Private/Kiwi/NSInvocation+KiwiAdditions.h deleted file mode 120000 index 95c446d..0000000 --- a/Pods/Headers/Private/Kiwi/NSInvocation+KiwiAdditions.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/NSInvocation+KiwiAdditions.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/NSInvocation+OCMAdditions.h b/Pods/Headers/Private/Kiwi/NSInvocation+OCMAdditions.h deleted file mode 120000 index df17ca4..0000000 --- a/Pods/Headers/Private/Kiwi/NSInvocation+OCMAdditions.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/NSInvocation+OCMAdditions.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/NSMethodSignature+KiwiAdditions.h b/Pods/Headers/Private/Kiwi/NSMethodSignature+KiwiAdditions.h deleted file mode 120000 index 7d21a1a..0000000 --- a/Pods/Headers/Private/Kiwi/NSMethodSignature+KiwiAdditions.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/NSMethodSignature+KiwiAdditions.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/NSNumber+KiwiAdditions.h b/Pods/Headers/Private/Kiwi/NSNumber+KiwiAdditions.h deleted file mode 120000 index a7fcdd7..0000000 --- a/Pods/Headers/Private/Kiwi/NSNumber+KiwiAdditions.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/NSNumber+KiwiAdditions.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/NSObject+KiwiMockAdditions.h b/Pods/Headers/Private/Kiwi/NSObject+KiwiMockAdditions.h deleted file mode 120000 index c5b6237..0000000 --- a/Pods/Headers/Private/Kiwi/NSObject+KiwiMockAdditions.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Mocking/NSObject+KiwiMockAdditions.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/NSObject+KiwiSpyAdditions.h b/Pods/Headers/Private/Kiwi/NSObject+KiwiSpyAdditions.h deleted file mode 120000 index 82594f1..0000000 --- a/Pods/Headers/Private/Kiwi/NSObject+KiwiSpyAdditions.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/NSObject+KiwiSpyAdditions.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/NSObject+KiwiStubAdditions.h b/Pods/Headers/Private/Kiwi/NSObject+KiwiStubAdditions.h deleted file mode 120000 index 29e7521..0000000 --- a/Pods/Headers/Private/Kiwi/NSObject+KiwiStubAdditions.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Stubbing/NSObject+KiwiStubAdditions.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/NSObject+KiwiVerifierAdditions.h b/Pods/Headers/Private/Kiwi/NSObject+KiwiVerifierAdditions.h deleted file mode 120000 index f08d30f..0000000 --- a/Pods/Headers/Private/Kiwi/NSObject+KiwiVerifierAdditions.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/NSObject+KiwiVerifierAdditions.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/NSProxy+KiwiVerifierAdditions.h b/Pods/Headers/Private/Kiwi/NSProxy+KiwiVerifierAdditions.h deleted file mode 120000 index 3e9e83e..0000000 --- a/Pods/Headers/Private/Kiwi/NSProxy+KiwiVerifierAdditions.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/NSProxy+KiwiVerifierAdditions.h \ No newline at end of file diff --git a/Pods/Headers/Private/Kiwi/NSValue+KiwiAdditions.h b/Pods/Headers/Private/Kiwi/NSValue+KiwiAdditions.h deleted file mode 120000 index d2a5609..0000000 --- a/Pods/Headers/Private/Kiwi/NSValue+KiwiAdditions.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/NSValue+KiwiAdditions.h \ No newline at end of file diff --git a/Pods/Headers/Private/TransitionKit/TKEvent.h b/Pods/Headers/Private/TransitionKit/TKEvent.h deleted file mode 120000 index 3637d73..0000000 --- a/Pods/Headers/Private/TransitionKit/TKEvent.h +++ /dev/null @@ -1 +0,0 @@ -../../../../Code/TKEvent.h \ No newline at end of file diff --git a/Pods/Headers/Private/TransitionKit/TKState.h b/Pods/Headers/Private/TransitionKit/TKState.h deleted file mode 120000 index 81dd874..0000000 --- a/Pods/Headers/Private/TransitionKit/TKState.h +++ /dev/null @@ -1 +0,0 @@ -../../../../Code/TKState.h \ No newline at end of file diff --git a/Pods/Headers/Private/TransitionKit/TKStateMachine.h b/Pods/Headers/Private/TransitionKit/TKStateMachine.h deleted file mode 120000 index 5f5947c..0000000 --- a/Pods/Headers/Private/TransitionKit/TKStateMachine.h +++ /dev/null @@ -1 +0,0 @@ -../../../../Code/TKStateMachine.h \ No newline at end of file diff --git a/Pods/Headers/Private/TransitionKit/TKTransition.h b/Pods/Headers/Private/TransitionKit/TKTransition.h deleted file mode 120000 index 34b91fc..0000000 --- a/Pods/Headers/Private/TransitionKit/TKTransition.h +++ /dev/null @@ -1 +0,0 @@ -../../../../Code/TKTransition.h \ No newline at end of file diff --git a/Pods/Headers/Private/TransitionKit/TransitionKit.h b/Pods/Headers/Private/TransitionKit/TransitionKit.h deleted file mode 120000 index 7eee33b..0000000 --- a/Pods/Headers/Private/TransitionKit/TransitionKit.h +++ /dev/null @@ -1 +0,0 @@ -../../../../Code/TransitionKit.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWAfterAllNode.h b/Pods/Headers/Public/Kiwi/KWAfterAllNode.h deleted file mode 120000 index 01374b7..0000000 --- a/Pods/Headers/Public/Kiwi/KWAfterAllNode.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Nodes/KWAfterAllNode.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWAfterEachNode.h b/Pods/Headers/Public/Kiwi/KWAfterEachNode.h deleted file mode 120000 index 759284d..0000000 --- a/Pods/Headers/Public/Kiwi/KWAfterEachNode.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Nodes/KWAfterEachNode.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWAny.h b/Pods/Headers/Public/Kiwi/KWAny.h deleted file mode 120000 index 58f2c5c..0000000 --- a/Pods/Headers/Public/Kiwi/KWAny.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KWAny.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWAsyncVerifier.h b/Pods/Headers/Public/Kiwi/KWAsyncVerifier.h deleted file mode 120000 index d79b1b9..0000000 --- a/Pods/Headers/Public/Kiwi/KWAsyncVerifier.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Verifiers/KWAsyncVerifier.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWBeBetweenMatcher.h b/Pods/Headers/Public/Kiwi/KWBeBetweenMatcher.h deleted file mode 120000 index 20f47b4..0000000 --- a/Pods/Headers/Public/Kiwi/KWBeBetweenMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Matchers/KWBeBetweenMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWBeEmptyMatcher.h b/Pods/Headers/Public/Kiwi/KWBeEmptyMatcher.h deleted file mode 120000 index 9e0e648..0000000 --- a/Pods/Headers/Public/Kiwi/KWBeEmptyMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Matchers/KWBeEmptyMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWBeIdenticalToMatcher.h b/Pods/Headers/Public/Kiwi/KWBeIdenticalToMatcher.h deleted file mode 120000 index f881624..0000000 --- a/Pods/Headers/Public/Kiwi/KWBeIdenticalToMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Matchers/KWBeIdenticalToMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWBeKindOfClassMatcher.h b/Pods/Headers/Public/Kiwi/KWBeKindOfClassMatcher.h deleted file mode 120000 index cb1ba8f..0000000 --- a/Pods/Headers/Public/Kiwi/KWBeKindOfClassMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Matchers/KWBeKindOfClassMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWBeMemberOfClassMatcher.h b/Pods/Headers/Public/Kiwi/KWBeMemberOfClassMatcher.h deleted file mode 120000 index cbd60b1..0000000 --- a/Pods/Headers/Public/Kiwi/KWBeMemberOfClassMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Matchers/KWBeMemberOfClassMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWBeSubclassOfClassMatcher.h b/Pods/Headers/Public/Kiwi/KWBeSubclassOfClassMatcher.h deleted file mode 120000 index 5b22213..0000000 --- a/Pods/Headers/Public/Kiwi/KWBeSubclassOfClassMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Matchers/KWBeSubclassOfClassMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWBeTrueMatcher.h b/Pods/Headers/Public/Kiwi/KWBeTrueMatcher.h deleted file mode 120000 index 77f4eca..0000000 --- a/Pods/Headers/Public/Kiwi/KWBeTrueMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Matchers/KWBeTrueMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWBeWithinMatcher.h b/Pods/Headers/Public/Kiwi/KWBeWithinMatcher.h deleted file mode 120000 index 9e88024..0000000 --- a/Pods/Headers/Public/Kiwi/KWBeWithinMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Matchers/KWBeWithinMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWBeZeroMatcher.h b/Pods/Headers/Public/Kiwi/KWBeZeroMatcher.h deleted file mode 120000 index 39250c8..0000000 --- a/Pods/Headers/Public/Kiwi/KWBeZeroMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Matchers/KWBeZeroMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWBeforeAllNode.h b/Pods/Headers/Public/Kiwi/KWBeforeAllNode.h deleted file mode 120000 index 4d5a8e2..0000000 --- a/Pods/Headers/Public/Kiwi/KWBeforeAllNode.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Nodes/KWBeforeAllNode.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWBeforeEachNode.h b/Pods/Headers/Public/Kiwi/KWBeforeEachNode.h deleted file mode 120000 index fccc14c..0000000 --- a/Pods/Headers/Public/Kiwi/KWBeforeEachNode.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Nodes/KWBeforeEachNode.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWBlock.h b/Pods/Headers/Public/Kiwi/KWBlock.h deleted file mode 120000 index 56d2ae6..0000000 --- a/Pods/Headers/Public/Kiwi/KWBlock.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KWBlock.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWBlockNode.h b/Pods/Headers/Public/Kiwi/KWBlockNode.h deleted file mode 120000 index bc56278..0000000 --- a/Pods/Headers/Public/Kiwi/KWBlockNode.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Nodes/KWBlockNode.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWBlockRaiseMatcher.h b/Pods/Headers/Public/Kiwi/KWBlockRaiseMatcher.h deleted file mode 120000 index 0cb1562..0000000 --- a/Pods/Headers/Public/Kiwi/KWBlockRaiseMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Matchers/KWBlockRaiseMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWCallSite.h b/Pods/Headers/Public/Kiwi/KWCallSite.h deleted file mode 120000 index a10e1f9..0000000 --- a/Pods/Headers/Public/Kiwi/KWCallSite.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KWCallSite.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWCaptureSpy.h b/Pods/Headers/Public/Kiwi/KWCaptureSpy.h deleted file mode 120000 index a8db34e..0000000 --- a/Pods/Headers/Public/Kiwi/KWCaptureSpy.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KWCaptureSpy.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWChangeMatcher.h b/Pods/Headers/Public/Kiwi/KWChangeMatcher.h deleted file mode 120000 index b4f8a1d..0000000 --- a/Pods/Headers/Public/Kiwi/KWChangeMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Matchers/KWChangeMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWConformToProtocolMatcher.h b/Pods/Headers/Public/Kiwi/KWConformToProtocolMatcher.h deleted file mode 120000 index 593c408..0000000 --- a/Pods/Headers/Public/Kiwi/KWConformToProtocolMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Matchers/KWConformToProtocolMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWContainMatcher.h b/Pods/Headers/Public/Kiwi/KWContainMatcher.h deleted file mode 120000 index a5b19ea..0000000 --- a/Pods/Headers/Public/Kiwi/KWContainMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Matchers/KWContainMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWContainStringMatcher.h b/Pods/Headers/Public/Kiwi/KWContainStringMatcher.h deleted file mode 120000 index a35f824..0000000 --- a/Pods/Headers/Public/Kiwi/KWContainStringMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Matchers/KWContainStringMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWContextNode.h b/Pods/Headers/Public/Kiwi/KWContextNode.h deleted file mode 120000 index 0094504..0000000 --- a/Pods/Headers/Public/Kiwi/KWContextNode.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Nodes/KWContextNode.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWCountType.h b/Pods/Headers/Public/Kiwi/KWCountType.h deleted file mode 120000 index 8085d02..0000000 --- a/Pods/Headers/Public/Kiwi/KWCountType.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KWCountType.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWDeviceInfo.h b/Pods/Headers/Public/Kiwi/KWDeviceInfo.h deleted file mode 120000 index c3a443c..0000000 --- a/Pods/Headers/Public/Kiwi/KWDeviceInfo.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KWDeviceInfo.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWEqualMatcher.h b/Pods/Headers/Public/Kiwi/KWEqualMatcher.h deleted file mode 120000 index c8e8824..0000000 --- a/Pods/Headers/Public/Kiwi/KWEqualMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Matchers/KWEqualMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWExample.h b/Pods/Headers/Public/Kiwi/KWExample.h deleted file mode 120000 index a54de2e..0000000 --- a/Pods/Headers/Public/Kiwi/KWExample.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KWExample.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWExampleDelegate.h b/Pods/Headers/Public/Kiwi/KWExampleDelegate.h deleted file mode 120000 index 4d0f763..0000000 --- a/Pods/Headers/Public/Kiwi/KWExampleDelegate.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KWExampleDelegate.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWExampleNode.h b/Pods/Headers/Public/Kiwi/KWExampleNode.h deleted file mode 120000 index df62cd4..0000000 --- a/Pods/Headers/Public/Kiwi/KWExampleNode.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Nodes/KWExampleNode.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWExampleNodeVisitor.h b/Pods/Headers/Public/Kiwi/KWExampleNodeVisitor.h deleted file mode 120000 index 2452186..0000000 --- a/Pods/Headers/Public/Kiwi/KWExampleNodeVisitor.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KWExampleNodeVisitor.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWExampleSuite.h b/Pods/Headers/Public/Kiwi/KWExampleSuite.h deleted file mode 120000 index c4075cf..0000000 --- a/Pods/Headers/Public/Kiwi/KWExampleSuite.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KWExampleSuite.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWExampleSuiteBuilder.h b/Pods/Headers/Public/Kiwi/KWExampleSuiteBuilder.h deleted file mode 120000 index 60bd385..0000000 --- a/Pods/Headers/Public/Kiwi/KWExampleSuiteBuilder.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KWExampleSuiteBuilder.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWExistVerifier.h b/Pods/Headers/Public/Kiwi/KWExistVerifier.h deleted file mode 120000 index a0c1eb8..0000000 --- a/Pods/Headers/Public/Kiwi/KWExistVerifier.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Verifiers/KWExistVerifier.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWExpectationType.h b/Pods/Headers/Public/Kiwi/KWExpectationType.h deleted file mode 120000 index d517aff..0000000 --- a/Pods/Headers/Public/Kiwi/KWExpectationType.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KWExpectationType.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWFailure.h b/Pods/Headers/Public/Kiwi/KWFailure.h deleted file mode 120000 index 2689b98..0000000 --- a/Pods/Headers/Public/Kiwi/KWFailure.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KWFailure.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWFormatter.h b/Pods/Headers/Public/Kiwi/KWFormatter.h deleted file mode 120000 index 048c515..0000000 --- a/Pods/Headers/Public/Kiwi/KWFormatter.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KWFormatter.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWFutureObject.h b/Pods/Headers/Public/Kiwi/KWFutureObject.h deleted file mode 120000 index 5b5d5db..0000000 --- a/Pods/Headers/Public/Kiwi/KWFutureObject.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KWFutureObject.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWGenericMatchEvaluator.h b/Pods/Headers/Public/Kiwi/KWGenericMatchEvaluator.h deleted file mode 120000 index 253040a..0000000 --- a/Pods/Headers/Public/Kiwi/KWGenericMatchEvaluator.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Matchers/KWGenericMatchEvaluator.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWGenericMatcher.h b/Pods/Headers/Public/Kiwi/KWGenericMatcher.h deleted file mode 120000 index 865f922..0000000 --- a/Pods/Headers/Public/Kiwi/KWGenericMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Matchers/KWGenericMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWGenericMatchingAdditions.h b/Pods/Headers/Public/Kiwi/KWGenericMatchingAdditions.h deleted file mode 120000 index 8a33647..0000000 --- a/Pods/Headers/Public/Kiwi/KWGenericMatchingAdditions.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Matchers/KWGenericMatchingAdditions.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWHaveMatcher.h b/Pods/Headers/Public/Kiwi/KWHaveMatcher.h deleted file mode 120000 index e1c3aa5..0000000 --- a/Pods/Headers/Public/Kiwi/KWHaveMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Matchers/KWHaveMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWHaveValueMatcher.h b/Pods/Headers/Public/Kiwi/KWHaveValueMatcher.h deleted file mode 120000 index 7eaadc2..0000000 --- a/Pods/Headers/Public/Kiwi/KWHaveValueMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Matchers/KWHaveValueMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWInequalityMatcher.h b/Pods/Headers/Public/Kiwi/KWInequalityMatcher.h deleted file mode 120000 index 88b6d4f..0000000 --- a/Pods/Headers/Public/Kiwi/KWInequalityMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Matchers/KWInequalityMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWIntercept.h b/Pods/Headers/Public/Kiwi/KWIntercept.h deleted file mode 120000 index a5520c5..0000000 --- a/Pods/Headers/Public/Kiwi/KWIntercept.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Stubbing/KWIntercept.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWInvocationCapturer.h b/Pods/Headers/Public/Kiwi/KWInvocationCapturer.h deleted file mode 120000 index 493a954..0000000 --- a/Pods/Headers/Public/Kiwi/KWInvocationCapturer.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KWInvocationCapturer.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWItNode.h b/Pods/Headers/Public/Kiwi/KWItNode.h deleted file mode 120000 index 65394c3..0000000 --- a/Pods/Headers/Public/Kiwi/KWItNode.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Nodes/KWItNode.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWLet.h b/Pods/Headers/Public/Kiwi/KWLet.h deleted file mode 120000 index eaa3e21..0000000 --- a/Pods/Headers/Public/Kiwi/KWLet.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KWLet.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWLetNode.h b/Pods/Headers/Public/Kiwi/KWLetNode.h deleted file mode 120000 index 3826b26..0000000 --- a/Pods/Headers/Public/Kiwi/KWLetNode.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Nodes/KWLetNode.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWMatchVerifier.h b/Pods/Headers/Public/Kiwi/KWMatchVerifier.h deleted file mode 120000 index 3cc1e00..0000000 --- a/Pods/Headers/Public/Kiwi/KWMatchVerifier.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Verifiers/KWMatchVerifier.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWMatcher.h b/Pods/Headers/Public/Kiwi/KWMatcher.h deleted file mode 120000 index b2c279a..0000000 --- a/Pods/Headers/Public/Kiwi/KWMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KWMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWMatcherFactory.h b/Pods/Headers/Public/Kiwi/KWMatcherFactory.h deleted file mode 120000 index 29678fb..0000000 --- a/Pods/Headers/Public/Kiwi/KWMatcherFactory.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KWMatcherFactory.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWMatchers.h b/Pods/Headers/Public/Kiwi/KWMatchers.h deleted file mode 120000 index 8276cf6..0000000 --- a/Pods/Headers/Public/Kiwi/KWMatchers.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KWMatchers.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWMatching.h b/Pods/Headers/Public/Kiwi/KWMatching.h deleted file mode 120000 index 218263e..0000000 --- a/Pods/Headers/Public/Kiwi/KWMatching.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KWMatching.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWMessagePattern.h b/Pods/Headers/Public/Kiwi/KWMessagePattern.h deleted file mode 120000 index 0372a51..0000000 --- a/Pods/Headers/Public/Kiwi/KWMessagePattern.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KWMessagePattern.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWMessageSpying.h b/Pods/Headers/Public/Kiwi/KWMessageSpying.h deleted file mode 120000 index 031408b..0000000 --- a/Pods/Headers/Public/Kiwi/KWMessageSpying.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KWMessageSpying.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWMessageTracker.h b/Pods/Headers/Public/Kiwi/KWMessageTracker.h deleted file mode 120000 index 7d115f7..0000000 --- a/Pods/Headers/Public/Kiwi/KWMessageTracker.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KWMessageTracker.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWMock.h b/Pods/Headers/Public/Kiwi/KWMock.h deleted file mode 120000 index 022af92..0000000 --- a/Pods/Headers/Public/Kiwi/KWMock.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Mocking/KWMock.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWNilMatcher.h b/Pods/Headers/Public/Kiwi/KWNilMatcher.h deleted file mode 120000 index 6fd7ad2..0000000 --- a/Pods/Headers/Public/Kiwi/KWNilMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Matchers/KWNilMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWNotificationMatcher.h b/Pods/Headers/Public/Kiwi/KWNotificationMatcher.h deleted file mode 120000 index 3df422a..0000000 --- a/Pods/Headers/Public/Kiwi/KWNotificationMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Matchers/KWNotificationMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWNull.h b/Pods/Headers/Public/Kiwi/KWNull.h deleted file mode 120000 index c579730..0000000 --- a/Pods/Headers/Public/Kiwi/KWNull.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KWNull.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWObjCUtilities.h b/Pods/Headers/Public/Kiwi/KWObjCUtilities.h deleted file mode 120000 index d1f30e1..0000000 --- a/Pods/Headers/Public/Kiwi/KWObjCUtilities.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KWObjCUtilities.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWPendingNode.h b/Pods/Headers/Public/Kiwi/KWPendingNode.h deleted file mode 120000 index c8c7abc..0000000 --- a/Pods/Headers/Public/Kiwi/KWPendingNode.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Nodes/KWPendingNode.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWProbe.h b/Pods/Headers/Public/Kiwi/KWProbe.h deleted file mode 120000 index 4a6ceaf..0000000 --- a/Pods/Headers/Public/Kiwi/KWProbe.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KWProbe.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWProbePoller.h b/Pods/Headers/Public/Kiwi/KWProbePoller.h deleted file mode 120000 index f8df179..0000000 --- a/Pods/Headers/Public/Kiwi/KWProbePoller.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KWProbePoller.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWReceiveMatcher.h b/Pods/Headers/Public/Kiwi/KWReceiveMatcher.h deleted file mode 120000 index a727a53..0000000 --- a/Pods/Headers/Public/Kiwi/KWReceiveMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Matchers/KWReceiveMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWRegisterMatchersNode.h b/Pods/Headers/Public/Kiwi/KWRegisterMatchersNode.h deleted file mode 120000 index f0a1dcd..0000000 --- a/Pods/Headers/Public/Kiwi/KWRegisterMatchersNode.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Nodes/KWRegisterMatchersNode.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWRegularExpressionPatternMatcher.h b/Pods/Headers/Public/Kiwi/KWRegularExpressionPatternMatcher.h deleted file mode 120000 index 776f719..0000000 --- a/Pods/Headers/Public/Kiwi/KWRegularExpressionPatternMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Matchers/KWRegularExpressionPatternMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWReporting.h b/Pods/Headers/Public/Kiwi/KWReporting.h deleted file mode 120000 index cb55a02..0000000 --- a/Pods/Headers/Public/Kiwi/KWReporting.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KWReporting.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWRespondToSelectorMatcher.h b/Pods/Headers/Public/Kiwi/KWRespondToSelectorMatcher.h deleted file mode 120000 index 9f44022..0000000 --- a/Pods/Headers/Public/Kiwi/KWRespondToSelectorMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Matchers/KWRespondToSelectorMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWSpec.h b/Pods/Headers/Public/Kiwi/KWSpec.h deleted file mode 120000 index 6d3c677..0000000 --- a/Pods/Headers/Public/Kiwi/KWSpec.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KWSpec.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWStringContainsMatcher.h b/Pods/Headers/Public/Kiwi/KWStringContainsMatcher.h deleted file mode 120000 index 617a623..0000000 --- a/Pods/Headers/Public/Kiwi/KWStringContainsMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Matchers/KWStringContainsMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWStringPrefixMatcher.h b/Pods/Headers/Public/Kiwi/KWStringPrefixMatcher.h deleted file mode 120000 index 3f4ff3b..0000000 --- a/Pods/Headers/Public/Kiwi/KWStringPrefixMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Matchers/KWStringPrefixMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWStringUtilities.h b/Pods/Headers/Public/Kiwi/KWStringUtilities.h deleted file mode 120000 index 76c1a3c..0000000 --- a/Pods/Headers/Public/Kiwi/KWStringUtilities.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KWStringUtilities.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWStub.h b/Pods/Headers/Public/Kiwi/KWStub.h deleted file mode 120000 index 5193213..0000000 --- a/Pods/Headers/Public/Kiwi/KWStub.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Stubbing/KWStub.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWSuiteConfigurationBase.h b/Pods/Headers/Public/Kiwi/KWSuiteConfigurationBase.h deleted file mode 120000 index 1c4e45b..0000000 --- a/Pods/Headers/Public/Kiwi/KWSuiteConfigurationBase.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Config/KWSuiteConfigurationBase.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWSymbolicator.h b/Pods/Headers/Public/Kiwi/KWSymbolicator.h deleted file mode 120000 index 4d43085..0000000 --- a/Pods/Headers/Public/Kiwi/KWSymbolicator.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KWSymbolicator.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWUserDefinedMatcher.h b/Pods/Headers/Public/Kiwi/KWUserDefinedMatcher.h deleted file mode 120000 index 0dac6b3..0000000 --- a/Pods/Headers/Public/Kiwi/KWUserDefinedMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Matchers/KWUserDefinedMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWValue.h b/Pods/Headers/Public/Kiwi/KWValue.h deleted file mode 120000 index 0e28e06..0000000 --- a/Pods/Headers/Public/Kiwi/KWValue.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KWValue.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWVerifying.h b/Pods/Headers/Public/Kiwi/KWVerifying.h deleted file mode 120000 index 5724e73..0000000 --- a/Pods/Headers/Public/Kiwi/KWVerifying.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Verifiers/KWVerifying.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KWWorkarounds.h b/Pods/Headers/Public/Kiwi/KWWorkarounds.h deleted file mode 120000 index d2033a1..0000000 --- a/Pods/Headers/Public/Kiwi/KWWorkarounds.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KWWorkarounds.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/Kiwi.h b/Pods/Headers/Public/Kiwi/Kiwi.h deleted file mode 120000 index a665ef2..0000000 --- a/Pods/Headers/Public/Kiwi/Kiwi.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/Kiwi.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KiwiBlockMacros.h b/Pods/Headers/Public/Kiwi/KiwiBlockMacros.h deleted file mode 120000 index b61d992..0000000 --- a/Pods/Headers/Public/Kiwi/KiwiBlockMacros.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KiwiBlockMacros.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KiwiConfiguration.h b/Pods/Headers/Public/Kiwi/KiwiConfiguration.h deleted file mode 120000 index b051eaa..0000000 --- a/Pods/Headers/Public/Kiwi/KiwiConfiguration.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KiwiConfiguration.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/KiwiMacros.h b/Pods/Headers/Public/Kiwi/KiwiMacros.h deleted file mode 120000 index bb83872..0000000 --- a/Pods/Headers/Public/Kiwi/KiwiMacros.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/KiwiMacros.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/NSInvocation+KiwiAdditions.h b/Pods/Headers/Public/Kiwi/NSInvocation+KiwiAdditions.h deleted file mode 120000 index 95c446d..0000000 --- a/Pods/Headers/Public/Kiwi/NSInvocation+KiwiAdditions.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/NSInvocation+KiwiAdditions.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/NSInvocation+OCMAdditions.h b/Pods/Headers/Public/Kiwi/NSInvocation+OCMAdditions.h deleted file mode 120000 index df17ca4..0000000 --- a/Pods/Headers/Public/Kiwi/NSInvocation+OCMAdditions.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/NSInvocation+OCMAdditions.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/NSMethodSignature+KiwiAdditions.h b/Pods/Headers/Public/Kiwi/NSMethodSignature+KiwiAdditions.h deleted file mode 120000 index 7d21a1a..0000000 --- a/Pods/Headers/Public/Kiwi/NSMethodSignature+KiwiAdditions.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/NSMethodSignature+KiwiAdditions.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/NSNumber+KiwiAdditions.h b/Pods/Headers/Public/Kiwi/NSNumber+KiwiAdditions.h deleted file mode 120000 index a7fcdd7..0000000 --- a/Pods/Headers/Public/Kiwi/NSNumber+KiwiAdditions.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/NSNumber+KiwiAdditions.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/NSObject+KiwiMockAdditions.h b/Pods/Headers/Public/Kiwi/NSObject+KiwiMockAdditions.h deleted file mode 120000 index c5b6237..0000000 --- a/Pods/Headers/Public/Kiwi/NSObject+KiwiMockAdditions.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Mocking/NSObject+KiwiMockAdditions.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/NSObject+KiwiSpyAdditions.h b/Pods/Headers/Public/Kiwi/NSObject+KiwiSpyAdditions.h deleted file mode 120000 index 82594f1..0000000 --- a/Pods/Headers/Public/Kiwi/NSObject+KiwiSpyAdditions.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/NSObject+KiwiSpyAdditions.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/NSObject+KiwiStubAdditions.h b/Pods/Headers/Public/Kiwi/NSObject+KiwiStubAdditions.h deleted file mode 120000 index 29e7521..0000000 --- a/Pods/Headers/Public/Kiwi/NSObject+KiwiStubAdditions.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Stubbing/NSObject+KiwiStubAdditions.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/NSObject+KiwiVerifierAdditions.h b/Pods/Headers/Public/Kiwi/NSObject+KiwiVerifierAdditions.h deleted file mode 120000 index f08d30f..0000000 --- a/Pods/Headers/Public/Kiwi/NSObject+KiwiVerifierAdditions.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/NSObject+KiwiVerifierAdditions.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/NSProxy+KiwiVerifierAdditions.h b/Pods/Headers/Public/Kiwi/NSProxy+KiwiVerifierAdditions.h deleted file mode 120000 index 3e9e83e..0000000 --- a/Pods/Headers/Public/Kiwi/NSProxy+KiwiVerifierAdditions.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/NSProxy+KiwiVerifierAdditions.h \ No newline at end of file diff --git a/Pods/Headers/Public/Kiwi/NSValue+KiwiAdditions.h b/Pods/Headers/Public/Kiwi/NSValue+KiwiAdditions.h deleted file mode 120000 index d2a5609..0000000 --- a/Pods/Headers/Public/Kiwi/NSValue+KiwiAdditions.h +++ /dev/null @@ -1 +0,0 @@ -../../../Kiwi/Classes/Core/NSValue+KiwiAdditions.h \ No newline at end of file diff --git a/Pods/Headers/Public/TransitionKit/TKEvent.h b/Pods/Headers/Public/TransitionKit/TKEvent.h deleted file mode 120000 index 3637d73..0000000 --- a/Pods/Headers/Public/TransitionKit/TKEvent.h +++ /dev/null @@ -1 +0,0 @@ -../../../../Code/TKEvent.h \ No newline at end of file diff --git a/Pods/Headers/Public/TransitionKit/TKState.h b/Pods/Headers/Public/TransitionKit/TKState.h deleted file mode 120000 index 81dd874..0000000 --- a/Pods/Headers/Public/TransitionKit/TKState.h +++ /dev/null @@ -1 +0,0 @@ -../../../../Code/TKState.h \ No newline at end of file diff --git a/Pods/Headers/Public/TransitionKit/TKStateMachine.h b/Pods/Headers/Public/TransitionKit/TKStateMachine.h deleted file mode 120000 index 5f5947c..0000000 --- a/Pods/Headers/Public/TransitionKit/TKStateMachine.h +++ /dev/null @@ -1 +0,0 @@ -../../../../Code/TKStateMachine.h \ No newline at end of file diff --git a/Pods/Headers/Public/TransitionKit/TKTransition.h b/Pods/Headers/Public/TransitionKit/TKTransition.h deleted file mode 120000 index 34b91fc..0000000 --- a/Pods/Headers/Public/TransitionKit/TKTransition.h +++ /dev/null @@ -1 +0,0 @@ -../../../../Code/TKTransition.h \ No newline at end of file diff --git a/Pods/Headers/Public/TransitionKit/TransitionKit.h b/Pods/Headers/Public/TransitionKit/TransitionKit.h deleted file mode 120000 index 7eee33b..0000000 --- a/Pods/Headers/Public/TransitionKit/TransitionKit.h +++ /dev/null @@ -1 +0,0 @@ -../../../../Code/TransitionKit.h \ No newline at end of file diff --git a/Pods/Kiwi/Classes/Config/KWAllTestsSuite.m b/Pods/Kiwi/Classes/Config/KWAllTestsSuite.m deleted file mode 100644 index 016b71a..0000000 --- a/Pods/Kiwi/Classes/Config/KWAllTestsSuite.m +++ /dev/null @@ -1,51 +0,0 @@ -// -// XCTestSuite+KWConfiguration.m -// Kiwi -// -// Created by Adam Sharp on 1/07/2014. -// Copyright (c) 2014 Allen Ding. All rights reserved. -// - -#import -#import -#import "KWSuiteConfigurationBase.h" - -@interface _KWAllTestsSuite : XCTestSuite -@end - -@implementation _KWAllTestsSuite - -- (void)setUp { - [super setUp]; - [[KWSuiteConfigurationBase defaultConfiguration] setUp]; -} - -- (void)tearDown { - [[KWSuiteConfigurationBase defaultConfiguration] tearDown]; - [super tearDown]; -} - -@end - -@interface XCTestSuite (KWConfiguration) -@end - -@implementation XCTestSuite (KWConfiguration) - -+ (void)load { - Method testSuiteWithName = class_getClassMethod(self, @selector(testSuiteWithName:)); - Method kiwi_testSuiteWithName = class_getClassMethod(self, @selector(kiwi_testSuiteWithName:)); - method_exchangeImplementations(testSuiteWithName, kiwi_testSuiteWithName); -} - -+ (id)kiwi_testSuiteWithName:(NSString *)aName { - id suite = [self kiwi_testSuiteWithName:aName]; - if ([aName isEqualToString:@"All tests"]) { - if ([suite isMemberOfClass:[XCTestSuite class]]) { - object_setClass(suite, [_KWAllTestsSuite class]); - } - } - return suite; -} - -@end diff --git a/Pods/Kiwi/Classes/Config/KWSuiteConfigurationBase.h b/Pods/Kiwi/Classes/Config/KWSuiteConfigurationBase.h deleted file mode 100644 index 3a0fb01..0000000 --- a/Pods/Kiwi/Classes/Config/KWSuiteConfigurationBase.h +++ /dev/null @@ -1,26 +0,0 @@ -// -// KWSuiteConfigurationBase.h -// Kiwi -// -// Created by Adam Sharp on 14/12/2013. -// Copyright (c) 2013 Allen Ding. All rights reserved. -// - -#import - -@interface KWSuiteConfigurationBase : NSObject - -+ (instancetype)defaultConfiguration; - -- (void)configureSuite; - -- (void)setUp; -- (void)tearDown; - -@property (nonatomic, copy) void (^beforeAllSpecsBlock)(void); -@property (nonatomic, copy) void (^afterAllSpecsBlock)(void); - -@end - -void beforeAllSpecs(void (^block)(void)); -void afterAllSpecs(void (^block)(void)); diff --git a/Pods/Kiwi/Classes/Config/KWSuiteConfigurationBase.m b/Pods/Kiwi/Classes/Config/KWSuiteConfigurationBase.m deleted file mode 100644 index 85b53e6..0000000 --- a/Pods/Kiwi/Classes/Config/KWSuiteConfigurationBase.m +++ /dev/null @@ -1,77 +0,0 @@ -// -// KWSuiteConfigurationBase.m -// Kiwi -// -// Created by Adam Sharp on 14/12/2013. -// Copyright (c) 2013 Allen Ding. All rights reserved. -// - -#import "KWSuiteConfigurationBase.h" -#import "KWSpec.h" - -#define INVOKE(block) if((block)) { (block)(); } - -void beforeEachSpec(void (^block)(void)); -void afterEachSpec(void (^block)(void)); - -@interface KWSuiteConfigurationBase () -@property (nonatomic, copy) void (^beforeEachSpecBlock)(void); -@property (nonatomic, copy) void (^afterEachSpecBlock)(void); -@end - -@implementation KWSuiteConfigurationBase - -+ (instancetype)defaultConfiguration -{ - static Class configClass; - static KWSuiteConfigurationBase *defaultConfiguration; - - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - configClass = NSClassFromString(@"KWSuiteConfiguration"); - if (configClass && [configClass isSubclassOfClass:[self class]]) { - defaultConfiguration = [configClass new]; - } - }); - - return defaultConfiguration; -} - -- (void)configureSuite {} - -- (void)setUp { - [self configureSuite]; - INVOKE(self.beforeAllSpecsBlock); -} - -- (void)tearDown { - INVOKE(self.afterAllSpecsBlock); -} - -#pragma mark - Unused methods - -- (void)setUpSpec:(KWSpec *)spec { - INVOKE(self.beforeEachSpecBlock); -} - -- (void)tearDownSpec:(KWSpec *)spec { - INVOKE(self.afterEachSpecBlock); -} - -@end - -void beforeAllSpecs(void (^block)(void)) { - [[KWSuiteConfigurationBase defaultConfiguration] setBeforeAllSpecsBlock:block]; -} - -void afterAllSpecs(void (^block)(void)) { - [[KWSuiteConfigurationBase defaultConfiguration] setAfterAllSpecsBlock:block]; -} - -void beforeEachSpec(void (^block)(void)) { - [[KWSuiteConfigurationBase defaultConfiguration] setBeforeEachSpecBlock:block]; -} - -void afterEachSpec(void (^block)(void)) { - [[KWSuiteConfigurationBase defaultConfiguration] setAfterEachSpecBlock:block]; -} diff --git a/Pods/Kiwi/Classes/Core/KWAny.h b/Pods/Kiwi/Classes/Core/KWAny.h deleted file mode 100644 index 0e58e60..0000000 --- a/Pods/Kiwi/Classes/Core/KWAny.h +++ /dev/null @@ -1,17 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" - -// KWAny exists to determine arguments in a message pattern that should -// match any value. Used for pointers as well as for scalar values. -@interface KWAny : NSObject - -#pragma mark - Initializing - -+ (id)any; - -@end diff --git a/Pods/Kiwi/Classes/Core/KWAny.m b/Pods/Kiwi/Classes/Core/KWAny.m deleted file mode 100644 index 880ae29..0000000 --- a/Pods/Kiwi/Classes/Core/KWAny.m +++ /dev/null @@ -1,23 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KWAny.h" - -@implementation KWAny - -#pragma mark - Initializing - -+ (id)any { - static KWAny *sharedAny = nil; - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - sharedAny = [self new]; - - }); - return sharedAny; -} - -@end diff --git a/Pods/Kiwi/Classes/Core/KWBlock.h b/Pods/Kiwi/Classes/Core/KWBlock.h deleted file mode 100644 index 3a14764..0000000 --- a/Pods/Kiwi/Classes/Core/KWBlock.h +++ /dev/null @@ -1,25 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" - -@interface KWBlock : NSObject - -#pragma mark - Initializing -- (id)initWithBlock:(void (^)(void))block; - -+ (id)blockWithBlock:(void (^)(void))block; - -#pragma mark - Calling Blocks - -- (void)call; - -@end - -#pragma mark - Creating Blocks - -KWBlock *theBlock(void (^block)(void)); -KWBlock *lambda(void (^block)(void)); diff --git a/Pods/Kiwi/Classes/Core/KWBlock.m b/Pods/Kiwi/Classes/Core/KWBlock.m deleted file mode 100644 index 39b6b8d..0000000 --- a/Pods/Kiwi/Classes/Core/KWBlock.m +++ /dev/null @@ -1,50 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KWBlock.h" - -@interface KWBlock() - -#pragma mark - Properties - -@property (nonatomic, readonly, copy) void (^block)(void); - -@end - -@implementation KWBlock - -#pragma mark - Initializing - -- (id)initWithBlock:(void (^)(void))block { - self = [super init]; - if (self) { - _block = [block copy]; - } - - return self; -} - -+ (id)blockWithBlock:(void (^)(void))aBlock { - return [[self alloc] initWithBlock:aBlock]; -} - -#pragma mark - Calling Blocks - -- (void)call { - self.block(); -} - -@end - -#pragma mark - Creating Blocks - -KWBlock *theBlock(void (^block)(void)) { - return lambda(block); -} - -KWBlock *lambda(void (^block)(void)) { - return [KWBlock blockWithBlock:block]; -} diff --git a/Pods/Kiwi/Classes/Core/KWCallSite.h b/Pods/Kiwi/Classes/Core/KWCallSite.h deleted file mode 100644 index fdb7590..0000000 --- a/Pods/Kiwi/Classes/Core/KWCallSite.h +++ /dev/null @@ -1,26 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" - -@interface KWCallSite : NSObject - -#pragma mark - Initializing - -- (id)initWithFilename:(NSString *)aFilename lineNumber:(NSUInteger)aLineNumber; - -+ (id)callSiteWithFilename:(NSString *)aFilename lineNumber:(NSUInteger)aLineNumber; - -#pragma mark - Properties - -@property (nonatomic, readonly, copy) NSString *filename; -@property (nonatomic, readonly) NSUInteger lineNumber; - -#pragma mark - Identifying and Comparing - -- (BOOL)isEqualToCallSite:(KWCallSite *)aCallSite; - -@end diff --git a/Pods/Kiwi/Classes/Core/KWCallSite.m b/Pods/Kiwi/Classes/Core/KWCallSite.m deleted file mode 100644 index 0ab6115..0000000 --- a/Pods/Kiwi/Classes/Core/KWCallSite.m +++ /dev/null @@ -1,44 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KWCallSite.h" - -@implementation KWCallSite - -#pragma mark - Initializing - -- (id)initWithFilename:(NSString *)aFilename lineNumber:(NSUInteger)aLineNumber { - self = [super init]; - if (self) { - _filename = [aFilename copy]; - _lineNumber = aLineNumber; - } - - return self; -} - -+ (id)callSiteWithFilename:(NSString *)aFilename lineNumber:(NSUInteger)aLineNumber { - return [[self alloc] initWithFilename:aFilename lineNumber:aLineNumber]; -} - -#pragma mark - Identifying and Comparing - -- (NSUInteger)hash { - return [[NSString stringWithFormat:@"%@%u", self.filename, (unsigned)self.lineNumber] hash]; -} - -- (BOOL)isEqual:(id)anObject { - if (![anObject isKindOfClass:[KWCallSite class]]) - return NO; - - return [self isEqualToCallSite:anObject]; -} - -- (BOOL)isEqualToCallSite:(KWCallSite *)aCallSite { - return [self.filename isEqualToString:aCallSite.filename] && (self.lineNumber == aCallSite.lineNumber); -} - -@end diff --git a/Pods/Kiwi/Classes/Core/KWCaptureSpy.h b/Pods/Kiwi/Classes/Core/KWCaptureSpy.h deleted file mode 100644 index de5b657..0000000 --- a/Pods/Kiwi/Classes/Core/KWCaptureSpy.h +++ /dev/null @@ -1,9 +0,0 @@ -#import "KWMessageSpying.h" - -@interface KWCaptureSpy : NSObject - -@property (nonatomic, strong, readonly) id argument; - -- (id)initWithArgumentIndex:(NSUInteger)index; - -@end diff --git a/Pods/Kiwi/Classes/Core/KWCaptureSpy.m b/Pods/Kiwi/Classes/Core/KWCaptureSpy.m deleted file mode 100644 index a90af61..0000000 --- a/Pods/Kiwi/Classes/Core/KWCaptureSpy.m +++ /dev/null @@ -1,64 +0,0 @@ -#import "KWCaptureSpy.h" - -#import "KWObjCUtilities.h" -#import "KWNull.h" -#import "KWValue.h" -#import "NSInvocation+KiwiAdditions.h" -#import "NSMethodSignature+KiwiAdditions.h" - -@interface KWCaptureSpy() - -@property (nonatomic, strong) id argument; - -@end - -@implementation KWCaptureSpy { - NSUInteger _argumentIndex; -} - -- (id)initWithArgumentIndex:(NSUInteger)index { - self = [super init]; - if (self) { - _argumentIndex = index; - } - return self; -} - -- (id)argument { - if (!_argument) { - @throw [NSException exceptionWithName:NSInternalInconsistencyException reason:@"Argument requested has yet to be captured." userInfo:nil]; - } - - if(_argument == [KWNull null]) { - return nil; - } - else { - return _argument; - } -} - -- (void)object:(id)anObject didReceiveInvocation:(NSInvocation *)anInvocation { - if (!_argument) { - NSMethodSignature *signature = [anInvocation methodSignature]; - const char *objCType = [signature messageArgumentTypeAtIndex:_argumentIndex]; - if (KWObjCTypeIsObject(objCType) || KWObjCTypeIsClass(objCType)) { - void* argumentBuffer = NULL; - [anInvocation getMessageArgument:&argumentBuffer atIndex:_argumentIndex]; - id argument = (__bridge id)argumentBuffer; - if (KWObjCTypeIsBlock(objCType)) { - _argument = [argument copy]; - } else { - if(argument == nil) { - _argument = [KWNull null]; - } else { - _argument = argument; - } - } - } else { - NSData *data = [anInvocation messageArgumentDataAtIndex:_argumentIndex]; - _argument = [KWValue valueWithBytes:[data bytes] objCType:objCType]; - } - } -} - -@end diff --git a/Pods/Kiwi/Classes/Core/KWCountType.h b/Pods/Kiwi/Classes/Core/KWCountType.h deleted file mode 100644 index 2ec5a66..0000000 --- a/Pods/Kiwi/Classes/Core/KWCountType.h +++ /dev/null @@ -1,15 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" - -enum { - KWCountTypeExact, - KWCountTypeAtLeast, - KWCountTypeAtMost -}; - -typedef NSUInteger KWCountType; diff --git a/Pods/Kiwi/Classes/Core/KWDeviceInfo.h b/Pods/Kiwi/Classes/Core/KWDeviceInfo.h deleted file mode 100644 index 7e0ca36..0000000 --- a/Pods/Kiwi/Classes/Core/KWDeviceInfo.h +++ /dev/null @@ -1,16 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" - -@interface KWDeviceInfo : NSObject - -#pragma mark - Getting the Device Type - -+ (BOOL)isSimulator; -+ (BOOL)isPhysical; - -@end diff --git a/Pods/Kiwi/Classes/Core/KWDeviceInfo.m b/Pods/Kiwi/Classes/Core/KWDeviceInfo.m deleted file mode 100644 index 3abb1ab..0000000 --- a/Pods/Kiwi/Classes/Core/KWDeviceInfo.m +++ /dev/null @@ -1,31 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KWDeviceInfo.h" - -#if TARGET_IPHONE_SIMULATOR - -#import - -#endif // #if TARGET_IPHONE_SIMULATOR - -@implementation KWDeviceInfo - -#pragma mark - Getting the Device Type - -+ (BOOL)isSimulator { -#if TARGET_IPHONE_SIMULATOR - return YES; -#else - return NO; -#endif // #if TARGET_IPHONE_SIMULATOR -} - -+ (BOOL)isPhysical { - return ![self isSimulator]; -} - -@end diff --git a/Pods/Kiwi/Classes/Core/KWExample.h b/Pods/Kiwi/Classes/Core/KWExample.h deleted file mode 100644 index 3a6fa55..0000000 --- a/Pods/Kiwi/Classes/Core/KWExample.h +++ /dev/null @@ -1,153 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" -#import "KWLet.h" -#import "KWBlock.h" -#import "KWVerifying.h" -#import "KWExpectationType.h" -#import "KWExampleNode.h" -#import "KWExampleNodeVisitor.h" -#import "KWReporting.h" -#import "KWExampleDelegate.h" - -@class KWCallSite; -@class KWExampleSuite; -@class KWContextNode; - -@interface KWExample : NSObject - -@property (nonatomic, strong, readonly) NSMutableArray *lastInContexts; -@property (nonatomic, weak) KWExampleSuite *suite; -@property (nonatomic, strong) id unresolvedVerifier; - - -- (id)initWithExampleNode:(id)node; - -#pragma mark - Adding Verifiers - -- (id)addVerifier:(id)aVerifier; -- (id)addExistVerifierWithExpectationType:(KWExpectationType)anExpectationType callSite:(KWCallSite *)aCallSite; -- (id)addMatchVerifierWithExpectationType:(KWExpectationType)anExpectationType callSite:(KWCallSite *)aCallSite; -- (id)addAsyncVerifierWithExpectationType:(KWExpectationType)anExpectationType callSite:(KWCallSite *)aCallSite timeout:(NSTimeInterval)timeout shouldWait:(BOOL)shouldWait; - -#pragma mark - Report failure - -- (void)reportFailure:(KWFailure *)failure; - -#pragma mark - Running - -- (void)runWithDelegate:(id)delegate; - -#pragma mark - Anonymous It Node Descriptions - -- (NSString *)generateDescriptionForAnonymousItNode; - -#pragma mark - Checking if last in context - -- (BOOL)isLastInContext:(KWContextNode *)context; - -#pragma mark - Full description with context - -- (NSString *)descriptionWithContext; - -#pragma mark - Format description as a valid selector - -@property (readonly) NSString *selectorName; - -@end - -#pragma mark - Building Example Groups - -void describe(NSString *aDescription, void (^block)(void)); -void context(NSString *aDescription, void (^block)(void)); -void registerMatchers(NSString *aNamespacePrefix); -void beforeAll(void (^block)(void)); -void afterAll(void (^block)(void)); -void beforeEach(void (^block)(void)); -void afterEach(void (^block)(void)); -void let_(id *anObjectRef, const char *aSymbolName, id (^block)(void)); -void it(NSString *aDescription, void (^block)(void)); -void specify(void (^block)(void)); -void pending_(NSString *aDescription, void (^block)(void)); - -void describeWithCallSite(KWCallSite *aCallSite, NSString *aDescription, void (^block)(void)); -void contextWithCallSite(KWCallSite *aCallSite, NSString *aDescription, void (^block)(void)); -void registerMatchersWithCallSite(KWCallSite *aCallSite, NSString *aNamespacePrefix); -void beforeAllWithCallSite(KWCallSite *aCallSite, void (^block)(void)); -void afterAllWithCallSite(KWCallSite *aCallSite, void (^block)(void)); -void beforeEachWithCallSite(KWCallSite *aCallSite, void (^block)(void)); -void afterEachWithCallSite(KWCallSite *aCallSite, void (^block)(void)); -void letWithCallSite(KWCallSite *aCallSite, id *anObjectRef, NSString *aSymbolName, id (^block)(void)); -void itWithCallSite(KWCallSite *aCallSite, NSString *aDescription, void (^block)(void)); -void pendingWithCallSite(KWCallSite *aCallSite, NSString *aDescription, void (^block)(void)); - -/** - Declares a local helper variable that is re-initialised before each - example with the return value of the provided block. - - You can declare multiple `let` blocks in a context (unlike `beforeEach`, - which can only be used once per context): - - describe(@"multiple let blocks", ^{ - let(subject, ^{ return @"world"; }); - let(greeting, ^{ - return [NSString stringWithFormat:@"Hello, %@!", subject]; - }); - - it(@"allows you to declare multiple variables", ^{ - [[greeting should] equal:@"Hello, world!"]; - }); - }); - - You can also redefine a `let` variable inside a nested context. This - allows for some very useful kinds of code reuse: - - describe(@"greetings in different contexts", ^{ - let(subject, nil); // no subject by default - let(greeting, ^{ - // greeting references subject - return [NSString stringWithFormat:@"Hello, %@!", subject]; - }); - - context(@"greeting the world", ^{ - let(subject, ^{ return @"world"; }); // redefine subject - - specify(^{ - [[greeting should] equal:@"Hello, world!"]; - }); - }); - - context(@"greeting Kiwi", ^{ - let(subject, ^{ return @"Kiwi"; }); // redefine subject - - specify(^{ - [[greeting should] equal:@"Hello, Kiwi!"]; - }); - }); - }); - - @param name A name for the local variable - @param block The block to evaluate - - @note `let` blocks are evaluated before each example, and also prior to - evaluating the `beforeEach` block. You should not reference a `let` - variable in a `beforeAll` block, as its value is undefined at this point. -*/ -void let(id name, id (^block)(void)); // coax Xcode into autocompleting -#define let(var, ...) \ - __block __typeof__((__VA_ARGS__)()) var = nil; \ - let_(KW_LET_REF(var), #var, __VA_ARGS__) - -#define PRAGMA(x) _Pragma (#x) -#define PENDING(x) PRAGMA(message ( "Pending: " #x )) - -#define pending(title, args...) \ -PENDING(title) \ -pending_(title, ## args) -#define xit(title, args...) \ -PENDING(title) \ -pending_(title, ## args) diff --git a/Pods/Kiwi/Classes/Core/KWExample.m b/Pods/Kiwi/Classes/Core/KWExample.m deleted file mode 100644 index 95a1879..0000000 --- a/Pods/Kiwi/Classes/Core/KWExample.m +++ /dev/null @@ -1,428 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KWExample.h" -#import "KWExampleSuiteBuilder.h" -#import "KWContextNode.h" -#import "KWMatcherFactory.h" -#import "KWExistVerifier.h" -#import "KWMatchVerifier.h" -#import "KWAsyncVerifier.h" -#import "KWFailure.h" -#import "KWContextNode.h" -#import "KWBeforeEachNode.h" -#import "KWBeforeAllNode.h" -#import "KWLetNode.h" -#import "KWItNode.h" -#import "KWAfterEachNode.h" -#import "KWAfterAllNode.h" -#import "KWPendingNode.h" -#import "KWRegisterMatchersNode.h" -#import "KWWorkarounds.h" -#import "KWIntercept.h" -#import "KWExampleNode.h" -#import "KWExampleSuite.h" -#import "KWCallSite.h" -#import "KWSymbolicator.h" - -@interface KWExample () - -@property (nonatomic, readonly) NSMutableArray *verifiers; -@property (nonatomic, readonly) KWMatcherFactory *matcherFactory; -@property (nonatomic, weak) id delegate; -@property (nonatomic, assign) BOOL didNotFinish; -@property (nonatomic, strong) id exampleNode; -@property (nonatomic, assign) BOOL passed; - -- (void)reportResultForExampleNodeWithLabel:(NSString *)label; - -@end - -@implementation KWExample - -@synthesize selectorName = _selectorName; - -- (id)initWithExampleNode:(id)node { - self = [super init]; - if (self) { - _exampleNode = node; - _matcherFactory = [[KWMatcherFactory alloc] init]; - _verifiers = [[NSMutableArray alloc] init]; - _lastInContexts = [[NSMutableArray alloc] init]; - _passed = YES; - } - return self; -} - - -- (BOOL)isLastInContext:(KWContextNode *)context { - for (KWContextNode *contextWhereItLast in self.lastInContexts) { - if (context == contextWhereItLast) { - return YES; - } - } - return NO; -} - -- (NSString *)description { - return [NSString stringWithFormat:@"", self.exampleNode.description]; -} - -#pragma mark - Adding Verifiers - -- (id)addVerifier:(id)aVerifier { - if (![self.verifiers containsObject:aVerifier]) - [self.verifiers addObject:aVerifier]; - - return aVerifier; -} - -- (id)addExistVerifierWithExpectationType:(KWExpectationType)anExpectationType callSite:(KWCallSite *)aCallSite { - id verifier = [KWExistVerifier existVerifierWithExpectationType:anExpectationType callSite:aCallSite reporter:self]; - [self addVerifier:verifier]; - return verifier; -} - -- (id)addMatchVerifierWithExpectationType:(KWExpectationType)anExpectationType callSite:(KWCallSite *)aCallSite { - if (self.unresolvedVerifier) { - KWFailure *failure = [KWFailure failureWithCallSite:self.unresolvedVerifier.callSite format:@"expected subject not to be nil"]; - [self reportFailure:failure]; - } - id verifier = [KWMatchVerifier matchVerifierWithExpectationType:anExpectationType callSite:aCallSite matcherFactory:self.matcherFactory reporter:self]; - [self addVerifier:verifier]; - self.unresolvedVerifier = verifier; - return verifier; -} - -- (id)addAsyncVerifierWithExpectationType:(KWExpectationType)anExpectationType callSite:(KWCallSite *)aCallSite timeout:(NSTimeInterval)timeout shouldWait:(BOOL)shouldWait { - id verifier = [KWAsyncVerifier asyncVerifierWithExpectationType:anExpectationType callSite:aCallSite matcherFactory:self.matcherFactory reporter:self probeTimeout:timeout shouldWait: shouldWait]; - [self addVerifier:verifier]; - return verifier; -} - -#pragma mark - Running examples - -- (void)runWithDelegate:(id)delegate; { - self.delegate = delegate; - [self.matcherFactory registerMatcherClassesWithNamespacePrefix:@"KW"]; - [[KWExampleSuiteBuilder sharedExampleSuiteBuilder] setCurrentExample:self]; - [self.exampleNode acceptExampleNodeVisitor:self]; -} - -#pragma mark - Reporting failure - -- (NSString *)descriptionForExampleContext { - NSMutableArray *parts = [NSMutableArray array]; - - for (KWContextNode *context in [[self.exampleNode contextStack] reverseObjectEnumerator]) { - if ([context description] != nil) { - [parts addObject:[[context description] stringByAppendingString:@","]]; - } - } - - return [parts componentsJoinedByString:@" "]; -} - -- (KWFailure *)outputReadyFailureWithFailure:(KWFailure *)aFailure { - NSString *annotatedFailureMessage = [NSString stringWithFormat:@"'%@ %@' [FAILED], %@", - [self descriptionForExampleContext], [self.exampleNode description], - aFailure.message]; - -#if TARGET_IPHONE_SIMULATOR - // \uff1a is the unicode for a fill width colon, as opposed to a regular - // colon character (':'). This escape is performed so that Xcode doesn't - // truncate the error output in the build results window, which is running - // build time specs. - annotatedFailureMessage = [annotatedFailureMessage stringByReplacingOccurrencesOfString:@":" withString:@"\uff1a"]; -#endif // #if TARGET_IPHONE_SIMULATOR - - return [KWFailure failureWithCallSite:aFailure.callSite message:annotatedFailureMessage]; -} - -- (void)reportFailure:(KWFailure *)failure { - self.passed = NO; - [self.delegate example:self didFailWithFailure:[self outputReadyFailureWithFailure:failure]]; -} - -- (void)reportResultForExampleNodeWithLabel:(NSString *)label { - NSLog(@"+ '%@ %@' [%@]", [self descriptionForExampleContext], [self.exampleNode description], label); -} - -#pragma mark - Full description with context - -/** Pending cases will be marked yellow by XCode as not finished, because their description differs for -[SenTestCaseRun start] and -[SenTestCaseRun stop] methods - */ - -- (NSString *)pendingNotFinished { - BOOL reportPending = self.didNotFinish; - self.didNotFinish = YES; - return reportPending ? @"(PENDING)" : @""; -} - -- (NSString *)descriptionWithContext { - NSString *descriptionWithContext = [NSString stringWithFormat:@"%@ %@", - [self descriptionForExampleContext], - [self.exampleNode description] ? [self.exampleNode description] : @""]; - BOOL isPending = [self.exampleNode isKindOfClass:[KWPendingNode class]]; - return isPending ? [descriptionWithContext stringByAppendingString:[self pendingNotFinished]] : descriptionWithContext; -} - -- (NSString *)selectorName { - if (_selectorName) { - return _selectorName; - } - - NSString *name = [self descriptionWithContext]; - - // CamelCase the string - NSArray *words = [name componentsSeparatedByString:@" "]; - name = @""; - for (NSString *word in words) { - if ([word length] < 1) - { - continue; - } - name = [name stringByAppendingString:[[word substringToIndex:1] uppercaseString]]; - name = [name stringByAppendingString:[word substringFromIndex:1]]; - } - - // Replace the commas with underscores to separate the levels of context - name = [name stringByReplacingOccurrencesOfString:@"," withString:@"_"]; - - // Strip out characters not legal in function names - NSError *error = nil; - NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"[^a-zA-Z0-9_]*" options:0 error:&error]; - name = [regex stringByReplacingMatchesInString:name options:0 range:NSMakeRange(0, name.length) withTemplate:@""]; - - // Ensure examples in the same suite have unique selector names - if (self.suite) { - name = [self.suite nextUniqueSelectorName:name]; - } - - return (_selectorName = name); -} - -#pragma mark - Visiting Nodes - -- (void)visitRegisterMatchersNode:(KWRegisterMatchersNode *)aNode { - [self.matcherFactory registerMatcherClassesWithNamespacePrefix:aNode.namespacePrefix]; -} - -- (void)visitBeforeAllNode:(KWBeforeAllNode *)aNode { - if (aNode.block == nil) - return; - - aNode.block(); -} - -- (void)visitAfterAllNode:(KWAfterAllNode *)aNode { - if (aNode.block == nil) - return; - - aNode.block(); -} - -- (void)visitBeforeEachNode:(KWBeforeEachNode *)aNode { - if (aNode.block == nil) - return; - - aNode.block(); -} - -- (void)visitAfterEachNode:(KWAfterEachNode *)aNode { - if (aNode.block == nil) - return; - - aNode.block(); -} - -- (void)visitLetNode:(KWLetNode *)aNode -{ - [aNode evaluateTree]; -} - -- (void)visitItNode:(KWItNode *)aNode { - if (aNode.block == nil || aNode != self.exampleNode) - return; - - aNode.example = self; - - [aNode.context performExample:self withBlock:^{ - - @try { - - aNode.block(); - -#if KW_TARGET_HAS_INVOCATION_EXCEPTION_BUG - NSException *invocationException = KWGetAndClearExceptionFromAcrossInvocationBoundary(); - [invocationException raise]; -#endif // #if KW_TARGET_HAS_INVOCATION_EXCEPTION_BUG - - // Finish verifying and clear - for (id verifier in self.verifiers) { - [verifier exampleWillEnd]; - } - - if (self.unresolvedVerifier) { - KWFailure *failure = [KWFailure failureWithCallSite:self.unresolvedVerifier.callSite format:@"expected subject not to be nil"]; - [self reportFailure:failure]; - } - - } @catch (NSException *exception) { - KWFailure *failure = [KWFailure failureWithCallSite:aNode.callSite format:@"%@ \"%@\" raised", - [exception name], - [exception reason]]; - [self reportFailure:failure]; - } - - if (self.passed) { - [self reportResultForExampleNodeWithLabel:@"PASSED"]; - } - - // Always clear stubs and spies at the end of it blocks - KWClearStubsAndSpies(); - }]; -} - -- (void)visitPendingNode:(KWPendingNode *)aNode { - if (aNode != self.exampleNode) - return; - - [self reportResultForExampleNodeWithLabel:@"PENDING"]; -} - -- (NSString *)generateDescriptionForAnonymousItNode { - // anonymous specify blocks should only have one verifier, but use the first in any case - return [(self.verifiers)[0] descriptionForAnonymousItNode]; -} - -@end - -#pragma mark - Looking up CallSites - -KWCallSite *callSiteWithAddress(long address); -KWCallSite *callSiteAtAddressIfNecessary(long address); - -KWCallSite *callSiteAtAddressIfNecessary(long address){ - BOOL shouldLookup = [[KWExampleSuiteBuilder sharedExampleSuiteBuilder] isFocused] && ![[KWExampleSuiteBuilder sharedExampleSuiteBuilder] foundFocus]; - return shouldLookup ? callSiteWithAddress(address) : nil; -} - -KWCallSite *callSiteWithAddress(long address){ - NSArray *args = @[@"-p", @(getpid()).stringValue, [NSString stringWithFormat:@"%lx", address]]; - NSString *callSite = [NSString stringWithShellCommand:@"/usr/bin/atos" arguments:args]; - - NSString *pattern = @".+\\((.+):([0-9]+)\\)"; - NSError *e; - NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:pattern options:NSRegularExpressionCaseInsensitive error:&e]; - NSArray *res = [regex matchesInString:callSite options:0 range:NSMakeRange(0, callSite.length)]; - - NSString *fileName = nil; - NSInteger lineNumber = 0; - - for (NSTextCheckingResult *ntcr in res) { - fileName = [callSite substringWithRange:[ntcr rangeAtIndex:1]]; - NSString *lineNumberMatch = [callSite substringWithRange:[ntcr rangeAtIndex:2]]; - lineNumber = lineNumberMatch.integerValue; - } - return [KWCallSite callSiteWithFilename:fileName lineNumber:lineNumber]; -} - -#pragma mark - Building Example Groups - -void describe(NSString *aDescription, void (^block)(void)) { - KWCallSite *callSite = callSiteAtAddressIfNecessary(kwCallerAddress()); - describeWithCallSite(callSite, aDescription, block); -} - -void context(NSString *aDescription, void (^block)(void)) { - KWCallSite *callSite = callSiteAtAddressIfNecessary(kwCallerAddress()); - contextWithCallSite(callSite, aDescription, block); -} - -void registerMatchers(NSString *aNamespacePrefix) { - registerMatchersWithCallSite(nil, aNamespacePrefix); -} - -void beforeAll(void (^block)(void)) { - beforeAllWithCallSite(nil, block); -} - -void afterAll(void (^block)(void)) { - afterAllWithCallSite(nil, block); -} - -void beforeEach(void (^block)(void)) { - beforeEachWithCallSite(nil, block); -} - -void afterEach(void (^block)(void)) { - afterEachWithCallSite(nil, block); -} - -void it(NSString *aDescription, void (^block)(void)) { - KWCallSite *callSite = callSiteAtAddressIfNecessary(kwCallerAddress()); - itWithCallSite(callSite, aDescription, block); -} - -void let_(__autoreleasing id *anObjectRef, const char *aSymbolName, id (^block)(void)) -{ - NSString *aDescription = [NSString stringWithUTF8String:aSymbolName]; - letWithCallSite(nil, anObjectRef, aDescription, block); -} - -void specify(void (^block)(void)) -{ - itWithCallSite(nil, nil, block); -} - -void pending_(NSString *aDescription, void (^ignoredBlock)(void)) { - pendingWithCallSite(nil, aDescription, ignoredBlock); -} - -void describeWithCallSite(KWCallSite *aCallSite, NSString *aDescription, void (^block)(void)) { - - contextWithCallSite(aCallSite, aDescription, block); -} - -void contextWithCallSite(KWCallSite *aCallSite, NSString *aDescription, void (^block)(void)) { - [[KWExampleSuiteBuilder sharedExampleSuiteBuilder] pushContextNodeWithCallSite:aCallSite description:aDescription]; - block(); - [[KWExampleSuiteBuilder sharedExampleSuiteBuilder] popContextNode]; -} - -void registerMatchersWithCallSite(KWCallSite *aCallSite, NSString *aNamespacePrefix) { - [[KWExampleSuiteBuilder sharedExampleSuiteBuilder] setRegisterMatchersNodeWithCallSite:aCallSite namespacePrefix:aNamespacePrefix]; -} - -void beforeAllWithCallSite(KWCallSite *aCallSite, void (^block)(void)) { - [[KWExampleSuiteBuilder sharedExampleSuiteBuilder] setBeforeAllNodeWithCallSite:aCallSite block:block]; -} - -void afterAllWithCallSite(KWCallSite *aCallSite, void (^block)(void)) { - [[KWExampleSuiteBuilder sharedExampleSuiteBuilder] setAfterAllNodeWithCallSite:aCallSite block:block]; -} - -void beforeEachWithCallSite(KWCallSite *aCallSite, void (^block)(void)) { - [[KWExampleSuiteBuilder sharedExampleSuiteBuilder] setBeforeEachNodeWithCallSite:aCallSite block:block]; -} - -void afterEachWithCallSite(KWCallSite *aCallSite, void (^block)(void)) { - [[KWExampleSuiteBuilder sharedExampleSuiteBuilder] setAfterEachNodeWithCallSite:aCallSite block:block]; -} - -void letWithCallSite(KWCallSite *aCallSite, __autoreleasing id *anObjectRef, NSString *aSymbolName, id (^block)(void)) -{ - [[KWExampleSuiteBuilder sharedExampleSuiteBuilder] addLetNodeWithCallSite:aCallSite objectRef:anObjectRef symbolName:aSymbolName block:block]; -} - -void itWithCallSite(KWCallSite *aCallSite, NSString *aDescription, void (^block)(void)) { - [[KWExampleSuiteBuilder sharedExampleSuiteBuilder] addItNodeWithCallSite:aCallSite description:aDescription block:block]; -} - -void pendingWithCallSite(KWCallSite *aCallSite, NSString *aDescription, void (^ignoredBlock)(void)) { - [[KWExampleSuiteBuilder sharedExampleSuiteBuilder] addPendingNodeWithCallSite:aCallSite description:aDescription]; -} diff --git a/Pods/Kiwi/Classes/Core/KWExampleDelegate.h b/Pods/Kiwi/Classes/Core/KWExampleDelegate.h deleted file mode 100644 index cdcceab..0000000 --- a/Pods/Kiwi/Classes/Core/KWExampleDelegate.h +++ /dev/null @@ -1,18 +0,0 @@ -// -// KWExampleGroupDelegate.h -// Kiwi -// -// Created by Luke Redpath on 08/09/2011. -// Copyright 2011 Allen Ding. All rights reserved. -// - -#import - -@class KWExample; -@class KWFailure; - -@protocol KWExampleDelegate - -- (void)example:(KWExample *)example didFailWithFailure:(KWFailure *)failure; - -@end diff --git a/Pods/Kiwi/Classes/Core/KWExampleNodeVisitor.h b/Pods/Kiwi/Classes/Core/KWExampleNodeVisitor.h deleted file mode 100644 index f264794..0000000 --- a/Pods/Kiwi/Classes/Core/KWExampleNodeVisitor.h +++ /dev/null @@ -1,35 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" - -@class KWAfterAllNode; -@class KWAfterEachNode; -@class KWBeforeAllNode; -@class KWBeforeEachNode; -@class KWContextNode; -@class KWLetNode; -@class KWItNode; -@class KWPendingNode; -@class KWRegisterMatchersNode; - -@protocol KWExampleNodeVisitor - -#pragma mark - Visiting Nodes - -@optional - -- (void)visitContextNode:(KWContextNode *)aNode; -- (void)visitRegisterMatchersNode:(KWRegisterMatchersNode *)aNode; -- (void)visitBeforeAllNode:(KWBeforeAllNode *)aNode; -- (void)visitAfterAllNode:(KWAfterAllNode *)aNode; -- (void)visitBeforeEachNode:(KWBeforeEachNode *)aNode; -- (void)visitAfterEachNode:(KWAfterEachNode *)aNode; -- (void)visitLetNode:(KWLetNode *)aNode; -- (void)visitItNode:(KWItNode *)aNode; -- (void)visitPendingNode:(KWPendingNode *)aNode; - -@end diff --git a/Pods/Kiwi/Classes/Core/KWExampleSuite.h b/Pods/Kiwi/Classes/Core/KWExampleSuite.h deleted file mode 100644 index ec74a7b..0000000 --- a/Pods/Kiwi/Classes/Core/KWExampleSuite.h +++ /dev/null @@ -1,31 +0,0 @@ -// -// KWExampleSuite.h -// Kiwi -// -// Created by Luke Redpath on 17/10/2011. -// Copyright (c) 2011 Allen Ding. All rights reserved. -// - -#import -#import "KWExampleNodeVisitor.h" - -@class KWContextNode; -@class KWExample; - -@interface KWExampleSuite : NSObject - -- (id)initWithRootNode:(KWContextNode *)contextNode; -- (void)addExample:(KWExample *)example; -- (void)markLastExampleAsLastInContext:(KWContextNode *)context; - -@property (nonatomic, readonly) NSMutableArray *examples; - -#pragma mark - Example selector names - -- (NSString *)nextUniqueSelectorName:(NSString *)name; - -@end - -@interface NSInvocation (KWExampleGroup) -@property (nonatomic, setter = kw_setExample:) KWExample *kw_example; -@end diff --git a/Pods/Kiwi/Classes/Core/KWExampleSuite.m b/Pods/Kiwi/Classes/Core/KWExampleSuite.m deleted file mode 100644 index 708cb88..0000000 --- a/Pods/Kiwi/Classes/Core/KWExampleSuite.m +++ /dev/null @@ -1,92 +0,0 @@ -// -// KWExampleSuite.m -// Kiwi -// -// Created by Luke Redpath on 17/10/2011. -// Copyright (c) 2011 Allen Ding. All rights reserved. -// - -#import "KWExampleSuite.h" - -#import "KWAfterAllNode.h" -#import "KWBeforeAllNode.h" -#import "KWContextNode.h" -#import "KWExample.h" -#import "KWStringUtilities.h" -#import "NSMethodSignature+KiwiAdditions.h" -#import - -#define kKWINVOCATION_EXAMPLE_GROUP_KEY @"__KWExampleGroupKey" - -@interface KWExampleSuite() - -@property (nonatomic, strong) KWContextNode *rootNode; -@property (nonatomic, strong) NSMutableArray *examples; -@property (nonatomic, strong) NSMutableDictionary *selectorNameCache; - -@end - -@implementation KWExampleSuite - -- (id)initWithRootNode:(KWContextNode *)contextNode { - self = [super init]; - if (self) { - _rootNode = contextNode; - _examples = [[NSMutableArray alloc] init]; - _selectorNameCache = [[NSMutableDictionary alloc] init]; - } - return self; -} - - -- (void)addExample:(KWExample *)example { - [self.examples addObject:example]; - example.suite = self; -} - -- (void)markLastExampleAsLastInContext:(KWContextNode *)context -{ - if ([self.examples count] > 0) { - KWExample *lastExample = (KWExample *)[self.examples lastObject]; - [lastExample.lastInContexts addObject:context]; - } -} - -#pragma mark - Example selector names - -- (NSString *)nextUniqueSelectorName:(NSString *)name { - NSUInteger count = [(self.selectorNameCache[name] ?: @1) integerValue]; - NSString *uniqueName = name; - if (count > 1) { - NSString *format = [name hasSuffix:@"_"] ? @"%lu" : @"_%lu"; - uniqueName = [name stringByAppendingFormat:format, (unsigned long)count]; - } - self.selectorNameCache[name] = @(++count); - return uniqueName; -} - -#pragma mark - NSFastEnumeration - -- (NSUInteger)countByEnumeratingWithState:(NSFastEnumerationState *)state objects:(__unsafe_unretained id [])buffer count:(NSUInteger)len { - return [self.examples countByEnumeratingWithState:state objects:buffer count:len]; -} - -@end - -#pragma mark - - -// because XCTest will modify the invocation target, we'll have to store -// another reference to the example group so we can retrieve it later - -@implementation NSInvocation (KWExampleGroup) - -- (void)kw_setExample:(KWExample *)exampleGroup { - objc_setAssociatedObject(self, kKWINVOCATION_EXAMPLE_GROUP_KEY, exampleGroup, OBJC_ASSOCIATION_RETAIN_NONATOMIC); -} - -- (KWExample *)kw_example { - return objc_getAssociatedObject(self, kKWINVOCATION_EXAMPLE_GROUP_KEY); -} - -@end - diff --git a/Pods/Kiwi/Classes/Core/KWExampleSuiteBuilder.h b/Pods/Kiwi/Classes/Core/KWExampleSuiteBuilder.h deleted file mode 100644 index a707a8e..0000000 --- a/Pods/Kiwi/Classes/Core/KWExampleSuiteBuilder.h +++ /dev/null @@ -1,46 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" -#import "KWBlock.h" - -@class KWCallSite; -@class KWExample; -@class KWExampleSuite; -@class KWContextNode; - -@interface KWExampleSuiteBuilder : NSObject - -#pragma mark - Initializing - -+ (id)sharedExampleSuiteBuilder; - -#pragma mark - Building Example Groups - -@property (nonatomic, readonly) BOOL isBuildingExampleSuite; -@property (nonatomic, strong, readonly) KWExampleSuite *currentExampleSuite; -@property (nonatomic, strong) KWExample *currentExample; -@property (nonatomic, strong) KWCallSite *focusedCallSite; - -//spec file name:line number of callsite -- (void)focusWithURI:(NSString *)nodeUrl; -- (KWExampleSuite *)buildExampleSuite:(void (^)(void))buildingBlock; - -- (void)pushContextNodeWithCallSite:(KWCallSite *)aCallSite description:(NSString *)aDescription; -- (void)popContextNode; -- (void)setRegisterMatchersNodeWithCallSite:(KWCallSite *)aCallSite namespacePrefix:(NSString *)aNamespacePrefix; -- (void)setBeforeAllNodeWithCallSite:(KWCallSite *)aCallSite block:(void (^)(void))block; -- (void)setAfterAllNodeWithCallSite:(KWCallSite *)aCallSite block:(void (^)(void))block; -- (void)setBeforeEachNodeWithCallSite:(KWCallSite *)aCallSite block:(void (^)(void))block; -- (void)setAfterEachNodeWithCallSite:(KWCallSite *)aCallSite block:(void (^)(void))block; -- (void)addLetNodeWithCallSite:(KWCallSite *)aCallSite objectRef:(id *)anObjectRef symbolName:(NSString *)aSymbolName block:(id (^)(void))block; -- (void)addItNodeWithCallSite:(KWCallSite *)aCallSite description:(NSString *)aDescription block:(void (^)(void))block; -- (void)addPendingNodeWithCallSite:(KWCallSite *)aCallSite description:(NSString *)aDescription; - -- (BOOL)isFocused; -- (BOOL)foundFocus; - -@end diff --git a/Pods/Kiwi/Classes/Core/KWExampleSuiteBuilder.m b/Pods/Kiwi/Classes/Core/KWExampleSuiteBuilder.m deleted file mode 100644 index 4842c4c..0000000 --- a/Pods/Kiwi/Classes/Core/KWExampleSuiteBuilder.m +++ /dev/null @@ -1,237 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KWExampleSuiteBuilder.h" - -#import "KWAfterAllNode.h" -#import "KWAfterEachNode.h" -#import "KWBeforeAllNode.h" -#import "KWBeforeEachNode.h" -#import "KWLetNode.h" -#import "KWCallSite.h" -#import "KWContextNode.h" -#import "KWExample.h" -#import "KWExampleSuite.h" -#import "KWItNode.h" -#import "KWPendingNode.h" -#import "KWRegisterMatchersNode.h" -#import "KWSymbolicator.h" - -static NSString * const KWExampleSuiteBuilderException = @"KWExampleSuiteBuilderException"; - -@interface KWExampleSuiteBuilder() - -#pragma mark - Building Example Groups - -@property (nonatomic, strong) KWExampleSuite *currentExampleSuite; -@property (nonatomic, readonly) NSMutableArray *contextNodeStack; - -@property (nonatomic, strong) NSMutableSet *suites; - -@property (nonatomic, assign) BOOL focusedContextNode; -@property (nonatomic, assign) BOOL focusedItNode; - -@end - -@implementation KWExampleSuiteBuilder - - -#pragma mark - Initializing - - -- (id)init { - self = [super init]; - if (self) { - _contextNodeStack = [[NSMutableArray alloc] init]; - _suites = [[NSMutableSet alloc] init]; - [self focusWithURI:[[[NSProcessInfo processInfo] environment] objectForKey:@"KW_SPEC"]]; - } - return self; -} - - -+ (id)sharedExampleSuiteBuilder { - static KWExampleSuiteBuilder *sharedExampleSuiteBuilder = nil; - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - sharedExampleSuiteBuilder = [self new]; - }); - - return sharedExampleSuiteBuilder; -} - -#pragma mark - Focus - -- (void)focusWithURI:(NSString *)nodeUrl { - NSArray *focusInfo = [nodeUrl componentsSeparatedByString:@":"]; - if (!focusInfo || focusInfo.count != 2) - return; - self.focusedCallSite = [KWCallSite callSiteWithFilename:focusInfo[0] lineNumber:[focusInfo[1] intValue]]; -} - -- (void)setFocusedCallSite:(KWCallSite *)aFocusedCallSite { - _focusedCallSite = aFocusedCallSite; - self.focusedItNode = NO; - self.focusedContextNode = NO; -} - -- (BOOL)isFocused { - return self.focusedCallSite != nil; -} - -- (BOOL)foundFocus { - return self.focusedContextNode || self.focusedItNode; -} - -#pragma mark - Building Example Groups - -- (BOOL)isBuildingExampleSuite { - return [self.contextNodeStack count] > 0; -} - -- (KWExampleSuite *)buildExampleSuite:(void (^)(void))buildingBlock -{ - KWContextNode *rootNode = [KWContextNode contextNodeWithCallSite:nil parentContext:nil description:nil]; - - self.currentExampleSuite = [[KWExampleSuite alloc] initWithRootNode:rootNode]; - - [self.suites addObject:self.currentExampleSuite]; - - [self.contextNodeStack addObject:rootNode]; - buildingBlock(); - [self.contextNodeStack removeAllObjects]; - - return self.currentExampleSuite; -} - -- (void)pushContextNodeWithCallSite:(KWCallSite *)aCallSite description:(NSString *)aDescription { - - KWContextNode *contextNode = [self.contextNodeStack lastObject]; - KWContextNode *node = [KWContextNode contextNodeWithCallSite:aCallSite parentContext:contextNode description:aDescription]; - - if (self.isFocused) - node.isFocused = [self shouldFocusContextNodeWithCallSite:aCallSite parentNode:contextNode]; - - [contextNode addContextNode:node]; - [self.contextNodeStack addObject:node]; -} - -- (BOOL)shouldFocusContextNodeWithCallSite:(KWCallSite *)aCallSite parentNode:(KWContextNode *)parentNode { - if (parentNode.isFocused) - return YES; - - if ([aCallSite isEqualToCallSite:self.focusedCallSite]) { - self.focusedContextNode = YES; - return YES; - } - return NO; -} - -- (void)popContextNode { - KWContextNode *contextNode = [self.contextNodeStack lastObject]; - - [self.currentExampleSuite markLastExampleAsLastInContext:contextNode]; - - if ([self.contextNodeStack count] == 1) { - [NSException raise:KWExampleSuiteBuilderException - format:@"there is no open context to pop"]; - } - - [self.contextNodeStack removeLastObject]; -} - -- (void)setRegisterMatchersNodeWithCallSite:(KWCallSite *)aCallSite namespacePrefix:(NSString *)aNamespacePrefix { - [self raiseIfExampleGroupNotStarted]; - - KWContextNode *contextNode = [self.contextNodeStack lastObject]; - KWRegisterMatchersNode *registerMatchersNode = [KWRegisterMatchersNode registerMatchersNodeWithCallSite:aCallSite namespacePrefix:aNamespacePrefix]; - [contextNode addRegisterMatchersNode:registerMatchersNode]; -} - -- (void)setBeforeAllNodeWithCallSite:(KWCallSite *)aCallSite block:(void (^)(void))block { - [self raiseIfExampleGroupNotStarted]; - - KWContextNode *contextNode = [self.contextNodeStack lastObject]; - KWBeforeAllNode *beforeAllNode = [KWBeforeAllNode beforeAllNodeWithCallSite:aCallSite block:block]; - [contextNode setBeforeAllNode:beforeAllNode]; -} - -- (void)setAfterAllNodeWithCallSite:(KWCallSite *)aCallSite block:(void (^)(void))block { - [self raiseIfExampleGroupNotStarted]; - - KWContextNode *contextNode = [self.contextNodeStack lastObject]; - KWAfterAllNode *afterAllNode = [KWAfterAllNode afterAllNodeWithCallSite:aCallSite block:block]; - [contextNode setAfterAllNode:afterAllNode]; -} - -- (void)setBeforeEachNodeWithCallSite:(KWCallSite *)aCallSite block:(void (^)(void))block { - [self raiseIfExampleGroupNotStarted]; - - KWContextNode *contextNode = [self.contextNodeStack lastObject]; - KWBeforeEachNode *beforeEachNode = [KWBeforeEachNode beforeEachNodeWithCallSite:aCallSite block:block]; - [contextNode setBeforeEachNode:beforeEachNode]; -} - -- (void)setAfterEachNodeWithCallSite:(KWCallSite *)aCallSite block:(void (^)(void))block { - [self raiseIfExampleGroupNotStarted]; - - KWContextNode *contextNode = [self.contextNodeStack lastObject]; - KWAfterEachNode *afterEachNode = [KWAfterEachNode afterEachNodeWithCallSite:aCallSite block:block]; - [contextNode setAfterEachNode:afterEachNode]; -} - -- (void)addLetNodeWithCallSite:(KWCallSite *)aCallSite objectRef:(__autoreleasing id *)anObjectRef symbolName:(NSString *)aSymbolName block:(id (^)(void))block { - [self raiseIfExampleGroupNotStarted]; - - KWContextNode *contextNode = [self.contextNodeStack lastObject]; - [contextNode addLetNode:[KWLetNode letNodeWithSymbolName:aSymbolName objectRef:anObjectRef block:block]]; -} - -- (void)addItNodeWithCallSite:(KWCallSite *)aCallSite description:(NSString *)aDescription block:(void (^)(void))block { - [self raiseIfExampleGroupNotStarted]; - - KWContextNode *contextNode = [self.contextNodeStack lastObject]; - - if (self.isFocused && ![self shouldAddItNodeWithCallSite:aCallSite toContextNode:contextNode]) - return; - - KWItNode* itNode = [KWItNode itNodeWithCallSite:aCallSite description:aDescription context:contextNode block:block]; - [contextNode addItNode:itNode]; - - KWExample *example = [[KWExample alloc] initWithExampleNode:itNode]; - [self.currentExampleSuite addExample:example]; -} - -- (BOOL)shouldAddItNodeWithCallSite:(KWCallSite *)aCallSite toContextNode:(KWContextNode *)contextNode { - if (contextNode.isFocused) - return YES; - - if([aCallSite isEqualToCallSite:self.focusedCallSite]){ - self.focusedItNode = YES; - return YES; - } - - return NO; -} - -- (void)addPendingNodeWithCallSite:(KWCallSite *)aCallSite description:(NSString *)aDescription { - [self raiseIfExampleGroupNotStarted]; - - KWContextNode *contextNode = [self.contextNodeStack lastObject]; - KWPendingNode *pendingNode = [KWPendingNode pendingNodeWithCallSite:aCallSite context:contextNode description:aDescription]; - [contextNode addPendingNode:pendingNode]; - KWExample *example = [[KWExample alloc] initWithExampleNode:pendingNode]; - [self.currentExampleSuite addExample:example]; -} - -- (void)raiseIfExampleGroupNotStarted { - if ([self.contextNodeStack count] == 0) { - [NSException raise:KWExampleSuiteBuilderException - format:@"an example group has not been started"]; - } -} - -@end diff --git a/Pods/Kiwi/Classes/Core/KWExpectationType.h b/Pods/Kiwi/Classes/Core/KWExpectationType.h deleted file mode 100644 index eca75a8..0000000 --- a/Pods/Kiwi/Classes/Core/KWExpectationType.h +++ /dev/null @@ -1,15 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" - -enum { - KWExpectationTypeShould, - KWExpectationTypeShouldNot, - KWExpectationTypeMaybe -}; - -typedef NSUInteger KWExpectationType; diff --git a/Pods/Kiwi/Classes/Core/KWFailure.h b/Pods/Kiwi/Classes/Core/KWFailure.h deleted file mode 100644 index a9d136c..0000000 --- a/Pods/Kiwi/Classes/Core/KWFailure.h +++ /dev/null @@ -1,26 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" - -@class KWCallSite; - -@interface KWFailure : NSObject - -#pragma mark - Initializing - -- (id)initWithCallSite:(KWCallSite *)aCallSite message:(NSString *)aMessage; -- (id)initWithCallSite:(KWCallSite *)aCallSite format:(NSString *)format, ...; - -+ (id)failureWithCallSite:(KWCallSite *)aCallSite message:(NSString *)aMessage; -+ (id)failureWithCallSite:(KWCallSite *)aCallSite format:(NSString *)format, ...; - -#pragma mark - Properties - -@property (nonatomic, readonly) NSString *message; -@property (nonatomic, weak, readonly) KWCallSite *callSite; - -@end diff --git a/Pods/Kiwi/Classes/Core/KWFailure.m b/Pods/Kiwi/Classes/Core/KWFailure.m deleted file mode 100644 index f607cbe..0000000 --- a/Pods/Kiwi/Classes/Core/KWFailure.m +++ /dev/null @@ -1,44 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KWFailure.h" -#import "KWCallSite.h" - -@implementation KWFailure - -#pragma mark - Initializing - -- (id)initWithCallSite:(KWCallSite *)aCallSite message:(NSString *)aMessage { - self = [super init]; - if (self) { - _callSite = aCallSite; - _message = [aMessage copy]; - } - - return self; -} - -- (id)initWithCallSite:(KWCallSite *)aCallSite format:(NSString *)format, ... { - va_list argumentList; - va_start(argumentList, format); - NSString *aMessage = [[NSString alloc] initWithFormat:format arguments:argumentList]; - va_end(argumentList); - return [self initWithCallSite:aCallSite message:aMessage]; -} - -+ (id)failureWithCallSite:(KWCallSite *)aCallSite message:(NSString *)aMessage { - return [[self alloc] initWithCallSite:aCallSite message:aMessage]; -} - -+ (id)failureWithCallSite:(KWCallSite *)aCallSite format:(NSString *)format, ... { - va_list argumentList; - va_start(argumentList, format); - NSString *message = [[NSString alloc] initWithFormat:format arguments:argumentList]; - va_end(argumentList); - return [self failureWithCallSite:aCallSite message:message]; -} - -@end diff --git a/Pods/Kiwi/Classes/Core/KWFormatter.h b/Pods/Kiwi/Classes/Core/KWFormatter.h deleted file mode 100644 index 34f8655..0000000 --- a/Pods/Kiwi/Classes/Core/KWFormatter.h +++ /dev/null @@ -1,16 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" - -@interface KWFormatter : NSObject - -#pragma mark - Getting Descriptions - -+ (NSString *)formatObject:(id)anObject; -+ (NSString *)formatObjectIncludingClass:(id)anObject; - -@end diff --git a/Pods/Kiwi/Classes/Core/KWFormatter.m b/Pods/Kiwi/Classes/Core/KWFormatter.m deleted file mode 100644 index f12917e..0000000 --- a/Pods/Kiwi/Classes/Core/KWFormatter.m +++ /dev/null @@ -1,59 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KWFormatter.h" - -@implementation KWFormatter - - -#pragma mark - Getting Descriptions - -+ (NSString *)formatObject:(id)anObject { - if ([anObject isKindOfClass:[NSString class]]) - return [NSString stringWithFormat:@"\"%@\"", anObject]; - - else if ([anObject isKindOfClass:[NSDictionary class]]) - return [anObject description]; // NSDictionary conforms to NSFastEnumeration - - else if ([anObject conformsToProtocol:@protocol(NSFastEnumeration)]) - return [self formattedCollection:anObject]; - - return [anObject description]; -} - -+ (NSString *)formatObjectIncludingClass:(id)anObject { - NSString *classString = [[anObject class] description]; - - if ([anObject isKindOfClass:[NSString class]]) - classString = @"NSString"; - - return [NSString stringWithFormat:@"(%@) %@", classString, [self formatObject:anObject]]; -} - - -#pragma mark - Private - -+ (NSString *)formattedCollection:(id)collection { - - NSMutableString *description = [[NSMutableString alloc] initWithString:@"("]; - NSUInteger index = 0; - - for (id object in collection) { - if (index == 0) - [description appendFormat:@"%@", [self formatObject:object]]; - else - [description appendFormat:@", %@", [self formatObject:object]]; - - ++index; - } - - [description appendString:@")"]; - return description; -} - - - -@end diff --git a/Pods/Kiwi/Classes/Core/KWFutureObject.h b/Pods/Kiwi/Classes/Core/KWFutureObject.h deleted file mode 100644 index f45ff51..0000000 --- a/Pods/Kiwi/Classes/Core/KWFutureObject.h +++ /dev/null @@ -1,20 +0,0 @@ -// -// KWFutureObject.h -// iOSFalconCore -// -// Created by Luke Redpath on 13/01/2011. -// Copyright 2011 LJR Software Limited. All rights reserved. -// - -#import - -typedef id (^KWFutureObjectBlock)(void); - -@interface KWFutureObject : NSObject - -+ (id)objectWithObjectPointer:(id *)pointer; -+ (id)futureObjectWithBlock:(KWFutureObjectBlock)block; -- (id)initWithBlock:(KWFutureObjectBlock)aBlock; -- (id)object; - -@end diff --git a/Pods/Kiwi/Classes/Core/KWFutureObject.m b/Pods/Kiwi/Classes/Core/KWFutureObject.m deleted file mode 100644 index 52c654b..0000000 --- a/Pods/Kiwi/Classes/Core/KWFutureObject.m +++ /dev/null @@ -1,40 +0,0 @@ -// -// KWFutureObject.m -// iOSFalconCore -// -// Created by Luke Redpath on 13/01/2011. -// Copyright 2011 LJR Software Limited. All rights reserved. -// - -#import "KWFutureObject.h" - -@interface KWFutureObject() - -@property (nonatomic, strong) KWFutureObjectBlock block; - -@end - -@implementation KWFutureObject - -+ (id)objectWithObjectPointer:(id *)pointer { - return [self futureObjectWithBlock:^{ return *pointer; }]; -} - -+ (id)futureObjectWithBlock:(KWFutureObjectBlock)block { - return [[self alloc] initWithBlock:block]; -} - -- (id)initWithBlock:(KWFutureObjectBlock)aBlock { - self = [super init]; - if (self) { - _block = [aBlock copy]; - } - return self; -} - -- (id)object; { - return self.block(); -} - - -@end diff --git a/Pods/Kiwi/Classes/Core/KWInvocationCapturer.h b/Pods/Kiwi/Classes/Core/KWInvocationCapturer.h deleted file mode 100644 index c02ab0c..0000000 --- a/Pods/Kiwi/Classes/Core/KWInvocationCapturer.h +++ /dev/null @@ -1,35 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" - -@protocol KWInvocationCapturerDelegate; - -@interface KWInvocationCapturer : NSProxy - -#pragma mark - Initializing - -- (id)initWithDelegate:(id)aDelegate; -- (id)initWithDelegate:(id)aDelegate userInfo:(NSDictionary *)aUserInfo; - -+ (id)invocationCapturerWithDelegate:(id)aDelegate; -+ (id)invocationCapturerWithDelegate:(id)aDelegate userInfo:(NSDictionary *)aUserInfo; - -#pragma mark - Properties - -@property (nonatomic, weak, readonly) id delegate; -@property (nonatomic, strong, readonly) NSDictionary *userInfo; - -@end - -@protocol KWInvocationCapturerDelegate - -#pragma mark - Capturing Invocations - -- (NSMethodSignature *)invocationCapturer:(KWInvocationCapturer *)anInvocationCapturer methodSignatureForSelector:(SEL)aSelector; -- (void)invocationCapturer:(KWInvocationCapturer *)anInvocationCapturer didCaptureInvocation:(NSInvocation *)anInvocation; - -@end diff --git a/Pods/Kiwi/Classes/Core/KWInvocationCapturer.m b/Pods/Kiwi/Classes/Core/KWInvocationCapturer.m deleted file mode 100644 index e340972..0000000 --- a/Pods/Kiwi/Classes/Core/KWInvocationCapturer.m +++ /dev/null @@ -1,88 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KWInvocationCapturer.h" -#import "KWWorkarounds.h" -#import "NSInvocation+KiwiAdditions.h" - -@implementation KWInvocationCapturer - -#pragma mark - Initializing - -- (id)initWithDelegate:(id)aDelegate { - return [self initWithDelegate:aDelegate userInfo:nil]; -} - -- (id)initWithDelegate:(id)aDelegate userInfo:(NSDictionary *)aUserInfo { - delegate = aDelegate; - userInfo = aUserInfo; - return self; -} - -+ (id)invocationCapturerWithDelegate:(id)aDelegate { - return [self invocationCapturerWithDelegate:aDelegate userInfo:nil]; -} - -+ (id)invocationCapturerWithDelegate:(id)aDelegate userInfo:(NSDictionary *)aUserInfo { - return [[self alloc] initWithDelegate:aDelegate userInfo:aUserInfo]; -} - - -#pragma mark - Properties - -@synthesize delegate; -@synthesize userInfo; - -#pragma mark - Capturing Invocations - -- (void)KW_captureInvocation:(NSInvocation *)anInvocation { - [self.delegate invocationCapturer:self didCaptureInvocation:anInvocation]; -} - -#pragma mark - Handling Invocations - -- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector { - return [self.delegate invocationCapturer:self methodSignatureForSelector:aSelector]; -} - -- (void)forwardInvocation:(NSInvocation *)anInvocation { -#if KW_TARGET_HAS_INVOCATION_EXCEPTION_BUG - @try { -#endif // #if KW_TARGET_HAS_INVOCATION_EXCEPTION_BUG - - [self KW_captureInvocation:anInvocation]; - -#if KW_TARGET_HAS_INVOCATION_EXCEPTION_BUG - } @catch (NSException *exception) { - KWSetExceptionFromAcrossInvocationBoundary(exception); - } -#endif // #if KW_TARGET_HAS_INVOCATION_EXCEPTION_BUG -} - -#pragma mark - Whitelisted NSObject Methods - -// The return values from these methods should never be needed, so just call -// the super implementation after capturing the invocation. - -- (BOOL)isEqual:(id)anObject { - NSInvocation *invocation = [NSInvocation invocationWithTarget:self selector:_cmd messageArguments:&anObject]; - [self KW_captureInvocation:invocation]; - return [super isEqual:anObject]; -} - -- (NSUInteger)hash { - NSInvocation *invocation = [NSInvocation invocationWithTarget:self selector:_cmd]; - [self KW_captureInvocation:invocation]; - return [super hash]; -} - -- (NSString *)description { - NSInvocation *invocation = [NSInvocation invocationWithTarget:self selector:_cmd]; - [self KW_captureInvocation:invocation]; - return [super description]; -} - -@end diff --git a/Pods/Kiwi/Classes/Core/KWLet.h b/Pods/Kiwi/Classes/Core/KWLet.h deleted file mode 100644 index fdd297d..0000000 --- a/Pods/Kiwi/Classes/Core/KWLet.h +++ /dev/null @@ -1,15 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#if __has_feature(objc_arc) -# define KW_ARC_AUTORELEASE(obj) obj -#else -# define KW_ARC_AUTORELEASE(obj) [obj autorelease] -#endif - -#define KW_LET_REF(var) \ - (__autoreleasing id *) \ - ( (void *(^)(void)) KW_ARC_AUTORELEASE([^{ void *ref = &var; return ref; } copy]) )() diff --git a/Pods/Kiwi/Classes/Core/KWMatcher.h b/Pods/Kiwi/Classes/Core/KWMatcher.h deleted file mode 100644 index 407cd9d..0000000 --- a/Pods/Kiwi/Classes/Core/KWMatcher.h +++ /dev/null @@ -1,39 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" -#import "KWMatching.h" - -@interface KWMatcher : NSObject - -#pragma mark - Initializing - -- (id)initWithSubject:(id)anObject; - -+ (id)matcherWithSubject:(id)anObject; - -#pragma mark - Properties - -@property (nonatomic, strong) id subject; - -#pragma mark - Getting Matcher Strings - -+ (NSArray *)matcherStrings; - -#pragma mark - Getting Matcher Compatability - -+ (BOOL)canMatchSubject:(id)anObject; - -#pragma mark - Matching - -- (BOOL)evaluate; - -#pragma mark - Getting Failure Messages - -- (NSString *)failureMessageForShould; -- (NSString *)failureMessageForShouldNot; - -@end diff --git a/Pods/Kiwi/Classes/Core/KWMatcher.m b/Pods/Kiwi/Classes/Core/KWMatcher.m deleted file mode 100644 index 9b3c481..0000000 --- a/Pods/Kiwi/Classes/Core/KWMatcher.m +++ /dev/null @@ -1,80 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KWMatcher.h" -#import "KWFormatter.h" -#import "KWFutureObject.h" - -@implementation KWMatcher - -#pragma mark - Initializing - -- (id)initWithSubject:(id)anObject { - self = [super init]; - if (self) { - _subject = anObject; - } - - return self; -} - -+ (id)matcherWithSubject:(id)anObject { - return [[self alloc] initWithSubject:anObject]; -} - - -#pragma mark - Properties - -- (id)subject -{ - if ([_subject isKindOfClass:[KWFutureObject class]]) { - return [(KWFutureObject *)_subject object]; - } - return _subject; -} - -#pragma mark - Getting Matcher Strings - -+ (NSArray *)matcherStrings { - return nil; -} - -#pragma mark - Getting Matcher Compatability - -+ (BOOL)canMatchSubject:(id)anObject { - return YES; -} - -#pragma mark - Matching - -- (BOOL)evaluate { - [NSException raise:NSInternalInconsistencyException format:@"%@ must override -evaluate", - [KWFormatter formatObject:[self class]]]; - return NO; -} - -#pragma mark - Getting Failure Messages - -- (NSString *)failureMessageForShould { - return @"subject did not meet expectation"; -} - -- (NSString *)failureMessageForShouldNot { - NSString *failureMessageForShould = [self failureMessageForShould]; - NSRange markerRange = [failureMessageForShould rangeOfString:@" to "]; - - if (markerRange.location == NSNotFound) - return @"subject did not meet expectation"; - - NSRange replacementRange = NSMakeRange(0, markerRange.location + markerRange.length); - NSString *message = [failureMessageForShould stringByReplacingOccurrencesOfString:@" to " - withString:@" not to " - options:0 - range:replacementRange]; - return message; -} - -@end diff --git a/Pods/Kiwi/Classes/Core/KWMatcherFactory.h b/Pods/Kiwi/Classes/Core/KWMatcherFactory.h deleted file mode 100644 index 245f235..0000000 --- a/Pods/Kiwi/Classes/Core/KWMatcherFactory.h +++ /dev/null @@ -1,37 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" -#import "KWMatching.h" - -@class KWFailure; -@class KWMatcher; -@class KWUserDefinedMatcherBuilder; - -@interface KWMatcherFactory : NSObject - -#pragma mark - Initializing - -- (id)init; - -#pragma mark - Properties - -@property (nonatomic, readonly) NSArray *registeredMatcherClasses; - -#pragma mark - Registering Matcher Classes - -- (void)registerMatcherClass:(Class)aClass; -- (void)registerMatcherClassesWithNamespacePrefix:(NSString *)aNamespacePrefix; - -#pragma mark - Getting Method Signatures - -- (NSMethodSignature *)methodSignatureForMatcherSelector:(SEL)aSelector; - -#pragma mark - Getting Matchers - -- (KWMatcher *)matcherFromInvocation:(NSInvocation *)anInvocation subject:(id)subject; - -@end diff --git a/Pods/Kiwi/Classes/Core/KWMatcherFactory.m b/Pods/Kiwi/Classes/Core/KWMatcherFactory.m deleted file mode 100644 index db07795..0000000 --- a/Pods/Kiwi/Classes/Core/KWMatcherFactory.m +++ /dev/null @@ -1,133 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KWMatcherFactory.h" -#import -#import "KWMatching.h" -#import "KWStringUtilities.h" -#import "KWUserDefinedMatcher.h" -#import "KWMatchers.h" - -@interface KWMatcherFactory() - -@property (nonatomic, strong) NSMutableDictionary *matcherClassChains; - -@end - -@implementation KWMatcherFactory - -#pragma mark - Initializing - -- (id)init { - self = [super init]; - if (self) { - _matcherClassChains = [[NSMutableDictionary alloc] init]; - _registeredMatcherClasses = [[NSMutableArray alloc] init]; - } - - return self; -} - -#pragma mark - Registering Matcher Classes - -- (void)registerMatcherClass:(Class)aClass { - if ([self.registeredMatcherClasses containsObject:aClass]) - return; - - [(NSMutableArray *)self.registeredMatcherClasses addObject:aClass]; - - for (NSString *verificationSelectorString in [aClass matcherStrings]) { - NSMutableArray *matcherClassChain = self.matcherClassChains[verificationSelectorString]; - - if (matcherClassChain == nil) { - matcherClassChain = [[NSMutableArray alloc] init]; - self.matcherClassChains[verificationSelectorString] = matcherClassChain; - } - - [matcherClassChain removeObject:aClass]; - [matcherClassChain insertObject:aClass atIndex:0]; - } -} - -- (void)registerMatcherClassesWithNamespacePrefix:(NSString *)aNamespacePrefix { - static NSMutableArray *matcherClasses = nil; - - // Cache all classes that conform to KWMatching. - if (matcherClasses == nil) { - matcherClasses = [[NSMutableArray alloc] init]; - int numberOfClasses = objc_getClassList(NULL, 0); - Class *classes = (Class *)malloc(sizeof(Class) * numberOfClasses); - numberOfClasses = objc_getClassList(classes, numberOfClasses); - - if (numberOfClasses == 0) { - free(classes); - return; - } - - for (int i = 0; i < numberOfClasses; ++i) { - Class candidateClass = classes[i]; - - if (!class_respondsToSelector(candidateClass, @selector(conformsToProtocol:))) - continue; - - if (![candidateClass conformsToProtocol:@protocol(KWMatching)]) - continue; - - [matcherClasses addObject:candidateClass]; - } - - free(classes); - } - - for (Class matcherClass in matcherClasses) { - NSString *className = NSStringFromClass(matcherClass); - - if (KWStringHasStrictWordPrefix(className, aNamespacePrefix)) - [self registerMatcherClass:matcherClass]; - } -} - -#pragma mark - Getting Method Signatures - -- (NSMethodSignature *)methodSignatureForMatcherSelector:(SEL)aSelector { - NSMutableArray *matcherClassChain = self.matcherClassChains[NSStringFromSelector(aSelector)]; - - if ([matcherClassChain count] == 0) - return nil; - - Class matcherClass = matcherClassChain[0]; - return [matcherClass instanceMethodSignatureForSelector:aSelector]; -} - -#pragma mark - Getting Matchers - -- (KWMatcher *)matcherFromInvocation:(NSInvocation *)anInvocation subject:(id)subject { - SEL selector = [anInvocation selector]; - - // try and match a built-in or registered matcher class - Class matcherClass = [self matcherClassForSelector:selector subject:subject]; - - if (matcherClass == nil) { - // see if we can match with a user-defined matcher instead - return [[KWMatchers matchers] matcherForSelector:selector subject:subject]; - } - return [[matcherClass alloc] initWithSubject:subject]; -} - -#pragma mark - Private methods - -- (Class)matcherClassForSelector:(SEL)aSelector subject:(id)anObject { - NSArray *matcherClassChain = self.matcherClassChains[NSStringFromSelector(aSelector)]; - - for (Class matcherClass in matcherClassChain) { - if ([matcherClass canMatchSubject:anObject]) - return matcherClass; - } - - return nil; -} - -@end diff --git a/Pods/Kiwi/Classes/Core/KWMatchers.h b/Pods/Kiwi/Classes/Core/KWMatchers.h deleted file mode 100644 index 0e78a77..0000000 --- a/Pods/Kiwi/Classes/Core/KWMatchers.h +++ /dev/null @@ -1,32 +0,0 @@ -// -// KWMatchers.h -// Kiwi -// -// Created by Luke Redpath on 17/06/2011. -// Copyright 2011 Allen Ding. All rights reserved. -// - -#import - -@class KWUserDefinedMatcherBuilder; - -typedef void (^KWMatchersBuildingBlock)(KWUserDefinedMatcherBuilder *matcherBuilder); - -@class KWUserDefinedMatcher; - -@interface KWMatchers : NSObject - -+ (id)matchers; - -#pragma mark - Defining Matchers - -+ (void)defineMatcher:(NSString *)selectorString as:(KWMatchersBuildingBlock)block; -- (void)defineMatcher:(NSString *)selectorString as:(KWMatchersBuildingBlock)block; -- (void)addUserDefinedMatcherBuilder:(KWUserDefinedMatcherBuilder *)builder; - -#pragma mark - Building Matchers - -- (KWUserDefinedMatcher *)matcherForSelector:(SEL)selector subject:(id)subject; -@end - -void KWDefineMatchers(NSString *selectorString, KWMatchersBuildingBlock block); diff --git a/Pods/Kiwi/Classes/Core/KWMatchers.m b/Pods/Kiwi/Classes/Core/KWMatchers.m deleted file mode 100644 index ab27895..0000000 --- a/Pods/Kiwi/Classes/Core/KWMatchers.m +++ /dev/null @@ -1,75 +0,0 @@ -// -// KWMatchers.m -// Kiwi -// -// Created by Luke Redpath on 17/06/2011. -// Copyright 2011 Allen Ding. All rights reserved. -// - -#import "KWMatchers.h" -#import "KWUserDefinedMatcher.h" - -@interface KWMatchers() { - NSMutableDictionary *userDefinedMatchers; -} -@end - -@implementation KWMatchers - -#pragma mark - Singleton implementation - -static id sharedMatchers = nil; - -+ (void)initialize { - if (self == [KWMatchers class]) { - sharedMatchers = [[self alloc] init]; - } -} - -+ (id)matchers { - return sharedMatchers; -} - -- (id)init { - self = [super init]; - if (self) { - userDefinedMatchers = [[NSMutableDictionary alloc] init]; - } - return self; -} - -#pragma mark - Defining Matchers - -+ (void)defineMatcher:(NSString *)selectorString as:(KWMatchersBuildingBlock)block { - [[self matchers] defineMatcher:selectorString as:block]; -} - -- (void)defineMatcher:(NSString *)selectorString as:(KWMatchersBuildingBlock)block { - KWUserDefinedMatcherBuilder *builder = [KWUserDefinedMatcherBuilder builderForSelector:NSSelectorFromString(selectorString)]; - block(builder); - userDefinedMatchers[builder.key] = builder; -} - -- (void)addUserDefinedMatcherBuilder:(KWUserDefinedMatcherBuilder *)builder { - userDefinedMatchers[builder.key] = builder; -} - -#pragma mark - Building Matchers - -- (KWUserDefinedMatcher *)matcherForSelector:(SEL)selector subject:(id)subject { - KWUserDefinedMatcherBuilder *builder = userDefinedMatchers[NSStringFromSelector(selector)]; - - if (builder == nil) - return nil; - - return [builder buildMatcherWithSubject:subject]; -} - - -@end - -void KWDefineMatchers(NSString *selectorString, KWMatchersBuildingBlock block) -{ - [KWMatchers defineMatcher:selectorString as:block]; -} - diff --git a/Pods/Kiwi/Classes/Core/KWMatching.h b/Pods/Kiwi/Classes/Core/KWMatching.h deleted file mode 100644 index 9dbb8db..0000000 --- a/Pods/Kiwi/Classes/Core/KWMatching.h +++ /dev/null @@ -1,42 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" - -@protocol KWMatching - -#pragma mark - Initializing - -- (id)initWithSubject:(id)anObject; - -#pragma mark - Getting Matcher Strings - -+ (NSArray *)matcherStrings; - -#pragma mark - Getting Matcher Compatability - -+ (BOOL)canMatchSubject:(id)anObject; - -#pragma mark - Matching - -@optional - -- (BOOL)isNilMatcher; -- (BOOL)shouldBeEvaluatedAtEndOfExample; -- (BOOL)willEvaluateMultipleTimes; -- (void)setWillEvaluateMultipleTimes:(BOOL)shouldEvaluateMultipleTimes; -- (void)setWillEvaluateAgainstNegativeExpectation:(BOOL)willEvaluateAgainstNegativeExpectation; - -@required - -- (BOOL)evaluate; - -#pragma mark - Getting Failure Messages - -- (NSString *)failureMessageForShould; -- (NSString *)failureMessageForShouldNot; - -@end diff --git a/Pods/Kiwi/Classes/Core/KWMessagePattern.h b/Pods/Kiwi/Classes/Core/KWMessagePattern.h deleted file mode 100644 index 8144913..0000000 --- a/Pods/Kiwi/Classes/Core/KWMessagePattern.h +++ /dev/null @@ -1,40 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" - -@interface KWMessagePattern : NSObject - -#pragma mark - Initializing - -- (id)initWithSelector:(SEL)aSelector; -- (id)initWithSelector:(SEL)aSelector argumentFilters:(NSArray *)anArray; -- (id)initWithSelector:(SEL)aSelector firstArgumentFilter:(id)firstArgumentFilter argumentList:(va_list)argumentList; - -+ (id)messagePatternWithSelector:(SEL)aSelector; -+ (id)messagePatternWithSelector:(SEL)aSelector argumentFilters:(NSArray *)anArray; -+ (id)messagePatternWithSelector:(SEL)aSelector firstArgumentFilter:(id)firstArgumentFilter argumentList:(va_list)argumentList; - -+ (id)messagePatternFromInvocation:(NSInvocation *)anInvocation; - -#pragma mark - Properties - -@property (nonatomic, readonly) SEL selector; -@property (nonatomic, readonly) NSArray *argumentFilters; - -#pragma mark - Matching Invocations - -- (BOOL)matchesInvocation:(NSInvocation *)anInvocation; - -#pragma mark - Comparing Message Patterns - -- (BOOL)isEqualToMessagePattern:(KWMessagePattern *)aMessagePattern; - -#pragma mark - Retrieving String Representations - -- (NSString *)stringValue; - -@end diff --git a/Pods/Kiwi/Classes/Core/KWMessagePattern.m b/Pods/Kiwi/Classes/Core/KWMessagePattern.m deleted file mode 100644 index 474bae7..0000000 --- a/Pods/Kiwi/Classes/Core/KWMessagePattern.m +++ /dev/null @@ -1,219 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KWMessagePattern.h" -#import "KWFormatter.h" -#import "KWNull.h" -#import "KWObjCUtilities.h" -#import "KWValue.h" -#import "NSInvocation+KiwiAdditions.h" -#import "NSMethodSignature+KiwiAdditions.h" -#import "KWGenericMatchEvaluator.h" -#import "Kiwi.h" - -@implementation KWMessagePattern - -#pragma mark - Initializing - -- (id)initWithSelector:(SEL)aSelector { - return [self initWithSelector:aSelector argumentFilters:nil]; -} - -- (id)initWithSelector:(SEL)aSelector argumentFilters:(NSArray *)anArray { - self = [super init]; - if (self) { - selector = aSelector; - - if ([anArray count] > 0) - argumentFilters = [anArray copy]; - } - - return self; -} - -- (id)initWithSelector:(SEL)aSelector firstArgumentFilter:(id)firstArgumentFilter argumentList:(va_list)argumentList { - NSUInteger count = KWSelectorParameterCount(aSelector); - NSMutableArray *array = [NSMutableArray arrayWithCapacity:count]; - [array addObject:(firstArgumentFilter != nil) ? firstArgumentFilter : [KWNull null]]; - - for (NSUInteger i = 1; i < count; ++i) - { - id object = va_arg(argumentList, id); - [array addObject:(object != nil) ? object : [KWNull null]]; - } - - va_end(argumentList); - return [self initWithSelector:aSelector argumentFilters:array]; -} - -+ (id)messagePatternWithSelector:(SEL)aSelector { - return [self messagePatternWithSelector:aSelector argumentFilters:nil]; -} - -+ (id)messagePatternWithSelector:(SEL)aSelector argumentFilters:(NSArray *)anArray { - return [[self alloc] initWithSelector:aSelector argumentFilters:anArray]; -} - -+ (id)messagePatternWithSelector:(SEL)aSelector firstArgumentFilter:(id)firstArgumentFilter argumentList:(va_list)argumentList { - return [[self alloc] initWithSelector:aSelector firstArgumentFilter:firstArgumentFilter argumentList:argumentList]; -} - -+ (id)messagePatternFromInvocation:(NSInvocation *)anInvocation { - NSMethodSignature *signature = [anInvocation methodSignature]; - NSUInteger numberOfMessageArguments = [signature numberOfMessageArguments]; - NSMutableArray *argumentFilters = nil; - - if (numberOfMessageArguments > 0) { - argumentFilters = [[NSMutableArray alloc] initWithCapacity:numberOfMessageArguments]; - - for (NSUInteger i = 0; i < numberOfMessageArguments; ++i) { - const char *type = [signature messageArgumentTypeAtIndex:i]; - void* argumentDataBuffer = malloc(KWObjCTypeLength(type)); - [anInvocation getMessageArgument:argumentDataBuffer atIndex:i]; - id object = nil; - if(*(__unsafe_unretained id*)argumentDataBuffer != [KWAny any] && !KWObjCTypeIsObject(type)) { - NSData *data = [anInvocation messageArgumentDataAtIndex:i]; - object = [KWValue valueWithBytes:[data bytes] objCType:type]; - } else { - object = *(__unsafe_unretained id*)argumentDataBuffer; - - if (object != [KWAny any] && KWObjCTypeIsBlock(type)) { - object = [object copy]; // Converting NSStackBlock to NSMallocBlock - } - } - - [argumentFilters addObject:(object != nil) ? object : [KWNull null]]; - - free(argumentDataBuffer); - } - } - - return [self messagePatternWithSelector:[anInvocation selector] argumentFilters:argumentFilters]; -} - -#pragma mark - Properties - -@synthesize selector; -@synthesize argumentFilters; - -#pragma mark - Matching Invocations - -- (BOOL)argumentFiltersMatchInvocationArguments:(NSInvocation *)anInvocation { - if (self.argumentFilters == nil) - return YES; - - NSMethodSignature *signature = [anInvocation methodSignature]; - NSUInteger numberOfArgumentFilters = [self.argumentFilters count]; - NSUInteger numberOfMessageArguments = [signature numberOfMessageArguments]; - - for (NSUInteger i = 0; i < numberOfMessageArguments && i < numberOfArgumentFilters; ++i) { - const char *objCType = [signature messageArgumentTypeAtIndex:i]; - id __autoreleasing object = nil; - - // Extract message argument into object (wrapping values if neccesary) - if (KWObjCTypeIsObject(objCType) || KWObjCTypeIsClass(objCType)) { - [anInvocation getMessageArgument:&object atIndex:i]; - } else { - NSData *data = [anInvocation messageArgumentDataAtIndex:i]; - object = [KWValue valueWithBytes:[data bytes] objCType:objCType]; - } - - // Match argument filter to object - id argumentFilter = (self.argumentFilters)[i]; - - if ([argumentFilter isEqual:[KWAny any]]) { - continue; - } - - if ([KWGenericMatchEvaluator isGenericMatcher:argumentFilter]) { - id matcher = argumentFilter; - if ([object isKindOfClass:[KWValue class]] && [object isNumeric]) { - NSNumber *number = [object numberValue]; - if (![KWGenericMatchEvaluator genericMatcher:matcher matches:number]) { - return NO; - } - } else if (![KWGenericMatchEvaluator genericMatcher:matcher matches:object]) { - return NO; - } - } else if ([argumentFilter isEqual:[KWNull null]]) { - if (!KWObjCTypeIsPointerLike(objCType)) { - [NSException raise:@"KWMessagePatternException" format:@"nil was specified as an argument filter, but argument(%d) is not a pointer for @selector(%@)", (int)(i + 1), NSStringFromSelector([anInvocation selector])]; - } - void *p = nil; - [anInvocation getMessageArgument:&p atIndex:i]; - if (p != nil) - return NO; - } else if (![argumentFilter isEqual:object]) { - return NO; - } - } - - return YES; -} - -- (BOOL)matchesInvocation:(NSInvocation *)anInvocation { - return self.selector == [anInvocation selector] && [self argumentFiltersMatchInvocationArguments:anInvocation]; -} - -#pragma mark - Comparing Message Patterns - -- (NSUInteger)hash { - return [NSStringFromSelector(self.selector) hash]; -} - -- (BOOL)isEqual:(id)object { - if (![object isKindOfClass:[KWMessagePattern class]]) - return NO; - - return [self isEqualToMessagePattern:object]; -} - -- (BOOL)isEqualToMessagePattern:(KWMessagePattern *)aMessagePattern { - if (self.selector != aMessagePattern.selector) - return NO; - - if (self.argumentFilters == nil && aMessagePattern.argumentFilters == nil) - return YES; - - return [self.argumentFilters isEqualToArray:aMessagePattern.argumentFilters]; -} - -#pragma mark - Retrieving String Representations - -- (NSString *)selectorString { - return NSStringFromSelector(self.selector); -} - -- (NSString *)selectorAndArgumentFiltersString { - NSMutableString *description = [[NSMutableString alloc] init]; - NSArray *components = [NSStringFromSelector(self.selector) componentsSeparatedByString:@":"]; - NSUInteger count = [components count] - 1; - - for (NSUInteger i = 0; i < count; ++i) { - NSString *selectorComponent = components[i]; - NSString *argumentFilterString = [KWFormatter formatObject:(self.argumentFilters)[i]]; - [description appendFormat:@"%@:%@ ", selectorComponent, argumentFilterString]; - } - - return description; -} - -- (NSString *)stringValue { - if (self.argumentFilters == nil) - return [self selectorString]; - else - return [self selectorAndArgumentFiltersString]; -} - -#pragma mark - Debugging - -- (NSString *)description { - return [NSString stringWithFormat:@"selector: %@\nargumentFilters: %@", - NSStringFromSelector(self.selector), - self.argumentFilters]; -} - -@end diff --git a/Pods/Kiwi/Classes/Core/KWMessageSpying.h b/Pods/Kiwi/Classes/Core/KWMessageSpying.h deleted file mode 100644 index 0ac1aa7..0000000 --- a/Pods/Kiwi/Classes/Core/KWMessageSpying.h +++ /dev/null @@ -1,15 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" - -@protocol KWMessageSpying - -#pragma mark - Spying on Messages - -- (void)object:(id)anObject didReceiveInvocation:(NSInvocation *)anInvocation; - -@end diff --git a/Pods/Kiwi/Classes/Core/KWMessageTracker.h b/Pods/Kiwi/Classes/Core/KWMessageTracker.h deleted file mode 100644 index 5bf5f56..0000000 --- a/Pods/Kiwi/Classes/Core/KWMessageTracker.h +++ /dev/null @@ -1,41 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" -#import "KWCountType.h" -#import "KWMessageSpying.h" - -@class KWMessagePattern; - -@interface KWMessageTracker : NSObject - -#pragma mark - Initializing - -- (id)initWithSubject:(id)anObject messagePattern:(KWMessagePattern *)aMessagePattern countType:(KWCountType)aCountType count:(NSUInteger)aCount; - -+ (id)messageTrackerWithSubject:(id)anObject messagePattern:(KWMessagePattern *)aMessagePattern countType:(KWCountType)aCountType count:(NSUInteger)aCount; - -#pragma mark - Properties - -@property (nonatomic, readonly) id subject; -@property (nonatomic, readonly) KWMessagePattern *messagePattern; -@property (nonatomic, readonly) KWCountType countType; -@property (nonatomic, readonly) NSUInteger count; - -#pragma mark - Stopping Tracking - -- (void)stopTracking; - -#pragma mark - Getting Message Tracker Status - -- (BOOL)succeeded; - -#pragma mark - Getting Phrases - -- (NSString *)expectedCountPhrase; -- (NSString *)receivedCountPhrase; - -@end diff --git a/Pods/Kiwi/Classes/Core/KWMessageTracker.m b/Pods/Kiwi/Classes/Core/KWMessageTracker.m deleted file mode 100644 index 121e374..0000000 --- a/Pods/Kiwi/Classes/Core/KWMessageTracker.m +++ /dev/null @@ -1,130 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KWMessageTracker.h" -#import "KWMessagePattern.h" -#import "NSObject+KiwiStubAdditions.h" - -@interface KWMessageTracker() - -#pragma mark - Properties - -@property (nonatomic, assign) NSUInteger receivedCount; - -@end - -@implementation KWMessageTracker - -#pragma mark - Initializing - -- (id)initWithSubject:(id)anObject messagePattern:(KWMessagePattern *)aMessagePattern countType:(KWCountType)aCountType count:(NSUInteger)aCount { - self = [super init]; - if (self) { - _subject = anObject; - _messagePattern = aMessagePattern; - _countType = aCountType; - _count = aCount; - [anObject addMessageSpy:self forMessagePattern:aMessagePattern]; - } - - return self; -} - -+ (id)messageTrackerWithSubject:(id)anObject messagePattern:(KWMessagePattern *)aMessagePattern countType:(KWCountType)aCountType count:(NSUInteger)aCount { - return [[self alloc] initWithSubject:anObject messagePattern:aMessagePattern countType:aCountType count:aCount]; -} - -#pragma mark - Spying on Messages - -- (void)object:(id)anObject didReceiveInvocation:(NSInvocation *)anInvocation { - if (![self.messagePattern matchesInvocation:anInvocation]) - return; - - ++self.receivedCount; -} - -#pragma mark - Stopping Tracking - -- (void)stopTracking { - [self.subject removeMessageSpy:self forMessagePattern:self.messagePattern]; -} - -#pragma mark - Getting Message Tracker Status - -- (BOOL)succeeded { - switch (self.countType) { - case KWCountTypeExact: - return self.receivedCount == self.count; - case KWCountTypeAtLeast: - return self.receivedCount >= self.count; - case KWCountTypeAtMost: - return self.receivedCount <= self.count; - default: - break; - } - - assert(0 && "should never reach here"); - return NO; -} - -#pragma mark - Getting Phrases - -- (NSString *)phraseForCount:(NSUInteger)aCount { - if (aCount == 1) - return @"1 time"; - - return [NSString stringWithFormat:@"%d times", (int)aCount]; -} - -- (NSString *)expectedCountPhrase { - NSString *countPhrase = [self phraseForCount:self.count]; - - switch (self.countType) { - case KWCountTypeExact: - return [NSString stringWithFormat:@"exactly %@", countPhrase]; - case KWCountTypeAtLeast: - return [NSString stringWithFormat:@"at least %@", countPhrase]; - case KWCountTypeAtMost: - return [NSString stringWithFormat:@"at most %@", countPhrase]; - default: - break; - } - - assert(0 && "should never reach here"); - return nil; -} - -- (NSString *)receivedCountPhrase { - return [self phraseForCount:self.receivedCount]; -} - -#pragma mark - Debugging - -- (NSString *)modeString { - switch (self.countType) { - case KWCountTypeExact: - return @"KWCountTypeExact"; - case KWCountTypeAtLeast: - return @"KWCountTypeAtLeast"; - case KWCountTypeAtMost: - return @"KWCountTypeAtMost"; - default: - break; - } - - assert(0 && "should never reach here"); - return nil; -} - -- (NSString *)description { - return [NSString stringWithFormat:@"messagePattern: %@\nmode: %@\ncount: %d\nreceiveCount: %d", - self.messagePattern, - self.modeString, - (int)self.count, - (int)self.receivedCount]; -} - -@end diff --git a/Pods/Kiwi/Classes/Core/KWNull.h b/Pods/Kiwi/Classes/Core/KWNull.h deleted file mode 100644 index 4208a57..0000000 --- a/Pods/Kiwi/Classes/Core/KWNull.h +++ /dev/null @@ -1,18 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" - -// KWNull exists to represent the same thing as NSNull, except that Kiwi needs -// to distinguish between null singletons used internally and those a user -// is using as an object parameter. -@interface KWNull : NSObject - -#pragma mark - Initializing - -+ (id)null; - -@end diff --git a/Pods/Kiwi/Classes/Core/KWNull.m b/Pods/Kiwi/Classes/Core/KWNull.m deleted file mode 100644 index 6d3bf73..0000000 --- a/Pods/Kiwi/Classes/Core/KWNull.m +++ /dev/null @@ -1,25 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KWNull.h" - -@implementation KWNull - -#pragma mark - Initializing - - -+ (id)null { - static KWNull *sharedNull = nil; - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - sharedNull = [self new]; - - }); - - return sharedNull; -} - -@end diff --git a/Pods/Kiwi/Classes/Core/KWObjCUtilities.h b/Pods/Kiwi/Classes/Core/KWObjCUtilities.h deleted file mode 100644 index 4536e0b..0000000 --- a/Pods/Kiwi/Classes/Core/KWObjCUtilities.h +++ /dev/null @@ -1,31 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" - -#pragma mark - Objective-C Type Utilities - -BOOL KWObjCTypeEqualToObjCType(const char *firstObjCType, const char *secondObjCType); -BOOL KWObjCTypeIsNumeric(const char *objCType); -BOOL KWObjCTypeIsFloatingPoint(const char *objCType); -BOOL KWObjCTypeIsIntegral(const char *objCType); -BOOL KWObjCTypeIsSignedIntegral(const char *objCType); -BOOL KWObjCTypeIsUnsignedIntegral(const char *objCType); -BOOL KWObjCTypeIsBoolean(const char *objCType); -BOOL KWObjCTypeIsObject(const char *objCType); -BOOL KWObjCTypeIsCharString(const char *objCType); -BOOL KWObjCTypeIsClass(const char *objCType); -BOOL KWObjCTypeIsSelector(const char *objCType); -BOOL KWObjCTypeIsPointerToType(const char *objCType); -BOOL KWObjCTypeIsPointerLike(const char *objCType); -BOOL KWObjCTypeIsUnknown(const char *objCType); -BOOL KWObjCTypeIsBlock(const char *objCType); - -NSUInteger KWObjCTypeLength(const char *objCType); - -#pragma mark - Selector Utlities - -NSUInteger KWSelectorParameterCount(SEL selector); diff --git a/Pods/Kiwi/Classes/Core/KWObjCUtilities.m b/Pods/Kiwi/Classes/Core/KWObjCUtilities.m deleted file mode 100644 index c51b1e3..0000000 --- a/Pods/Kiwi/Classes/Core/KWObjCUtilities.m +++ /dev/null @@ -1,104 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KWObjCUtilities.h" -#import "KWStringUtilities.h" - -#pragma mark - Objective-C Type Utilities - -BOOL KWObjCTypeEqualToObjCType(const char *firstObjCType, const char *secondObjCType) { - return strcmp(firstObjCType, secondObjCType) == 0; -} - -BOOL KWObjCTypeIsNumeric(const char *objCType) { - return KWObjCTypeIsFloatingPoint(objCType) || KWObjCTypeIsIntegral(objCType); -} - -BOOL KWObjCTypeIsFloatingPoint(const char *objCType) { - return strcmp(objCType, @encode(float)) == 0 || strcmp(objCType, @encode(double)) == 0; -} - -BOOL KWObjCTypeIsIntegral(const char *objCType) { - return KWObjCTypeIsSignedIntegral(objCType) || KWObjCTypeIsUnsignedIntegral(objCType); -} - -BOOL KWObjCTypeIsSignedIntegral(const char *objCType) { - return strcmp(objCType, @encode(char)) == 0 || - strcmp(objCType, @encode(int)) == 0 || - strcmp(objCType, @encode(short)) == 0 || - strcmp(objCType, @encode(long)) == 0 || - strcmp(objCType, @encode(long long)) == 0; -} - -BOOL KWObjCTypeIsUnsignedIntegral(const char *objCType) { - return strcmp(objCType, @encode(unsigned char)) == 0 || - strcmp(objCType, @encode(unsigned int)) == 0 || - strcmp(objCType, @encode(unsigned short)) == 0 || - strcmp(objCType, @encode(unsigned long)) == 0 || - strcmp(objCType, @encode(unsigned long long)) == 0; -} - -BOOL KWObjCTypeIsBoolean(const char *objCType) { - return strcmp(objCType, @encode(BOOL)) == 0 || strcmp(objCType, @encode(bool)) == 0; -} - -BOOL KWObjCTypeIsObject(const char *objCType) { - return strcmp(objCType, @encode(id)) == 0 || strcmp(objCType, "@?") == 0; -} - -BOOL KWObjCTypeIsCharString(const char *objCType) { - return strcmp(objCType, @encode(char *)) == 0; -} - -BOOL KWObjCTypeIsClass(const char *objCType) { - return strcmp(objCType, @encode(Class)) == 0; -} - -BOOL KWObjCTypeIsSelector(const char *objCType) { - return strcmp(objCType, @encode(SEL)) == 0; -} - -BOOL KWObjCTypeIsPointerToType(const char *objCType) { - return *objCType == '^'; -} - -BOOL KWObjCTypeIsPointerLike(const char *objCType) { - return KWObjCTypeIsObject(objCType) || - KWObjCTypeIsCharString(objCType) || - KWObjCTypeIsClass(objCType) || - KWObjCTypeIsSelector(objCType) || - KWObjCTypeIsPointerToType(objCType); -} - -BOOL KWObjCTypeIsUnknown(const char *objCType) { - return *objCType == '?'; -} - -NSUInteger KWObjCTypeLength(const char *objCType) { - NSUInteger typeSize = 0; - NSGetSizeAndAlignment(objCType, &typeSize, NULL); - return typeSize; -} - -BOOL KWObjCTypeIsBlock(const char *objCType) { - return strcmp(objCType, "@?") == 0; -} - - -#pragma mark - Selector Utlities - -NSUInteger KWSelectorParameterCount(SEL selector) { - NSString *selectorString = NSStringFromSelector(selector); - NSUInteger length = [selectorString length]; - NSUInteger parameterCount = 0; - - for (NSUInteger i = 0; i < length; ++i) { - if ([selectorString characterAtIndex:i] == ':') - ++parameterCount; - } - - return parameterCount; -} diff --git a/Pods/Kiwi/Classes/Core/KWProbe.h b/Pods/Kiwi/Classes/Core/KWProbe.h deleted file mode 100644 index d635c76..0000000 --- a/Pods/Kiwi/Classes/Core/KWProbe.h +++ /dev/null @@ -1,14 +0,0 @@ -// -// KWProbe.h -// iOSFalconCore -// -// Created by Luke Redpath on 13/01/2011. -// Copyright 2011 LJR Software Limited. All rights reserved. -// - -#import - -@protocol KWProbe -- (BOOL)isSatisfied; -- (void)sample; -@end diff --git a/Pods/Kiwi/Classes/Core/KWProbePoller.h b/Pods/Kiwi/Classes/Core/KWProbePoller.h deleted file mode 100644 index 543a117..0000000 --- a/Pods/Kiwi/Classes/Core/KWProbePoller.h +++ /dev/null @@ -1,19 +0,0 @@ -// -// KWProbePoller.h -// iOSFalconCore -// -// Created by Luke Redpath on 13/01/2011. -// Copyright 2011 LJR Software Limited. All rights reserved. -// - -#import -#import "KWProbe.h" - -#define kKW_DEFAULT_PROBE_DELAY 0.1 - -@interface KWProbePoller : NSObject - -- (id)initWithTimeout:(NSTimeInterval)theTimeout delay:(NSTimeInterval)theDelay shouldWait:(BOOL)wait; -- (BOOL)check:(id)probe; - -@end diff --git a/Pods/Kiwi/Classes/Core/KWProbePoller.m b/Pods/Kiwi/Classes/Core/KWProbePoller.m deleted file mode 100644 index 9198ba8..0000000 --- a/Pods/Kiwi/Classes/Core/KWProbePoller.m +++ /dev/null @@ -1,72 +0,0 @@ -// -// KWProbePoller.m -// iOSFalconCore -// -// Created by Luke Redpath on 13/01/2011. -// Copyright 2011 LJR Software Limited. All rights reserved. -// - -#import "KWProbePoller.h" - -@interface KWTimeout : NSObject - -@property (nonatomic) CFTimeInterval timeoutDateStamp; - -@end - -@implementation KWTimeout - -- (id)initWithTimeout:(NSTimeInterval)timeout -{ - self = [super init]; - if (self) { - _timeoutDateStamp = CFAbsoluteTimeGetCurrent() + timeout; - } - return self; -} - - -- (BOOL)hasTimedOut { - return (_timeoutDateStamp - CFAbsoluteTimeGetCurrent()) < 0; -} - -@end - - -@interface KWProbePoller() - -@property (nonatomic, assign) NSTimeInterval timeoutInterval; -@property (nonatomic, assign) NSTimeInterval delayInterval; -@property (nonatomic, assign) BOOL shouldWait; - -@end - -@implementation KWProbePoller - -- (id)initWithTimeout:(NSTimeInterval)theTimeout - delay:(NSTimeInterval)theDelay - shouldWait:(BOOL)wait { - self = [super init]; - if (self) { - _timeoutInterval = theTimeout; - _delayInterval = theDelay; - _shouldWait = wait; - } - return self; -} - -- (BOOL)check:(id)probe; { - KWTimeout *timeout = [[KWTimeout alloc] initWithTimeout:self.timeoutInterval]; - - while (self.shouldWait || ![probe isSatisfied]) { - if ([timeout hasTimedOut]) { - return [probe isSatisfied]; - } - CFRunLoopRunInMode(kCFRunLoopDefaultMode, _delayInterval, false); - [probe sample]; - } - - return YES; -} - -@end diff --git a/Pods/Kiwi/Classes/Core/KWReporting.h b/Pods/Kiwi/Classes/Core/KWReporting.h deleted file mode 100644 index d9e9fc0..0000000 --- a/Pods/Kiwi/Classes/Core/KWReporting.h +++ /dev/null @@ -1,17 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" - -@class KWFailure; - -@protocol KWReporting - -#pragma mark - Reporting Failures - -- (void)reportFailure:(KWFailure *)failure; - -@end diff --git a/Pods/Kiwi/Classes/Core/KWSpec.h b/Pods/Kiwi/Classes/Core/KWSpec.h deleted file mode 100644 index 1a06fb2..0000000 --- a/Pods/Kiwi/Classes/Core/KWSpec.h +++ /dev/null @@ -1,29 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" -#import -#import "KWExpectationType.h" -#import "KWVerifying.h" -#import "KWExampleDelegate.h" - -@class KWCallSite; - -@interface KWSpec : XCTestCase - -#pragma mark - Adding Verifiers - -+ (id)addVerifier:(id)aVerifier; -+ (id)addExistVerifierWithExpectationType:(KWExpectationType)anExpectationType callSite:(KWCallSite *)aCallSite; -+ (id)addMatchVerifierWithExpectationType:(KWExpectationType)anExpectationType callSite:(KWCallSite *)aCallSite; -+ (id)addAsyncVerifierWithExpectationType:(KWExpectationType)anExpectationType callSite:(KWCallSite *)aCallSite timeout:(NSTimeInterval)timeout shouldWait:(BOOL)shouldWait; - -#pragma mark - Building Example Groups - -+ (NSString *)file; -+ (void)buildExampleGroups; - -@end diff --git a/Pods/Kiwi/Classes/Core/KWSpec.m b/Pods/Kiwi/Classes/Core/KWSpec.m deleted file mode 100644 index d9926b1..0000000 --- a/Pods/Kiwi/Classes/Core/KWSpec.m +++ /dev/null @@ -1,127 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KWSpec.h" -#import "KWCallSite.h" -#import "KWExample.h" -#import "KWExampleSuiteBuilder.h" -#import "KWFailure.h" -#import "KWExampleSuite.h" - -#import - -@interface KWSpec() - -@property (nonatomic, strong) KWExample *currentExample; - -@end - -@implementation KWSpec - -/* Methods are only implemented by sub-classes */ - -+ (NSString *)file { return nil; } - -+ (void)buildExampleGroups {} - -- (NSString *)name { - return [self description]; -} - -/* Use camel case to make method friendly names from example description. */ - -- (NSString *)description { - KWExample *currentExample = self.currentExample ?: self.invocation.kw_example; - return [NSString stringWithFormat:@"-[%@ %@]", NSStringFromClass([self class]), currentExample.selectorName]; -} - -#pragma mark - Getting Invocations - -/* Called by the XCTest to get an array of invocations that - should be run on instances of test cases. */ - -+ (NSArray *)testInvocations { - SEL buildExampleGroups = @selector(buildExampleGroups); - - // Only return invocation if the receiver is a concrete spec that has overridden -buildExampleGroups. - if ([self methodForSelector:buildExampleGroups] == [KWSpec methodForSelector:buildExampleGroups]) - return nil; - - KWExampleSuite *exampleSuite = [[KWExampleSuiteBuilder sharedExampleSuiteBuilder] buildExampleSuite:^{ - [self buildExampleGroups]; - }]; - - NSMutableArray *invocations = [NSMutableArray new]; - for (KWExample *example in exampleSuite) { - SEL selector = [self addInstanceMethodForExample:example]; - NSInvocation *invocation = [self invocationForExample:example selector:selector]; - [invocations addObject:invocation]; - } - - return invocations; -} - -+ (SEL)addInstanceMethodForExample:(KWExample *)example { - Method method = class_getInstanceMethod(self, @selector(runExample)); - SEL selector = NSSelectorFromString(example.selectorName); - IMP implementation = method_getImplementation(method); - const char *types = method_getTypeEncoding(method); - class_addMethod(self, selector, implementation, types); - return selector; -} - -+ (NSInvocation *)invocationForExample:(KWExample *)example selector:(SEL)selector { - NSMethodSignature *signature = [NSMethodSignature signatureWithObjCTypes:"v@:"]; - NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:signature]; - invocation.kw_example = example; - invocation.selector = selector; - return invocation; -} - -#pragma mark - Running Specs - -- (void)runExample { - self.currentExample = self.invocation.kw_example; - - @autoreleasepool { - @try { - [self.currentExample runWithDelegate:self]; - } @catch (NSException *exception) { - [self recordFailureWithDescription:exception.description inFile:@"" atLine:0 expected:NO]; - } - - self.invocation.kw_example = nil; - } -} - -#pragma mark - KWExampleGroupDelegate methods - -- (void)example:(KWExample *)example didFailWithFailure:(KWFailure *)failure { - [self recordFailureWithDescription:failure.message - inFile:failure.callSite.filename - atLine:failure.callSite.lineNumber - expected:NO]; -} - -#pragma mark - Verification proxies - -+ (id)addVerifier:(id)aVerifier { - return [[[KWExampleSuiteBuilder sharedExampleSuiteBuilder] currentExample] addVerifier:aVerifier]; -} - -+ (id)addExistVerifierWithExpectationType:(KWExpectationType)anExpectationType callSite:(KWCallSite *)aCallSite { - return [[[KWExampleSuiteBuilder sharedExampleSuiteBuilder] currentExample] addExistVerifierWithExpectationType:anExpectationType callSite:aCallSite]; -} - -+ (id)addMatchVerifierWithExpectationType:(KWExpectationType)anExpectationType callSite:(KWCallSite *)aCallSite { - return [[[KWExampleSuiteBuilder sharedExampleSuiteBuilder] currentExample] addMatchVerifierWithExpectationType:anExpectationType callSite:aCallSite]; -} - -+ (id)addAsyncVerifierWithExpectationType:(KWExpectationType)anExpectationType callSite:(KWCallSite *)aCallSite timeout:(NSTimeInterval)timeout shouldWait:(BOOL)shouldWait { - return [[[KWExampleSuiteBuilder sharedExampleSuiteBuilder] currentExample] addAsyncVerifierWithExpectationType:anExpectationType callSite:aCallSite timeout:timeout shouldWait: shouldWait]; -} - -@end diff --git a/Pods/Kiwi/Classes/Core/KWStringUtilities.h b/Pods/Kiwi/Classes/Core/KWStringUtilities.h deleted file mode 100644 index 90264d9..0000000 --- a/Pods/Kiwi/Classes/Core/KWStringUtilities.h +++ /dev/null @@ -1,19 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" - -#pragma mark - Checking for Case Separated Words - -BOOL KWStringHasWordPrefix(NSString *string, NSString *prefix); -BOOL KWStringHasStrictWordPrefix(NSString *string, NSString *prefix); -BOOL KWStringHasWord(NSString *string, NSString *word); - -#pragma mark - Getting Type Encodings - -NSString *KWEncodingWithObjCTypes(const char *firstType, ...) NS_REQUIRES_NIL_TERMINATION; -NSString *KWEncodingForVoidMethod(void); -NSString *KWEncodingForDefaultMethod(void); diff --git a/Pods/Kiwi/Classes/Core/KWStringUtilities.m b/Pods/Kiwi/Classes/Core/KWStringUtilities.m deleted file mode 100644 index 4e17197..0000000 --- a/Pods/Kiwi/Classes/Core/KWStringUtilities.m +++ /dev/null @@ -1,92 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KWStringUtilities.h" - -#pragma mark - Checking for Case Separated Words - -BOOL KWStringHasWordPrefix(NSString *string, NSString *prefix) { - return [string isEqualToString:prefix] || KWStringHasStrictWordPrefix(string, prefix); -} - -BOOL KWStringHasStrictWordPrefix(NSString *string, NSString *prefix) { - if (![string hasPrefix:prefix] || [string length] == [prefix length]) - return NO; - - unichar firstCharacterAfterPrefix = [string characterAtIndex:[prefix length]]; - NSCharacterSet *uppercaseCharacterSet = [NSCharacterSet uppercaseLetterCharacterSet]; - return [uppercaseCharacterSet characterIsMember:firstCharacterAfterPrefix]; -} - -BOOL KWStringHasWord(NSString *string, NSString *word) { - if (KWStringHasWordPrefix(string, word)) - return YES; - - NSCharacterSet *lowercaseCharacterSet = [NSCharacterSet lowercaseLetterCharacterSet]; - NSCharacterSet *uppercaseCharacterSet = [NSCharacterSet uppercaseLetterCharacterSet]; - NSRange searchRange = NSMakeRange(0, [string length]); - - // Never match if word begins with a lowercase letter and was not a prefix. - if ([lowercaseCharacterSet characterIsMember:[word characterAtIndex:0]]) - return NO; - - while (1) { - if (searchRange.location >= [string length]) - return NO; - - NSRange range = [string rangeOfString:word options:0 range:searchRange]; - searchRange.location = range.location + range.length; - searchRange.length = [string length] - searchRange.location; - - if (range.location == NSNotFound) - return NO; - - if (range.location > 0) { - unichar charBeforeRange = [string characterAtIndex:range.location - 1]; - - - if (![lowercaseCharacterSet characterIsMember:charBeforeRange]) - continue; - } - - if (range.location + range.length < [string length]) { - unichar charAfterRange = [string characterAtIndex:range.location + range.length]; - - if (![uppercaseCharacterSet characterIsMember:charAfterRange]) - continue; - } - - return YES; - } -} - -#pragma mark - Getting Type Encodings - -NSString *KWEncodingWithObjCTypes(const char *firstType, ...) { - if (firstType == nil) - return nil; - - NSMutableString *encoding = [NSMutableString stringWithCapacity:8]; - va_list argumentList; - va_start(argumentList, firstType); - const char *type = firstType; - - do { - [encoding appendFormat:@"%s", type]; - type = va_arg(argumentList, const char *); - } while (type != nil); - - va_end(argumentList); - return encoding; -} - -NSString *KWEncodingForVoidMethod(void) { - return KWEncodingWithObjCTypes(@encode(void), @encode(id), @encode(SEL), nil); -} - -NSString *KWEncodingForDefaultMethod(void) { - return KWEncodingWithObjCTypes(@encode(id), @encode(id), @encode(SEL), nil); -} diff --git a/Pods/Kiwi/Classes/Core/KWSymbolicator.h b/Pods/Kiwi/Classes/Core/KWSymbolicator.h deleted file mode 100644 index 452852f..0000000 --- a/Pods/Kiwi/Classes/Core/KWSymbolicator.h +++ /dev/null @@ -1,17 +0,0 @@ -// -// KWSymbolicator.h -// Kiwi -// -// Created by Jerry Marino on 4/28/13. -// Copyright (c) 2013 Allen Ding. All rights reserved. -// - -#import - -long kwCallerAddress(void); - -@interface NSString (KWShellCommand) - -+ (NSString *)stringWithShellCommand:(NSString *)command arguments:(NSArray *)arguments; - -@end diff --git a/Pods/Kiwi/Classes/Core/KWSymbolicator.m b/Pods/Kiwi/Classes/Core/KWSymbolicator.m deleted file mode 100644 index 8128622..0000000 --- a/Pods/Kiwi/Classes/Core/KWSymbolicator.m +++ /dev/null @@ -1,62 +0,0 @@ -// -// KWSymbolicator.m -// Kiwi -// -// Created by Jerry Marino on 4/28/13. -// Copyright (c) 2013 Allen Ding. All rights reserved. -// - -#import "KWSymbolicator.h" -#import -#import - -long kwCallerAddress (void){ -#if !__arm__ - unw_cursor_t cursor; unw_context_t uc; - unw_word_t ip; - - unw_getcontext(&uc); - unw_init_local(&cursor, &uc); - - int pos = 2; - while (unw_step(&cursor) && pos--){ - unw_get_reg (&cursor, UNW_REG_IP, &ip); - if(pos == 0) return (NSUInteger)(ip - 4); - } -#endif - return 0; -} - -// Used to suppress compiler warnings by -// casting receivers to this protocol -@protocol NSTask_KWWarningSuppressor - -- (void)setLaunchPath:(NSString *)path; -- (void)setArguments:(NSArray *)arguments; -- (void)setEnvironment:(NSDictionary *)dict; -- (void)setStandardOutput:(id)output; -- (void)launch; -- (void)waitUntilExit; - -@end - -@implementation NSString (KWShellCommand) - -+ (NSString *)stringWithShellCommand:(NSString *)command arguments:(NSArray *)arguments { - id task = [[NSClassFromString(@"NSTask") alloc] init]; - [task setEnvironment:[NSDictionary dictionary]]; - [task setLaunchPath:command]; - [task setArguments:arguments]; - - NSPipe *pipe = [NSPipe pipe]; - [task setStandardOutput:pipe]; - [task launch]; - - [task waitUntilExit]; - - NSData *data = [[pipe fileHandleForReading] readDataToEndOfFile]; - NSString *string = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; - return string; -} - -@end diff --git a/Pods/Kiwi/Classes/Core/KWValue.h b/Pods/Kiwi/Classes/Core/KWValue.h deleted file mode 100644 index 78cbb66..0000000 --- a/Pods/Kiwi/Classes/Core/KWValue.h +++ /dev/null @@ -1,87 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" - -@interface KWValue : NSObject - -#pragma mark - Initializing - -- (id)initWithBytes:(const void *)bytes objCType:(const char *)anObjCType; - -+ (id)valueWithBytes:(const void *)bytes objCType:(const char *)anObjCType; -+ (id)valueWithBool:(BOOL)aValue; -+ (id)valueWithChar:(char)aValue; -+ (id)valueWithDouble:(double)aValue; -+ (id)valueWithFloat:(float)aValue; -+ (id)valueWithInt:(int)aValue; -+ (id)valueWithInteger:(NSInteger)aValue; -+ (id)valueWithLong:(long)aValue; -+ (id)valueWithLongLong:(long long)value; -+ (id)valueWithShort:(short)aValue; -+ (id)valueWithUnsignedChar:(unsigned char)aValue; -+ (id)valueWithUnsignedInt:(unsigned int)aValue; -+ (id)valueWithUnsignedInteger:(NSUInteger)aValue; -+ (id)valueWithUnsignedLong:(unsigned long)aValue; -+ (id)valueWithUnsignedLongLong:(unsigned long long)aValue; -+ (id)valueWithUnsignedShort:(unsigned short)aValue; - -#pragma mark - Properties - -@property (nonatomic, readonly) const char *objCType; -@property (nonatomic, readonly) BOOL isNumeric; - -#pragma mark - Accessing Numeric Values - -- (NSNumber *)numberValue; -- (BOOL)boolValue; -- (char)charValue; -- (double)doubleValue; -- (float)floatValue; -- (int)intValue; -- (NSInteger)integerValue; -- (long)longValue; -- (long long)longLongValue; -- (short)shortValue; -- (unsigned char)unsignedCharValue; -- (unsigned int)unsignedIntValue; -- (NSUInteger)unsignedIntegerValue; -- (unsigned long)unsignedLongValue; -- (unsigned long long)unsignedLongLongValue; -- (unsigned short)unsignedShortValue; - -#pragma mark - Accessing Data - -- (NSData *)dataValue; -- (void)getValue:(void *)buffer; - -#pragma mark - Accessing Numeric Data - -- (NSData *)dataForObjCType:(const char *)anObjCType; -- (NSData *)boolData; -- (NSData *)charData; -- (NSData *)doubleData; -- (NSData *)floatData; -- (NSData *)intData; -- (NSData *)integerData; -- (NSData *)longData; -- (NSData *)longLongData; -- (NSData *)shortData; -- (NSData *)unsignedCharData; -- (NSData *)unsignedIntData; -- (NSData *)unsignedIntegerData; -- (NSData *)unsignedLongData; -- (NSData *)unsignedLongLongData; -- (NSData *)unsignedShortData; - -#pragma mark - Comparing Values - -- (NSComparisonResult)compare:(KWValue *)aValue; - -- (BOOL)isEqualToKWValue:(KWValue *)aValue; -- (BOOL)isEqualToNumber:(NSNumber *)aValue; - -@end diff --git a/Pods/Kiwi/Classes/Core/KWValue.m b/Pods/Kiwi/Classes/Core/KWValue.m deleted file mode 100644 index f59f23e..0000000 --- a/Pods/Kiwi/Classes/Core/KWValue.m +++ /dev/null @@ -1,350 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KWValue.h" -#import "KWObjCUtilities.h" -#import "NSNumber+KiwiAdditions.h" - -@interface KWValue() - -#pragma mark - Properties - -@property (nonatomic, readonly) id value; - -@end - -@implementation KWValue - -#pragma mark - Initializing - -- (id)initWithBytes:(const void *)bytes objCType:(const char *)anObjCType { - self = [super init]; - if (self) { - objCType = anObjCType; - value = [[NSValue alloc] initWithBytes:bytes objCType:anObjCType]; - } - - return self; -} - -+ (id)valueWithBytes:(const void *)bytes objCType:(const char *)type { - return [[self alloc] initWithBytes:bytes objCType:type]; -} - -+ (id)valueWithBool:(BOOL)aValue { - return [self valueWithBytes:&aValue objCType:@encode(BOOL)]; -} - -+ (id)valueWithChar:(char)aValue { - return [self valueWithBytes:&aValue objCType:@encode(char)]; -} - -+ (id)valueWithDouble:(double)aValue { - return [self valueWithBytes:&aValue objCType:@encode(double)]; -} - -+ (id)valueWithFloat:(float)aValue { - return [self valueWithBytes:&aValue objCType:@encode(float)]; -} - -+ (id)valueWithInt:(int)aValue { - return [self valueWithBytes:&aValue objCType:@encode(int)]; -} - -+ (id)valueWithInteger:(NSInteger)aValue { - return [self valueWithBytes:&aValue objCType:@encode(NSInteger)]; -} - -+ (id)valueWithLong:(long)aValue { - return [self valueWithBytes:&aValue objCType:@encode(long)]; -} - -+ (id)valueWithLongLong:(long long)value { - return [self valueWithBytes:&value objCType:@encode(long long)]; -} - -+ (id)valueWithShort:(short)aValue { - return [self valueWithBytes:&aValue objCType:@encode(short)]; -} - -+ (id)valueWithUnsignedChar:(unsigned char)aValue { - return [self valueWithBytes:&aValue objCType:@encode(unsigned char)]; -} - -+ (id)valueWithUnsignedInt:(unsigned int)aValue { - return [self valueWithBytes:&aValue objCType:@encode(unsigned int)]; -} - -+ (id)valueWithUnsignedInteger:(NSUInteger)aValue { - return [self valueWithBytes:&aValue objCType:@encode(NSUInteger)]; -} - -+ (id)valueWithUnsignedLong:(unsigned long)aValue { - return [self valueWithBytes:&aValue objCType:@encode(unsigned long)]; -} - -+ (id)valueWithUnsignedLongLong:(unsigned long long)aValue { - return [self valueWithBytes:&aValue objCType:@encode(long long)]; -} - -+ (id)valueWithUnsignedShort:(unsigned short)aValue { - return [self valueWithBytes:&aValue objCType:@encode(unsigned short)]; -} - - -#pragma mark - Properties - -@synthesize objCType; - -- (BOOL)isNumeric { - return KWObjCTypeIsNumeric(self.objCType); -} - -@synthesize value; - -#pragma mark - Accessing Numeric Values - -- (NSNumber *)numberValue { - if (!KWObjCTypeIsNumeric(self.objCType) && !KWObjCTypeIsBoolean(self.objCType)) { - [NSException raise:NSInternalInconsistencyException - format:@"cannot return number value because wrapped value is non-numeric"]; - } - - NSData *data = [self dataValue]; - return [NSNumber numberWithBytes:[data bytes] objCType:self.objCType]; -} - -- (BOOL)boolValue { - return [[self numberValue] boolValue]; -} - -- (char)charValue { - return [[self numberValue] charValue]; -} - -- (double)doubleValue { - return [[self numberValue] doubleValue]; -} - -- (float)floatValue { - return [[self numberValue] floatValue]; -} - -- (int)intValue { - return [[self numberValue] intValue]; -} - -- (NSInteger)integerValue { - return [[self numberValue] integerValue]; -} - -- (long)longValue { - return [[self numberValue] longValue]; -} - -- (long long)longLongValue { - return [[self numberValue] longLongValue]; -} -- (short)shortValue { - return [[self numberValue] shortValue]; -} - -- (unsigned char)unsignedCharValue { - return [[self numberValue] unsignedCharValue]; -} - -- (unsigned int)unsignedIntValue { - return [[self numberValue] unsignedIntValue]; -} - -- (NSUInteger)unsignedIntegerValue { - return [[self numberValue] unsignedIntegerValue]; -} - -- (unsigned long)unsignedLongValue { - return [[self numberValue] unsignedLongValue]; -} - -- (unsigned long long)unsignedLongLongValue { - return [[self numberValue] unsignedLongLongValue]; -} - -- (unsigned short)unsignedShortValue { - return [[self numberValue] unsignedShortValue]; -} - -#pragma mark - Accessing Data - -- (NSData *)dataValue { - NSUInteger length = KWObjCTypeLength(self.objCType); - void *buffer = malloc(length); - [self.value getValue:buffer]; - NSData *data = [NSData dataWithBytes:buffer length:length]; - free(buffer); - return data; -} - -- (void)getValue:(void *)buffer { - [self.value getValue:buffer]; -} - -#pragma mark - Accessing Numeric Data - -- (NSData *)dataForObjCType:(const char *)anObjCType { - // Yeah, this is ugly. - if (KWObjCTypeEqualToObjCType(anObjCType, @encode(BOOL))) - return [self boolData]; - else if (KWObjCTypeEqualToObjCType(anObjCType, @encode(char))) - return [self charData]; - else if (KWObjCTypeEqualToObjCType(anObjCType, @encode(double))) - return [self doubleData]; - else if (KWObjCTypeEqualToObjCType(anObjCType, @encode(float))) - return [self floatData]; - else if (KWObjCTypeEqualToObjCType(anObjCType, @encode(int))) - return [self intData]; - else if (KWObjCTypeEqualToObjCType(anObjCType, @encode(NSInteger))) - return [self integerData]; - else if (KWObjCTypeEqualToObjCType(anObjCType, @encode(long))) - return [self longData]; - else if (KWObjCTypeEqualToObjCType(anObjCType, @encode(long long))) - return [self longLongData]; - else if (KWObjCTypeEqualToObjCType(anObjCType, @encode(short))) - return [self shortData]; - else if (KWObjCTypeEqualToObjCType(anObjCType, @encode(unsigned char))) - return [self unsignedCharData]; - else if (KWObjCTypeEqualToObjCType(anObjCType, @encode(unsigned int))) - return [self unsignedIntData]; - else if (KWObjCTypeEqualToObjCType(anObjCType, @encode(NSUInteger))) - return [self unsignedIntegerData]; - else if (KWObjCTypeEqualToObjCType(anObjCType, @encode(unsigned long))) - return [self unsignedLongData]; - else if (KWObjCTypeEqualToObjCType(anObjCType, @encode(unsigned long long))) - return [self unsignedLongLongData]; - else if (KWObjCTypeEqualToObjCType(anObjCType, @encode(unsigned short))) - return [self unsignedShortData]; - else - return nil; -} - -- (NSData *)boolData { - BOOL aValue = [self boolValue]; - return [NSData dataWithBytes:&aValue length:sizeof(BOOL)]; -} - -- (NSData *)charData { - char aValue = [self charValue]; - return [NSData dataWithBytes:&aValue length:sizeof(char)]; -} - -- (NSData *)doubleData { - double aValue = [self doubleValue]; - return [NSData dataWithBytes:&aValue length:sizeof(double)]; -} - -- (NSData *)floatData { - float aValue = [self floatValue]; - return [NSData dataWithBytes:&aValue length:sizeof(float)]; -} - -- (NSData *)intData { - int aValue = [self intValue]; - return [NSData dataWithBytes:&aValue length:sizeof(int)]; -} - -- (NSData *)integerData { - NSInteger aValue = [self integerValue]; - return [NSData dataWithBytes:&aValue length:sizeof(NSInteger)]; -} - -- (NSData *)longData { - long aValue = [self longValue]; - return [NSData dataWithBytes:&aValue length:sizeof(long)]; -} - -- (NSData *)longLongData { - long long aValue = [self longLongValue]; - return [NSData dataWithBytes:&aValue length:sizeof(long long)]; -} - -- (NSData *)shortData { - short aValue = [self shortValue]; - return [NSData dataWithBytes:&aValue length:sizeof(short)]; -} - -- (NSData *)unsignedCharData { - unsigned char aValue = [self unsignedCharValue]; - return [NSData dataWithBytes:&aValue length:sizeof(unsigned char)]; -} - -- (NSData *)unsignedIntData { - unsigned int aValue = [self unsignedIntValue]; - return [NSData dataWithBytes:&aValue length:sizeof(unsigned int)]; -} - -- (NSData *)unsignedIntegerData { - NSUInteger aValue = [self unsignedIntegerValue]; - return [NSData dataWithBytes:&aValue length:sizeof(NSUInteger)]; -} - -- (NSData *)unsignedLongData { - unsigned long aValue = [self unsignedLongValue]; - return [NSData dataWithBytes:&aValue length:sizeof(unsigned long)]; -} - -- (NSData *)unsignedLongLongData { - unsigned long long aValue = [self unsignedLongLongValue]; - return [NSData dataWithBytes:&aValue length:sizeof(unsigned long long)]; -} - -- (NSData *)unsignedShortData { - unsigned short aValue = [self unsignedShortValue]; - return [NSData dataWithBytes:&aValue length:sizeof(unsigned short)]; -} - -#pragma mark - Comparing Objects - -- (NSUInteger)hash { - if (self.isNumeric) - return [[self numberValue] hash]; - - return [self.value hash]; -} - -- (NSComparisonResult)compare:(KWValue *)aValue { - return [[self numberValue] compare:[aValue numberValue]]; -} - -- (BOOL)isEqual:(id)object { - if ([object isKindOfClass:[KWValue class]]) - return [self isEqualToKWValue:object]; - - if ([object isKindOfClass:[NSNumber class]]) - return [self isEqualToNumber:object]; - - return NO; -} - -- (BOOL)isEqualToKWValue:(KWValue *)aValue { - if (self.isNumeric && aValue.isNumeric) - return [self isEqualToNumber:[aValue numberValue]]; - else - return [self.value isEqual:aValue.value]; -} - -- (BOOL)isEqualToNumber:(NSNumber *)aValue { - return [[self numberValue] isEqualToNumber:aValue]; -} - -#pragma mark - Representing Values - -- (NSString *)description { - if ([self isNumeric]) - return [[self numberValue] description]; - - return [self.value description]; -} - -@end diff --git a/Pods/Kiwi/Classes/Core/KWWorkarounds.h b/Pods/Kiwi/Classes/Core/KWWorkarounds.h deleted file mode 100644 index 8242a98..0000000 --- a/Pods/Kiwi/Classes/Core/KWWorkarounds.h +++ /dev/null @@ -1,17 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" - -#if KW_TARGET_HAS_INVOCATION_EXCEPTION_BUG - -#pragma mark - Invocation Exception Bug Workaround - -// See KiwiConfiguration.h for notes. -void KWSetExceptionFromAcrossInvocationBoundary(NSException *anException); -NSException *KWGetAndClearExceptionFromAcrossInvocationBoundary(void); - -#endif // #if KW_TARGET_HAS_INVOCATION_EXCEPTION_BUG diff --git a/Pods/Kiwi/Classes/Core/KWWorkarounds.m b/Pods/Kiwi/Classes/Core/KWWorkarounds.m deleted file mode 100644 index 2d866bb..0000000 --- a/Pods/Kiwi/Classes/Core/KWWorkarounds.m +++ /dev/null @@ -1,26 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KWWorkarounds.h" - -#if KW_TARGET_HAS_INVOCATION_EXCEPTION_BUG - -static NSException *KWExceptionAcrossInvokeBoundary = nil; - -void KWSetExceptionFromAcrossInvocationBoundary(NSException *anException) { - if (KWExceptionAcrossInvokeBoundary != nil) - return; - - KWExceptionAcrossInvokeBoundary = anException; -} - -NSException *KWGetAndClearExceptionFromAcrossInvocationBoundary(void) { - NSException *exception = KWExceptionAcrossInvokeBoundary; - KWExceptionAcrossInvokeBoundary = nil; - return exception; -} - -#endif // #if KW_TARGET_HAS_INVOCATION_EXCEPTION_BUG diff --git a/Pods/Kiwi/Classes/Core/Kiwi.h b/Pods/Kiwi/Classes/Core/Kiwi.h deleted file mode 100644 index 4284c54..0000000 --- a/Pods/Kiwi/Classes/Core/Kiwi.h +++ /dev/null @@ -1,102 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -// This needs to come first. -#import "KiwiConfiguration.h" -#import - -#if defined(__cplusplus) -extern "C" { -#endif - -#import "KWAfterAllNode.h" -#import "KWAfterEachNode.h" -#import "KWAny.h" -#import "KWAsyncVerifier.h" -#import "KWBeBetweenMatcher.h" -#import "KWBeEmptyMatcher.h" -#import "KWBeIdenticalToMatcher.h" -#import "KWBeKindOfClassMatcher.h" -#import "KWBeMemberOfClassMatcher.h" -#import "KWBeSubclassOfClassMatcher.h" -#import "KWBeTrueMatcher.h" -#import "KWNilMatcher.h" -#import "KWBeWithinMatcher.h" -#import "KWBeZeroMatcher.h" -#import "KWBeforeAllNode.h" -#import "KWBeforeEachNode.h" -#import "KWBlock.h" -#import "KWBlockNode.h" -#import "KWBlockRaiseMatcher.h" -#import "KWCallSite.h" -#import "KWChangeMatcher.h" -#import "KWConformToProtocolMatcher.h" -#import "KWContainMatcher.h" -#import "KWContainStringMatcher.h" -#import "KWContextNode.h" -#import "KWDeviceInfo.h" -#import "KWEqualMatcher.h" -#import "KWExample.h" -#import "KWExampleSuiteBuilder.h" -#import "KWExampleNode.h" -#import "KWExampleNodeVisitor.h" -#import "KWExistVerifier.h" -#import "KWExpectationType.h" -#import "KWFailure.h" -#import "KWFormatter.h" -#import "KWFutureObject.h" -#import "KWGenericMatcher.h" -#import "KWHaveMatcher.h" -#import "KWHaveValueMatcher.h" -#import "KWInequalityMatcher.h" -#import "KWInvocationCapturer.h" -#import "KWItNode.h" -#import "KWMatchVerifier.h" -#import "KWMatcher.h" -#import "KWMatchers.h" -#import "KWMatcherFactory.h" -#import "KWMatching.h" -#import "KWMessagePattern.h" -#import "KWMessageSpying.h" -#import "KWMock.h" -#import "KWNull.h" -#import "KWObjCUtilities.h" -#import "KWPendingNode.h" -#import "KWReceiveMatcher.h" -#import "KWRegisterMatchersNode.h" -#import "KWRegularExpressionPatternMatcher.h" -#import "KWRespondToSelectorMatcher.h" -#import "KWSpec.h" -#import "KWStringUtilities.h" -#import "KWStub.h" -#import "KWSuiteConfigurationBase.h" -#import "KWUserDefinedMatcher.h" -#import "KWValue.h" -#import "KWVerifying.h" -#import "KWCaptureSpy.h" -#import "KWStringPrefixMatcher.h" -#import "KWStringContainsMatcher.h" -#import "KWNotificationMatcher.h" - - -// Public Foundation Categories -#import "NSObject+KiwiMockAdditions.h" -#import "NSObject+KiwiSpyAdditions.h" -#import "NSObject+KiwiStubAdditions.h" -#import "NSObject+KiwiVerifierAdditions.h" -#import "NSProxy+KiwiVerifierAdditions.h" - -#import "KiwiMacros.h" - -// Some Foundation headers use Kiwi keywords (e.g. 'should') as identifiers for -// parameter names. Including this last allows the use of Kiwi keywords without -// conflicting with these headers (hopefully!). -#import "KiwiBlockMacros.h" - -#if defined(__cplusplus) -} -#endif - diff --git a/Pods/Kiwi/Classes/Core/KiwiBlockMacros.h b/Pods/Kiwi/Classes/Core/KiwiBlockMacros.h deleted file mode 100644 index 57f0bd8..0000000 --- a/Pods/Kiwi/Classes/Core/KiwiBlockMacros.h +++ /dev/null @@ -1,16 +0,0 @@ -// -// KiwiBlockMacros.h -// Kiwi -// -// Created by Luke Redpath on 11/07/2011. -// Copyright 2011 Allen Ding. All rights reserved. -// - -// user defined matchers -#define registerMatcher(name) \ -\ -@interface NSObject (KWUserDefinedMatchersDefinitions) \ -- (void)name; \ -@end \ - -#define defineMatcher(...) KWDefineMatchers(__VA_ARGS__) diff --git a/Pods/Kiwi/Classes/Core/KiwiConfiguration.h b/Pods/Kiwi/Classes/Core/KiwiConfiguration.h deleted file mode 100644 index 1b54283..0000000 --- a/Pods/Kiwi/Classes/Core/KiwiConfiguration.h +++ /dev/null @@ -1,18 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -// As of iPhone SDK 4 GM, exceptions thrown across an NSInvocation -invoke or -// forwardInvocation: boundary in the simulator will terminate the app instead -// of being caught in @catch blocks from the caller side of the -invoke. Kiwi -// tries to handle this by storing the first exception that it would have -// otherwise thrown in a nasty global that callers can look for and handle. -// (Buggy termination is less desirable than global variables). -// -// Obviously, this can only handles cases where Kiwi itself would have raised -// an exception. -#if TARGET_IPHONE_SIMULATOR - #define KW_TARGET_HAS_INVOCATION_EXCEPTION_BUG 1 -#endif diff --git a/Pods/Kiwi/Classes/Core/KiwiMacros.h b/Pods/Kiwi/Classes/Core/KiwiMacros.h deleted file mode 100644 index d754a09..0000000 --- a/Pods/Kiwi/Classes/Core/KiwiMacros.h +++ /dev/null @@ -1,111 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" - -// This category is solely meant to coax Xcode into exposing the method names below during autocompletion. -// There is no implementation and this class definition must come before the macro definitions below. -@interface NSObject (KiwiVerifierMacroNames) - -- (void)should; -- (void)shouldNot; -- (void)shouldBeNil DEPRECATED_ATTRIBUTE; -- (void)shouldNotBeNil DEPRECATED_ATTRIBUTE; -- (void)shouldEventually; -- (void)shouldNotEventually; -- (void)shouldEventuallyBeforeTimingOutAfter; -- (void)shouldNotEventuallyBeforeTimingOutAfter; - -- (void)shouldAfterWait; -- (void)shouldNotAfterWait; -- (void)shouldAfterWaitOf; -- (void)shouldNotAfterWaitOf; - -@end - -#pragma mark - Support Macros - -#define KW_THIS_CALLSITE [KWCallSite callSiteWithFilename:@__FILE__ lineNumber:__LINE__] -#define KW_ADD_EXIST_VERIFIER(expectationType) [self addExistVerifierWithExpectationType:expectationType callSite:KW_THIS_CALLSITE] -#define KW_ADD_MATCH_VERIFIER(expectationType) [self addMatchVerifierWithExpectationType:expectationType callSite:KW_THIS_CALLSITE] -#define KW_ADD_ASYNC_VERIFIER(expectationType, timeOut, wait) [self addAsyncVerifierWithExpectationType:expectationType callSite:KW_THIS_CALLSITE timeout:timeOut shouldWait:wait] - -#pragma mark - Keywords - -// Kiwi macros used in specs for verifying expectations. -#define should attachToVerifier:KW_ADD_MATCH_VERIFIER(KWExpectationTypeShould) -#define shouldNot attachToVerifier:KW_ADD_MATCH_VERIFIER(KWExpectationTypeShouldNot) -#define shouldBeNil attachToVerifier:KW_ADD_EXIST_VERIFIER(KWExpectationTypeShouldNot) -#define shouldNotBeNil attachToVerifier:KW_ADD_EXIST_VERIFIER(KWExpectationTypeShould) - -#define shouldEventually attachToVerifier:KW_ADD_ASYNC_VERIFIER(KWExpectationTypeShould, kKW_DEFAULT_PROBE_TIMEOUT, NO) -#define shouldNotEventually attachToVerifier:KW_ADD_ASYNC_VERIFIER(KWExpectationTypeShouldNot, kKW_DEFAULT_PROBE_TIMEOUT, NO) -#define shouldEventuallyBeforeTimingOutAfter(timeout) attachToVerifier:KW_ADD_ASYNC_VERIFIER(KWExpectationTypeShould, timeout, NO) -#define shouldNotEventuallyBeforeTimingOutAfter(timeout) attachToVerifier:KW_ADD_ASYNC_VERIFIER(KWExpectationTypeShouldNot, timeout, NO) - -#define shouldAfterWait attachToVerifier:KW_ADD_ASYNC_VERIFIER(KWExpectationTypeShould, kKW_DEFAULT_PROBE_TIMEOUT, YES) -#define shouldNotAfterWait attachToVerifier:KW_ADD_ASYNC_VERIFIER(KWExpectationTypeShouldNot, kKW_DEFAULT_PROBE_TIMEOUT, YES) -#define shouldAfterWaitOf(timeout) attachToVerifier:KW_ADD_ASYNC_VERIFIER(KWExpectationTypeShould, timeout, YES) -#define shouldNotAfterWaitOf(timeout) attachToVerifier:KW_ADD_ASYNC_VERIFIER(KWExpectationTypeShouldNot, timeout, YES) - -#define beNil beNil:[KWNilMatcher verifyNilSubject] -#define beNonNil beNonNil:[KWNilMatcher verifyNonNilSubject] - -// used to wrap a pointer to an object that will change in the future (used with shouldEventually) -#define expectFutureValue(futureValue) [KWFutureObject futureObjectWithBlock:^{ return futureValue; }] - -// `fail` triggers a failure report when called -#define fail(message, ...) [[[KWExampleSuiteBuilder sharedExampleSuiteBuilder] currentExample] reportFailure:[KWFailure failureWithCallSite:KW_THIS_CALLSITE format:message, ##__VA_ARGS__]] - -// used for message patterns to allow matching any value -#define any() [KWAny any] - -// If a gcc compatible compiler is available, use the statement and -// declarations in expression extension to provide a convenient catch-all macro -// to create KWValues. -#if defined(__GNUC__) - #define theValue(expr) \ - ({ \ - __typeof__(expr) kiwiReservedPrefix_lVar = expr; \ - [KWValue valueWithBytes:&kiwiReservedPrefix_lVar objCType:@encode(__typeof__(expr))]; \ - }) -#endif // #if defined(__GNUC__) - -// Allows for comparision of pointer values in expectations -#define thePointerValue(expr) [NSValue valueWithPointer:(expr)] - -// Example group declarations. -#define SPEC_BEGIN(name) \ - \ - @interface name : KWSpec \ - \ - @end \ - \ - @implementation name \ - \ - + (NSString *)file { return @__FILE__; } \ - \ - + (void)buildExampleGroups { \ - -#define SPEC_END \ - } \ - \ - @end - -// Test suite configuration declaration -#define CONFIG_START \ - @interface KWSuiteConfiguration : KWSuiteConfigurationBase \ - \ - @end \ - \ - @implementation KWSuiteConfiguration \ - \ - - (void)configureSuite { - -#define CONFIG_END \ - } \ - \ - @end diff --git a/Pods/Kiwi/Classes/Core/NSInvocation+KiwiAdditions.h b/Pods/Kiwi/Classes/Core/NSInvocation+KiwiAdditions.h deleted file mode 100644 index d663b4c..0000000 --- a/Pods/Kiwi/Classes/Core/NSInvocation+KiwiAdditions.h +++ /dev/null @@ -1,26 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" - -@interface NSInvocation(KiwiAdditions) - -#pragma mark - Creating NSInvocation Objects - -+ (NSInvocation *)invocationWithTarget:(id)anObject selector:(SEL)aSelector; -+ (NSInvocation *)invocationWithTarget:(id)anObject selector:(SEL)aSelector messageArguments:(const void *)firstBytes, ...; - -#pragma mark - Accessing Message Arguments - -// Message arguments are invocation arguments that begin after the target and selector arguments. These methods provide -// convenient ways to access them. - -- (NSData *)messageArgumentDataAtIndex:(NSUInteger)anIndex; -- (void)getMessageArgument:(void *)buffer atIndex:(NSUInteger)anIndex; -- (void)setMessageArgument:(const void *)bytes atIndex:(NSUInteger)anIndex; -- (void)setMessageArguments:(const void *)firstBytes, ...; - -@end diff --git a/Pods/Kiwi/Classes/Core/NSInvocation+KiwiAdditions.m b/Pods/Kiwi/Classes/Core/NSInvocation+KiwiAdditions.m deleted file mode 100644 index 23065a2..0000000 --- a/Pods/Kiwi/Classes/Core/NSInvocation+KiwiAdditions.m +++ /dev/null @@ -1,91 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "NSInvocation+KiwiAdditions.h" -#import "KWFormatter.h" -#import "KWObjCUtilities.h" -#import "NSMethodSignature+KiwiAdditions.h" - -@implementation NSInvocation(KiwiAdditions) - -#pragma mark - Creating NSInvocation Objects - -+ (NSInvocation *)invocationWithTarget:(id)anObject selector:(SEL)aSelector { - return [self invocationWithTarget:anObject selector:aSelector messageArguments:nil]; -} - -+ (NSInvocation *)invocationWithTarget:(id)anObject selector:(SEL)aSelector messageArguments:(const void *)firstBytes, ... { - if (anObject == nil) { - [NSException raise:NSInvalidArgumentException format:@"%@ - target must not be nil", - NSStringFromSelector(_cmd)]; - } - - NSMethodSignature *signature = [anObject methodSignatureForSelector:aSelector]; - - if (signature == nil) { - [NSException raise:NSInvalidArgumentException format:@"%@ - target returned nil for -methodSignatureForSelector", - NSStringFromSelector(_cmd)]; - } - - NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:signature]; - [invocation setTarget:anObject]; - [invocation setSelector:aSelector]; - NSUInteger numberOfMessageArguments = [signature numberOfMessageArguments]; - - if (numberOfMessageArguments == 0) - return invocation; - - va_list argumentList; - va_start(argumentList, firstBytes); - const void *bytes = firstBytes; - - for (NSUInteger i = 0; i < numberOfMessageArguments && bytes != nil; ++i) { - [invocation setMessageArgument:bytes atIndex:i]; - bytes = va_arg(argumentList, const void *); - } - - va_end(argumentList); - return invocation; -} - -#pragma mark - Accessing Message Arguments - -- (NSData *)messageArgumentDataAtIndex:(NSUInteger)anIndex { - NSUInteger length = KWObjCTypeLength([[self methodSignature] messageArgumentTypeAtIndex:anIndex]); - void *buffer = malloc(length); - [self getMessageArgument:buffer atIndex:anIndex]; - // NSData takes over ownership of buffer - NSData* data = [NSData dataWithBytesNoCopy:buffer length:length]; - return data; -} - -- (void)getMessageArgument:(void *)buffer atIndex:(NSUInteger)anIndex { - [self getArgument:buffer atIndex:anIndex + 2]; -} - -- (void)setMessageArgument:(const void *)bytes atIndex:(NSUInteger)anIndex { - [self setArgument:(void *)bytes atIndex:anIndex + 2]; -} - -- (void)setMessageArguments:(const void *)firstBytes, ... { - NSUInteger numberOfMessageArguments = [[self methodSignature] numberOfMessageArguments]; - - if (numberOfMessageArguments == 0) - return; - - va_list argumentList; - va_start(argumentList, firstBytes); - const void *bytes = firstBytes; - - for (NSUInteger i = 0; i < numberOfMessageArguments && bytes != nil; ++i) { - [self setMessageArgument:bytes atIndex:i]; - bytes = va_arg(argumentList, const void *); - } - - va_end(argumentList); -} - -@end diff --git a/Pods/Kiwi/Classes/Core/NSInvocation+OCMAdditions.h b/Pods/Kiwi/Classes/Core/NSInvocation+OCMAdditions.h deleted file mode 100644 index 04f22cd..0000000 --- a/Pods/Kiwi/Classes/Core/NSInvocation+OCMAdditions.h +++ /dev/null @@ -1,34 +0,0 @@ -//--------------------------------------------------------------------------------------- -// $Id$ -// Copyright (c) 2006-2009 by Mulle Kybernetik. See License file for details. -//--------------------------------------------------------------------------------------- - -#import - -@interface NSInvocation(OCMAdditions) - -- (id)getArgumentAtIndexAsObject:(int)argIndex; - -- (NSString *)invocationDescription; - -- (NSString *)argumentDescriptionAtIndex:(int)argIndex; - -- (NSString *)objectDescriptionAtIndex:(int)anInt; -- (NSString *)charDescriptionAtIndex:(int)anInt; -- (NSString *)unsignedCharDescriptionAtIndex:(int)anInt; -- (NSString *)intDescriptionAtIndex:(int)anInt; -- (NSString *)unsignedIntDescriptionAtIndex:(int)anInt; -- (NSString *)shortDescriptionAtIndex:(int)anInt; -- (NSString *)unsignedShortDescriptionAtIndex:(int)anInt; -- (NSString *)longDescriptionAtIndex:(int)anInt; -- (NSString *)unsignedLongDescriptionAtIndex:(int)anInt; -- (NSString *)longLongDescriptionAtIndex:(int)anInt; -- (NSString *)unsignedLongLongDescriptionAtIndex:(int)anInt; -- (NSString *)doubleDescriptionAtIndex:(int)anInt; -- (NSString *)floatDescriptionAtIndex:(int)anInt; -- (NSString *)structDescriptionAtIndex:(int)anInt; -- (NSString *)pointerDescriptionAtIndex:(int)anInt; -- (NSString *)cStringDescriptionAtIndex:(int)anInt; -- (NSString *)selectorDescriptionAtIndex:(int)anInt; - -@end diff --git a/Pods/Kiwi/Classes/Core/NSInvocation+OCMAdditions.m b/Pods/Kiwi/Classes/Core/NSInvocation+OCMAdditions.m deleted file mode 100644 index a53804b..0000000 --- a/Pods/Kiwi/Classes/Core/NSInvocation+OCMAdditions.m +++ /dev/null @@ -1,343 +0,0 @@ -//--------------------------------------------------------------------------------------- -// $Id$ -// Copyright (c) 2006-2009 by Mulle Kybernetik. See License file for details. -//--------------------------------------------------------------------------------------- - -#import "NSInvocation+OCMAdditions.h" - - -@implementation NSInvocation(OCMAdditions) - -- (id)getArgumentAtIndexAsObject:(int)argIndex -{ - const char* argType; - - argType = [[self methodSignature] getArgumentTypeAtIndex:argIndex]; - while(strchr("rnNoORV", argType[0]) != NULL) - argType += 1; - - if((strlen(argType) > 1) && (strchr("{^", argType[0]) == NULL) && (strcmp("@?", argType) != 0)) - [NSException raise:NSInvalidArgumentException format:@"Cannot handle argument type '%s'.", argType]; - - switch (argType[0]) - { - case '#': - case '@': - { - __unsafe_unretained id value; - [self getArgument:&value atIndex:argIndex]; - return value; - } - case ':': - { - SEL s = (SEL)0; - [self getArgument:&s atIndex:argIndex]; - id value = NSStringFromSelector(s); - return value; - } - case 'i': - { - int value; - [self getArgument:&value atIndex:argIndex]; - return @(value); - } - case 's': - { - short value; - [self getArgument:&value atIndex:argIndex]; - return @(value); - } - case 'l': - { - long value; - [self getArgument:&value atIndex:argIndex]; - return @(value); - } - case 'q': - { - long long value; - [self getArgument:&value atIndex:argIndex]; - return @(value); - } - case 'c': - { - char value; - [self getArgument:&value atIndex:argIndex]; - return @(value); - } - case 'C': - { - unsigned char value; - [self getArgument:&value atIndex:argIndex]; - return @(value); - } - case 'I': - { - unsigned int value; - [self getArgument:&value atIndex:argIndex]; - return @(value); - } - case 'S': - { - unsigned short value; - [self getArgument:&value atIndex:argIndex]; - return @(value); - } - case 'L': - { - unsigned long value; - [self getArgument:&value atIndex:argIndex]; - return @(value); - } - case 'Q': - { - unsigned long long value; - [self getArgument:&value atIndex:argIndex]; - return @(value); - } - case 'f': - { - float value; - [self getArgument:&value atIndex:argIndex]; - return @(value); - } - case 'd': - { - double value; - [self getArgument:&value atIndex:argIndex]; - return @(value); - } - case 'B': - { - bool value; - [self getArgument:&value atIndex:argIndex]; - return @(value); - } - case '^': - { - void *value = NULL; - [self getArgument:&value atIndex:argIndex]; - return [NSValue valueWithPointer:value]; - } - case '*': - { - char *value = NULL; - [self getArgument:&value atIndex:argIndex]; - return [NSValue valueWithPointer:value]; - } - case '{': // structure - { - NSUInteger maxArgSize = [[self methodSignature] frameLength]; - NSMutableData *argumentData = [[NSMutableData alloc] initWithLength:maxArgSize]; - [self getArgument:[argumentData mutableBytes] atIndex:argIndex]; - return [NSValue valueWithBytes:[argumentData bytes] objCType:argType]; - } - - } - [NSException raise:NSInvalidArgumentException format:@"Argument type '%s' not supported", argType]; - return nil; -} - -- (NSString *)invocationDescription -{ - NSMethodSignature *methodSignature = [self methodSignature]; - NSUInteger numberOfArgs = [methodSignature numberOfArguments]; - - if (numberOfArgs == 2) - return NSStringFromSelector([self selector]); - - NSArray *selectorParts = [NSStringFromSelector([self selector]) componentsSeparatedByString:@":"]; - NSMutableString *description = [[NSMutableString alloc] init]; - unsigned int i; - for(i = 2; i < numberOfArgs; i++) - { - [description appendFormat:@"%@%@:", (i > 2 ? @" " : @""), selectorParts[(i - 2)]]; - [description appendString:[self argumentDescriptionAtIndex:i]]; - } - - return description; -} - -- (NSString *)argumentDescriptionAtIndex:(int)argIndex -{ - const char *argType = [[self methodSignature] getArgumentTypeAtIndex:argIndex]; - if(strchr("rnNoORV", argType[0]) != NULL) - argType += 1; - - switch(*argType) - { - case '@': return [self objectDescriptionAtIndex:argIndex]; - case 'c': return [self charDescriptionAtIndex:argIndex]; - case 'C': return [self unsignedCharDescriptionAtIndex:argIndex]; - case 'i': return [self intDescriptionAtIndex:argIndex]; - case 'I': return [self unsignedIntDescriptionAtIndex:argIndex]; - case 's': return [self shortDescriptionAtIndex:argIndex]; - case 'S': return [self unsignedShortDescriptionAtIndex:argIndex]; - case 'l': return [self longDescriptionAtIndex:argIndex]; - case 'L': return [self unsignedLongDescriptionAtIndex:argIndex]; - case 'q': return [self longLongDescriptionAtIndex:argIndex]; - case 'Q': return [self unsignedLongLongDescriptionAtIndex:argIndex]; - case 'd': return [self doubleDescriptionAtIndex:argIndex]; - case 'f': return [self floatDescriptionAtIndex:argIndex]; - // Why does this throw EXC_BAD_ACCESS when appending the string? - // case NSObjCStructType: return [self structDescriptionAtIndex:index]; - case '^': return [self pointerDescriptionAtIndex:argIndex]; - case '*': return [self cStringDescriptionAtIndex:argIndex]; - case ':': return [self selectorDescriptionAtIndex:argIndex]; - default: return [@""]; // avoid confusion with trigraphs... - } - -} - - -- (NSString *)objectDescriptionAtIndex:(int)anInt -{ - __unsafe_unretained id object; - - [self getArgument:&object atIndex:anInt]; - if (object == nil) - return @"nil"; - else if(![object isProxy] && [object isKindOfClass:[NSString class]]) - return [NSString stringWithFormat:@"@\"%@\"", [object description]]; - else - return [object description]; -} - -- (NSString *)charDescriptionAtIndex:(int)anInt -{ - unsigned char buffer[128]; - memset(buffer, 0x0, 128); - - [self getArgument:&buffer atIndex:anInt]; - - // If there's only one character in the buffer, and it's 0 or 1, then we have a BOOL - if (buffer[1] == '\0' && (buffer[0] == 0 || buffer[0] == 1)) - return [NSString stringWithFormat:@"%@", (buffer[0] == 1 ? @"YES" : @"NO")]; - else - return [NSString stringWithFormat:@"'%c'", *buffer]; -} - -- (NSString *)unsignedCharDescriptionAtIndex:(int)anInt -{ - unsigned char buffer[128]; - memset(buffer, 0x0, 128); - - [self getArgument:&buffer atIndex:anInt]; - return [NSString stringWithFormat:@"'%c'", *buffer]; -} - -- (NSString *)intDescriptionAtIndex:(int)anInt -{ - int intValue; - - [self getArgument:&intValue atIndex:anInt]; - return [NSString stringWithFormat:@"%d", intValue]; -} - -- (NSString *)unsignedIntDescriptionAtIndex:(int)anInt -{ - unsigned int intValue; - - [self getArgument:&intValue atIndex:anInt]; - return [NSString stringWithFormat:@"%d", intValue]; -} - -- (NSString *)shortDescriptionAtIndex:(int)anInt -{ - short shortValue; - - [self getArgument:&shortValue atIndex:anInt]; - return [NSString stringWithFormat:@"%hi", shortValue]; -} - -- (NSString *)unsignedShortDescriptionAtIndex:(int)anInt -{ - unsigned short shortValue; - - [self getArgument:&shortValue atIndex:anInt]; - return [NSString stringWithFormat:@"%hu", shortValue]; -} - -- (NSString *)longDescriptionAtIndex:(int)anInt -{ - long longValue; - - [self getArgument:&longValue atIndex:anInt]; - return [NSString stringWithFormat:@"%ld", longValue]; -} - -- (NSString *)unsignedLongDescriptionAtIndex:(int)anInt -{ - unsigned long longValue; - - [self getArgument:&longValue atIndex:anInt]; - return [NSString stringWithFormat:@"%lu", longValue]; -} - -- (NSString *)longLongDescriptionAtIndex:(int)anInt -{ - long long longLongValue; - - [self getArgument:&longLongValue atIndex:anInt]; - return [NSString stringWithFormat:@"%qi", longLongValue]; -} - -- (NSString *)unsignedLongLongDescriptionAtIndex:(int)anInt -{ - unsigned long long longLongValue; - - [self getArgument:&longLongValue atIndex:anInt]; - return [NSString stringWithFormat:@"%qu", longLongValue]; -} - -- (NSString *)doubleDescriptionAtIndex:(int)anInt; -{ - double doubleValue; - - [self getArgument:&doubleValue atIndex:anInt]; - return [NSString stringWithFormat:@"%f", doubleValue]; -} - -- (NSString *)floatDescriptionAtIndex:(int)anInt -{ - float floatValue; - - [self getArgument:&floatValue atIndex:anInt]; - return [NSString stringWithFormat:@"%f", floatValue]; -} - -- (NSString *)structDescriptionAtIndex:(int)anInt; -{ - void *buffer; - - [self getArgument:&buffer atIndex:anInt]; - return [NSString stringWithFormat:@":(struct)%p", buffer]; -} - -- (NSString *)pointerDescriptionAtIndex:(int)anInt -{ - void *buffer; - - [self getArgument:&buffer atIndex:anInt]; - return [NSString stringWithFormat:@"%p", buffer]; -} - -- (NSString *)cStringDescriptionAtIndex:(int)anInt -{ - char buffer[128]; - - memset(buffer, 0x0, 128); - - [self getArgument:&buffer atIndex:anInt]; - return [NSString stringWithFormat:@"\"%s\"", buffer]; -} - -- (NSString *)selectorDescriptionAtIndex:(int)anInt -{ - SEL selectorValue; - - [self getArgument:&selectorValue atIndex:anInt]; - return [NSString stringWithFormat:@"@selector(%@)", NSStringFromSelector(selectorValue)]; -} - -@end diff --git a/Pods/Kiwi/Classes/Core/NSMethodSignature+KiwiAdditions.h b/Pods/Kiwi/Classes/Core/NSMethodSignature+KiwiAdditions.h deleted file mode 100644 index e7c44a3..0000000 --- a/Pods/Kiwi/Classes/Core/NSMethodSignature+KiwiAdditions.h +++ /dev/null @@ -1,16 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" - -@interface NSMethodSignature(KiwiAdditions) - -#pragma mark - Getting Information on Message Arguments - -- (NSUInteger)numberOfMessageArguments; -- (const char *)messageArgumentTypeAtIndex:(NSUInteger)anIndex; - -@end diff --git a/Pods/Kiwi/Classes/Core/NSMethodSignature+KiwiAdditions.m b/Pods/Kiwi/Classes/Core/NSMethodSignature+KiwiAdditions.m deleted file mode 100644 index 3d1b887..0000000 --- a/Pods/Kiwi/Classes/Core/NSMethodSignature+KiwiAdditions.m +++ /dev/null @@ -1,21 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "NSMethodSignature+KiwiAdditions.h" - -@implementation NSMethodSignature(KiwiAdditions) - -#pragma mark - Getting Information on Message Arguments - -- (NSUInteger)numberOfMessageArguments { - return [self numberOfArguments] - 2; -} - -- (const char *)messageArgumentTypeAtIndex:(NSUInteger)anIndex { - return [self getArgumentTypeAtIndex:anIndex + 2]; -} - -@end diff --git a/Pods/Kiwi/Classes/Core/NSNumber+KiwiAdditions.h b/Pods/Kiwi/Classes/Core/NSNumber+KiwiAdditions.h deleted file mode 100644 index 5e070e0..0000000 --- a/Pods/Kiwi/Classes/Core/NSNumber+KiwiAdditions.h +++ /dev/null @@ -1,31 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" - -@interface NSNumber(KiwiAdditions) - -#pragma mark - Creating Numbers - -+ (id)numberWithBytes:(const void *)bytes objCType:(const char *)anObjCType; -+ (id)numberWithBoolBytes:(const void *)bytes; -+ (id)numberWithStdBoolBytes:(const void *)bytes; -+ (id)numberWithCharBytes:(const void *)bytes; -+ (id)numberWithDoubleBytes:(const void *)bytes; -+ (id)numberWithFloatBytes:(const void *)bytes; -+ (id)numberWithIntBytes:(const void *)bytes; -+ (id)numberWithIntegerBytes:(const void *)bytes; -+ (id)numberWithLongBytes:(const void *)bytes; -+ (id)numberWithLongLongBytes:(const void *)bytes; -+ (id)numberWithShortBytes:(const void *)bytes; -+ (id)numberWithUnsignedCharBytes:(const void *)bytes; -+ (id)numberWithUnsignedIntBytes:(const void *)bytes; -+ (id)numberWithUnsignedIntegerBytes:(const void *)bytes; -+ (id)numberWithUnsignedLongBytes:(const void *)bytes; -+ (id)numberWithUnsignedLongLongBytes:(const void *)bytes; -+ (id)numberWithUnsignedShortBytes:(const void *)bytes; - -@end diff --git a/Pods/Kiwi/Classes/Core/NSNumber+KiwiAdditions.m b/Pods/Kiwi/Classes/Core/NSNumber+KiwiAdditions.m deleted file mode 100644 index 049f10e..0000000 --- a/Pods/Kiwi/Classes/Core/NSNumber+KiwiAdditions.m +++ /dev/null @@ -1,116 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "NSNumber+KiwiAdditions.h" -#import "KWObjCUtilities.h" - -@implementation NSNumber(KiwiAdditions) - -#pragma mark - Creating Numbers - -+ (id)numberWithBytes:(const void *)bytes objCType:(const char *)anObjCType { - // Yeah, this is ugly. - if (KWObjCTypeEqualToObjCType(anObjCType, @encode(BOOL))) - return [self numberWithBoolBytes:bytes]; - else if (KWObjCTypeEqualToObjCType(anObjCType, @encode(bool))) - return [self numberWithStdBoolBytes:bytes]; - else if (KWObjCTypeEqualToObjCType(anObjCType, @encode(char))) - return [self numberWithCharBytes:bytes]; - else if (KWObjCTypeEqualToObjCType(anObjCType, @encode(double))) - return [self numberWithDoubleBytes:bytes]; - else if (KWObjCTypeEqualToObjCType(anObjCType, @encode(float))) - return [self numberWithFloatBytes:bytes]; - else if (KWObjCTypeEqualToObjCType(anObjCType, @encode(int))) - return [self numberWithIntBytes:bytes]; - else if (KWObjCTypeEqualToObjCType(anObjCType, @encode(NSInteger))) - return [self numberWithIntegerBytes:bytes]; - else if (KWObjCTypeEqualToObjCType(anObjCType, @encode(long))) - return [self numberWithLongBytes:bytes]; - else if (KWObjCTypeEqualToObjCType(anObjCType, @encode(long long))) - return [self numberWithLongLongBytes:bytes]; - else if (KWObjCTypeEqualToObjCType(anObjCType, @encode(short))) - return [self numberWithShortBytes:bytes]; - else if (KWObjCTypeEqualToObjCType(anObjCType, @encode(unsigned char))) - return [self numberWithUnsignedCharBytes:bytes]; - else if (KWObjCTypeEqualToObjCType(anObjCType, @encode(unsigned int))) - return [self numberWithUnsignedIntBytes:bytes]; - else if (KWObjCTypeEqualToObjCType(anObjCType, @encode(NSUInteger))) - return [self numberWithUnsignedIntegerBytes:bytes]; - else if (KWObjCTypeEqualToObjCType(anObjCType, @encode(unsigned long))) - return [self numberWithUnsignedLongBytes:bytes]; - else if (KWObjCTypeEqualToObjCType(anObjCType, @encode(unsigned long long))) - return [self numberWithUnsignedLongLongBytes:bytes]; - else if (KWObjCTypeEqualToObjCType(anObjCType, @encode(unsigned short))) - return [self numberWithUnsignedShortBytes:bytes]; - else - return nil; -} - -+ (id)numberWithBoolBytes:(const void *)bytes { - return @(*(const BOOL *)bytes); -} - -+ (id)numberWithStdBoolBytes:(const void *)bytes { - return @(*(const bool *)bytes); -} - -+ (id)numberWithCharBytes:(const void *)bytes { - return @(*(const char *)bytes); -} - -+ (id)numberWithDoubleBytes:(const void *)bytes { - return @(*(const double *)bytes); -} - -+ (id)numberWithFloatBytes:(const void *)bytes { - return @(*(const float *)bytes); -} - -+ (id)numberWithIntBytes:(const void *)bytes { - return @(*(const int *)bytes); -} - -+ (id)numberWithIntegerBytes:(const void *)bytes { - return @(*(const NSInteger *)bytes); -} - -+ (id)numberWithLongBytes:(const void *)bytes { - return @(*(const long *)bytes); -} - -+ (id)numberWithLongLongBytes:(const void *)bytes { - return @(*(const long long *)bytes); -} - -+ (id)numberWithShortBytes:(const void *)bytes { - return @(*(const short *)bytes); -} - -+ (id)numberWithUnsignedCharBytes:(const void *)bytes { - return @(*(const unsigned char *)bytes); -} - -+ (id)numberWithUnsignedIntBytes:(const void *)bytes { - return @(*(const unsigned int *)bytes); -} - -+ (id)numberWithUnsignedIntegerBytes:(const void *)bytes { - return @(*(const NSUInteger *)bytes); -} - -+ (id)numberWithUnsignedLongBytes:(const void *)bytes { - return @(*(const unsigned long *)bytes); -} - -+ (id)numberWithUnsignedLongLongBytes:(const void *)bytes { - return @(*(const unsigned long long *)bytes); -} - -+ (id)numberWithUnsignedShortBytes:(const void *)bytes { - return @(*(const unsigned short *)bytes); -} - -@end diff --git a/Pods/Kiwi/Classes/Core/NSObject+KiwiSpyAdditions.h b/Pods/Kiwi/Classes/Core/NSObject+KiwiSpyAdditions.h deleted file mode 100644 index f8e5b65..0000000 --- a/Pods/Kiwi/Classes/Core/NSObject+KiwiSpyAdditions.h +++ /dev/null @@ -1,20 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" - -@class KWCaptureSpy; - -@protocol KiwiSpyAdditions - -- (KWCaptureSpy *)captureArgument:(SEL)selector atIndex:(NSUInteger)index; -+ (KWCaptureSpy *)captureArgument:(SEL)selector atIndex:(NSUInteger)index; - -@end - -@interface NSObject (KiwiSpyAdditions) - -@end diff --git a/Pods/Kiwi/Classes/Core/NSObject+KiwiSpyAdditions.m b/Pods/Kiwi/Classes/Core/NSObject+KiwiSpyAdditions.m deleted file mode 100644 index 321ea8a..0000000 --- a/Pods/Kiwi/Classes/Core/NSObject+KiwiSpyAdditions.m +++ /dev/null @@ -1,29 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "NSObject+KiwiSpyAdditions.h" - -#import "KWCaptureSpy.h" -#import "KWMessagePattern.h" -#import "NSObject+KiwiStubAdditions.h" - -@implementation NSObject (KiwiSpyAdditions) - -- (KWCaptureSpy *)captureArgument:(SEL)selector atIndex:(NSUInteger)index { - KWCaptureSpy *spy = [[KWCaptureSpy alloc] initWithArgumentIndex:index]; - KWMessagePattern *pattern = [[KWMessagePattern alloc] initWithSelector:selector]; - [self addMessageSpy:spy forMessagePattern:pattern]; - return spy; -} - -+ (KWCaptureSpy *)captureArgument:(SEL)selector atIndex:(NSUInteger)index { - KWCaptureSpy *spy = [[KWCaptureSpy alloc] initWithArgumentIndex:index]; - KWMessagePattern *pattern = [[KWMessagePattern alloc] initWithSelector:selector]; - [self addMessageSpy:spy forMessagePattern:pattern]; - return spy; -} - -@end diff --git a/Pods/Kiwi/Classes/Core/NSObject+KiwiVerifierAdditions.h b/Pods/Kiwi/Classes/Core/NSObject+KiwiVerifierAdditions.h deleted file mode 100644 index 9b5de33..0000000 --- a/Pods/Kiwi/Classes/Core/NSObject+KiwiVerifierAdditions.h +++ /dev/null @@ -1,17 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" - -@protocol KWVerifying; - -@interface NSObject(KiwiVerifierAdditions) - -#pragma mark - Attaching to Verifiers - -- (id)attachToVerifier:(id)aVerifier; - -@end diff --git a/Pods/Kiwi/Classes/Core/NSObject+KiwiVerifierAdditions.m b/Pods/Kiwi/Classes/Core/NSObject+KiwiVerifierAdditions.m deleted file mode 100644 index be9fa93..0000000 --- a/Pods/Kiwi/Classes/Core/NSObject+KiwiVerifierAdditions.m +++ /dev/null @@ -1,19 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "NSObject+KiwiVerifierAdditions.h" -#import "KWVerifying.h" - -@implementation NSObject(KiwiVerifierAdditions) - -#pragma mark - Attaching to Verifiers - -- (id)attachToVerifier:(id)aVerifier { - [aVerifier setSubject:self]; - return aVerifier; -} - -@end diff --git a/Pods/Kiwi/Classes/Core/NSProxy+KiwiVerifierAdditions.h b/Pods/Kiwi/Classes/Core/NSProxy+KiwiVerifierAdditions.h deleted file mode 100644 index 30426fd..0000000 --- a/Pods/Kiwi/Classes/Core/NSProxy+KiwiVerifierAdditions.h +++ /dev/null @@ -1,20 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2013 Allen Ding. All rights reserved. -// -// Contributed by https://github.com/dwlnetnl -// - -#import "KiwiConfiguration.h" - -@protocol KWVerifying; - -@interface NSProxy (KiwiVerifierAdditions) - -#pragma mark - Attaching to Verifiers - -- (id)attachToVerifier:(id)aVerifier; -- (id)attachToVerifier:(id)firstVerifier verifier:(id)secondVerifier; - -@end diff --git a/Pods/Kiwi/Classes/Core/NSProxy+KiwiVerifierAdditions.m b/Pods/Kiwi/Classes/Core/NSProxy+KiwiVerifierAdditions.m deleted file mode 100644 index 027c6e3..0000000 --- a/Pods/Kiwi/Classes/Core/NSProxy+KiwiVerifierAdditions.m +++ /dev/null @@ -1,27 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2013 Allen Ding. All rights reserved. -// -// Contributed by https://github.com/dwlnetnl -// - -#import "NSProxy+KiwiVerifierAdditions.h" -#import "KWVerifying.h" - -@implementation NSProxy (KiwiVerifierAdditions) - -#pragma mark - Attaching to Verifiers - -- (id)attachToVerifier:(id)aVerifier { - [aVerifier setSubject:self]; - return aVerifier; -} - -- (id)attachToVerifier:(id)firstVerifier verifier:(id)secondVerifier { - [firstVerifier setSubject:self]; - [secondVerifier setSubject:self]; - return firstVerifier; -} - -@end diff --git a/Pods/Kiwi/Classes/Core/NSValue+KiwiAdditions.h b/Pods/Kiwi/Classes/Core/NSValue+KiwiAdditions.h deleted file mode 100644 index dd96003..0000000 --- a/Pods/Kiwi/Classes/Core/NSValue+KiwiAdditions.h +++ /dev/null @@ -1,15 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" - -@interface NSValue(KiwiAdditions) - -#pragma mark - Accessing Data - -- (NSData *)dataValue; - -@end diff --git a/Pods/Kiwi/Classes/Core/NSValue+KiwiAdditions.m b/Pods/Kiwi/Classes/Core/NSValue+KiwiAdditions.m deleted file mode 100644 index 4ff3c77..0000000 --- a/Pods/Kiwi/Classes/Core/NSValue+KiwiAdditions.m +++ /dev/null @@ -1,23 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "NSValue+KiwiAdditions.h" -#import "KWObjCUtilities.h" - -@implementation NSValue(KiwiAdditions) - -#pragma mark - Accessing Data - -- (NSData *)dataValue { - NSUInteger length = KWObjCTypeLength([self objCType]); - void *buffer = malloc(length); - [self getValue:buffer]; - NSData *data = [NSData dataWithBytes:buffer length:length]; - free(buffer); - return data; -} - -@end diff --git a/Pods/Kiwi/Classes/Matchers/KWBeBetweenMatcher.h b/Pods/Kiwi/Classes/Matchers/KWBeBetweenMatcher.h deleted file mode 100644 index fa08c75..0000000 --- a/Pods/Kiwi/Classes/Matchers/KWBeBetweenMatcher.h +++ /dev/null @@ -1,18 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" -#import "KWMatcher.h" - -@interface KWBeBetweenMatcher : KWMatcher - -#pragma mark - Configuring Matchers - -// TODO: 'and' below is a reserved word in C++ -- (void)beBetween:(id)aLowerEndpoint and:(id)anUpperEndpoint; -- (void)beInTheIntervalFrom:(id)aLowerEndpoint to:(id)anUpperEndpoint; - -@end diff --git a/Pods/Kiwi/Classes/Matchers/KWBeBetweenMatcher.m b/Pods/Kiwi/Classes/Matchers/KWBeBetweenMatcher.m deleted file mode 100644 index b33e3a2..0000000 --- a/Pods/Kiwi/Classes/Matchers/KWBeBetweenMatcher.m +++ /dev/null @@ -1,63 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KWBeBetweenMatcher.h" -#import "KWFormatter.h" - -@interface KWBeBetweenMatcher() - -#pragma mark - Properties - -@property (nonatomic, strong) id lowerEndpoint; -@property (nonatomic, strong) id upperEndpoint; - -@end - -@implementation KWBeBetweenMatcher - -#pragma mark - Getting Matcher Strings - -+ (NSArray *)matcherStrings { - return @[@"beBetween:and:", @"beInTheIntervalFrom:to:"]; -} - -#pragma mark - Matching - -- (BOOL)evaluate { - if (![self.subject respondsToSelector:@selector(compare:)]) - [NSException raise:@"KWMatcherException" format:@"subject does not respond to -compare:"]; - - NSComparisonResult lowerResult = [self.subject compare:self.lowerEndpoint]; - NSComparisonResult upperResult = [self.subject compare:self.upperEndpoint]; - return (lowerResult == NSOrderedDescending || lowerResult == NSOrderedSame) && - (upperResult == NSOrderedAscending || upperResult == NSOrderedSame); -} - -#pragma mark - Getting Failure Messages - -- (NSString *)failureMessageForShould { - return [NSString stringWithFormat:@"expected subject to be in the interval [%@, %@], got %@", - [KWFormatter formatObject:self.lowerEndpoint], - [KWFormatter formatObject:self.upperEndpoint], - [KWFormatter formatObject:self.subject]]; -} - -- (NSString *)description { - return [NSString stringWithFormat:@"be between %@ and %@", self.lowerEndpoint, self.upperEndpoint]; -} - -#pragma mark - Configuring Matchers - -- (void)beBetween:(id)aLowerEndpoint and:(id)anUpperEndpoint { - [self beInTheIntervalFrom:aLowerEndpoint to:anUpperEndpoint]; -} - -- (void)beInTheIntervalFrom:(id)aLowerEndpoint to:(id)anUpperEndpoint { - self.lowerEndpoint = aLowerEndpoint; - self.upperEndpoint = anUpperEndpoint; -} - -@end diff --git a/Pods/Kiwi/Classes/Matchers/KWBeEmptyMatcher.h b/Pods/Kiwi/Classes/Matchers/KWBeEmptyMatcher.h deleted file mode 100644 index 540e6dd..0000000 --- a/Pods/Kiwi/Classes/Matchers/KWBeEmptyMatcher.h +++ /dev/null @@ -1,16 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" -#import "KWMatcher.h" - -@interface KWBeEmptyMatcher : KWMatcher - -#pragma mark - Configuring Matchers - -- (void)beEmpty; - -@end diff --git a/Pods/Kiwi/Classes/Matchers/KWBeEmptyMatcher.m b/Pods/Kiwi/Classes/Matchers/KWBeEmptyMatcher.m deleted file mode 100644 index 8f0194d..0000000 --- a/Pods/Kiwi/Classes/Matchers/KWBeEmptyMatcher.m +++ /dev/null @@ -1,68 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KWBeEmptyMatcher.h" -#import "KWFormatter.h" - -@interface KWBeEmptyMatcher() - -#pragma mark - Properties - -@property (nonatomic, readwrite) NSUInteger count; - -@end - -@implementation KWBeEmptyMatcher - -#pragma mark - Getting Matcher Strings - -+ (NSArray *)matcherStrings { - return @[@"beEmpty"]; -} - -#pragma mark - Matching - -- (BOOL)evaluate { - if ([self.subject respondsToSelector:@selector(count)]) { - self.count = [self.subject count]; - return self.count == 0; - } - else if ([self.subject respondsToSelector:@selector(length)]) { - self.count = [self.subject length]; - return self.count == 0; - } - - [NSException raise:@"KWMatcherException" format:@"subject does not respond to -count or -length"]; - return NO; -} - -#pragma mark - Getting Failure Messages - -- (NSString *)countPhrase { - if (self.count == 1) - return @"1 item"; - else - return [NSString stringWithFormat:@"%u items", (unsigned)self.count]; -} - -- (NSString *)failureMessageForShould { - return [NSString stringWithFormat:@"expected subject to be empty, got %@", [self countPhrase]]; -} - -- (NSString *)failureMessageForShouldNot { - return @"expected subject not to be empty"; -} - -- (NSString *)description { - return @"be empty"; -} - -#pragma mark - Configuring Matchers - -- (void)beEmpty { -} - -@end diff --git a/Pods/Kiwi/Classes/Matchers/KWBeIdenticalToMatcher.h b/Pods/Kiwi/Classes/Matchers/KWBeIdenticalToMatcher.h deleted file mode 100644 index 09cc4b6..0000000 --- a/Pods/Kiwi/Classes/Matchers/KWBeIdenticalToMatcher.h +++ /dev/null @@ -1,16 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" -#import "KWMatcher.h" - -@interface KWBeIdenticalToMatcher : KWMatcher - -#pragma mark - Configuring Matchers - -- (void)beIdenticalTo:(id)anObject; - -@end diff --git a/Pods/Kiwi/Classes/Matchers/KWBeIdenticalToMatcher.m b/Pods/Kiwi/Classes/Matchers/KWBeIdenticalToMatcher.m deleted file mode 100644 index beb9886..0000000 --- a/Pods/Kiwi/Classes/Matchers/KWBeIdenticalToMatcher.m +++ /dev/null @@ -1,58 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KWBeIdenticalToMatcher.h" -#import "KWFormatter.h" - -@interface KWBeIdenticalToMatcher() - -#pragma mark - Properties - -@property (nonatomic, readwrite, strong) id otherSubject; - -@end - -@implementation KWBeIdenticalToMatcher - -#pragma mark - Getting Matcher Strings - -+ (NSArray *)matcherStrings { - return @[@"beIdenticalTo:"]; -} - -#pragma mark - Matching - -- (BOOL)evaluate { - return self.subject == self.otherSubject; -} - -#pragma mark - Getting Failure Messages - -- (NSString *)failureMessageForShould { - return [NSString stringWithFormat:@"expected subject to be identical to %@ (%p), got %@ (%p)", - [KWFormatter formatObject:self.otherSubject], - self.otherSubject, - [KWFormatter formatObject:self.subject], - self.subject]; -} - -- (NSString *)failureMessageForShouldNot { - return [NSString stringWithFormat:@"expected subject not to be identical to %@ (%p)", - [KWFormatter formatObject:self.otherSubject], - self.otherSubject]; -} - -- (NSString *)description { - return [NSString stringWithFormat:@"be identical to %@", self.otherSubject]; -} - -#pragma mark - Configuring Matchers - -- (void)beIdenticalTo:(id)anObject { - self.otherSubject = anObject; -} - -@end diff --git a/Pods/Kiwi/Classes/Matchers/KWBeKindOfClassMatcher.h b/Pods/Kiwi/Classes/Matchers/KWBeKindOfClassMatcher.h deleted file mode 100644 index 7e76fb2..0000000 --- a/Pods/Kiwi/Classes/Matchers/KWBeKindOfClassMatcher.h +++ /dev/null @@ -1,16 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" -#import "KWMatcher.h" - -@interface KWBeKindOfClassMatcher : KWMatcher - -#pragma mark - Configuring Matchers - -- (void)beKindOfClass:(Class)aClass; - -@end diff --git a/Pods/Kiwi/Classes/Matchers/KWBeKindOfClassMatcher.m b/Pods/Kiwi/Classes/Matchers/KWBeKindOfClassMatcher.m deleted file mode 100644 index 90afc4f..0000000 --- a/Pods/Kiwi/Classes/Matchers/KWBeKindOfClassMatcher.m +++ /dev/null @@ -1,48 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KWBeKindOfClassMatcher.h" -#import "KWFormatter.h" - -@interface KWBeKindOfClassMatcher() - -@property (nonatomic, assign) Class targetClass; - -@end - -@implementation KWBeKindOfClassMatcher - -#pragma mark - Getting Matcher Strings - -+ (NSArray *)matcherStrings { - return @[@"beKindOfClass:"]; -} - -#pragma mark - Matching - -- (BOOL)evaluate { - return [self.subject isKindOfClass:self.targetClass]; -} - -#pragma mark - Getting Failure Messages - -- (NSString *)failureMessageForShould { - return [NSString stringWithFormat:@"expected subject to be kind of %@, got %@", - NSStringFromClass(self.targetClass), - NSStringFromClass([self.subject class])]; -} - -- (NSString *)description { - return [NSString stringWithFormat:@"be kind of %@", NSStringFromClass(self.targetClass)]; -} - -#pragma mark - Configuring Matchers - -- (void)beKindOfClass:(Class)aClass { - self.targetClass = aClass; -} - -@end diff --git a/Pods/Kiwi/Classes/Matchers/KWBeMemberOfClassMatcher.h b/Pods/Kiwi/Classes/Matchers/KWBeMemberOfClassMatcher.h deleted file mode 100644 index fc2fc8d..0000000 --- a/Pods/Kiwi/Classes/Matchers/KWBeMemberOfClassMatcher.h +++ /dev/null @@ -1,16 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" -#import "KWMatcher.h" - -@interface KWBeMemberOfClassMatcher : KWMatcher - -#pragma mark - Configuring Matchers - -- (void)beMemberOfClass:(Class)aClass; - -@end diff --git a/Pods/Kiwi/Classes/Matchers/KWBeMemberOfClassMatcher.m b/Pods/Kiwi/Classes/Matchers/KWBeMemberOfClassMatcher.m deleted file mode 100644 index 20f41e9..0000000 --- a/Pods/Kiwi/Classes/Matchers/KWBeMemberOfClassMatcher.m +++ /dev/null @@ -1,49 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KWBeMemberOfClassMatcher.h" -#import "KWFormatter.h" - -@interface KWBeMemberOfClassMatcher() - -@property (nonatomic, assign) Class targetClass; - -@end - -@implementation KWBeMemberOfClassMatcher - -#pragma mark - Getting Matcher Strings - -+ (NSArray *)matcherStrings { - return @[@"beMemberOfClass:"]; -} - -#pragma mark - Matching - -- (BOOL)evaluate { - return [self.subject isMemberOfClass:self.targetClass]; -} - -#pragma mark - Getting Failure Messages - -- (NSString *)failureMessageForShould { - return [NSString stringWithFormat:@"expected subject to be member of %@, got %@", - NSStringFromClass(self.targetClass), - NSStringFromClass([self.subject class])]; -} - -- (NSString *)description { - return [NSString stringWithFormat:@"be member of %@", - NSStringFromClass(self.targetClass)]; -} - -#pragma mark - Configuring Matchers - -- (void)beMemberOfClass:(Class)aClass { - self.targetClass = aClass; -} - -@end diff --git a/Pods/Kiwi/Classes/Matchers/KWBeSubclassOfClassMatcher.h b/Pods/Kiwi/Classes/Matchers/KWBeSubclassOfClassMatcher.h deleted file mode 100644 index fcb4fec..0000000 --- a/Pods/Kiwi/Classes/Matchers/KWBeSubclassOfClassMatcher.h +++ /dev/null @@ -1,16 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" -#import "KWMatcher.h" - -@interface KWBeSubclassOfClassMatcher : KWMatcher - -#pragma mark - Configuring Matchers - -- (void)beSubclassOfClass:(Class)aClass; - -@end diff --git a/Pods/Kiwi/Classes/Matchers/KWBeSubclassOfClassMatcher.m b/Pods/Kiwi/Classes/Matchers/KWBeSubclassOfClassMatcher.m deleted file mode 100644 index 90740de..0000000 --- a/Pods/Kiwi/Classes/Matchers/KWBeSubclassOfClassMatcher.m +++ /dev/null @@ -1,51 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KWBeSubclassOfClassMatcher.h" -#import "KWFormatter.h" - -@interface KWBeSubclassOfClassMatcher() - -#pragma mark - Properties - -@property (nonatomic, assign) Class targetClass; - -@end - -@implementation KWBeSubclassOfClassMatcher - -#pragma mark - Getting Matcher Strings - -+ (NSArray *)matcherStrings { - return @[@"beSubclassOfClass:"]; -} - -#pragma mark - Matching - -- (BOOL)evaluate { - return [self.subject isSubclassOfClass:self.targetClass]; -} - -#pragma mark - Getting Failure Messages - -- (NSString *)failureMessageForShould { - return [NSString stringWithFormat:@"expected subject to be subclass of %@, got %@", - NSStringFromClass(self.targetClass), - NSStringFromClass([self.subject class])]; -} - -- (NSString *)description { - return [NSString stringWithFormat:@"be subclass of %@", - NSStringFromClass(self.targetClass)]; -} - -#pragma mark - Configuring Matchers - -- (void)beSubclassOfClass:(Class)aClass { - self.targetClass = aClass; -} - -@end diff --git a/Pods/Kiwi/Classes/Matchers/KWBeTrueMatcher.h b/Pods/Kiwi/Classes/Matchers/KWBeTrueMatcher.h deleted file mode 100644 index 755a80d..0000000 --- a/Pods/Kiwi/Classes/Matchers/KWBeTrueMatcher.h +++ /dev/null @@ -1,19 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" -#import "KWMatcher.h" - -@interface KWBeTrueMatcher : KWMatcher - -#pragma mark - Configuring Matchers - -- (void)beTrue; -- (void)beFalse; -- (void)beYes; -- (void)beNo; - -@end diff --git a/Pods/Kiwi/Classes/Matchers/KWBeTrueMatcher.m b/Pods/Kiwi/Classes/Matchers/KWBeTrueMatcher.m deleted file mode 100644 index 4a9b01a..0000000 --- a/Pods/Kiwi/Classes/Matchers/KWBeTrueMatcher.m +++ /dev/null @@ -1,64 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KWBeTrueMatcher.h" - -@interface KWBeTrueMatcher() - -@property (nonatomic, readwrite) BOOL expectedValue; - -@end - -@implementation KWBeTrueMatcher - -#pragma mark - Getting Matcher Strings - -+ (NSArray *)matcherStrings { - return @[@"beTrue", @"beFalse", @"beYes", @"beNo"]; -} - -#pragma mark - Matching - -- (BOOL)evaluate { - if (![self.subject respondsToSelector:@selector(boolValue)]) - [NSException raise:@"KWMatcherException" format:@"subject does not respond to -boolValue"]; - - return [self.subject boolValue] == self.expectedValue; -} - -#pragma mark - Getting Failure Messages - -- (NSString *)failureMessageForShould { - return [NSString stringWithFormat:@"expected subject to be %@", - self.expectedValue ? @"true" : @"false"]; -} - -- (NSString *)description { - if (self.expectedValue == YES) { - return @"be true"; - } - return @"be false"; -} - -#pragma mark - Configuring Matchers - -- (void)beTrue { - self.expectedValue = YES; -} - -- (void)beFalse { - self.expectedValue = NO; -} - -- (void)beYes { - self.expectedValue = YES; -} - -- (void)beNo { - self.expectedValue = NO; -} - -@end diff --git a/Pods/Kiwi/Classes/Matchers/KWBeWithinMatcher.h b/Pods/Kiwi/Classes/Matchers/KWBeWithinMatcher.h deleted file mode 100644 index fb455e7..0000000 --- a/Pods/Kiwi/Classes/Matchers/KWBeWithinMatcher.h +++ /dev/null @@ -1,17 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" -#import "KWMatcher.h" - -@interface KWBeWithinMatcher : KWMatcher - -#pragma mark - Configuring Matchers - -- (void)beWithin:(id)aDistance of:(id)aValue; -- (void)equal:(double)aValue withDelta:(double)aDelta; - -@end diff --git a/Pods/Kiwi/Classes/Matchers/KWBeWithinMatcher.m b/Pods/Kiwi/Classes/Matchers/KWBeWithinMatcher.m deleted file mode 100644 index f05d060..0000000 --- a/Pods/Kiwi/Classes/Matchers/KWBeWithinMatcher.m +++ /dev/null @@ -1,91 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KWBeWithinMatcher.h" -#import "KWFormatter.h" -#import "KWObjCUtilities.h" -#import "KWValue.h" - -@interface KWBeWithinMatcher() - -@property (nonatomic, readwrite, strong) id distance; -@property (nonatomic, readwrite, strong) id otherValue; - -@end - -@implementation KWBeWithinMatcher - -#pragma mark - Getting Matcher Strings - -+ (NSArray *)matcherStrings { - return @[@"beWithin:of:", @"equal:withDelta:"]; -} - -#pragma mark - Matching - -// Evaluation is done by getting the underlying values as the widest data -// types available. - -- (BOOL)evaluateForFloatingPoint { - double firstValue = [self.subject doubleValue]; - double secondValue = [self.otherValue doubleValue]; - double theDistance = [self.distance doubleValue]; - double absoluteDifference = firstValue > secondValue ? firstValue - secondValue : secondValue - firstValue; - return absoluteDifference <= theDistance; -} - -- (BOOL)evaluateForUnsignedIntegral { - unsigned long long firstValue = [self.subject unsignedLongLongValue]; - unsigned long long secondValue = [self.otherValue unsignedLongLongValue]; - unsigned long long theDistance = [self.distance unsignedLongLongValue]; - unsigned long long absoluteDifference = firstValue > secondValue ? firstValue - secondValue : secondValue - firstValue; - return absoluteDifference <= theDistance; -} - -- (BOOL)evaluateForSignedIntegral { - long long firstValue = [self.subject longLongValue]; - long long secondValue = [self.otherValue longLongValue]; - long long theDistance = [self.distance longLongValue]; - long long absoluteDifference = firstValue > secondValue ? firstValue - secondValue : secondValue - firstValue; - return absoluteDifference <= theDistance; -} - -- (BOOL)evaluate { - const char *objCType = [self.subject objCType]; - - if (KWObjCTypeIsFloatingPoint(objCType)) - return [self evaluateForFloatingPoint]; - else if (KWObjCTypeIsUnsignedIntegral(objCType)) - return [self evaluateForUnsignedIntegral]; - else - return [self evaluateForSignedIntegral]; -} - -#pragma mark - Getting Failure Messages - -- (NSString *)failureMessageForShould { - return [NSString stringWithFormat:@"expected subject to be within %@ of %@, got %@", - [KWFormatter formatObject:self.distance], - [KWFormatter formatObject:self.otherValue], - [KWFormatter formatObject:self.subject]]; -} - -- (NSString *)description { - return [NSString stringWithFormat:@"be within %@ of %@", self.distance, self.otherValue]; -} - -#pragma mark - Configuring Matchers - -- (void)beWithin:(id)aDistance of:(id)aValue { - self.distance = aDistance; - self.otherValue = aValue; -} - -- (void)equal:(double)aValue withDelta:(double)aDelta { - [self beWithin:[KWValue valueWithDouble:aDelta] of:[KWValue valueWithDouble:aValue]]; -} - -@end diff --git a/Pods/Kiwi/Classes/Matchers/KWBeZeroMatcher.h b/Pods/Kiwi/Classes/Matchers/KWBeZeroMatcher.h deleted file mode 100644 index bdb4dac..0000000 --- a/Pods/Kiwi/Classes/Matchers/KWBeZeroMatcher.h +++ /dev/null @@ -1,16 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" -#import "KWMatcher.h" - -@interface KWBeZeroMatcher : KWMatcher - -#pragma mark - Configuring Matchers - -- (void)beZero; - -@end diff --git a/Pods/Kiwi/Classes/Matchers/KWBeZeroMatcher.m b/Pods/Kiwi/Classes/Matchers/KWBeZeroMatcher.m deleted file mode 100644 index a637611..0000000 --- a/Pods/Kiwi/Classes/Matchers/KWBeZeroMatcher.m +++ /dev/null @@ -1,53 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KWBeZeroMatcher.h" -#import "KWFormatter.h" -#import "KWValue.h" - -@implementation KWBeZeroMatcher - -#pragma mark - Getting Matcher Strings - -+ (NSArray *)matcherStrings { - return @[@"beZero"]; -} - -#pragma mark - Matching - -- (BOOL)evaluate { - if ([self.subject isKindOfClass:[NSNumber class]]) { - return [self.subject isEqualToNumber:@0]; - } - - if ([self.subject respondsToSelector:@selector(numberValue)]) { - return [[self.subject numberValue] isEqualToNumber:@0]; - } - - return NO; -} - -#pragma mark - Getting Failure Messages - -- (NSString *)failureMessageForShould { - return [NSString stringWithFormat:@"expected subject to be zero, got %@", - [KWFormatter formatObject:self.subject]]; -} - -- (NSString *)failureMessageForShouldNot { - return [NSString stringWithFormat:@"expected subject not to be zero"]; -} - -- (NSString *)description { - return @"be zero"; -} - -#pragma mark - Configuring Matchers - -- (void)beZero { -} - -@end diff --git a/Pods/Kiwi/Classes/Matchers/KWBlockRaiseMatcher.h b/Pods/Kiwi/Classes/Matchers/KWBlockRaiseMatcher.h deleted file mode 100644 index 064d40a..0000000 --- a/Pods/Kiwi/Classes/Matchers/KWBlockRaiseMatcher.h +++ /dev/null @@ -1,19 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" -#import "KWMatcher.h" - -@interface KWBlockRaiseMatcher : KWMatcher - -#pragma mark - Configuring Matchers - -- (void)raise; -- (void)raiseWithName:(NSString *)aName; -- (void)raiseWithReason:(NSString *)aReason; -- (void)raiseWithName:(NSString *)aName reason:(NSString *)aReason; - -@end diff --git a/Pods/Kiwi/Classes/Matchers/KWBlockRaiseMatcher.m b/Pods/Kiwi/Classes/Matchers/KWBlockRaiseMatcher.m deleted file mode 100644 index f4bd79e..0000000 --- a/Pods/Kiwi/Classes/Matchers/KWBlockRaiseMatcher.m +++ /dev/null @@ -1,103 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KWBlockRaiseMatcher.h" -#import "KWBlock.h" - -@interface KWBlockRaiseMatcher() - -@property (nonatomic, readwrite, strong) NSException *exception; -@property (nonatomic, readwrite, strong) NSException *actualException; - -@end - -@implementation KWBlockRaiseMatcher - -#pragma mark - Getting Matcher Strings - -+ (NSArray *)matcherStrings { - return @[@"raise", - @"raiseWithName:", - @"raiseWithReason:", - @"raiseWithName:reason:"]; -} - -#pragma mark - Matching - -- (BOOL)evaluate { - if (![self.subject isKindOfClass:[KWBlock class]]) - [NSException raise:@"KWMatcherException" format:@"subject must be a KWBlock"]; - - @try { - [self.subject call]; - } @catch (NSException *anException) { - self.actualException = anException; - - if ([self.exception name] != nil && ![[self.exception name] isEqualToString:[anException name]]) - return NO; - - if ([self.exception reason] != nil && ![[self.exception reason] isEqualToString:[anException reason]]) - return NO; - - return YES; - } - - return NO; -} - -#pragma mark - Getting Failure Messages - -+ (NSString *)exceptionPhraseWithException:(NSException *)anException { - if (anException == nil) - return @"nothing"; - - NSString *namePhrase = nil; - - if ([anException name] == nil) - namePhrase = @"exception"; - else - namePhrase = [anException name]; - - if ([anException reason] == nil) - return namePhrase; - - return [NSString stringWithFormat:@"%@ \"%@\"", namePhrase, [anException reason]]; -} - -- (NSString *)failureMessageForShould { - return [NSString stringWithFormat:@"expected %@, but %@ raised", - [[self class] exceptionPhraseWithException:self.exception], - [[self class] exceptionPhraseWithException:self.actualException]]; -} - -- (NSString *)failureMessageForShouldNot { - return [NSString stringWithFormat:@"expected %@ not to be raised", - [[self class] exceptionPhraseWithException:self.actualException]]; -} - -#pragma mark - Configuring Matchers - -- (void)raise { - [self raiseWithName:nil reason:nil]; -} - -- (void)raiseWithName:(NSString *)aName { - [self raiseWithName:aName reason:nil]; -} - -- (void)raiseWithReason:(NSString *)aReason { - [self raiseWithName:nil reason:aReason]; -} - -- (void)raiseWithName:(NSString *)aName reason:(NSString *)aReason { - self.exception = [NSException exceptionWithName:aName reason:aReason userInfo:nil]; -} - -- (NSString *)description { - return [NSString stringWithFormat:@"raise %@", [[self class] exceptionPhraseWithException:self.exception]]; -} - -@end diff --git a/Pods/Kiwi/Classes/Matchers/KWChangeMatcher.h b/Pods/Kiwi/Classes/Matchers/KWChangeMatcher.h deleted file mode 100644 index 89d37d6..0000000 --- a/Pods/Kiwi/Classes/Matchers/KWChangeMatcher.h +++ /dev/null @@ -1,21 +0,0 @@ -// -// KWChangeMatcher.h -// Kiwi -// -// Copyright (c) 2013 Eloy Durán . -// All rights reserved. -// - -#import "KWMatcher.h" - -typedef NSInteger (^KWChangeMatcherCountBlock)(); - -@interface KWChangeMatcher : KWMatcher - -// Expect _any_ change. -- (void)change:(KWChangeMatcherCountBlock)countBlock; - -// Expect changes by a specific amount. -- (void)change:(KWChangeMatcherCountBlock)countBlock by:(NSInteger)expectedDifference; - -@end diff --git a/Pods/Kiwi/Classes/Matchers/KWChangeMatcher.m b/Pods/Kiwi/Classes/Matchers/KWChangeMatcher.m deleted file mode 100644 index fb7a376..0000000 --- a/Pods/Kiwi/Classes/Matchers/KWChangeMatcher.m +++ /dev/null @@ -1,73 +0,0 @@ -// -// KWChangeMatcher.m -// Kiwi -// -// Copyright (c) 2013 Eloy Durán . -// All rights reserved. -// - -#import "KWChangeMatcher.h" -#import "KWBlock.h" - -@interface KWChangeMatcher () -@property (nonatomic, copy) KWChangeMatcherCountBlock countBlock; -@property (nonatomic, assign) BOOL anyChange; -@property (nonatomic, assign) NSInteger expectedDifference, expectedTotal, actualTotal; -@end - -@implementation KWChangeMatcher - -+ (NSArray *)matcherStrings { - return @[@"change:by:", @"change:"]; -} - -- (NSString *)failureMessageForShould { - if (self.anyChange) { - return @"expected subject to change the count"; - } else { - return [NSString stringWithFormat:@"expected subject to change the count to %d, got %d", (int)self.expectedTotal, (int)self.actualTotal]; - } -} - -- (NSString *)failureMessageForShouldNot { - if (self.anyChange) { - return @"expected subject to not change the count"; - } else { - return [NSString stringWithFormat:@"expected subject not to change the count to %d", (int)self.actualTotal]; - } -} - -- (NSString *)description { - if (self.anyChange) { - return @"change count"; - } else { - return [NSString stringWithFormat:@"change count by %d", (int)self.expectedDifference]; - } -} - -- (BOOL)evaluate { - NSInteger before = self.countBlock(); - // Perform actual work, which is expected to change the result of countBlock. - [self.subject call]; - self.actualTotal = self.countBlock(); - - if (self.anyChange) { - return before != self.actualTotal; - } else { - self.expectedTotal = before + self.expectedDifference; - return self.expectedTotal == self.actualTotal; - } -} - -- (void)change:(KWChangeMatcherCountBlock)countBlock by:(NSInteger)expectedDifference { - self.anyChange = NO; - self.expectedDifference = expectedDifference; - self.countBlock = countBlock; -} - -- (void)change:(KWChangeMatcherCountBlock)countBlock { - self.anyChange = YES; - self.countBlock = countBlock; -} - -@end diff --git a/Pods/Kiwi/Classes/Matchers/KWConformToProtocolMatcher.h b/Pods/Kiwi/Classes/Matchers/KWConformToProtocolMatcher.h deleted file mode 100644 index d25ba80..0000000 --- a/Pods/Kiwi/Classes/Matchers/KWConformToProtocolMatcher.h +++ /dev/null @@ -1,16 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" -#import "KWMatcher.h" - -@interface KWConformToProtocolMatcher : KWMatcher - -#pragma mark - Configuring Matchers - -- (void)conformToProtocol:(Protocol *)aProtocol; - -@end diff --git a/Pods/Kiwi/Classes/Matchers/KWConformToProtocolMatcher.m b/Pods/Kiwi/Classes/Matchers/KWConformToProtocolMatcher.m deleted file mode 100644 index deb8e2a..0000000 --- a/Pods/Kiwi/Classes/Matchers/KWConformToProtocolMatcher.m +++ /dev/null @@ -1,47 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KWConformToProtocolMatcher.h" -#import "KWFormatter.h" - -@interface KWConformToProtocolMatcher() - -@property (nonatomic, assign) Protocol *protocol; - -@end - -@implementation KWConformToProtocolMatcher - -#pragma mark - Getting Matcher Strings - -+ (NSArray *)matcherStrings { - return @[@"conformToProtocol:"]; -} - -#pragma mark - Matching - -- (BOOL)evaluate { - return [self.subject conformsToProtocol:self.protocol]; -} - -#pragma mark - Getting Failure Messages - -- (NSString *)failureMessageForShould { - return [NSString stringWithFormat:@"expected subject to conform to %@ protocol", - NSStringFromProtocol(self.protocol)]; -} - -- (NSString *)description { - return [NSString stringWithFormat:@"conform to %@ protocol", NSStringFromProtocol(self.protocol)]; -} - -#pragma mark - Configuring Matchers - -- (void)conformToProtocol:(Protocol *)aProtocol { - self.protocol = aProtocol; -} - -@end diff --git a/Pods/Kiwi/Classes/Matchers/KWContainMatcher.h b/Pods/Kiwi/Classes/Matchers/KWContainMatcher.h deleted file mode 100644 index 6a750da..0000000 --- a/Pods/Kiwi/Classes/Matchers/KWContainMatcher.h +++ /dev/null @@ -1,26 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" -#import "KWMatcher.h" -#import "KWMatchVerifier.h" - -@interface KWContainMatcher : KWMatcher - -#pragma mark - Configuring Matchers - -- (void)contain:(id)anObject; -- (void)containObjectsInArray:(NSArray *)anArray; - -@end - -@interface KWMatchVerifier(KWContainMatcherAdditions) - -#pragma mark - Verifying - -- (void)containObjects:(id)firstObject, ... NS_REQUIRES_NIL_TERMINATION; - -@end diff --git a/Pods/Kiwi/Classes/Matchers/KWContainMatcher.m b/Pods/Kiwi/Classes/Matchers/KWContainMatcher.m deleted file mode 100644 index 499e367..0000000 --- a/Pods/Kiwi/Classes/Matchers/KWContainMatcher.m +++ /dev/null @@ -1,88 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KWContainMatcher.h" -#import "KWFormatter.h" -#import "KWGenericMatchingAdditions.h" - -@interface KWContainMatcher() - -@property (nonatomic, readwrite, strong) id objects; - -@end - -@implementation KWContainMatcher - -#pragma mark - Getting Matcher Strings - -+ (NSArray *)matcherStrings { - return @[@"contain:", @"containObjectsInArray:"]; -} - -#pragma mark - Matching - -- (BOOL)evaluate { - if (![self.subject respondsToSelector:@selector(containsObjectEqualToOrMatching:)]) - [NSException raise:@"KWMatcherException" format:@"subject does not respond to -containsObjectEqualToOrMatching:"]; - - for (id object in self.objects) { - if (![self.subject containsObjectEqualToOrMatching:object]) - return NO; - } - - return YES; -} - -#pragma mark - Getting Failure Messages - -- (NSString *)objectsPhrase { - if ([self.objects count] == 1) - return [KWFormatter formatObject:(self.objects)[0]]; - - return [NSString stringWithFormat:@"all of %@", [KWFormatter formatObject:self.objects]]; -} - -- (NSString *)failureMessageForShould { - return [NSString stringWithFormat:@"expected subject to contain %@", [self objectsPhrase]]; -} - -- (NSString *)description { - return [NSString stringWithFormat:@"contain %@", [self objectsPhrase]]; -} - -#pragma mark - Configuring Matchers - -- (void)contain:(id)anObject { - self.objects = @[anObject]; -} - -- (void)containObjectsInArray:(NSArray *)anArray { - self.objects = anArray; -} - -@end - -@implementation KWMatchVerifier(KWContainMatcherAdditions) - -#pragma mark - Verifying - -- (void)containObjects:(id)firstObject, ... { - NSMutableArray *objects = [NSMutableArray array]; - - va_list argumentList; - va_start(argumentList, firstObject); - id object = firstObject; - - while (object != nil) { - [objects addObject:object]; - object = va_arg(argumentList, id); - } - - va_end(argumentList); - [(id)self containObjectsInArray:objects]; -} - -@end diff --git a/Pods/Kiwi/Classes/Matchers/KWContainStringMatcher.h b/Pods/Kiwi/Classes/Matchers/KWContainStringMatcher.h deleted file mode 100644 index be850d1..0000000 --- a/Pods/Kiwi/Classes/Matchers/KWContainStringMatcher.h +++ /dev/null @@ -1,39 +0,0 @@ -// -// KWContainStringMatcher.h -// Kiwi -// -// Created by Kristopher Johnson on 4/28/13. -// Copyright (c) 2013 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" -#import "KWMatcher.h" - -// Kiwi matcher for determining whether a string contains an expected substring -// -// Examples: -// -// [[@"Hello, world!" should] containString:@"world"]; -// [[@"Hello, world!" shouldNot] containString:@"xyzzy"]; -// -// [[@"Hello, world!" should] containString:@"WORLD" -// options:NSCaseInsensitiveSearch]; -// -// [[@"Hello, world!" should] startWithString:@"Hello,"]; -// [[@"Hello, world!" should] endWithString:@"world!"]; - -@interface KWContainStringMatcher : KWMatcher - -// Match if subject contains specified substring -- (void)containString:(NSString *)string; - -// Match if subject contains specified substring, using specified comparison options -- (void)containString:(NSString *)string options:(NSStringCompareOptions)options; - -// Match if subject starts with the specified prefix -- (void)startWithString:(NSString *)prefix; - -// Match if subject ends with the specified prefix -- (void)endWithString:(NSString *)suffix; - -@end diff --git a/Pods/Kiwi/Classes/Matchers/KWContainStringMatcher.m b/Pods/Kiwi/Classes/Matchers/KWContainStringMatcher.m deleted file mode 100644 index 19209d1..0000000 --- a/Pods/Kiwi/Classes/Matchers/KWContainStringMatcher.m +++ /dev/null @@ -1,85 +0,0 @@ -// -// KWContainStringMatcher.m -// Kiwi -// -// Created by Kristopher Johnson on 4/28/13. -// Copyright (c) 2013 Allen Ding. All rights reserved. -// - -#import "KWContainStringMatcher.h" -#import "KWFormatter.h" - -@interface KWContainStringMatcher () - -@property (nonatomic, copy) NSString *substring; -@property (nonatomic) NSStringCompareOptions options; - -@end - - -@implementation KWContainStringMatcher - -#pragma mark - Getting Matcher Strings - -+ (NSArray *)matcherStrings { - return @[@"containString:", - @"containString:options:", - @"startWithString:", - @"endWithString:"]; -} - -#pragma mark - Matching - -- (BOOL)evaluate { - NSString *subjectString = (NSString *)self.subject; - if (![subjectString isKindOfClass:[NSString class]]) { - [NSException raise:@"KWMatcherException" format:@"subject is not a string"]; - return NO; - } - - NSRange range = [subjectString rangeOfString:self.substring options:self.options]; - return (range.location != NSNotFound); -} - -#pragma mark - Getting Failure Messages - -- (NSString *)failureMessageForShould { - return [NSString stringWithFormat:@"%@ did not contain string \"%@\"", - [KWFormatter formatObject:self.subject], - self.substring]; -} - -- (NSString *)failureMessageForShouldNot { - return [NSString stringWithFormat:@"expected subject not to contain string \"%@\"", - self.substring]; -} - -- (NSString *)description { - return [NSString stringWithFormat:@"contain substring \"%@\"", self.substring]; -} - -#pragma mark - Configuring matchers - -- (void)containString:(NSString *)substring { - self.substring = substring; - self.options = 0; -} - -- (void)containString:(NSString *)substring options:(NSStringCompareOptions)options { - self.substring = substring; - self.options = options; -} - -- (void)startWithString:(NSString *)prefix { - self.substring = prefix; - self.options = NSAnchoredSearch; -} - -- (void)endWithString:(NSString *)suffix { - self.substring = suffix; - self.options = NSAnchoredSearch | NSBackwardsSearch; -} - -@end - - diff --git a/Pods/Kiwi/Classes/Matchers/KWEqualMatcher.h b/Pods/Kiwi/Classes/Matchers/KWEqualMatcher.h deleted file mode 100644 index b1ae523..0000000 --- a/Pods/Kiwi/Classes/Matchers/KWEqualMatcher.h +++ /dev/null @@ -1,16 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" -#import "KWMatcher.h" - -@interface KWEqualMatcher : KWMatcher - -#pragma mark - Configuring Matchers - -- (void)equal:(id)anObject; - -@end diff --git a/Pods/Kiwi/Classes/Matchers/KWEqualMatcher.m b/Pods/Kiwi/Classes/Matchers/KWEqualMatcher.m deleted file mode 100644 index 51f3012..0000000 --- a/Pods/Kiwi/Classes/Matchers/KWEqualMatcher.m +++ /dev/null @@ -1,68 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KWEqualMatcher.h" -#import "KWFormatter.h" -#import "KWValue.h" - -@interface KWEqualMatcher() - -#pragma mark - Properties - -@property (nonatomic, readwrite, strong) id otherSubject; - -@end - -@implementation KWEqualMatcher - -#pragma mark - Initializing - - -#pragma mark - Properties - -@synthesize otherSubject; - -#pragma mark - Getting Matcher Strings - -+ (NSArray *)matcherStrings { - return @[@"equal:"]; -} - -#pragma mark - Matching - -- (BOOL)evaluate { - /** handle this as a special case; KWValue supports NSNumber equality but not vice-versa **/ - if ([self.subject isKindOfClass:[NSNumber class]] && [self.otherSubject isKindOfClass:[KWValue class]]) { - return [self.otherSubject isEqual:self.subject]; - } - return [self.subject isEqual:self.otherSubject]; -} - -#pragma mark - Getting Failure Messages - -- (NSString *)failureMessageForShould { - return [NSString stringWithFormat:@"expected subject to equal %@, got %@", - [KWFormatter formatObjectIncludingClass:self.otherSubject], - [KWFormatter formatObjectIncludingClass:self.subject]]; -} - -- (NSString *)failureMessageForShouldNot { - return [NSString stringWithFormat:@"expected subject not to equal %@", - [KWFormatter formatObjectIncludingClass:self.otherSubject]]; -} - -- (NSString *)description -{ - return [NSString stringWithFormat:@"equal %@", [KWFormatter formatObjectIncludingClass:self.otherSubject]]; -} - -#pragma mark - Configuring Matchers - -- (void)equal:(id)anObject { - self.otherSubject = anObject; -} - -@end diff --git a/Pods/Kiwi/Classes/Matchers/KWGenericMatchEvaluator.h b/Pods/Kiwi/Classes/Matchers/KWGenericMatchEvaluator.h deleted file mode 100644 index c906ab1..0000000 --- a/Pods/Kiwi/Classes/Matchers/KWGenericMatchEvaluator.h +++ /dev/null @@ -1,17 +0,0 @@ -// -// KWGenericMatcher.h -// Kiwi -// -// Created by Allen Ding on 1/31/13. -// Copyright (c) 2013 Allen Ding. All rights reserved. -// - -#import - -@interface KWGenericMatchEvaluator : NSObject - -+ (BOOL)isGenericMatcher:(id)object; - -+ (BOOL)genericMatcher:(id)matcher matches:(id)object; - -@end diff --git a/Pods/Kiwi/Classes/Matchers/KWGenericMatchEvaluator.m b/Pods/Kiwi/Classes/Matchers/KWGenericMatchEvaluator.m deleted file mode 100644 index 138a03d..0000000 --- a/Pods/Kiwi/Classes/Matchers/KWGenericMatchEvaluator.m +++ /dev/null @@ -1,65 +0,0 @@ -// -// KWGenericMatcher.m -// Kiwi -// -// Created by Allen Ding on 1/31/13. -// Copyright (c) 2013 Allen Ding. All rights reserved. -// - -#import "KWGenericMatchEvaluator.h" -#import "KWStringUtilities.h" -#import "KWObjCUtilities.h" -#import -#import "KWGenericMatcher.h" - -@implementation KWGenericMatchEvaluator - -// Returns true only if the object has a method with the signature "- (BOOL)matches:(id)object" -+ (BOOL)isGenericMatcher:(id)object { - Class theClass = object_getClass(object); - - if (theClass == NULL) { - return NO; - } - Method method = class_getInstanceMethod(theClass, @selector(matches:)); - - if (method == NULL) { - return NO; - } - - const char *cEncoding = method_getTypeEncoding(method); - - if (cEncoding == NULL) { - return NO; - } - - NSMethodSignature *signature = [NSMethodSignature signatureWithObjCTypes:cEncoding]; - - if (!KWObjCTypeEqualToObjCType(@encode(BOOL), [signature methodReturnType])) { - return NO; - } - - if ([signature numberOfArguments] != 3) { - return NO; - } - - if (!KWObjCTypeEqualToObjCType(@encode(id), [signature getArgumentTypeAtIndex:2])) { - return NO; - } - - return YES; -} - -+ (BOOL)genericMatcher:(id)matcher matches:(id)object { - NSString *targetEncoding = KWEncodingWithObjCTypes(@encode(BOOL), @encode(id), @encode(SEL), @encode(id), nil); - NSMethodSignature *signature = [NSMethodSignature signatureWithObjCTypes:[targetEncoding UTF8String]]; - NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:signature]; - [invocation setSelector:@selector(matches:)]; - [invocation setArgument:&object atIndex:2]; - [invocation invokeWithTarget:matcher]; - BOOL result = NO; - [invocation getReturnValue:&result]; - return result; -} - -@end diff --git a/Pods/Kiwi/Classes/Matchers/KWGenericMatcher.h b/Pods/Kiwi/Classes/Matchers/KWGenericMatcher.h deleted file mode 100644 index be3c7f6..0000000 --- a/Pods/Kiwi/Classes/Matchers/KWGenericMatcher.h +++ /dev/null @@ -1,24 +0,0 @@ -// -// KWGenericMatcher.h -// Kiwi -// -// Created by Luke Redpath on 24/01/2011. -// Copyright 2011 Allen Ding. All rights reserved. -// - -#import -#import "KWMatcher.h" - -@protocol KWGenericMatching - -- (BOOL)matches:(id)object; - -@end - -@interface KWGenericMatcher : KWMatcher - -#pragma mark - Configuring Matchers - -- (void)match:(id)aMatcher; - -@end diff --git a/Pods/Kiwi/Classes/Matchers/KWGenericMatcher.m b/Pods/Kiwi/Classes/Matchers/KWGenericMatcher.m deleted file mode 100644 index 81cc888..0000000 --- a/Pods/Kiwi/Classes/Matchers/KWGenericMatcher.m +++ /dev/null @@ -1,48 +0,0 @@ -// -// KWGenericMatcher.m -// Kiwi -// -// Created by Luke Redpath on 24/01/2011. -// Copyright 2011 Allen Ding. All rights reserved. -// - -#import "KWGenericMatcher.h" -#import "KWGenericMatchEvaluator.h" - -@interface KWGenericMatcher () - -@property (nonatomic, strong) id matcher; - -@end - -@implementation KWGenericMatcher - -#pragma mark - Matching - -- (BOOL)evaluate { - return [KWGenericMatchEvaluator genericMatcher:self.matcher matches:self.subject]; -} - -- (NSString *)failureMessageForShould { - return [NSString stringWithFormat:@"expected subject to match %@", self.matcher]; -} - -- (NSString *)description -{ - return [NSString stringWithFormat:@"match %@", [self.matcher description]]; -} - -#pragma mark - Getting Matcher Strings - -+ (NSArray *)matcherStrings { - return @[@"match:"]; -} - -#pragma mark - Configuring Matchers - -- (void)match:(id)aMatcher; -{ - self.matcher = aMatcher; -} - -@end diff --git a/Pods/Kiwi/Classes/Matchers/KWGenericMatchingAdditions.h b/Pods/Kiwi/Classes/Matchers/KWGenericMatchingAdditions.h deleted file mode 100644 index 7a327fe..0000000 --- a/Pods/Kiwi/Classes/Matchers/KWGenericMatchingAdditions.h +++ /dev/null @@ -1,34 +0,0 @@ -// -// NSObject+KiwiAdditions.h -// Kiwi -// -// Created by Luke Redpath on 24/01/2011. -// Copyright 2011 Allen Ding. All rights reserved. -// - -#import - -@interface NSObject (KiwiGenericMatchingAdditions) - -- (BOOL)isEqualOrMatches:(id)object DEPRECATED_ATTRIBUTE; - -@end - -@interface NSArray (KiwiGenericMatchingAdditions) - -- (BOOL)containsObjectEqualToOrMatching:(id)object DEPRECATED_ATTRIBUTE; -- (BOOL)containsObjectMatching:(id)matcher DEPRECATED_ATTRIBUTE; - -@end - -@interface NSSet (KiwiGenericMatchingAdditions) - -- (BOOL)containsObjectEqualToOrMatching:(id)object DEPRECATED_ATTRIBUTE; - -@end - -@interface NSOrderedSet (KiwiGenericMatchingAdditions) - -- (BOOL)containsObjectEqualToOrMatching:(id)object DEPRECATED_ATTRIBUTE; - -@end diff --git a/Pods/Kiwi/Classes/Matchers/KWGenericMatchingAdditions.m b/Pods/Kiwi/Classes/Matchers/KWGenericMatchingAdditions.m deleted file mode 100644 index 37da7dd..0000000 --- a/Pods/Kiwi/Classes/Matchers/KWGenericMatchingAdditions.m +++ /dev/null @@ -1,67 +0,0 @@ -// -// NSObject+KiwiAdditions.m -// Kiwi -// -// Created by Luke Redpath on 24/01/2011. -// Copyright 2011 Allen Ding. All rights reserved. -// - -#import "KWGenericMatchingAdditions.h" -#import "KWGenericMatcher.h" -#import "KWGenericMatchEvaluator.h" - -@implementation NSObject (KiwiGenericMatchingAdditions) - -- (BOOL)isEqualOrMatches:(id)object { - if ([KWGenericMatchEvaluator isGenericMatcher:self]) { - return [KWGenericMatchEvaluator genericMatcher:self matches:object]; - } - return [self isEqual:object]; -} - -@end - -@implementation NSArray (KiwiGenericMatchingAdditions) - -- (BOOL)containsObjectEqualToOrMatching:(id)object { - if ([KWGenericMatchEvaluator isGenericMatcher:object]) { - return [self containsObjectMatching:object]; - } - return [self containsObject:object]; -} - -- (BOOL)containsObjectMatching:(id)matcher { - NSIndexSet *indexSet = [self indexesOfObjectsPassingTest:^(id obj, NSUInteger idx, BOOL *stop) { - BOOL matches = [KWGenericMatchEvaluator genericMatcher:matcher matches:obj]; - if (matches) { - *stop = YES; - } - return matches; - }]; - - return (indexSet.count > 0); -} - -@end - -@implementation NSSet (KiwiGenericMatchingAdditions) - -- (BOOL)containsObjectEqualToOrMatching:(id)object { - if ([KWGenericMatchEvaluator isGenericMatcher:object]) { - return [[self allObjects] containsObjectMatching:object]; - } - return [self containsObject:object]; -} - -@end - -@implementation NSOrderedSet (KiwiGenericMatchingAdditions) - -- (BOOL)containsObjectEqualToOrMatching:(id)object { - if ([KWGenericMatchEvaluator isGenericMatcher:object]) { - return [[self array] containsObjectMatching:object]; - } - return [self containsObject:object]; -} - -@end diff --git a/Pods/Kiwi/Classes/Matchers/KWHaveMatcher.h b/Pods/Kiwi/Classes/Matchers/KWHaveMatcher.h deleted file mode 100644 index ae4637d..0000000 --- a/Pods/Kiwi/Classes/Matchers/KWHaveMatcher.h +++ /dev/null @@ -1,48 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" -#import "KWCountType.h" -#import "KWMatcher.h" -#import "KWMatchVerifier.h" - -@interface KWHaveMatcher : KWMatcher - -#pragma mark - Configuring Matchers - -- (void)haveCountOf:(NSUInteger)aCount; -- (void)haveCountOfAtLeast:(NSUInteger)aCount; -- (void)haveCountOfAtMost:(NSUInteger)aCount; -- (void)haveLengthOf:(NSUInteger)aCount; -- (void)haveLengthOfAtLeast:(NSUInteger)aCount; -- (void)haveLengthOfAtMost:(NSUInteger)aCount; -- (void)have:(NSUInteger)aCount itemsForInvocation:(NSInvocation *)anInvocation; -- (void)haveAtLeast:(NSUInteger)aCount itemsForInvocation:(NSInvocation *)anInvocation; -- (void)haveAtMost:(NSUInteger)aCount itemsForInvocation:(NSInvocation *)anInvocation; - -@end - -@protocol KWContainmentCountMatcherTerminals - -#pragma mark - Terminals - -- (id)objects; -- (id)items; -- (id)elements; - -@end - -#pragma mark - Verifying - -@interface KWMatchVerifier(KWHaveMatcherAdditions) - -#pragma mark - Invocation Capturing Methods - -- (id)have:(NSUInteger)aCount; -- (id)haveAtLeast:(NSUInteger)aCount; -- (id)haveAtMost:(NSUInteger)aCount; - -@end diff --git a/Pods/Kiwi/Classes/Matchers/KWHaveMatcher.m b/Pods/Kiwi/Classes/Matchers/KWHaveMatcher.m deleted file mode 100644 index 58fbec9..0000000 --- a/Pods/Kiwi/Classes/Matchers/KWHaveMatcher.m +++ /dev/null @@ -1,254 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KWHaveMatcher.h" -#import "KWFormatter.h" -#import "KWInvocationCapturer.h" -#import "KWObjCUtilities.h" -#import "KWStringUtilities.h" - -static NSString * const MatchVerifierKey = @"MatchVerifierKey"; -static NSString * const CountTypeKey = @"CountTypeKey"; -static NSString * const CountKey = @"CountKey"; - -@interface KWHaveMatcher() - -#pragma mark - Properties - -@property (nonatomic, assign) KWCountType countType; -@property (nonatomic, assign) NSUInteger count; -@property (nonatomic, strong) NSInvocation *invocation; -@property (nonatomic, assign) NSUInteger actualCount; - -@end - -@implementation KWHaveMatcher - -#pragma mark - Getting Matcher Strings - -+ (NSArray *)matcherStrings { - return @[ - @"haveCountOf:", - @"haveCountOfAtLeast:", - @"haveCountOfAtMost:", - @"haveLengthOf:", - @"haveLengthOfAtLeast:", - @"haveLengthOfAtMost:", - @"have:itemsForInvocation:", - @"haveAtLeast:itemsForInvocation:", - @"haveAtMost:itemsForInvocation:", - ]; -} - -#pragma mark - Matching - -- (id)targetObject { - if (self.invocation == nil) - return self.subject; - - SEL selector = [self.invocation selector]; - - if ([self.subject respondsToSelector:selector]) { - NSMethodSignature *signature = [self.subject methodSignatureForSelector:selector]; - - if (!KWObjCTypeIsObject([signature methodReturnType])) - [NSException raise:@"KWMatcherEception" format:@"a valid collection was not specified"]; - - __unsafe_unretained id object = nil; - [self.invocation invokeWithTarget:self.subject]; - [self.invocation getReturnValue:&object]; - return object; - } else if (KWSelectorParameterCount(selector) == 0) { - return self.subject; - } else { - return nil; - } -} - -- (BOOL)evaluate { - id targetObject = [self targetObject]; - - if ([targetObject respondsToSelector:@selector(count)]) - self.actualCount = [targetObject count]; - else if ([targetObject respondsToSelector:@selector(length)]) - self.actualCount = [targetObject length]; - else - self.actualCount = 0; - - switch (self.countType) { - case KWCountTypeExact: - return self.actualCount == self.count; - case KWCountTypeAtLeast: - return self.actualCount >= self.count; - case KWCountTypeAtMost: - return self.actualCount <= self.count; - } - - assert(0 && "should never reach here"); - return NO; -} - -#pragma mark - Getting Failure Messages - -- (NSString *)verbPhrase { - switch (self.countType) { - case KWCountTypeExact: - return @"have"; - case KWCountTypeAtLeast: - return @"have at least"; - case KWCountTypeAtMost: - return @"have at most"; - } - - assert(0 && "should never reach here"); - return nil; -} - -- (NSString *)itemPhrase { - if (self.invocation == nil) - return @"items"; - else - return NSStringFromSelector([self.invocation selector]); -} - -- (NSString *)actualCountPhrase { - if (self.actualCount == 1) - return @"1 item"; - else - return [NSString stringWithFormat:@"%u items", (unsigned)self.actualCount]; -} - -- (NSString *)failureMessageForShould { - return [NSString stringWithFormat:@"expected subject to %@ %u %@, got %@", - [self verbPhrase], - (unsigned)self.count, - [self itemPhrase], - [self actualCountPhrase]]; -} - -- (NSString *)failureMessageForShouldNot { - return [NSString stringWithFormat:@"expected subject not to %@ %u %@", - [self verbPhrase], - (unsigned)self.count, - [self itemPhrase]]; -} - -#pragma mark - Description - -- (NSString *)description { - return [NSString stringWithFormat:@"%@ %u %@", [self verbPhrase], (unsigned)self.count, [self itemPhrase]]; -} - -#pragma mark - Configuring Matchers - -- (void)haveCountOf:(NSUInteger)aCount { - self.count = aCount; - self.countType = KWCountTypeExact; -} - -- (void)haveLengthOf:(NSUInteger)aCount { - [self haveCountOf:aCount]; -} - -- (void)haveCountOfAtLeast:(NSUInteger)aCount { - self.count = aCount; - self.countType = KWCountTypeAtLeast; -} - -- (void)haveLengthOfAtLeast:(NSUInteger)aCount { - [self haveCountOfAtLeast:aCount]; -} - -- (void)haveCountOfAtMost:(NSUInteger)aCount { - self.count = aCount; - self.countType = KWCountTypeAtMost; -} - -- (void)haveLengthOfAtMost:(NSUInteger)aCount { - [self haveCountOfAtMost:aCount]; -} - -- (void)have:(NSUInteger)aCount itemsForInvocation:(NSInvocation *)anInvocation { - self.count = aCount; - self.countType = KWCountTypeExact; - self.invocation = anInvocation; -} - -- (void)haveAtLeast:(NSUInteger)aCount itemsForInvocation:(NSInvocation *)anInvocation { - self.count = aCount; - self.countType = KWCountTypeAtLeast; - self.invocation = anInvocation; -} - -- (void)haveAtMost:(NSUInteger)aCount itemsForInvocation:(NSInvocation *)anInvocation { - self.count = aCount; - self.countType = KWCountTypeAtMost; - self.invocation = anInvocation; -} - -#pragma mark - Capturing Invocations - -+ (NSMethodSignature *)invocationCapturer:(KWInvocationCapturer *)anInvocationCapturer methodSignatureForSelector:(SEL)aSelector { - KWMatchVerifier *verifier = (anInvocationCapturer.userInfo)[MatchVerifierKey]; - - if ([verifier.subject respondsToSelector:aSelector]) - return [verifier.subject methodSignatureForSelector:aSelector]; - - // Arbitrary selectors are allowed as expectation expression terminals when - // the subject itself is a collection, so return a dummy method signature. - NSString *encoding = KWEncodingForDefaultMethod(); - return [NSMethodSignature signatureWithObjCTypes:[encoding UTF8String]]; -} - -+ (void)invocationCapturer:(KWInvocationCapturer *)anInvocationCapturer didCaptureInvocation:(NSInvocation *)anInvocation { - NSDictionary *userInfo = anInvocationCapturer.userInfo; - id verifier = userInfo[MatchVerifierKey]; - KWCountType countType = [userInfo[CountTypeKey] unsignedIntegerValue]; - NSUInteger count = [userInfo[CountKey] unsignedIntegerValue]; - - switch (countType) { - case KWCountTypeExact: - [verifier have:count itemsForInvocation:anInvocation]; - break; - case KWCountTypeAtLeast: - [verifier haveAtLeast:count itemsForInvocation:anInvocation]; - break; - case KWCountTypeAtMost: - [verifier haveAtMost:count itemsForInvocation:anInvocation]; - break; - } -} - -@end - -#pragma mark - Verifying - -@implementation KWMatchVerifier(KWHaveMatcherAdditions) - -#pragma mark - Invocation Capturing Methods - -- (NSDictionary *)userInfoForHaveMatcherWithCountType:(KWCountType)aCountType count:(NSUInteger)aCount { - return @{MatchVerifierKey: self, - CountTypeKey: @(aCountType), - CountKey: @(aCount)}; -} - -- (id)have:(NSUInteger)aCount { - NSDictionary *userInfo = [self userInfoForHaveMatcherWithCountType:KWCountTypeExact count:aCount]; - return [KWInvocationCapturer invocationCapturerWithDelegate:[KWHaveMatcher class] userInfo:userInfo]; -} - -- (id)haveAtLeast:(NSUInteger)aCount { - NSDictionary *userInfo = [self userInfoForHaveMatcherWithCountType:KWCountTypeAtLeast count:aCount]; - return [KWInvocationCapturer invocationCapturerWithDelegate:[KWHaveMatcher class] userInfo:userInfo]; -} - -- (id)haveAtMost:(NSUInteger)aCount { - NSDictionary *userInfo = [self userInfoForHaveMatcherWithCountType:KWCountTypeAtMost count:aCount]; - return [KWInvocationCapturer invocationCapturerWithDelegate:[KWHaveMatcher class] userInfo:userInfo]; -} - -@end diff --git a/Pods/Kiwi/Classes/Matchers/KWHaveValueMatcher.h b/Pods/Kiwi/Classes/Matchers/KWHaveValueMatcher.h deleted file mode 100644 index 73bfccb..0000000 --- a/Pods/Kiwi/Classes/Matchers/KWHaveValueMatcher.h +++ /dev/null @@ -1,21 +0,0 @@ -// -// KWHaveValueMatcher.h -// Kiwi -// -// Created by Luke Redpath on 24/01/2011. -// Copyright 2011 Allen Ding. All rights reserved. -// - -#import -#import "KWMatcher.h" - -@interface KWHaveValueMatcher : KWMatcher - -#pragma mark - Configuring Matchers - -- (void)haveValue:(id)value forKey:(NSString *)key; -- (void)haveValue:(id)value forKeyPath:(NSString *)keyPath; -- (void)haveValueForKey:(NSString *)key; -- (void)haveValueForKeyPath:(NSString *)keyPath; - -@end diff --git a/Pods/Kiwi/Classes/Matchers/KWHaveValueMatcher.m b/Pods/Kiwi/Classes/Matchers/KWHaveValueMatcher.m deleted file mode 100644 index 9c6f8a6..0000000 --- a/Pods/Kiwi/Classes/Matchers/KWHaveValueMatcher.m +++ /dev/null @@ -1,128 +0,0 @@ -// -// KWHaveValueMatcher.m -// Kiwi -// -// Created by Luke Redpath on 24/01/2011. -// Copyright 2011 Allen Ding. All rights reserved. -// - -#import "KWHaveValueMatcher.h" -#import "KWGenericMatchingAdditions.h" -#import "KWGenericMatcher.h" -#import "KWFormatter.h" - -@interface KWHaveValueMatcher() - -@property (nonatomic, strong) NSString *expectedKey; -@property (nonatomic, strong) NSString *expectedKeyPath; -@property (nonatomic, strong) id expectedValue; - -@end - -@implementation KWHaveValueMatcher - -#pragma mark - Getting Matcher Strings - -+ (NSArray *)matcherStrings { - return @[@"haveValue:forKey:", - @"haveValueForKey:", - @"haveValue:forKeyPath:", - @"haveValueForKeyPath:"]; -} - -#pragma mark - Matching - -- (BOOL)evaluate { - BOOL matched = NO; - - @try { - id value = [self subjectValue]; - - if (value) { - matched = YES; - - if (self.expectedValue) { - matched = [self.expectedValue isEqualOrMatches:value]; - } - } - } - @catch (NSException * e) {} // catch KVO non-existent key errors - - return matched; -} - -- (NSString *)failureMessageForShould { - if (self.expectedValue == nil) { - return [NSString stringWithFormat:@"expected subject to have a value for key %@", - [KWFormatter formatObject:self.expectedKey]]; - } - id subjectValue = [self subjectValue]; - if (subjectValue) { - return [NSString stringWithFormat:@"expected subject to have value %@ for key %@, but it had value %@ instead", - [KWFormatter formatObject:self.expectedValue], - [KWFormatter formatObject:self.expectedKey], - [KWFormatter formatObject:subjectValue]]; - } else { - return [NSString stringWithFormat:@"expected subject to have value %@ for key %@, but the key was not present", - [KWFormatter formatObject:self.expectedValue], - [KWFormatter formatObject:self.expectedKey]]; - } -} - -- (id)subjectValue { - id value = nil; - - if (self.expectedKey) { - value = [self.subject valueForKey:self.expectedKey]; - } else - if (self.expectedKeyPath) { - value = [self.subject valueForKeyPath:self.expectedKeyPath]; - } - return value; -} - -- (NSString *)description { - NSString *keyDescription = nil; - - if (self.expectedKey) { - keyDescription = [NSString stringWithFormat:@"key %@", [KWFormatter formatObject:self.expectedKey]]; - } - else { - keyDescription = [NSString stringWithFormat:@"keypath %@", [KWFormatter formatObject:self.expectedKeyPath]]; - } - - NSString *valueDescription = nil; - - if (self.expectedValue) { - valueDescription = [NSString stringWithFormat:@"value %@", [KWFormatter formatObject:self.expectedValue]]; - } - else { - valueDescription = @"value"; - } - - return [NSString stringWithFormat:@"have %@ for %@", valueDescription, keyDescription]; -} - -#pragma mark - Configuring Matchers - -- (void)haveValue:(id)value forKey:(NSString *)key { - self.expectedKey = key; - self.expectedValue = value; -} - -- (void)haveValue:(id)value forKeyPath:(NSString *)key { - self.expectedKeyPath = key; - self.expectedValue = value; -} - -- (void)haveValueForKey:(NSString *)key { - self.expectedKey = key; - self.expectedValue = nil; -} - -- (void)haveValueForKeyPath:(NSString *)keyPath { - self.expectedKeyPath = keyPath; - self.expectedValue = nil; -} - -@end diff --git a/Pods/Kiwi/Classes/Matchers/KWInequalityMatcher.h b/Pods/Kiwi/Classes/Matchers/KWInequalityMatcher.h deleted file mode 100644 index 003ba4b..0000000 --- a/Pods/Kiwi/Classes/Matchers/KWInequalityMatcher.h +++ /dev/null @@ -1,19 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" -#import "KWMatcher.h" - -@interface KWInequalityMatcher : KWMatcher - -#pragma mark - Configuring Matchers - -- (void)beLessThan:(id)aValue; -- (void)beLessThanOrEqualTo:(id)aValue; -- (void)beGreaterThan:(id)aValue; -- (void)beGreaterThanOrEqualTo:(id)aValue; - -@end diff --git a/Pods/Kiwi/Classes/Matchers/KWInequalityMatcher.m b/Pods/Kiwi/Classes/Matchers/KWInequalityMatcher.m deleted file mode 100644 index 573e370..0000000 --- a/Pods/Kiwi/Classes/Matchers/KWInequalityMatcher.m +++ /dev/null @@ -1,109 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KWInequalityMatcher.h" -#import "KWFormatter.h" - -typedef NS_ENUM(NSUInteger, KWInequalityType) { - KWInequalityTypeLessThan, - KWInequalityTypeLessThanOrEqualTo, - KWInequalityTypeGreaterThan, - KWInequalityTypeGreaterThanOrEqualTo -}; - -@interface KWInequalityMatcher() - -#pragma mark - Properties - -@property (nonatomic, assign) KWInequalityType inequalityType; -@property (nonatomic, strong) id otherValue; - -@end - -@implementation KWInequalityMatcher - -#pragma mark - Getting Matcher Strings - -+ (NSArray *)matcherStrings { - return @[@"beLessThan:", - @"beLessThanOrEqualTo:", - @"beGreaterThan:", - @"beGreaterThanOrEqualTo:"]; -} - -#pragma mark - Matching - -- (BOOL)evaluate { - if (![self.subject respondsToSelector:@selector(compare:)]) - [NSException raise:@"KWMatcherException" format:@"subject does not respond to -compare:"]; - - NSComparisonResult result = [self.subject compare:self.otherValue]; - - switch (result) { - case NSOrderedSame: - return self.inequalityType == KWInequalityTypeLessThanOrEqualTo || self.inequalityType == KWInequalityTypeGreaterThanOrEqualTo; - case NSOrderedAscending: - return self.inequalityType == KWInequalityTypeLessThan || self.inequalityType == KWInequalityTypeLessThanOrEqualTo; - case NSOrderedDescending: - return self.inequalityType == KWInequalityTypeGreaterThan || self.inequalityType == KWInequalityTypeGreaterThanOrEqualTo; - } - - assert(0 && "should never reach here"); - return NO; -} - -#pragma mark - Getting Failure Messages - -- (NSString *)comparisonPhrase { - switch (self.inequalityType) { - case KWInequalityTypeLessThan: - return @"<"; - case KWInequalityTypeLessThanOrEqualTo: - return @"<="; - case KWInequalityTypeGreaterThan: - return @">"; - case KWInequalityTypeGreaterThanOrEqualTo: - return @">="; - } - - assert(0 && "should never reach here"); - return nil; -} - -- (NSString *)failureMessageForShould { - return [NSString stringWithFormat:@"expected subject to be %@ %@, got %@", - [self comparisonPhrase], - [KWFormatter formatObject:self.otherValue], - [KWFormatter formatObject:self.subject]]; -} - -- (NSString *)description { - return [NSString stringWithFormat:@"be %@ %@", [self comparisonPhrase], [KWFormatter formatObject:self.otherValue]]; -} - -#pragma mark - Configuring Matchers - -- (void)beLessThan:(id)aValue { - self.inequalityType = KWInequalityTypeLessThan; - self.otherValue = aValue; -} - -- (void)beLessThanOrEqualTo:(id)aValue { - self.inequalityType = KWInequalityTypeLessThanOrEqualTo; - self.otherValue = aValue; -} - -- (void)beGreaterThan:(id)aValue { - self.inequalityType = KWInequalityTypeGreaterThan; - self.otherValue = aValue; -} - -- (void)beGreaterThanOrEqualTo:(id)aValue { - self.inequalityType = KWInequalityTypeGreaterThanOrEqualTo; - self.otherValue = aValue; -} - -@end diff --git a/Pods/Kiwi/Classes/Matchers/KWNilMatcher.h b/Pods/Kiwi/Classes/Matchers/KWNilMatcher.h deleted file mode 100644 index 51f6057..0000000 --- a/Pods/Kiwi/Classes/Matchers/KWNilMatcher.h +++ /dev/null @@ -1,23 +0,0 @@ -// -// KWBeNilMatcher.h -// iOSFalconCore -// -// Created by Luke Redpath on 14/01/2011. -// Copyright 2011 LJR Software Limited. All rights reserved. -// - -#import -#import "KWMatcher.h" - -@interface KWNilMatcher : KWMatcher - -- (void)beNil; -- (void)beNonNil; - -- (void)beNil:(BOOL)workaroundArgument; -- (void)beNonNil:(BOOL)workaroundArgument; - -+ (BOOL)verifyNilSubject; -+ (BOOL)verifyNonNilSubject; - -@end diff --git a/Pods/Kiwi/Classes/Matchers/KWNilMatcher.m b/Pods/Kiwi/Classes/Matchers/KWNilMatcher.m deleted file mode 100644 index 70c9c31..0000000 --- a/Pods/Kiwi/Classes/Matchers/KWNilMatcher.m +++ /dev/null @@ -1,112 +0,0 @@ -// -// KWBeNilMatcher.m -// iOSFalconCore -// -// Created by Luke Redpath on 14/01/2011. -// Copyright 2011 LJR Software Limited. All rights reserved. -// - -#import "KWNilMatcher.h" -#import "KWExample.h" -#import "KWExampleSuiteBuilder.h" -#import "KWFormatter.h" -#import "KWMatchVerifier.h" -#import "KWVerifying.h" - -@interface KWNilMatcher () - -@property (nonatomic, assign) BOOL expectsNil; - -@end - -@implementation KWNilMatcher - -#pragma mark - Getting Matcher Strings - -+ (NSArray *)matcherStrings { - return @[@"beNil", @"beNil:", @"beNonNil", @"beNonNil:"]; -} - -#pragma mark - Matching - -- (BOOL)isNilMatcher { - return YES; -} - -- (BOOL)evaluate { - if (self.expectsNil) { - return (self.subject == nil); - } else { - return (self.subject != nil); - } -} - -// These two methods gets invoked by be(Non)Nil macro in case the subject is nil -// (and therefore cannot have a verifier attached). - -+ (BOOL)verifyNilSubject { - return [self verifySubjectExpectingNil:YES]; -} - -+ (BOOL)verifyNonNilSubject { - return [self verifySubjectExpectingNil:NO]; -} - -#pragma mark Getting Failure Messages - -- (NSString *)failureMessageForShould { - if (self.expectsNil) { - return [NSString stringWithFormat:@"expected subject to be nil, got %@", - [KWFormatter formatObject:self.subject]]; - } else { - return [NSString stringWithFormat:@"expected subject not to be nil"]; - } -} - -- (NSString *)failureMessageForShouldNot { - if (self.expectsNil) { - return [NSString stringWithFormat:@"expected subject not to be nil"]; - } else { - return [NSString stringWithFormat:@"expected subject to be nil, got %@", - [KWFormatter formatObject:self.subject]]; - } -} - -- (NSString *)description { - return [NSString stringWithFormat:@"be %@nil", self.expectsNil ? @"" : @"non "]; -} - -- (void)beNil { - self.expectsNil = YES; -} -- (void)beNil:(BOOL)workaroundArgument { - self.expectsNil = YES; -} - -- (void)beNonNil { - self.expectsNil = NO; -} -- (void)beNonNil:(BOOL)workaroundArgument { - self.expectsNil = NO; -} - -#pragma mark - Internal Methods - -+ (BOOL)verifySubjectExpectingNil:(BOOL)expectNil { - KWExample *currentExample = [[KWExampleSuiteBuilder sharedExampleSuiteBuilder] currentExample]; - id verifier = currentExample.unresolvedVerifier; - - if (verifier && ![verifier subject] && [verifier isKindOfClass:[KWMatchVerifier class]]) { - KWMatchVerifier *matchVerifier = (KWMatchVerifier *)verifier; - if (expectNil) { - [matchVerifier performSelector:@selector(beNil)]; - } else { - [matchVerifier performSelector:@selector(beNonNil)]; - } - currentExample.unresolvedVerifier = nil; - return NO; - } - return YES; -} - -@end diff --git a/Pods/Kiwi/Classes/Matchers/KWNotificationMatcher.h b/Pods/Kiwi/Classes/Matchers/KWNotificationMatcher.h deleted file mode 100644 index 8411494..0000000 --- a/Pods/Kiwi/Classes/Matchers/KWNotificationMatcher.h +++ /dev/null @@ -1,20 +0,0 @@ -// -// KWNotificationMatcher.h -// -// Created by Paul Zabelin on 7/12/12. -// Copyright (c) 2012 Blazing Cloud, Inc. All rights reserved. -// - -#import "KWMatcher.h" - -typedef void (^PostedNotificationBlock)(NSNotification* note); - -@interface KWNotificationMatcher : KWMatcher - -- (void)bePosted; -- (void)bePostedWithObject:(id)object; -- (void)bePostedWithUserInfo:(NSDictionary *)userInfo; -- (void)bePostedWithObject:(id)object andUserInfo:(NSDictionary *)userInfo; -- (void)bePostedEvaluatingBlock:(PostedNotificationBlock)block; - -@end diff --git a/Pods/Kiwi/Classes/Matchers/KWNotificationMatcher.m b/Pods/Kiwi/Classes/Matchers/KWNotificationMatcher.m deleted file mode 100644 index 53cf58c..0000000 --- a/Pods/Kiwi/Classes/Matchers/KWNotificationMatcher.m +++ /dev/null @@ -1,118 +0,0 @@ -// -// KWNotificationMatcher.m -// -// Created by Paul Zabelin on 7/12/12. -// Copyright (c) 2012 Blazing Cloud, Inc. All rights reserved. -// - -#import "KWNotificationMatcher.h" -#import "KWFormatter.h" - -@interface KWNotificationMatcher () -@property (nonatomic, strong) NSNotification *notification; -@property (nonatomic, strong) id observer; -@property (nonatomic, copy) PostedNotificationBlock evaluationBlock; -@property (nonatomic, strong) id expectedObject; -@property (nonatomic, strong) NSDictionary *expectedUserInfo; -@property (nonatomic, assign) BOOL didReceiveNotification; -@end - -@implementation KWNotificationMatcher - -+ (NSArray *)matcherStrings { - return @[@"bePosted", @"bePostedWithObject:", @"bePostedWithUserInfo:", @"bePostedWithObject:andUserInfo:", @"bePostedEvaluatingBlock:"]; -} - -- (void)addObserver { - NSNotificationCenter *center = [NSNotificationCenter defaultCenter]; - self.observer = [center addObserverForName:self.subject - object:self.expectedObject - queue:nil - usingBlock:^(NSNotification *note) { - self.notification = note; - self.didReceiveNotification = YES; - if (self.expectedObject) { - self.didReceiveNotification &= (self.expectedObject==note.object); - } - if (self.expectedUserInfo) { - self.didReceiveNotification &= [self.expectedUserInfo isEqualToDictionary:[note userInfo]]; - } - if (self.evaluationBlock) { - self.evaluationBlock(note); - } - }]; -} - -#pragma mark - Matching - -- (BOOL)evaluate { - [[NSNotificationCenter defaultCenter] removeObserver:self.observer]; - return self.didReceiveNotification; -} - -- (BOOL)shouldBeEvaluatedAtEndOfExample { - return YES; -} - -#pragma mark - Getting Matcher Compatability - -+ (BOOL)canMatchSubject:(id)anObject { - return [anObject isKindOfClass:[NSString class]]; -} - -#pragma mark - Getting Failure Messages - -- (NSString *)receiveNotificationMessage { - NSMutableString *message = [NSMutableString stringWithFormat:@"receive %@ notification", [KWFormatter formatObject:self.subject]]; - if (self.expectedObject && self.expectedUserInfo) { - [message appendFormat:@" with object: %@ and user info: %@", self.expectedObject, self.expectedUserInfo]; - } else if (self.expectedObject) { - [message appendFormat:@" with object: %@", self.expectedObject]; - } else if (self.expectedUserInfo) { - [message appendFormat:@" with user info: %@", self.expectedUserInfo]; - } - return message; -} - -- (NSString *)failureMessageForShould { - return [NSString stringWithFormat:@"expect to %@", [self receiveNotificationMessage]]; -} - -- (NSString *)failureMessageForShouldNot { - return [NSString stringWithFormat:@"expect not to %@, but received: %@", - [self receiveNotificationMessage], - self.notification]; -} - -- (NSString *)description { - return [NSString stringWithFormat:@"%@ be posted", self.subject]; -} - -#pragma mark - Configuring Matchers - -- (void)bePosted { - [self addObserver]; -} - -- (void)bePostedWithObject:(id)object { - [self addObserver]; - self.expectedObject = object; -} - -- (void)bePostedWithUserInfo:(NSDictionary *)userInfo { - [self addObserver]; - self.expectedUserInfo = userInfo; -} - -- (void)bePostedWithObject:(id)object andUserInfo:(NSDictionary *)userInfo { - [self addObserver]; - self.expectedObject = object; - self.expectedUserInfo = userInfo; -} - -- (void)bePostedEvaluatingBlock:(PostedNotificationBlock)block { - [self addObserver]; - self.evaluationBlock = block; -} - -@end diff --git a/Pods/Kiwi/Classes/Matchers/KWReceiveMatcher.h b/Pods/Kiwi/Classes/Matchers/KWReceiveMatcher.h deleted file mode 100644 index 23fa7bf..0000000 --- a/Pods/Kiwi/Classes/Matchers/KWReceiveMatcher.h +++ /dev/null @@ -1,61 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" -#import "KWCountType.h" -#import "KWMatcher.h" -#import "KWMatchVerifier.h" - -@class KWMessagePattern; -@class KWMessageTracker; - -@interface KWReceiveMatcher : KWMatcher - -@property (nonatomic, assign) BOOL willEvaluateMultipleTimes; -@property (nonatomic, assign) BOOL willEvaluateAgainstNegativeExpectation; - -#pragma mark - Configuring Matchers - -- (void)receive:(SEL)aSelector; -- (void)receive:(SEL)aSelector withCount:(NSUInteger)aCount; -- (void)receive:(SEL)aSelector withCountAtLeast:(NSUInteger)aCount; -- (void)receive:(SEL)aSelector withCountAtMost:(NSUInteger)aCount; -- (void)receive:(SEL)aSelector andReturn:(id)aValue; -- (void)receive:(SEL)aSelector andReturn:(id)aValue withCount:(NSUInteger)aCount; -- (void)receive:(SEL)aSelector andReturn:(id)aValue withCountAtLeast:(NSUInteger)aCount; -- (void)receive:(SEL)aSelector andReturn:(id)aValue withCountAtMost:(NSUInteger)aCount; - -// These methods will become private -- (void)receiveMessagePattern:(KWMessagePattern *)aMessagePattern countType:(KWCountType)aCountType count:(NSUInteger)aCount; -- (void)receiveMessagePattern:(KWMessagePattern *)aMessagePattern andReturn:(id)aValue countType:(KWCountType)aCountType count:(NSUInteger)aCount; - -@end - -@interface KWMatchVerifier(KWReceiveMatcherAdditions) - -#pragma mark - Verifying - -- (void)receive:(SEL)aSelector withArguments:(id)firstArgument, ...; -- (void)receive:(SEL)aSelector withCount:(NSUInteger)aCount arguments:(id)firstArgument, ...; -- (void)receive:(SEL)aSelector withCountAtLeast:(NSUInteger)aCount arguments:(id)firstArgument, ...; -- (void)receive:(SEL)aSelector withCountAtMost:(NSUInteger)aCount arguments:(id)firstArgument, ...; -- (void)receive:(SEL)aSelector andReturn:(id)aValue withArguments:(id)firstArgument, ...; -- (void)receive:(SEL)aSelector andReturn:(id)aValue withCount:(NSUInteger)aCount arguments:(id)firstArgument, ...; -- (void)receive:(SEL)aSelector andReturn:(id)aValue withCountAtLeast:(NSUInteger)aCount arguments:(id)firstArgument, ...; -- (void)receive:(SEL)aSelector andReturn:(id)aValue withCountAtMost:(NSUInteger)aCount arguments:(id)firstArgument, ...; - -#pragma mark Invocation Capturing Methods - -- (id)receive DEPRECATED_ATTRIBUTE; -- (id)receiveWithCount:(NSUInteger)aCount DEPRECATED_ATTRIBUTE; -- (id)receiveWithCountAtLeast:(NSUInteger)aCount DEPRECATED_ATTRIBUTE; -- (id)receiveWithCountAtMost:(NSUInteger)aCount DEPRECATED_ATTRIBUTE; -- (id)receiveAndReturn:(id)aValue DEPRECATED_ATTRIBUTE; -- (id)receiveAndReturn:(id)aValue withCount:(NSUInteger)aCount DEPRECATED_ATTRIBUTE; -- (id)receiveAndReturn:(id)aValue withCountAtLeast:(NSUInteger)aCount DEPRECATED_ATTRIBUTE; -- (id)receiveAndReturn:(id)aValue withCountAtMost:(NSUInteger)aCount DEPRECATED_ATTRIBUTE; - -@end diff --git a/Pods/Kiwi/Classes/Matchers/KWReceiveMatcher.m b/Pods/Kiwi/Classes/Matchers/KWReceiveMatcher.m deleted file mode 100644 index 12fb0ae..0000000 --- a/Pods/Kiwi/Classes/Matchers/KWReceiveMatcher.m +++ /dev/null @@ -1,325 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KWReceiveMatcher.h" -#import "KWFormatter.h" -#import "KWInvocationCapturer.h" -#import "KWMessagePattern.h" -#import "KWMessageTracker.h" -#import "KWObjCUtilities.h" -#import "KWStringUtilities.h" -#import "KWWorkarounds.h" -#import "NSObject+KiwiStubAdditions.h" - -static NSString * const MatchVerifierKey = @"MatchVerifierKey"; -static NSString * const CountTypeKey = @"CountTypeKey"; -static NSString * const CountKey = @"CountKey"; -static NSString * const StubValueKey = @"StubValueKey"; - -@interface KWReceiveMatcher() - -#pragma mark - Properties - -@property (nonatomic, readwrite, strong) KWMessageTracker *messageTracker; - -@end - -@implementation KWReceiveMatcher - -#pragma mark - Initializing - -- (id)initWithSubject:(id)anObject { - self = [super initWithSubject:anObject]; - if (self) { - _willEvaluateMultipleTimes = NO; - } - - return self; -} - -#pragma mark - Getting Matcher Strings - -+ (NSArray *)matcherStrings { - return @[@"receive:", - @"receive:withCount:", - @"receive:withCountAtLeast:", - @"receive:withCountAtMost:", - @"receive:andReturn:", - @"receive:andReturn:withCount:", - @"receive:andReturn:withCountAtLeast:", - @"receive:andReturn:withCountAtMost:", - @"receiveMessagePattern:countType:count:", - @"receiveMessagePattern:andReturn:countType:count:", - @"receiveUnspecifiedCountOfMessagePattern:", - @"receiveUnspecifiedCountOfMessagePattern:andReturn:"]; -} - -#pragma mark - Matching - -- (BOOL)shouldBeEvaluatedAtEndOfExample { - return YES; -} - -- (BOOL)evaluate { - BOOL succeeded = [self.messageTracker succeeded]; - - if (!self.willEvaluateMultipleTimes) { - [self.messageTracker stopTracking]; - } - return succeeded; -} - -#pragma mark - Getting Failure Messages - -- (NSString *)failureMessageForShould { - return [NSString stringWithFormat:@"expected subject to receive -%@ %@, but received it %@", - [self.messageTracker.messagePattern stringValue], - [self.messageTracker expectedCountPhrase], - [self.messageTracker receivedCountPhrase]]; -} - -- (NSString *)failureMessageForShouldNot { - return [NSString stringWithFormat:@"expected subject not to receive -%@, but received it %@", - [self.messageTracker.messagePattern stringValue], - [self.messageTracker receivedCountPhrase]]; -} - -#pragma mark - Configuring Matchers - -- (void)receive:(SEL)aSelector { - KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:aSelector]; - [self receiveUnspecifiedCountOfMessagePattern:messagePattern]; -} - -- (void)receive:(SEL)aSelector withCount:(NSUInteger)aCount { - KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:aSelector]; - return [self receiveMessagePattern:messagePattern countType:KWCountTypeExact count:aCount]; -} - -- (void)receive:(SEL)aSelector withCountAtLeast:(NSUInteger)aCount { - KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:aSelector]; - return [self receiveMessagePattern:messagePattern countType:KWCountTypeAtLeast count:aCount]; -} - -- (void)receive:(SEL)aSelector withCountAtMost:(NSUInteger)aCount { - KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:aSelector]; - return [self receiveMessagePattern:messagePattern countType:KWCountTypeAtMost count:aCount]; -} - -- (void)receive:(SEL)aSelector andReturn:(id)aValue { - KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:aSelector]; - [self receiveUnspecifiedCountOfMessagePattern:messagePattern andReturn:aValue]; -} - -- (void)receive:(SEL)aSelector andReturn:(id)aValue withCount:(NSUInteger)aCount { - KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:aSelector]; - [self receiveMessagePattern:messagePattern andReturn:aValue countType:KWCountTypeExact count:aCount]; -} - -- (void)receive:(SEL)aSelector andReturn:(id)aValue withCountAtLeast:(NSUInteger)aCount { - KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:aSelector]; - [self receiveMessagePattern:messagePattern andReturn:aValue countType:KWCountTypeAtLeast count:aCount]; -} - -- (void)receive:(SEL)aSelector andReturn:(id)aValue withCountAtMost:(NSUInteger)aCount { - KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:aSelector]; - [self receiveMessagePattern:messagePattern andReturn:aValue countType:KWCountTypeAtMost count:aCount]; -} - -- (void)receiveUnspecifiedCountOfMessagePattern:(KWMessagePattern *)messagePattern { - if (self.willEvaluateAgainstNegativeExpectation) { - [self receiveMessagePattern:messagePattern countType:KWCountTypeAtLeast count:1]; - } else { - [self receiveMessagePattern:messagePattern countType:KWCountTypeExact count:1]; - } -} - -- (void)receiveUnspecifiedCountOfMessagePattern:(KWMessagePattern *)messagePattern andReturn:(id)aValue { - if (self.willEvaluateAgainstNegativeExpectation) { - [self receiveMessagePattern:messagePattern andReturn:aValue countType:KWCountTypeAtLeast count:1]; - } else { - [self receiveMessagePattern:messagePattern andReturn:aValue countType:KWCountTypeExact count:1]; - } -} - -- (void)receiveMessagePattern:(KWMessagePattern *)aMessagePattern countType:(KWCountType)aCountType count:(NSUInteger)aCount { -#if KW_TARGET_HAS_INVOCATION_EXCEPTION_BUG - @try { -#endif // #if KW_TARGET_HAS_INVOCATION_EXCEPTION_BUG - - [self.subject stubMessagePattern:aMessagePattern andReturn:nil overrideExisting:NO]; - self.messageTracker = [KWMessageTracker messageTrackerWithSubject:self.subject messagePattern:aMessagePattern countType:aCountType count:aCount]; - -#if KW_TARGET_HAS_INVOCATION_EXCEPTION_BUG - } @catch(NSException *exception) { - KWSetExceptionFromAcrossInvocationBoundary(exception); - } -#endif // #if KW_TARGET_HAS_INVOCATION_EXCEPTION_BUG -} - -- (void)receiveMessagePattern:(KWMessagePattern *)aMessagePattern andReturn:(id)aValue countType:(KWCountType)aCountType count:(NSUInteger)aCount { -#if KW_TARGET_HAS_INVOCATION_EXCEPTION_BUG - @try { -#endif // #if KW_TARGET_HAS_INVOCATION_EXCEPTION_BUG - - [self.subject stubMessagePattern:aMessagePattern andReturn:aValue]; - self.messageTracker = [KWMessageTracker messageTrackerWithSubject:self.subject messagePattern:aMessagePattern countType:aCountType count:aCount]; - -#if KW_TARGET_HAS_INVOCATION_EXCEPTION_BUG - } @catch(NSException *exception) { - KWSetExceptionFromAcrossInvocationBoundary(exception); - } -#endif // #if KW_TARGET_HAS_INVOCATION_EXCEPTION_BUG -} - -#pragma mark - Capturing Invocations - -+ (NSMethodSignature *)invocationCapturer:(KWInvocationCapturer *)anInvocationCapturer methodSignatureForSelector:(SEL)aSelector { - KWMatchVerifier *verifier = (anInvocationCapturer.userInfo)[MatchVerifierKey]; - - if ([verifier.subject respondsToSelector:aSelector]) - return [verifier.subject methodSignatureForSelector:aSelector]; - - NSString *encoding = KWEncodingForDefaultMethod(); - return [NSMethodSignature signatureWithObjCTypes:[encoding UTF8String]]; -} - -+ (void)invocationCapturer:(KWInvocationCapturer *)anInvocationCapturer didCaptureInvocation:(NSInvocation *)anInvocation { - NSDictionary *userInfo = anInvocationCapturer.userInfo; - id verifier = userInfo[MatchVerifierKey]; - KWCountType countType = [userInfo[CountTypeKey] unsignedIntegerValue]; - NSUInteger count = [userInfo[CountKey] unsignedIntegerValue]; - id stubValue = userInfo[StubValueKey]; - KWMessagePattern *messagePattern = [KWMessagePattern messagePatternFromInvocation:anInvocation]; - - if (stubValue != nil) - [verifier receiveMessagePattern:messagePattern andReturn:stubValue countType:countType count:count]; - else - [verifier receiveMessagePattern:messagePattern countType:countType count:count]; -} - -@end - -@implementation KWMatchVerifier(KWReceiveMatcherAdditions) - -#pragma mark - Verifying - -- (void)receive:(SEL)aSelector withArguments:(id)firstArgument, ... { - va_list argumentList; - va_start(argumentList, firstArgument); - KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:aSelector firstArgumentFilter:firstArgument argumentList:argumentList]; - [(id)self receiveUnspecifiedCountOfMessagePattern:messagePattern]; -} - -- (void)receive:(SEL)aSelector withCount:(NSUInteger)aCount arguments:(id)firstArgument, ... { - va_list argumentList; - va_start(argumentList, firstArgument); - KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:aSelector firstArgumentFilter:firstArgument argumentList:argumentList]; - [(id)self receiveMessagePattern:messagePattern countType:KWCountTypeExact count:aCount]; -} - -- (void)receive:(SEL)aSelector withCountAtLeast:(NSUInteger)aCount arguments:(id)firstArgument, ... { - va_list argumentList; - va_start(argumentList, firstArgument); - KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:aSelector firstArgumentFilter:firstArgument argumentList:argumentList]; - [(id)self receiveMessagePattern:messagePattern countType:KWCountTypeAtLeast count:aCount]; -} - -- (void)receive:(SEL)aSelector withCountAtMost:(NSUInteger)aCount arguments:(id)firstArgument, ... { - va_list argumentList; - va_start(argumentList, firstArgument); - KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:aSelector firstArgumentFilter:firstArgument argumentList:argumentList]; - [(id)self receiveMessagePattern:messagePattern countType:KWCountTypeAtMost count:aCount]; -} - -- (void)receive:(SEL)aSelector andReturn:(id)aValue withArguments:(id)firstArgument, ... { - va_list argumentList; - va_start(argumentList, firstArgument); - KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:aSelector firstArgumentFilter:firstArgument argumentList:argumentList]; - [(id)self receiveUnspecifiedCountOfMessagePattern:messagePattern andReturn:aValue]; -} - -- (void)receive:(SEL)aSelector andReturn:(id)aValue withCount:(NSUInteger)aCount arguments:(id)firstArgument, ... { - va_list argumentList; - va_start(argumentList, firstArgument); - KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:aSelector firstArgumentFilter:firstArgument argumentList:argumentList]; - [(id)self receiveMessagePattern:messagePattern andReturn:aValue countType:KWCountTypeExact count:aCount]; -} - -- (void)receive:(SEL)aSelector andReturn:(id)aValue withCountAtLeast:(NSUInteger)aCount arguments:(id)firstArgument, ... { - va_list argumentList; - va_start(argumentList, firstArgument); - KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:aSelector firstArgumentFilter:firstArgument argumentList:argumentList]; - [(id)self receiveMessagePattern:messagePattern andReturn:aValue countType:KWCountTypeAtLeast count:aCount]; -} - -- (void)receive:(SEL)aSelector andReturn:(id)aValue withCountAtMost:(NSUInteger)aCount arguments:(id)firstArgument, ... { - va_list argumentList; - va_start(argumentList, firstArgument); - KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:aSelector firstArgumentFilter:firstArgument argumentList:argumentList]; - [(id)self receiveMessagePattern:messagePattern andReturn:aValue countType:KWCountTypeAtMost count:aCount]; -} - -#pragma mark Invocation Capturing Methods - -- (NSDictionary *)userInfoForReceiveMatcherWithCountType:(KWCountType)aCountType count:(NSUInteger)aCount { - return @{ - MatchVerifierKey: self, - CountTypeKey: @(aCountType), - CountKey: @(aCount) - }; -} - -- (NSDictionary *)userInfoForReceiveMatcherWithCountType:(KWCountType)aCountType count:(NSUInteger)aCount value:(id)aValue { - return @{ - MatchVerifierKey: self, - CountTypeKey: @(aCountType), - CountKey: @(aCount), - StubValueKey: aValue - }; -} - -- (id)receive { - NSDictionary *userInfo = [self userInfoForReceiveMatcherWithCountType:KWCountTypeExact count:1]; - return [KWInvocationCapturer invocationCapturerWithDelegate:[KWReceiveMatcher class] userInfo:userInfo]; -} - -- (id)receiveWithCount:(NSUInteger)aCount { - NSDictionary *userInfo = [self userInfoForReceiveMatcherWithCountType:KWCountTypeExact count:aCount]; - return [KWInvocationCapturer invocationCapturerWithDelegate:[KWReceiveMatcher class] userInfo:userInfo]; -} - -- (id)receiveWithCountAtLeast:(NSUInteger)aCount { - NSDictionary *userInfo = [self userInfoForReceiveMatcherWithCountType:KWCountTypeAtLeast count:aCount]; - return [KWInvocationCapturer invocationCapturerWithDelegate:[KWReceiveMatcher class] userInfo:userInfo]; -} - -- (id)receiveWithCountAtMost:(NSUInteger)aCount { - NSDictionary *userInfo = [self userInfoForReceiveMatcherWithCountType:KWCountTypeAtMost count:aCount]; - return [KWInvocationCapturer invocationCapturerWithDelegate:[KWReceiveMatcher class] userInfo:userInfo]; -} - -- (id)receiveAndReturn:(id)aValue { - NSDictionary *userInfo = [self userInfoForReceiveMatcherWithCountType:KWCountTypeExact count:1 value:aValue]; - return [KWInvocationCapturer invocationCapturerWithDelegate:[KWReceiveMatcher class] userInfo:userInfo]; -} - -- (id)receiveAndReturn:(id)aValue withCount:(NSUInteger)aCount { - NSDictionary *userInfo = [self userInfoForReceiveMatcherWithCountType:KWCountTypeExact count:aCount value:aValue]; - return [KWInvocationCapturer invocationCapturerWithDelegate:[KWReceiveMatcher class] userInfo:userInfo]; -} - -- (id)receiveAndReturn:(id)aValue withCountAtLeast:(NSUInteger)aCount { - NSDictionary *userInfo = [self userInfoForReceiveMatcherWithCountType:KWCountTypeAtLeast count:aCount value:aValue]; - return [KWInvocationCapturer invocationCapturerWithDelegate:[KWReceiveMatcher class] userInfo:userInfo]; -} - -- (id)receiveAndReturn:(id)aValue withCountAtMost:(NSUInteger)aCount { - NSDictionary *userInfo = [self userInfoForReceiveMatcherWithCountType:KWCountTypeAtMost count:aCount value:aValue]; - return [KWInvocationCapturer invocationCapturerWithDelegate:[KWReceiveMatcher class] userInfo:userInfo]; -} - -@end diff --git a/Pods/Kiwi/Classes/Matchers/KWRegularExpressionPatternMatcher.h b/Pods/Kiwi/Classes/Matchers/KWRegularExpressionPatternMatcher.h deleted file mode 100644 index 923aa03..0000000 --- a/Pods/Kiwi/Classes/Matchers/KWRegularExpressionPatternMatcher.h +++ /dev/null @@ -1,18 +0,0 @@ -// -// KWRegularExpressionPatternMatcher.h -// Kiwi -// -// Created by Kristopher Johnson on 4/11/13. -// Copyright (c) 2013 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" -#import "KWMatcher.h" - -@interface KWRegularExpressionPatternMatcher : KWMatcher - -- (void)matchPattern:(NSString *)pattern; - -- (void)matchPattern:(NSString *)pattern options:(NSRegularExpressionOptions)options; - -@end diff --git a/Pods/Kiwi/Classes/Matchers/KWRegularExpressionPatternMatcher.m b/Pods/Kiwi/Classes/Matchers/KWRegularExpressionPatternMatcher.m deleted file mode 100644 index c5c38e3..0000000 --- a/Pods/Kiwi/Classes/Matchers/KWRegularExpressionPatternMatcher.m +++ /dev/null @@ -1,82 +0,0 @@ -// -// KWRegularExpressionPatternMatcher.m -// Kiwi -// -// Created by Kristopher Johnson on 4/11/13. -// Copyright (c) 2013 Allen Ding. All rights reserved. -// - -#import "KWRegularExpressionPatternMatcher.h" -#import "KWFormatter.h" - - -@interface KWRegularExpressionPatternMatcher () - -@property (nonatomic, copy) NSString *pattern; -@property (nonatomic) NSRegularExpressionOptions options; - -@end - - -@implementation KWRegularExpressionPatternMatcher - - -#pragma mark - Getting Matcher Strings - -+ (NSArray *)matcherStrings { - return @[@"matchPattern:", @"matchPattern:options:"]; -} - -#pragma mark - Matching - -- (BOOL)evaluate { - if (![self.subject isKindOfClass:[NSString class]]) { - return NO; - } - NSString *subjectString = (NSString *)self.subject; - NSRange subjectStringRange = NSMakeRange(0, subjectString.length); - - NSError *error = nil; - NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:self.pattern - options:self.options - error:&error]; - if (!regex) { - NSLog(@"%s: Unable to create regular expression for pattern \"%@\": %@", - __PRETTY_FUNCTION__, self.pattern, [error localizedDescription]); - return NO; - } - - NSUInteger numberOfMatches = [regex numberOfMatchesInString:subjectString - options:0 - range:subjectStringRange]; - return (numberOfMatches == 1); -} - -#pragma mark - Getting Failure Messages - -- (NSString *)failureMessageForShould { - return [NSString stringWithFormat:@"%@ did not match pattern \"%@\"", - [KWFormatter formatObject:self.subject], - self.pattern]; -} - -- (NSString *)failureMessageForShouldNot { - return [NSString stringWithFormat:@"expected subject not to match pattern \"%@\"", - self.pattern]; -} - -- (NSString *)description { - return [NSString stringWithFormat:@"match pattern \"%@\"", self.pattern]; -} - -- (void)matchPattern:(NSString *)pattern { - self.pattern = pattern; - self.options = 0; -} - -- (void)matchPattern:(NSString *)pattern options:(NSRegularExpressionOptions)options { - self.pattern = pattern; - self.options = options; -} - -@end diff --git a/Pods/Kiwi/Classes/Matchers/KWRespondToSelectorMatcher.h b/Pods/Kiwi/Classes/Matchers/KWRespondToSelectorMatcher.h deleted file mode 100644 index f91d47a..0000000 --- a/Pods/Kiwi/Classes/Matchers/KWRespondToSelectorMatcher.h +++ /dev/null @@ -1,16 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" -#import "KWMatcher.h" - -@interface KWRespondToSelectorMatcher : KWMatcher - -#pragma mark - Configuring Matchers - -- (void)respondToSelector:(SEL)aSelector; - -@end diff --git a/Pods/Kiwi/Classes/Matchers/KWRespondToSelectorMatcher.m b/Pods/Kiwi/Classes/Matchers/KWRespondToSelectorMatcher.m deleted file mode 100644 index 3920dd8..0000000 --- a/Pods/Kiwi/Classes/Matchers/KWRespondToSelectorMatcher.m +++ /dev/null @@ -1,49 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KWRespondToSelectorMatcher.h" -#import "KWFormatter.h" - -@interface KWRespondToSelectorMatcher() - -#pragma mark - Properties - -@property (nonatomic, assign) SEL selector; - -@end - -@implementation KWRespondToSelectorMatcher - -#pragma mark - Getting Matcher Strings - -+ (NSArray *)matcherStrings { - return @[@"respondToSelector:"]; -} - -#pragma mark - Matching - -- (BOOL)evaluate { - return [self.subject respondsToSelector:self.selector]; -} - -#pragma mark - Getting Failure Messages - -- (NSString *)failureMessageForShould { - return [NSString stringWithFormat:@"expected subject to respond to -%@", - NSStringFromSelector(self.selector)]; -} - -- (NSString *)description { - return [NSString stringWithFormat:@"respond to -%@", NSStringFromSelector(self.selector)]; -} - -#pragma mark - Configuring Matchers - -- (void)respondToSelector:(SEL)aSelector { - self.selector = aSelector; -} - -@end diff --git a/Pods/Kiwi/Classes/Matchers/KWStringContainsMatcher.h b/Pods/Kiwi/Classes/Matchers/KWStringContainsMatcher.h deleted file mode 100644 index 9badf58..0000000 --- a/Pods/Kiwi/Classes/Matchers/KWStringContainsMatcher.h +++ /dev/null @@ -1,19 +0,0 @@ -// -// KWStringContainsMatcher.h -// Kiwi -// -// Created by Stewart Gleadow on 7/06/12. -// Copyright (c) 2012 Allen Ding. All rights reserved. -// - -#import -#import "KWGenericMatcher.h" - -@interface KWStringContainsMatcher : NSObject - -+ (id)matcherWithSubstring:(NSString *)aSubstring DEPRECATED_ATTRIBUTE; -- (id)initWithSubstring:(NSString *)aSubstring DEPRECATED_ATTRIBUTE; - -@end - -#define hasSubstring(substring) [KWStringContainsMatcher matcherWithSubstring:substring] diff --git a/Pods/Kiwi/Classes/Matchers/KWStringContainsMatcher.m b/Pods/Kiwi/Classes/Matchers/KWStringContainsMatcher.m deleted file mode 100644 index 6230e81..0000000 --- a/Pods/Kiwi/Classes/Matchers/KWStringContainsMatcher.m +++ /dev/null @@ -1,42 +0,0 @@ -// -// StringContainsMatcher.m -// Kiwi -// -// Created by Stewart Gleadow on 7/06/12. -// Copyright (c) 2012 Allen Ding. All rights reserved. -// - -#import "KWStringContainsMatcher.h" - -@interface KWStringContainsMatcher(){} -@property (nonatomic, copy) NSString *substring; -@end - -@implementation KWStringContainsMatcher - -+ (id)matcherWithSubstring:(NSString *)aSubstring { - return [[self alloc] initWithSubstring:aSubstring]; -} - -- (id)initWithSubstring:(NSString *)aSubstring { - self = [super init]; - if (self) { - _substring = [aSubstring copy]; - } - return self; -} - - -- (BOOL)matches:(id)item { - if (![item respondsToSelector:@selector(rangeOfString:)]) { - return NO; - } - - return [item rangeOfString:self.substring].location != NSNotFound; -} - -- (NSString *)description { - return [NSString stringWithFormat:@"a string with substring '%@'", self.substring]; -} - -@end diff --git a/Pods/Kiwi/Classes/Matchers/KWStringPrefixMatcher.h b/Pods/Kiwi/Classes/Matchers/KWStringPrefixMatcher.h deleted file mode 100644 index 7c312cc..0000000 --- a/Pods/Kiwi/Classes/Matchers/KWStringPrefixMatcher.h +++ /dev/null @@ -1,18 +0,0 @@ -// -// StringPrefixMatcher.h -// Kiwi -// -// Created by Luke Redpath on 17/01/2011. -// Copyright 2011 Allen Ding. All rights reserved. -// - -#import - -@interface KWStringPrefixMatcher : NSObject - -+ (id)matcherWithPrefix:(NSString *)aPrefix; -- (id)initWithPrefix:(NSString *)aPrefix; - -@end - -#define hasPrefix(prefix) [KWStringPrefixMatcher matcherWithPrefix:prefix] diff --git a/Pods/Kiwi/Classes/Matchers/KWStringPrefixMatcher.m b/Pods/Kiwi/Classes/Matchers/KWStringPrefixMatcher.m deleted file mode 100644 index 81c1f89..0000000 --- a/Pods/Kiwi/Classes/Matchers/KWStringPrefixMatcher.m +++ /dev/null @@ -1,41 +0,0 @@ -// -// StringPrefixMatcher.m -// Kiwi -// -// Created by Luke Redpath on 17/01/2011. -// Copyright 2011 Allen Ding. All rights reserved. -// - -#import "KWStringPrefixMatcher.h" - -@interface KWStringPrefixMatcher(){} -@property (nonatomic, copy) NSString *prefix; -@end - -@implementation KWStringPrefixMatcher - -+ (id)matcherWithPrefix:(NSString *)aPrefix { - return [[self alloc] initWithPrefix:aPrefix]; -} - -- (id)initWithPrefix:(NSString *)aPrefix { - self = [super init]; - if (self) { - _prefix = [aPrefix copy]; - } - return self; -} - - -- (BOOL)matches:(id)item { - if (![item respondsToSelector:@selector(hasPrefix:)]) - return NO; - - return [item hasPrefix:self.prefix]; -} - -- (NSString *)description { - return [NSString stringWithFormat:@"a string with prefix '%@'", self.prefix]; -} - -@end diff --git a/Pods/Kiwi/Classes/Matchers/KWUserDefinedMatcher.h b/Pods/Kiwi/Classes/Matchers/KWUserDefinedMatcher.h deleted file mode 100644 index d1d50c7..0000000 --- a/Pods/Kiwi/Classes/Matchers/KWUserDefinedMatcher.h +++ /dev/null @@ -1,53 +0,0 @@ -// -// KWUserDefinedMatcher.h -// Kiwi -// -// Created by Luke Redpath on 16/06/2011. -// Copyright 2011 Allen Ding. All rights reserved. -// - -#import -#import "KWMatcher.h" - -typedef BOOL (^KWUserDefinedMatcherBlock)(); - -@interface KWUserDefinedMatcher : KWMatcher - -@property (nonatomic, assign) SEL selector; -@property (nonatomic, copy) NSString *failureMessageForShould; -@property (nonatomic, copy) NSString *failureMessageForShouldNot; -@property (nonatomic, copy) KWUserDefinedMatcherBlock matcherBlock; -@property (nonatomic, copy) NSString *description; - -+ (id)matcherWithSubject:(id)aSubject block:(KWUserDefinedMatcherBlock)aBlock; -- (id)initWithSubject:(id)aSubject block:(KWUserDefinedMatcherBlock)aBlock; -@end - -#pragma mark - - -typedef NSString * (^KWUserDefinedMatcherMessageBlock)(id); - -@interface KWUserDefinedMatcherBuilder : NSObject -{ - KWUserDefinedMatcher *matcher; - KWUserDefinedMatcherMessageBlock failureMessageForShouldBlock; - KWUserDefinedMatcherMessageBlock failureMessageForShouldNotBlock; - NSString *description; -} -@property (nonatomic, copy, readonly) NSString *key; - -+ (id)builder; -+ (id)builderForSelector:(SEL)aSelector; -- (id)initWithSelector:(SEL)aSelector; - -#pragma mark - Configuring The Matcher - -- (void)match:(KWUserDefinedMatcherBlock)block; -- (void)failureMessageForShould:(KWUserDefinedMatcherMessageBlock)block; -- (void)failureMessageForShouldNot:(KWUserDefinedMatcherMessageBlock)block; -- (void)description:(NSString *)description; - -#pragma mark - Buiding The Matcher - -- (KWUserDefinedMatcher *)buildMatcherWithSubject:(id)subject; -@end diff --git a/Pods/Kiwi/Classes/Matchers/KWUserDefinedMatcher.m b/Pods/Kiwi/Classes/Matchers/KWUserDefinedMatcher.m deleted file mode 100644 index bdb4294..0000000 --- a/Pods/Kiwi/Classes/Matchers/KWUserDefinedMatcher.m +++ /dev/null @@ -1,150 +0,0 @@ -// -// KWUserDefinedMatcher.m -// Kiwi -// -// Created by Luke Redpath on 16/06/2011. -// Copyright 2011 Allen Ding. All rights reserved. -// - -#import "KWUserDefinedMatcher.h" - -@interface KWUserDefinedMatcher(){} -@property (nonatomic, copy) NSInvocation *invocation; -@end - -@implementation KWUserDefinedMatcher - -@synthesize selector; -@synthesize failureMessageForShould; -@synthesize failureMessageForShouldNot; -@synthesize matcherBlock; -@synthesize description; - -+ (id)matcherWithSubject:(id)aSubject block:(KWUserDefinedMatcherBlock)aBlock { - return [[self alloc] initWithSubject:aSubject block:aBlock]; -} - -- (id)initWithSubject:(id)aSubject block:(KWUserDefinedMatcherBlock)aBlock { - self = [super initWithSubject:aSubject]; - if (self) { - matcherBlock = [aBlock copy]; - self.description = @"match user defined matcher"; - } - return self; -} - - -- (BOOL)evaluate { - BOOL result; - - if (self.invocation.methodSignature.numberOfArguments == 3) { - id argument; - [self.invocation getArgument:&argument atIndex:2]; - result = matcherBlock(self.subject, argument); - } else { - result = matcherBlock(self.subject); - } - return result; -} - -#pragma mark - Message forwarding - -- (BOOL)respondsToSelector:(SEL)aSelector { - if (aSelector == self.selector) { - return YES; - } - return [super respondsToSelector:aSelector]; -} - -- (void)forwardInvocation:(NSInvocation *)anInvocation { - _invocation = anInvocation; -} - -- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector { - if (aSelector == self.selector) { - NSString *selectorString = NSStringFromSelector(self.selector); - - /** - * TODO: find a way of doing this that: - * - doesn't require dummy methods (create the method signatures manually) - * - supports an unlimited number of arguments - */ - if ([selectorString hasSuffix:@":"]) { - return [self methodSignatureForSelector:@selector(matcherMethodWithArgument:)]; - } else { - return [self methodSignatureForSelector:@selector(matcherMethodWithoutArguments)]; - } - } - return [super methodSignatureForSelector:aSelector]; -} - -- (void)matcherMethodWithoutArguments {} -- (void)matcherMethodWithArgument:(id)argument {} - -@end - -#pragma mark - - -@implementation KWUserDefinedMatcherBuilder - -+ (id)builder { - return [self builderForSelector:nil]; -} - -+ (id)builderForSelector:(SEL)aSelector { - return [[self alloc] initWithSelector:aSelector]; -} - -- (id)initWithSelector:(SEL)aSelector { - self = [super init]; - if (self) { - matcher = [[KWUserDefinedMatcher alloc] init]; - matcher.selector = aSelector; - } - return self; -} - - -- (NSString *)key { - return NSStringFromSelector(matcher.selector); -} - -#pragma mark - Configuring The Matcher - -- (void)match:(KWUserDefinedMatcherBlock)block { - matcher.matcherBlock = block; -} - -- (void)failureMessageForShould:(KWUserDefinedMatcherMessageBlock)block { - failureMessageForShouldBlock = [block copy]; -} - -- (void)failureMessageForShouldNot:(KWUserDefinedMatcherMessageBlock)block { - failureMessageForShouldNotBlock = [block copy]; -} - -- (void)description:(NSString *)aDescription { - description = [aDescription copy]; -} - -#pragma mark - Buiding The Matcher - -- (KWUserDefinedMatcher *)buildMatcherWithSubject:(id)subject { - [matcher setSubject:subject]; - - if (failureMessageForShouldBlock) { - [matcher setFailureMessageForShould:failureMessageForShouldBlock(subject)]; - } - - if (failureMessageForShouldNotBlock) { - [matcher setFailureMessageForShouldNot:failureMessageForShouldNotBlock(subject)]; - } - - if (description) { - [matcher setDescription:description]; - } - - return matcher; -} - -@end diff --git a/Pods/Kiwi/Classes/Mocking/KWMock.h b/Pods/Kiwi/Classes/Mocking/KWMock.h deleted file mode 100644 index 8163941..0000000 --- a/Pods/Kiwi/Classes/Mocking/KWMock.h +++ /dev/null @@ -1,87 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" -#import "KWInvocationCapturer.h" - -@class KWMessagePattern; -@class KWCaptureSpy; - -@protocol KWMessageSpying; -@protocol KWVerifying; - -@interface KWMock : NSObject - -#pragma mark - Initializing - -- (id)initForClass:(Class)aClass; -- (id)initForProtocol:(Protocol *)aProtocol; -- (id)initWithName:(NSString *)aName forClass:(Class)aClass; -- (id)initWithName:(NSString *)aName forProtocol:(Protocol *)aProtocol; - -- (id)initAsNullMockForClass:(Class)aClass; -- (id)initAsNullMockForProtocol:(Protocol *)aProtocol; -- (id)initAsNullMockWithName:(NSString *)aName forClass:(Class)aClass; -- (id)initAsNullMockWithName:(NSString *)aName forProtocol:(Protocol *)aProtocol; - -- (id)initAsPartialMockForObject:(id)object; -- (id)initAsPartialMockWithName:(NSString *)aName forObject:(id)object; - -+ (id)mockForClass:(Class)aClass; -+ (id)mockForProtocol:(Protocol *)aProtocol; -+ (id)mockWithName:(NSString *)aName forClass:(Class)aClass; -+ (id)mockWithName:(NSString *)aName forProtocol:(Protocol *)aProtocol; - -+ (id)nullMockForClass:(Class)aClass; -+ (id)nullMockForProtocol:(Protocol *)aProtocol; -+ (id)nullMockWithName:(NSString *)aName forClass:(Class)aClass ; -+ (id)nullMockWithName:(NSString *)aName forProtocol:(Protocol *)aProtocol; - -+ (id)partialMockForObject:(id)object; -+ (id)partialMockWithName:(NSString *)aName forObject:(id)object; - -#pragma mark - Properties - -@property (nonatomic, assign, readonly) BOOL isNullMock; -@property (nonatomic, assign, readonly) BOOL isPartialMock; -@property (nonatomic, copy, readonly) NSString *mockName; -@property (nonatomic, assign, readonly) Class mockedClass; -@property (nonatomic, strong, readonly) id mockedObject; -@property (nonatomic, assign, readonly) Protocol *mockedProtocol; - -#pragma mark - Stubbing Methods - -- (void)stub:(SEL)aSelector; -- (void)stub:(SEL)aSelector withBlock:(id (^)(NSArray *params))block; -- (void)stub:(SEL)aSelector withArguments:(id)firstArgument, ...; -- (void)stub:(SEL)aSelector andReturn:(id)aValue; -- (void)stub:(SEL)aSelector andReturn:(id)aValue withArguments:(id)firstArgument, ...; - -- (id)stub; -- (id)stubAndReturn:(id)aValue; -- (id)stubAndReturn:(id)aValue times:(id)times afterThatReturn:(id)aSecondValue; - -- (void)stubMessagePattern:(KWMessagePattern *)aMessagePattern andReturn:(id)aValue; -- (void)stubMessagePattern:(KWMessagePattern *)aMessagePattern andReturn:(id)aValue times:(id)times afterThatReturn:(id)aSecondValue; - -- (void)clearStubs; - -#pragma mark - Spying on Messages - -- (void)addMessageSpy:(id)aSpy forMessagePattern:(KWMessagePattern *)aMessagePattern; -- (void)removeMessageSpy:(id)aSpy forMessagePattern:(KWMessagePattern *)aMessagePattern; - - -#pragma mark - Expecting Messages - -- (void)expect:(SEL)aSelector; -- (void)expect:(SEL)aSelector withArguments:(id)firstArgument, ...; - -- (id)expect; - -- (void)expectMessagePattern:(KWMessagePattern *)aMessagePattern; - -@end diff --git a/Pods/Kiwi/Classes/Mocking/KWMock.m b/Pods/Kiwi/Classes/Mocking/KWMock.m deleted file mode 100644 index 321e009..0000000 --- a/Pods/Kiwi/Classes/Mocking/KWMock.m +++ /dev/null @@ -1,626 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KWMock.h" -#import -#import "KWFormatter.h" -#import "KWMessagePattern.h" -#import "KWMessageSpying.h" -#import "KWStringUtilities.h" -#import "KWStub.h" -#import "KWWorkarounds.h" -#import "NSInvocation+KiwiAdditions.h" -#import "KWCaptureSpy.h" - -static NSString * const ExpectOrStubTagKey = @"ExpectOrStubTagKey"; -static NSString * const StubTag = @"StubTag"; -static NSString * const ExpectTag = @"ExpectTag"; -static NSString * const StubValueKey = @"StubValueKey"; -static NSString * const StubSecondValueKey = @"StubSecondValueKey"; -static NSString * const ChangeStubValueAfterTimesKey = @"ChangeStubValueAfterTimesKey"; - -@interface KWMock() - -@property (nonatomic, readonly) NSMutableArray *stubs; -@property (nonatomic, readonly) NSMutableArray *expectedMessagePatterns; -@property (nonatomic, readonly) NSMapTable *messageSpies; - -@end - -@implementation KWMock - -#pragma mark - Initializing - -- (id)init { - // May already have been initialized since stubbing -init is allowed! - if (self.stubs != nil) { - KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:_cmd]; - [self expectMessagePattern:messagePattern]; - NSInvocation *invocation = [NSInvocation invocationWithTarget:self selector:_cmd]; - - if ([self processReceivedInvocation:invocation]) { - __unsafe_unretained id result = nil; - [invocation getReturnValue:&result]; - return result; - } else { - return self; - } - } - - return [self initAsNullMock:NO withName:nil forClass:nil protocol:nil]; -} - -- (id)initForClass:(Class)aClass { - return [self initAsNullMock:NO withName:nil forClass:aClass protocol:nil]; -} - -- (id)initForProtocol:(Protocol *)aProtocol { - return [self initAsNullMock:NO withName:nil forClass:nil protocol:aProtocol]; -} - -- (id)initWithName:(NSString *)aName forClass:(Class)aClass { - return [self initAsNullMock:NO withName:aName forClass:aClass protocol:nil]; -} - -- (id)initWithName:(NSString *)aName forProtocol:(Protocol *)aProtocol { - return [self initAsNullMock:NO withName:aName forClass:nil protocol:aProtocol]; -} - -- (id)initAsNullMockForClass:(Class)aClass { - return [self initAsNullMock:YES withName:nil forClass:aClass protocol:nil]; -} - -- (id)initAsNullMockForProtocol:(Protocol *)aProtocol { - return [self initAsNullMock:YES withName:nil forClass:nil protocol:aProtocol]; -} - -- (id)initAsNullMockWithName:(NSString *)aName forClass:(Class)aClass { - return [self initAsNullMock:YES withName:aName forClass:aClass protocol:nil]; -} - -- (id)initAsNullMockWithName:(NSString *)aName forProtocol:(Protocol *)aProtocol { - return [self initAsNullMock:YES withName:aName forClass:nil protocol:aProtocol]; -} - -- (id)initAsNullMock:(BOOL)nullMockFlag withName:(NSString *)aName forClass:(Class)aClass protocol:(Protocol *)aProtocol { - self = [super init]; - if (self) { - _isNullMock = nullMockFlag; - _mockName = [aName copy]; - _mockedClass = aClass; - _mockedProtocol = aProtocol; - _stubs = [[NSMutableArray alloc] init]; - _expectedMessagePatterns = [[NSMutableArray alloc] init]; - _messageSpies = [NSMapTable mapTableWithKeyOptions:NSMapTableStrongMemory valueOptions:NSMapTableStrongMemory]; - } - - return self; -} - -- (id)initAsPartialMockForObject:(id)object { - return [self initAsPartialMockWithName:nil forObject:object]; -} - -- (id)initAsPartialMockWithName:(NSString *)aName forObject:(id)object { - self = [self initAsNullMock:YES withName:aName forClass:[object class] protocol:nil]; - if (self) { - _isPartialMock = YES; - _mockedObject = object; - } - return self; -} - -+ (id)mockForClass:(Class)aClass { - return [[self alloc] initForClass:aClass]; -} - -+ (id)mockForProtocol:(Protocol *)aProtocol { - return [[self alloc] initForProtocol:aProtocol]; -} - -+ (id)mockWithName:(NSString *)aName forClass:(Class)aClass { - return [[self alloc] initWithName:aName forClass:aClass]; -} - -+ (id)mockWithName:(NSString *)aName forProtocol:(Protocol *)aProtocol { - return [[self alloc] initWithName:aName forProtocol:aProtocol]; -} - -+ (id)nullMockForClass:(Class)aClass { - return [[self alloc] initAsNullMockForClass:aClass]; -} - -+ (id)nullMockForProtocol:(Protocol *)aProtocol { - return [[self alloc] initAsNullMockForProtocol:aProtocol]; -} - -+ (id)nullMockWithName:(NSString *)aName forClass:(Class)aClass { - return [[self alloc] initAsNullMockWithName:aName forClass:aClass]; -} - -+ (id)nullMockWithName:(NSString *)aName forProtocol:(Protocol *)aProtocol { - return [[self alloc] initAsNullMockWithName:aName forProtocol:aProtocol]; -} - -+ (id)partialMockWithName:(NSString *)aName forObject:(id)object { - return [[self alloc] initAsPartialMockWithName:aName forObject:object]; -} - -+ (id)partialMockForObject:(id)object { - return [[self alloc] initAsPartialMockForObject:object]; -} - -#pragma mark - Getting Transitive Closure For Mocked Protocols - -- (NSSet *)mockedProtocolTransitiveClosureSet { - if (self.mockedProtocol == nil) - return nil; - - NSMutableSet *protocolSet = [NSMutableSet set]; - NSMutableArray *protocolQueue = [NSMutableArray array]; - [protocolQueue addObject:self.mockedProtocol]; - - do { - Protocol *protocol = [protocolQueue lastObject]; - [protocolSet addObject:protocol]; - [protocolQueue removeLastObject]; - - unsigned int count = 0; - Protocol *__unsafe_unretained*protocols = protocol_copyProtocolList(protocol, &count); - - if (count == 0) - continue; - - for (unsigned int i = 0; i < count; ++i) - [protocolQueue addObject:protocols[i]]; - - free(protocols); - } while ([protocolQueue count] != 0); - - return protocolSet; -} - -#pragma mark - Stubbing Methods - -- (void)removeStubWithMessagePattern:(KWMessagePattern *)messagePattern { - KWStub *stub = [self currentStubWithMessagePattern:messagePattern]; - if (stub) { - [self.stubs removeObject:stub]; - } -} - -- (KWStub *)currentStubWithMessagePattern:(KWMessagePattern *)messagePattern { - NSUInteger stubCount = [self.stubs count]; - - for (NSUInteger i = 0; i < stubCount; ++i) { - KWStub *stub = (self.stubs)[i]; - - if ([stub.messagePattern isEqualToMessagePattern:messagePattern]) { - return stub; - } - } - return nil; -} - -- (void)stub:(SEL)aSelector { - KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:aSelector]; - [self stubMessagePattern:messagePattern andReturn:nil]; -} - -- (void)stub:(SEL)aSelector withBlock:(id (^)(NSArray *params))block { - KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:aSelector]; - [self stubMessagePattern:messagePattern withBlock:block]; -} - -- (void)stub:(SEL)aSelector withArguments:(id)firstArgument, ... { - va_list argumentList; - va_start(argumentList, firstArgument); - KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:aSelector firstArgumentFilter:firstArgument argumentList:argumentList]; - [self stubMessagePattern:messagePattern andReturn:nil]; -} - -- (void)stub:(SEL)aSelector andReturn:(id)aValue { - KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:aSelector]; - [self stubMessagePattern:messagePattern andReturn:aValue]; -} - -- (void)stub:(SEL)aSelector andReturn:(id)aValue withArguments:(id)firstArgument, ... { - va_list argumentList; - va_start(argumentList, firstArgument); - KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:aSelector firstArgumentFilter:firstArgument argumentList:argumentList]; - [self stubMessagePattern:messagePattern andReturn:aValue]; -} - -- (id)stub { - NSDictionary *userInfo = @{ExpectOrStubTagKey: StubTag}; - return [KWInvocationCapturer invocationCapturerWithDelegate:self userInfo:userInfo]; -} - -- (id)stubAndReturn:(id)aValue { - NSDictionary *userInfo = @{ExpectOrStubTagKey: StubTag, - StubValueKey: aValue}; - return [KWInvocationCapturer invocationCapturerWithDelegate:self userInfo:userInfo]; -} - -- (id)stubAndReturn:(id)aValue times:(id)times afterThatReturn:(id)aSecondValue { - NSDictionary *userInfo = @{ExpectOrStubTagKey: StubTag, StubValueKey: aValue, ChangeStubValueAfterTimesKey: times, StubSecondValueKey: aSecondValue}; - return [KWInvocationCapturer invocationCapturerWithDelegate:self userInfo:userInfo]; -} - -- (void)stubMessagePattern:(KWMessagePattern *)aMessagePattern andReturn:(id)aValue { - [self stubMessagePattern:aMessagePattern andReturn:aValue overrideExisting:YES]; -} - -- (void)stubMessagePattern:(KWMessagePattern *)aMessagePattern andReturn:(id)aValue overrideExisting:(BOOL)overrideExisting { - [self expectMessagePattern:aMessagePattern]; - KWStub *existingStub = [self currentStubWithMessagePattern:aMessagePattern]; - if (existingStub) { - if (overrideExisting) { - [self.stubs removeObject:existingStub]; - } else { - return; - } - } - KWStub *stub = [KWStub stubWithMessagePattern:aMessagePattern value:aValue]; - [self.stubs addObject:stub]; -} - -- (void)stubMessagePattern:(KWMessagePattern *)aMessagePattern withBlock:(id (^)(NSArray *params))block { - [self expectMessagePattern:aMessagePattern]; - [self removeStubWithMessagePattern:aMessagePattern]; - KWStub *stub = [KWStub stubWithMessagePattern:aMessagePattern block:block]; - [self.stubs addObject:stub]; -} - -- (void)stubMessagePattern:(KWMessagePattern *)aMessagePattern andReturn:(id)aValue times:(id)times afterThatReturn:(id)aSecondValue { - [self expectMessagePattern:aMessagePattern]; - [self removeStubWithMessagePattern:aMessagePattern]; - KWStub *stub = [KWStub stubWithMessagePattern:aMessagePattern value:aValue times:times afterThatReturn:aSecondValue]; - [self.stubs addObject:stub]; -} - -- (void)clearStubs { - [self.stubs removeAllObjects]; -} - -#pragma mark - Spying on Messages - -- (void)addMessageSpy:(id)aSpy forMessagePattern:(KWMessagePattern *)aMessagePattern { - [self expectMessagePattern:aMessagePattern]; - NSMutableArray *messagePatternSpies = [self.messageSpies objectForKey:aMessagePattern]; - - if (messagePatternSpies == nil) { - messagePatternSpies = [[NSMutableArray alloc] init]; - [self.messageSpies setObject:messagePatternSpies forKey:aMessagePattern]; - } - - if (![messagePatternSpies containsObject:aSpy]) - [messagePatternSpies addObject:aSpy]; -} - -- (void)removeMessageSpy:(id)aSpy forMessagePattern:(KWMessagePattern *)aMessagePattern { - NSMutableArray *messagePatternSpies = [self.messageSpies objectForKey:aMessagePattern]; - [messagePatternSpies removeObject:aSpy]; -} - -#pragma mark - Expecting Message Patterns - -- (void)expect:(SEL)aSelector { - KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:aSelector]; - [self expectMessagePattern:messagePattern]; -} - -- (void)expect:(SEL)aSelector withArguments:(id)firstArgument, ... { - va_list argumentList; - va_start(argumentList, firstArgument); - KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:aSelector firstArgumentFilter:firstArgument argumentList:argumentList]; - [self expectMessagePattern:messagePattern]; -} - -- (id)expect { - NSDictionary *userInfo = @{ExpectOrStubTagKey: ExpectTag}; - return [KWInvocationCapturer invocationCapturerWithDelegate:self userInfo:userInfo]; -} - -- (void)expectMessagePattern:(KWMessagePattern *)aMessagePattern { - if (![self.expectedMessagePatterns containsObject:aMessagePattern]) - [self.expectedMessagePatterns addObject:aMessagePattern]; -} - -#pragma mark - Capturing Invocations - -- (NSMethodSignature *)invocationCapturer:(KWInvocationCapturer *)anInvocationCapturer methodSignatureForSelector:(SEL)aSelector { - return [self methodSignatureForSelector:aSelector]; -} - -- (void)invocationCapturer:(KWInvocationCapturer *)anInvocationCapturer didCaptureInvocation:(NSInvocation *)anInvocation { - KWMessagePattern *messagePattern = [KWMessagePattern messagePatternFromInvocation:anInvocation]; - NSString *tag = (anInvocationCapturer.userInfo)[ExpectOrStubTagKey]; - if ([tag isEqualToString:StubTag]) { - id value = (anInvocationCapturer.userInfo)[StubValueKey]; - if (!(anInvocationCapturer.userInfo)[StubSecondValueKey]) { - [self stubMessagePattern:messagePattern andReturn:value]; - } else { - id times = (anInvocationCapturer.userInfo)[ChangeStubValueAfterTimesKey]; - id secondValue = (anInvocationCapturer.userInfo)[StubSecondValueKey]; - [self stubMessagePattern:messagePattern andReturn:value times:times afterThatReturn:secondValue]; - } - } else { - [self expectMessagePattern:messagePattern]; - } -} - - -#pragma mark - Handling Invocations - -- (NSString *)namePhrase { - if (self.mockName == nil) - return @"mock"; - else - return [NSString stringWithFormat:@"mock \"%@\"", self.mockName]; -} - -- (BOOL)processReceivedInvocation:(NSInvocation *)invocation { - for (KWMessagePattern *messagePattern in self.messageSpies) { - if ([messagePattern matchesInvocation:invocation]) { - NSArray *spies = [self.messageSpies objectForKey:messagePattern]; - - for (id spy in spies) { - [spy object:self didReceiveInvocation:invocation]; - } - } - } - - for (KWStub *stub in self.stubs) { - if ([stub processInvocation:invocation]) - return YES; - } - - return NO; -} - -- (NSMethodSignature *)mockedProtocolMethodSignatureForSelector:(SEL)aSelector { - NSSet *protocols = [self mockedProtocolTransitiveClosureSet]; - - for (Protocol *protocol in protocols) { - struct objc_method_description description = protocol_getMethodDescription(protocol, aSelector, NO, YES); - - if (description.types == nil) - description = protocol_getMethodDescription(protocol, aSelector, YES, YES); - - if (description.types != nil) - return [NSMethodSignature signatureWithObjCTypes:description.types]; - } - - return nil; -} - -- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector { - NSMethodSignature *methodSignature = [self.mockedClass instanceMethodSignatureForSelector:aSelector]; - - if (methodSignature != nil) - return methodSignature; - - methodSignature = [self mockedProtocolMethodSignatureForSelector:aSelector]; - - if (methodSignature != nil) - return methodSignature; - - NSString *encoding = KWEncodingForDefaultMethod(); - return [NSMethodSignature signatureWithObjCTypes:[encoding UTF8String]]; -} - -- (void)forwardInvocation:(NSInvocation *)anInvocation { -#if KW_TARGET_HAS_INVOCATION_EXCEPTION_BUG - @try { -#endif // #if KW_TARGET_HAS_INVOCATION_EXCEPTION_BUG - - if ([self processReceivedInvocation:anInvocation]) - return; - - if (self.isPartialMock) - [anInvocation invokeWithTarget:self.mockedObject]; - - if (self.isNullMock) - return; - - for (KWMessagePattern *expectedMessagePattern in self.expectedMessagePatterns) { - if ([expectedMessagePattern matchesInvocation:anInvocation]) - return; - } - - KWMessagePattern *messagePattern = [KWMessagePattern messagePatternFromInvocation:anInvocation]; - [NSException raise:@"KWMockException" format:@"%@ received unexpected message -%@", - [self namePhrase], - [messagePattern stringValue]]; - -#if KW_TARGET_HAS_INVOCATION_EXCEPTION_BUG - } @catch (NSException *exception) { - KWSetExceptionFromAcrossInvocationBoundary(exception); - } -#endif // #if KW_TARGET_HAS_INVOCATION_EXCEPTION_BUG -} - -#pragma mark - Testing Objects - -- (BOOL)mockedClassHasAncestorClass:(Class)aClass { - Class currentClass = self.mockedClass; - - while (currentClass != nil) { - if (currentClass == aClass) - return YES; - - currentClass = [currentClass superclass]; - } - - return NO; -} - -- (BOOL)mockedClassRespondsToSelector:(SEL)aSelector { - return [self.mockedClass instancesRespondToSelector:aSelector]; -} - -- (BOOL)mockedClassConformsToProtocol:(Protocol *)aProtocol { - return [self.mockedClass conformsToProtocol:aProtocol]; -} - -- (BOOL)mockedProtocolRespondsToSelector:(SEL)aSelector { - NSSet *protocols = [self mockedProtocolTransitiveClosureSet]; - - for (Protocol *protocol in protocols) { - struct objc_method_description description = protocol_getMethodDescription(protocol, aSelector, NO, YES); - - if (description.types == nil) - description = protocol_getMethodDescription(protocol, aSelector, YES, YES); - - if (description.types != nil) - return YES; - } - - return NO; -} - -- (BOOL)mockedProtocolConformsToProtocol:(Protocol *)aProtocol { - if (self.mockedProtocol == nil) - return NO; - - return protocol_isEqual(self.mockedProtocol, aProtocol) || protocol_conformsToProtocol(self.mockedProtocol, aProtocol); -} - -- (BOOL)isKindOfClass:(Class)aClass { - return [self mockedClassHasAncestorClass:aClass] || [super isKindOfClass:aClass]; -} - -- (BOOL)isMemberOfClass:(Class)aClass { - return self.mockedClass == aClass || [super isMemberOfClass:aClass]; -} - -- (BOOL)respondsToSelector:(SEL)aSelector { - return [self mockedClassRespondsToSelector:aSelector] || - [self mockedProtocolRespondsToSelector:aSelector] || - [super respondsToSelector:aSelector]; -} - -- (BOOL)conformsToProtocol:(Protocol *)aProtocol { - return [self mockedClassConformsToProtocol:aProtocol] || - [self mockedProtocolConformsToProtocol:aProtocol] || - [super conformsToProtocol:aProtocol]; -} - -#pragma mark - Whitelisted NSObject Methods - -- (BOOL)isEqual:(id)anObject { - KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:_cmd]; - [self expectMessagePattern:messagePattern]; - NSInvocation *invocation = [NSInvocation invocationWithTarget:self selector:_cmd messageArguments:&anObject]; - - if ([self processReceivedInvocation:invocation]) { - BOOL result = NO; - [invocation getReturnValue:&result]; - return result; - } else { - return [super isEqual:anObject]; - } -} - -- (NSUInteger)hash { - KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:_cmd]; - [self expectMessagePattern:messagePattern]; - NSInvocation *invocation = [NSInvocation invocationWithTarget:self selector:_cmd]; - - if ([self processReceivedInvocation:invocation]) { - NSUInteger result = 0; - [invocation getReturnValue:&result]; - return result; - } else { - return [super hash]; - } -} - -- (NSString *)description { - KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:_cmd]; - [self expectMessagePattern:messagePattern]; - NSInvocation *invocation = [NSInvocation invocationWithTarget:self selector:_cmd]; - - if ([self processReceivedInvocation:invocation]) { - __unsafe_unretained NSString *result = nil; - [invocation getReturnValue:&result]; - return result; - } else { - return [super description]; - } -} - -- (id)copy { - KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:_cmd]; - [self expectMessagePattern:messagePattern]; - NSInvocation *invocation = [NSInvocation invocationWithTarget:self selector:_cmd]; - - if ([self processReceivedInvocation:invocation]) { - __unsafe_unretained id result = nil; - [invocation getReturnValue:&result]; - return result; - } else { - return [super copy]; - } -} - -- (id)mutableCopy { - KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:_cmd]; - [self expectMessagePattern:messagePattern]; - NSInvocation *invocation = [NSInvocation invocationWithTarget:self selector:_cmd]; - - if ([self processReceivedInvocation:invocation]) { - __unsafe_unretained id result = nil; - [invocation getReturnValue:&result]; - return result; - } else { - return [super mutableCopy]; - } -} - -#pragma mark - -#pragma mark Key-Value Coding Support - -static id valueForKeyImplementation(id self, SEL _cmd, id key) { - KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:_cmd]; - [self expectMessagePattern:messagePattern]; - NSInvocation *invocation = [NSInvocation invocationWithTarget:self selector:_cmd messageArguments:&key]; - - if ([self processReceivedInvocation:invocation]) { - __unsafe_unretained id result = nil; - [invocation getReturnValue:&result]; - return result; - } else { - return nil; - } -} - -- (id)valueForKey:(NSString *)key { - return valueForKeyImplementation(self, _cmd, key); -} - -- (id)valueForKeyPath:(NSString *)keyPath { - return valueForKeyImplementation(self, _cmd, keyPath); -} - -static void setValueForKeyImplementation(id self, SEL _cmd, id a, id b) { - KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:_cmd]; - [self expectMessagePattern:messagePattern]; - NSInvocation *invocation = [NSInvocation invocationWithTarget:self selector:_cmd messageArguments:&a, &b]; - - [self processReceivedInvocation:invocation]; -} - -- (void)setValue:(id)value forKey:(NSString *)key { - setValueForKeyImplementation(self, _cmd, value, key); -} - -- (void)setValue:(id)value forKeyPath:(NSString *)keyPath { - setValueForKeyImplementation(self, _cmd, value, keyPath); -} - -@end diff --git a/Pods/Kiwi/Classes/Mocking/NSObject+KiwiMockAdditions.h b/Pods/Kiwi/Classes/Mocking/NSObject+KiwiMockAdditions.h deleted file mode 100644 index 34caacc..0000000 --- a/Pods/Kiwi/Classes/Mocking/NSObject+KiwiMockAdditions.h +++ /dev/null @@ -1,23 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" - -@protocol KiwiMockAdditions - -#pragma mark - Creating Mocks - -+ (id)mock; -+ (id)mockWithName:(NSString *)aName; - -+ (id)nullMock; -+ (id)nullMockWithName:(NSString *)aName; - -@end - -@interface NSObject(KiwiMockAdditions) - -@end diff --git a/Pods/Kiwi/Classes/Mocking/NSObject+KiwiMockAdditions.m b/Pods/Kiwi/Classes/Mocking/NSObject+KiwiMockAdditions.m deleted file mode 100644 index 7e7a0cf..0000000 --- a/Pods/Kiwi/Classes/Mocking/NSObject+KiwiMockAdditions.m +++ /dev/null @@ -1,30 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "NSObject+KiwiMockAdditions.h" -#import "KWMock.h" - -@implementation NSObject(KiwiMockAdditions) - -#pragma mark - Creating Mocks - -+ (id)mock { - return [KWMock mockForClass:[self class]]; -} - -+ (id)mockWithName:(NSString *)aName { - return [KWMock mockWithName:aName forClass:[self class]]; -} - -+ (id)nullMock { - return [KWMock nullMockForClass:[self class]]; -} - -+ (id)nullMockWithName:(NSString *)aName { - return [KWMock nullMockWithName:aName forClass:[self class]]; -} - -@end diff --git a/Pods/Kiwi/Classes/Nodes/KWAfterAllNode.h b/Pods/Kiwi/Classes/Nodes/KWAfterAllNode.h deleted file mode 100644 index 421ea5a..0000000 --- a/Pods/Kiwi/Classes/Nodes/KWAfterAllNode.h +++ /dev/null @@ -1,17 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" -#import "KWBlockNode.h" -#import "KWExampleNode.h" - -@interface KWAfterAllNode : KWBlockNode - -#pragma mark - Initializing - -+ (id)afterAllNodeWithCallSite:(KWCallSite *)aCallSite block:(void (^)(void))block; - -@end diff --git a/Pods/Kiwi/Classes/Nodes/KWAfterAllNode.m b/Pods/Kiwi/Classes/Nodes/KWAfterAllNode.m deleted file mode 100644 index efb0a03..0000000 --- a/Pods/Kiwi/Classes/Nodes/KWAfterAllNode.m +++ /dev/null @@ -1,24 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KWAfterAllNode.h" -#import "KWExampleNodeVisitor.h" - -@implementation KWAfterAllNode - -#pragma mark - Initializing - -+ (id)afterAllNodeWithCallSite:(KWCallSite *)aCallSite block:(void (^)(void))block { - return [[self alloc] initWithCallSite:aCallSite description:nil block:block]; -} - -#pragma mark - Accepting Visitors - -- (void)acceptExampleNodeVisitor:(id)aVisitor { - [aVisitor visitAfterAllNode:self]; -} - -@end diff --git a/Pods/Kiwi/Classes/Nodes/KWAfterEachNode.h b/Pods/Kiwi/Classes/Nodes/KWAfterEachNode.h deleted file mode 100644 index 4e68279..0000000 --- a/Pods/Kiwi/Classes/Nodes/KWAfterEachNode.h +++ /dev/null @@ -1,17 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" -#import "KWBlockNode.h" -#import "KWExampleNode.h" - -@interface KWAfterEachNode : KWBlockNode - -#pragma mark - Initializing - -+ (id)afterEachNodeWithCallSite:(KWCallSite *)aCallSite block:(void (^)(void))block; - -@end diff --git a/Pods/Kiwi/Classes/Nodes/KWAfterEachNode.m b/Pods/Kiwi/Classes/Nodes/KWAfterEachNode.m deleted file mode 100644 index e6edd3e..0000000 --- a/Pods/Kiwi/Classes/Nodes/KWAfterEachNode.m +++ /dev/null @@ -1,24 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KWAfterEachNode.h" -#import "KWExampleNodeVisitor.h" - -@implementation KWAfterEachNode - -#pragma mark - Initializing - -+ (id)afterEachNodeWithCallSite:(KWCallSite *)aCallSite block:(void (^)(void))block { - return [[self alloc] initWithCallSite:aCallSite description:nil block:block]; -} - -#pragma mark - Accepting Visitors - -- (void)acceptExampleNodeVisitor:(id)aVisitor { - [aVisitor visitAfterEachNode:self]; -} - -@end diff --git a/Pods/Kiwi/Classes/Nodes/KWBeforeAllNode.h b/Pods/Kiwi/Classes/Nodes/KWBeforeAllNode.h deleted file mode 100644 index f5cd2e1..0000000 --- a/Pods/Kiwi/Classes/Nodes/KWBeforeAllNode.h +++ /dev/null @@ -1,17 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" -#import "KWBlockNode.h" -#import "KWExampleNode.h" - -@interface KWBeforeAllNode : KWBlockNode - -#pragma mark - Initializing - -+ (id)beforeAllNodeWithCallSite:(KWCallSite *)aCallSite block:(void (^)(void))block; - -@end diff --git a/Pods/Kiwi/Classes/Nodes/KWBeforeAllNode.m b/Pods/Kiwi/Classes/Nodes/KWBeforeAllNode.m deleted file mode 100644 index 41b2e08..0000000 --- a/Pods/Kiwi/Classes/Nodes/KWBeforeAllNode.m +++ /dev/null @@ -1,24 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KWBeforeAllNode.h" -#import "KWExampleNodeVisitor.h" - -@implementation KWBeforeAllNode - -#pragma mark - Initializing - -+ (id)beforeAllNodeWithCallSite:(KWCallSite *)aCallSite block:(void (^)(void))block { - return [[self alloc] initWithCallSite:aCallSite description:nil block:block]; -} - -#pragma mark - Accepting Visitors - -- (void)acceptExampleNodeVisitor:(id)aVisitor { - [aVisitor visitBeforeAllNode:self]; -} - -@end diff --git a/Pods/Kiwi/Classes/Nodes/KWBeforeEachNode.h b/Pods/Kiwi/Classes/Nodes/KWBeforeEachNode.h deleted file mode 100644 index 21c5229..0000000 --- a/Pods/Kiwi/Classes/Nodes/KWBeforeEachNode.h +++ /dev/null @@ -1,17 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" -#import "KWBlockNode.h" -#import "KWExampleNode.h" - -@interface KWBeforeEachNode : KWBlockNode - -#pragma mark - Initializing - -+ (id)beforeEachNodeWithCallSite:(KWCallSite *)aCallSite block:(void (^)(void))block; - -@end diff --git a/Pods/Kiwi/Classes/Nodes/KWBeforeEachNode.m b/Pods/Kiwi/Classes/Nodes/KWBeforeEachNode.m deleted file mode 100644 index 8c143e5..0000000 --- a/Pods/Kiwi/Classes/Nodes/KWBeforeEachNode.m +++ /dev/null @@ -1,24 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KWBeforeEachNode.h" -#import "KWExampleNodeVisitor.h" - -@implementation KWBeforeEachNode - -#pragma mark - Initializing - -+ (id)beforeEachNodeWithCallSite:(KWCallSite *)aCallSite block:(void (^)(void))block { - return [[self alloc] initWithCallSite:aCallSite description:nil block:block]; -} - -#pragma mark - Accepting Visitors - -- (void)acceptExampleNodeVisitor:(id)aVisitor { - [aVisitor visitBeforeEachNode:self]; -} - -@end diff --git a/Pods/Kiwi/Classes/Nodes/KWBlockNode.h b/Pods/Kiwi/Classes/Nodes/KWBlockNode.h deleted file mode 100644 index 050ba5c..0000000 --- a/Pods/Kiwi/Classes/Nodes/KWBlockNode.h +++ /dev/null @@ -1,34 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" -#import "KWBlock.h" - -@class KWCallSite; - -@interface KWBlockNode : NSObject - -#pragma mark - Initializing - -- (id)initWithCallSite:(KWCallSite *)aCallSite description:(NSString *)aDescription block:(void (^)(void))block; - -#pragma mark - Getting Call Sites - -@property (nonatomic, strong, readonly) KWCallSite *callSite; - -#pragma mark - Getting Descriptions - -@property (nonatomic, copy) NSString *description; - -#pragma mark - Getting Blocks - -@property (nonatomic, copy, readonly) void (^block)(void); - -#pragma mark - Performing blocks - -- (void)performBlock; - -@end diff --git a/Pods/Kiwi/Classes/Nodes/KWBlockNode.m b/Pods/Kiwi/Classes/Nodes/KWBlockNode.m deleted file mode 100644 index 4dfd572..0000000 --- a/Pods/Kiwi/Classes/Nodes/KWBlockNode.m +++ /dev/null @@ -1,30 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KWBlockNode.h" - -@implementation KWBlockNode - -@synthesize description = _description; - -#pragma mark - Initializing - -- (id)initWithCallSite:(KWCallSite *)aCallSite description:(NSString *)aDescription block:(void (^)(void))block { - self = [super init]; - if (self) { - _callSite = aCallSite; - _description = [aDescription copy]; - _block = [block copy]; - } - - return self; -} - -- (void)performBlock { - if (self.block != nil) { self.block(); } -} - -@end diff --git a/Pods/Kiwi/Classes/Nodes/KWContextNode.h b/Pods/Kiwi/Classes/Nodes/KWContextNode.h deleted file mode 100644 index 48df4e0..0000000 --- a/Pods/Kiwi/Classes/Nodes/KWContextNode.h +++ /dev/null @@ -1,65 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" -#import "KWExampleNode.h" - -@class KWAfterAllNode; -@class KWAfterEachNode; -@class KWBeforeAllNode; -@class KWBeforeEachNode; -@class KWCallSite; -@class KWLetNode; -@class KWItNode; -@class KWPendingNode; -@class KWRegisterMatchersNode; -@class KWExample; - -@interface KWContextNode : NSObject - -#pragma mark - Initializing - -- (id)initWithCallSite:(KWCallSite *)aCallSite parentContext:(KWContextNode *)node description:(NSString *)aDescription; - -+ (id)contextNodeWithCallSite:(KWCallSite *)aCallSite parentContext:(KWContextNode *)contextNode description:(NSString *)aDescription; - -#pragma mark - Getting Call Sites - -@property (nonatomic, weak, readonly) KWCallSite *callSite; - -#pragma mark - Getting Descriptions - -@property (readonly, copy) NSString *description; - -#pragma mark - Managing Nodes - -@property (nonatomic, strong) KWBeforeAllNode *beforeAllNode; -@property (nonatomic, strong) KWAfterAllNode *afterAllNode; -@property (nonatomic, strong) KWBeforeEachNode *beforeEachNode; -@property (nonatomic, strong) KWAfterEachNode *afterEachNode; -@property (nonatomic, readonly) NSArray *nodes; -@property (nonatomic, readonly) NSArray *registerMatchersNodes; -@property (nonatomic, readonly) NSArray *letNodes; - -@property (nonatomic, readonly) KWContextNode *parentContext; - -@property (nonatomic, assign) BOOL isFocused; - -- (void)addContextNode:(KWContextNode *)aNode; -- (void)addLetNode:(KWLetNode *)aNode; -- (void)addRegisterMatchersNode:(KWRegisterMatchersNode *)aNode; -- (void)addItNode:(KWItNode *)aNode; -- (void)addPendingNode:(KWPendingNode *)aNode; - -- (KWLetNode *)letNodeTree; - -- (void)performExample:(KWExample *)example withBlock:(void (^)(void))exampleBlock; - -#pragma mark - Accepting Visitors - -- (void)acceptExampleNodeVisitor:(id)aVisitor; - -@end diff --git a/Pods/Kiwi/Classes/Nodes/KWContextNode.m b/Pods/Kiwi/Classes/Nodes/KWContextNode.m deleted file mode 100644 index 08011f1..0000000 --- a/Pods/Kiwi/Classes/Nodes/KWContextNode.m +++ /dev/null @@ -1,152 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KWAfterAllNode.h" -#import "KWAfterEachNode.h" -#import "KWBeforeAllNode.h" -#import "KWBeforeEachNode.h" -#import "KWLetNode.h" -#import "KWCallSite.h" -#import "KWContextNode.h" -#import "KWExampleNodeVisitor.h" -#import "KWExample.h" -#import "KWFailure.h" -#import "KWRegisterMatchersNode.h" -#import "KWSymbolicator.h" - -static NSString * const KWContextNodeException = @"KWContextNodeException"; - -@interface KWContextNode() - -@property (nonatomic, assign) NSUInteger performedExampleCount; - -@end - -@implementation KWContextNode - -@synthesize description = _description; - -#pragma mark - Initializing - -- (id)initWithCallSite:(KWCallSite *)aCallSite parentContext:(KWContextNode *)node description:(NSString *)aDescription { - self = [super init]; - if (self) { - _parentContext = node; - _callSite = aCallSite; - _description = [aDescription copy]; - _nodes = [NSMutableArray array]; - _registerMatchersNodes = [NSMutableArray array]; - _letNodes = [NSMutableArray array]; - _performedExampleCount = 0; - } - - return self; -} - -+ (id)contextNodeWithCallSite:(KWCallSite *)aCallSite parentContext:(KWContextNode *)contextNode description:(NSString *)aDescription { - return [[self alloc] initWithCallSite:aCallSite parentContext:contextNode description:aDescription]; -} - -- (void)addContextNode:(KWContextNode *)aNode { - [(NSMutableArray *)self.nodes addObject:aNode]; -} - -- (void)setBeforeEachNode:(KWBeforeEachNode *)aNode { - [self raiseIfNodeAlreadyExists:self.beforeEachNode]; - _beforeEachNode = aNode; -} - -- (void)setAfterEachNode:(KWAfterEachNode *)aNode { - [self raiseIfNodeAlreadyExists:self.afterEachNode]; - _afterEachNode = aNode; -} - -- (void)addLetNode:(KWLetNode *)aNode { - [(NSMutableArray *)self.letNodes addObject:aNode]; -} - -- (void)addRegisterMatchersNode:(KWRegisterMatchersNode *)aNode { - [(NSMutableArray *)self.registerMatchersNodes addObject:aNode]; -} - -- (KWLetNode *)letNodeTree { - KWLetNode *tree = [self.parentContext letNodeTree]; - for (KWLetNode *letNode in self.letNodes) { - if (!tree) { - tree = letNode; - } - else { - [tree addLetNode:letNode]; - } - } - return tree; -} - -- (void)addItNode:(KWItNode *)aNode { - [(NSMutableArray *)self.nodes addObject:aNode]; -} - -- (void)addPendingNode:(KWPendingNode *)aNode { - [(NSMutableArray *)self.nodes addObject:aNode]; -} - -- (void)performExample:(KWExample *)example withBlock:(void (^)(void))exampleBlock -{ - void (^innerExampleBlock)(void) = [exampleBlock copy]; - - void (^outerExampleBlock)(void) = ^{ - @try { - for (KWRegisterMatchersNode *registerNode in self.registerMatchersNodes) { - [registerNode acceptExampleNodeVisitor:example]; - } - - if (self.performedExampleCount == 0) { - [self.beforeAllNode acceptExampleNodeVisitor:example]; - } - - KWLetNode *letNodeTree = [self letNodeTree]; - [letNodeTree acceptExampleNodeVisitor:example]; - - [self.beforeEachNode acceptExampleNodeVisitor:example]; - - innerExampleBlock(); - - [self.afterEachNode acceptExampleNodeVisitor:example]; - - if ([example isLastInContext:self]) { - [self.afterAllNode acceptExampleNodeVisitor:example]; - [letNodeTree unlink]; - } - - } @catch (NSException *exception) { - KWFailure *failure = [KWFailure failureWithCallSite:self.callSite format:@"%@ \"%@\" raised", [exception name], [exception reason]]; - [example reportFailure:failure]; - } - - self.performedExampleCount++; - }; - if (self.parentContext == nil) { - outerExampleBlock(); - } - else { - [self.parentContext performExample:example withBlock:outerExampleBlock]; - } -} - -- (void)raiseIfNodeAlreadyExists:(id)node { - if (node) { - [NSException raise:KWContextNodeException - format:@"A %@ already exists in this context.", NSStringFromClass([node class])]; - } -} - -#pragma mark - Accepting Visitors - -- (void)acceptExampleNodeVisitor:(id)aVisitor { - [aVisitor visitContextNode:self]; -} - -@end diff --git a/Pods/Kiwi/Classes/Nodes/KWExampleNode.h b/Pods/Kiwi/Classes/Nodes/KWExampleNode.h deleted file mode 100644 index b3fc4dc..0000000 --- a/Pods/Kiwi/Classes/Nodes/KWExampleNode.h +++ /dev/null @@ -1,22 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" - -@class KWContextNode; -@protocol KWExampleNodeVisitor; - -@protocol KWExampleNode - -#pragma mark - Accepting Visitors - -- (void)acceptExampleNodeVisitor:(id)aVisitor; - -@optional - -- (NSArray *)contextStack; - -@end diff --git a/Pods/Kiwi/Classes/Nodes/KWItNode.h b/Pods/Kiwi/Classes/Nodes/KWItNode.h deleted file mode 100644 index 11bcec0..0000000 --- a/Pods/Kiwi/Classes/Nodes/KWItNode.h +++ /dev/null @@ -1,27 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" -#import "KWBlockNode.h" -#import "KWExampleNode.h" - -@class KWPendingNode; -@class KWExample; -@class KWContextNode; - -@interface KWItNode : KWBlockNode - -@property (nonatomic, strong) KWExample *example; -@property (nonatomic, weak, readonly) KWContextNode *context; - -#pragma mark - Initializing - -+ (id)itNodeWithCallSite:(KWCallSite *)aCallSite - description:(NSString *)aDescription - context:(KWContextNode *)context - block:(void (^)(void))block; - -@end diff --git a/Pods/Kiwi/Classes/Nodes/KWItNode.m b/Pods/Kiwi/Classes/Nodes/KWItNode.m deleted file mode 100644 index 5e3339d..0000000 --- a/Pods/Kiwi/Classes/Nodes/KWItNode.m +++ /dev/null @@ -1,62 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KWItNode.h" -#import "KWExampleNodeVisitor.h" -#import "KWExample.h" -#import "KWVerifying.h" -#import "KWContextNode.h" - -@interface KWItNode () - -@property (nonatomic, weak) KWContextNode *context; - -@end - -@implementation KWItNode - -#pragma mark - Initializing - -+ (id)itNodeWithCallSite:(KWCallSite *)aCallSite - description:(NSString *)aDescription - context:(KWContextNode *)context - block:(void (^)(void))block { - KWItNode *itNode = [[self alloc] initWithCallSite:aCallSite description:aDescription block:block]; - itNode.context = context; - return itNode; -} - -#pragma mark - Accepting Visitors - -- (void)acceptExampleNodeVisitor:(id)aVisitor { - [aVisitor visitItNode:self]; -} - -#pragma mark - Runtime Description support - -- (NSString *)description { - NSString *description = [super description]; - if (description == nil) { - description = [self.example generateDescriptionForAnonymousItNode]; - } - return description; -} - -#pragma mark - Accessing the context stack - -- (NSArray *)contextStack { - NSMutableArray *contextStack = [NSMutableArray array]; - - KWContextNode *currentContext = _context; - - while (currentContext) { - [contextStack addObject:currentContext]; - currentContext = currentContext.parentContext; - } - return contextStack; -} - -@end diff --git a/Pods/Kiwi/Classes/Nodes/KWLetNode.h b/Pods/Kiwi/Classes/Nodes/KWLetNode.h deleted file mode 100644 index 9b763e6..0000000 --- a/Pods/Kiwi/Classes/Nodes/KWLetNode.h +++ /dev/null @@ -1,36 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" -#import "KWExampleNode.h" - -@interface KWLetNode : NSObject - -- (instancetype)initWithSymbolName:(NSString *)aSymbolName objectRef:(id *)anObjectRef block:(id (^)(void))block; -+ (instancetype)letNodeWithSymbolName:(NSString *)aSymbolName objectRef:(id *)anObjectRef block:(id (^)(void))block; - -@property (nonatomic, copy) NSString *symbolName; -@property (nonatomic, copy) id (^block)(void); -@property (nonatomic, readonly) __autoreleasing id *objectRef; - -- (id)evaluate; -- (void)evaluateTree; - -- (void)addLetNode:(KWLetNode *)aNode; -- (void)unlink; - -// The parent/child relationship describes let nodes declared in nested -// contexts -- evaluating a node returns the value of the deepest -// evaluated child. -@property (nonatomic, readonly, weak) KWLetNode *parent; -@property (nonatomic, readonly, strong) KWLetNode *child; - -// The next/previous relationship describes the order in which nodes -// of different symbols were declared. -@property (nonatomic, readonly, strong) KWLetNode *next; -@property (nonatomic, readonly, weak) KWLetNode *previous; - -@end diff --git a/Pods/Kiwi/Classes/Nodes/KWLetNode.m b/Pods/Kiwi/Classes/Nodes/KWLetNode.m deleted file mode 100644 index 9a99883..0000000 --- a/Pods/Kiwi/Classes/Nodes/KWLetNode.m +++ /dev/null @@ -1,145 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KWLetNode.h" -#import "KWExampleNodeVisitor.h" - -@interface KWLetNode () - -@property (nonatomic, weak) KWLetNode *parent; -@property (nonatomic, strong) KWLetNode *child; - -@property (nonatomic, strong) KWLetNode *next; -@property (nonatomic, weak) KWLetNode *previous; - -@end - -@implementation KWLetNode - -@synthesize objectRef = _objectRef; - -- (instancetype)initWithSymbolName:(NSString *)aSymbolName objectRef:(__autoreleasing id *)anObjectRef block:(id (^)(void))block -{ - if ((self = [super init])) { - _symbolName = [aSymbolName copy]; - _objectRef = anObjectRef; - _block = [block copy]; - } - return self; -} - -+ (instancetype)letNodeWithSymbolName:(NSString *)aSymbolName objectRef:(__autoreleasing id *)anObjectRef block:(id (^)(void))block -{ - return [[self alloc] initWithSymbolName:aSymbolName objectRef:anObjectRef block:block]; -} - -#pragma mark - Evaluating nodes - -- (id)evaluate -{ - id result = nil; - if (self.child) { - result = [self.child evaluate]; - } - else if (self.block) { - result = self.block(); - } - - *self.objectRef = result; - return result; -} - -- (void)evaluateTree -{ - [self evaluate]; - [self.next evaluateTree]; -} - -#pragma mark - Managing node relationships - -- (void)addLetNode:(KWLetNode *)aNode -{ - if (![aNode isEqual:self]) { - if ([aNode.symbolName isEqualToString:self.symbolName]) { - [self addChild:aNode]; - } - else if (self.next) { - [self.next addLetNode:aNode]; - } - else { - self.next = aNode; - } - } -} - -- (void)addChild:(KWLetNode *)aNode -{ - if (self.child && ![self.child isEqual:aNode]) { - [self.child addChild:aNode]; - } - else { - self.child = aNode; - } -} - -- (void)setNext:(KWLetNode *)aNode -{ - aNode.previous = self; - _next = aNode; -} - -- (void)setChild:(KWLetNode *)aNode -{ - aNode.parent = self; - _child = aNode; -} - -- (void)unlink -{ - [self.next unlink]; - self.previous.next = nil; - self.previous = nil; - - [self.child unlink]; - self.parent.child = nil; - self.parent = nil; -} - -#pragma mark - Accepting visitors - -- (void)acceptExampleNodeVisitor:(id)aVisitor -{ - [aVisitor visitLetNode:self]; -} - -#pragma mark - Describing nodes - -- (NSString *)description -{ - return [NSString stringWithFormat:@"%@ {%@\n}", [[self class] description], [self recursiveDescription]]; -} - -- (NSString *)nodeDescription -{ - return [NSString stringWithFormat:@"<%@ \"%@\">", [[self class] description], self.block ? self.block() : nil]; -} - -- (NSString *)recursiveDescription -{ - if (!self.parent) { - NSMutableString *description = [NSMutableString stringWithFormat:@"\n\t%@:\n\t\t%@", self.symbolName, [self nodeDescription]]; - if (self.child) [description appendFormat:@"%@", [self.child recursiveDescription]]; - if (self.next) [description appendString:[self.next recursiveDescription]]; - return [description copy]; - } - else { - NSMutableString *description = [NSMutableString stringWithFormat:@",\n\t\t%@", [self nodeDescription]]; - if (self.child) [description appendString:[self.child recursiveDescription]]; - return [description copy]; - } -} - -@end diff --git a/Pods/Kiwi/Classes/Nodes/KWPendingNode.h b/Pods/Kiwi/Classes/Nodes/KWPendingNode.h deleted file mode 100644 index c269758..0000000 --- a/Pods/Kiwi/Classes/Nodes/KWPendingNode.h +++ /dev/null @@ -1,31 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" -#import "KWExampleNode.h" - -@class KWContextNode; -@class KWCallSite; - -@interface KWPendingNode : NSObject - -@property (nonatomic, readonly, strong) KWContextNode *context; - -#pragma mark - Initializing - -- (id)initWithCallSite:(KWCallSite *)aCallSite context:(KWContextNode *)context description:(NSString *)aDescription; - -+ (id)pendingNodeWithCallSite:(KWCallSite *)aCallSite context:(KWContextNode *)context description:(NSString *)aDescription; - -#pragma mark - Getting Call Sites - -@property (nonatomic, readonly) KWCallSite *callSite; - -#pragma mark - Getting Descriptions - -@property (readonly, copy) NSString *description; - -@end diff --git a/Pods/Kiwi/Classes/Nodes/KWPendingNode.m b/Pods/Kiwi/Classes/Nodes/KWPendingNode.m deleted file mode 100644 index c04cb35..0000000 --- a/Pods/Kiwi/Classes/Nodes/KWPendingNode.m +++ /dev/null @@ -1,55 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KWPendingNode.h" - -#import "KWCallSite.h" -#import "KWContextNode.h" -#import "KWExampleNodeVisitor.h" - -@implementation KWPendingNode - -@synthesize description = _description; - -#pragma mark - Initializing - -- (id)initWithCallSite:(KWCallSite *)aCallSite context:(KWContextNode *)context description:(NSString *)aDescription { - self = [super init]; - if (self) { - _callSite = aCallSite; - _description = [aDescription copy]; - _context = context; - } - - return self; -} - -+ (id)pendingNodeWithCallSite:(KWCallSite *)aCallSite context:(KWContextNode *)context description:(NSString *)aDescription { - return [[self alloc] initWithCallSite:aCallSite context:context description:aDescription]; -} - -#pragma mark - Accepting Visitors - -- (void)acceptExampleNodeVisitor:(id)aVisitor { - [aVisitor visitPendingNode:self]; -} - -#pragma mark - Accessing the context stack - -- (NSArray *)contextStack -{ - NSMutableArray *contextStack = [NSMutableArray array]; - - KWContextNode *currentContext = _context; - - while (currentContext) { - [contextStack addObject:currentContext]; - currentContext = currentContext.parentContext; - } - return contextStack; -} - -@end diff --git a/Pods/Kiwi/Classes/Nodes/KWRegisterMatchersNode.h b/Pods/Kiwi/Classes/Nodes/KWRegisterMatchersNode.h deleted file mode 100644 index f0ef83a..0000000 --- a/Pods/Kiwi/Classes/Nodes/KWRegisterMatchersNode.h +++ /dev/null @@ -1,28 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" -#import "KWExampleNode.h" - -@class KWCallSite; - -@interface KWRegisterMatchersNode : NSObject - -#pragma mark - Initializing - -- (id)initWithCallSite:(KWCallSite *)aCallSite namespacePrefix:(NSString *)aNamespacePrefix; - -+ (id)registerMatchersNodeWithCallSite:(KWCallSite *)aCallSite namespacePrefix:(NSString *)aNamespacePrefix; - -#pragma mark - Getting Call Sites - -@property (nonatomic, readonly) KWCallSite *callSite; - -#pragma mark - Getting Namespace Prefixes - -@property (nonatomic, readonly) NSString *namespacePrefix; - -@end diff --git a/Pods/Kiwi/Classes/Nodes/KWRegisterMatchersNode.m b/Pods/Kiwi/Classes/Nodes/KWRegisterMatchersNode.m deleted file mode 100644 index 8e6b1cc..0000000 --- a/Pods/Kiwi/Classes/Nodes/KWRegisterMatchersNode.m +++ /dev/null @@ -1,36 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KWRegisterMatchersNode.h" - -#import "KWCallSite.h" -#import "KWExampleNodeVisitor.h" - -@implementation KWRegisterMatchersNode - -#pragma mark - Initializing - -- (id)initWithCallSite:(KWCallSite *)aCallSite namespacePrefix:(NSString *)aNamespacePrefix { - self = [super init]; - if (self) { - _callSite = aCallSite; - _namespacePrefix = [aNamespacePrefix copy]; - } - - return self; -} - -+ (id)registerMatchersNodeWithCallSite:(KWCallSite *)aCallSite namespacePrefix:(NSString *)aNamespacePrefix { - return [[self alloc] initWithCallSite:aCallSite namespacePrefix:aNamespacePrefix]; -} - -#pragma mark - Accepting Visitors - -- (void)acceptExampleNodeVisitor:(id)aVisitor { - [aVisitor visitRegisterMatchersNode:self]; -} - -@end diff --git a/Pods/Kiwi/Classes/Stubbing/KWIntercept.h b/Pods/Kiwi/Classes/Stubbing/KWIntercept.h deleted file mode 100644 index 5481c80..0000000 --- a/Pods/Kiwi/Classes/Stubbing/KWIntercept.h +++ /dev/null @@ -1,45 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" -#import - -@class KWMessagePattern; -@class KWStub; - -#pragma mark - Getting Forwarding Implementations - -IMP KWRegularForwardingImplementation(void); -IMP KWStretForwardingImplementation(void); -IMP KWForwardingImplementationForMethodEncoding(const char* encoding); - -#pragma mark - Getting Intercept Class Information - -BOOL KWObjectIsClass(id anObject); -BOOL KWClassIsInterceptClass(Class aClass); -NSString *KWInterceptClassNameForClass(Class aClass); -Class KWInterceptClassForCanonicalClass(Class canonicalClass); -Class KWRealClassForClass(Class aClass); - -#pragma mark - Enabling Intercepting - -Class KWSetupObjectInterceptSupport(id anObject); -void KWSetupMethodInterceptSupport(Class interceptClass, SEL aSelector); - -#pragma mark - Managing Stubs & Spies -void KWClearStubsAndSpies(void); - -#pragma mark - Managing Objects Stubs - -void KWAssociateObjectStub(id anObject, KWStub *aStub, BOOL overrideExisting); -void KWClearObjectStubs(id anObject); -void KWClearAllObjectStubs(void); - -#pragma mark - Managing Message Spies - -void KWAssociateMessageSpy(id anObject, id aSpy, KWMessagePattern *aMessagePattern); -void KWClearObjectSpy(id anObject, id aSpy, KWMessagePattern *aMessagePattern); -void KWClearAllMessageSpies(void); diff --git a/Pods/Kiwi/Classes/Stubbing/KWIntercept.m b/Pods/Kiwi/Classes/Stubbing/KWIntercept.m deleted file mode 100644 index b1a46ff..0000000 --- a/Pods/Kiwi/Classes/Stubbing/KWIntercept.m +++ /dev/null @@ -1,391 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KWIntercept.h" -#import "KWMessagePattern.h" -#import "KWMessageSpying.h" -#import "KWStub.h" - -static const char * const KWInterceptClassSuffix = "_KWIntercept"; - -void KWObjectStubsInit(void); -void KWClearObjectStubs(id anObject); -void KWClearAllObjectStubs(void); -NSMutableArray *KWObjectStubsForObject(id anObject); -void KWObjectStubsSet(id anObject, NSMutableArray *stubs); - -void KWMessageSpiesInit(void); -NSMapTable *KWMessageSpiesForObject(id anObject); -void KWClearMessageSpies(id anObject); -void KWMessageSpiesSet(id anObject, NSMapTable *spies); - -Class KWRestoreOriginalClass(id anObject); -BOOL KWObjectClassRestored(id anObject); - -typedef id (^KWInterceptedObjectBlock)(void); -// Use KWInterceptedObjectKey, instead of the object itself, when -// registering an object in a global map table, to prevent an infinite -// loop when the object is hashed. -KWInterceptedObjectBlock KWInterceptedObjectKey(id anObject); - -#pragma mark - Intercept Enabled Method Implementations - -void KWInterceptedForwardInvocation(id anObject, SEL aSelector, NSInvocation* anInvocation); -void KWInterceptedDealloc(id anObject, SEL aSelector); -Class KWInterceptedClass(id anObject, SEL aSelector); -Class KWInterceptedSuperclass(id anObject, SEL aSelector); - -#pragma mark - Getting Forwarding Implementations - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wundeclared-selector" - -IMP KWRegularForwardingImplementation(void) { - return class_getMethodImplementation([NSObject class], @selector(KWNonExistantSelector)); -} - -IMP KWStretForwardingImplementation(void) { -#ifndef __arm64__ - return class_getMethodImplementation_stret([NSObject class], @selector(KWNonExistantSelector)); -#else - return class_getMethodImplementation([NSObject class], @selector(KWNonExistantSelector)); -#endif -} - -#pragma clang diagnostic pop - -IMP KWForwardingImplementationForMethodEncoding(const char* encoding) { -#if TARGET_CPU_ARM - const NSUInteger stretLengthThreshold = 4; -#elif TARGET_CPU_X86 - const NSUInteger stretLengthThreshold = 8; -#else - // TODO: This just makes an assumption right now. Expand to support all - // official architectures correctly. - const NSUInteger stretLengthThreshold = 8; -#endif // #if TARGET_CPU_ARM - - NSMethodSignature *signature = [NSMethodSignature signatureWithObjCTypes:encoding]; - - if (*[signature methodReturnType] == '{' && [signature methodReturnLength] > stretLengthThreshold) { - NSLog(@"Warning: The Objective-C runtime appears to have bugs when forwarding messages with certain struct layouts as return types, so if a crash occurs this could be the culprit"); - return KWStretForwardingImplementation(); - } else { - return KWRegularForwardingImplementation(); - } -} - -#pragma mark - Getting Intercept Class Information - -BOOL KWObjectIsClass(id anObject) { - return class_isMetaClass(object_getClass(anObject)); -} - -BOOL KWClassIsInterceptClass(Class aClass) { - const char *name = class_getName(aClass); - char *result = strstr(name, KWInterceptClassSuffix); - return result != nil; -} - -int interceptCount = 0; - -NSString *KWInterceptClassNameForClass(Class aClass) { - const char *className = class_getName(aClass); - interceptCount++; - return [NSString stringWithFormat:@"%s%s%d", className, KWInterceptClassSuffix, interceptCount]; -} - -Class KWInterceptClassForCanonicalClass(Class canonicalClass) { - NSString *interceptClassName = KWInterceptClassNameForClass(canonicalClass); - Class interceptClass = NSClassFromString(interceptClassName); - - if (interceptClass != nil) - return interceptClass; - - interceptClass = objc_allocateClassPair(canonicalClass, [interceptClassName UTF8String], 0); - objc_registerClassPair(interceptClass); - - class_addMethod(interceptClass, @selector(forwardInvocation:), (IMP)KWInterceptedForwardInvocation, "v@:@"); - class_addMethod(interceptClass, @selector(class), (IMP)KWInterceptedClass, "#@:"); - //TODO: potentially get rid of this? - class_addMethod(interceptClass, NSSelectorFromString(@"dealloc"), (IMP)KWInterceptedDealloc, "v@:"); - // - class_addMethod(interceptClass, @selector(superclass), (IMP)KWInterceptedSuperclass, "#@:"); - - Class interceptMetaClass = object_getClass(interceptClass); - class_addMethod(interceptMetaClass, @selector(forwardInvocation:), (IMP)KWInterceptedForwardInvocation, "v@:@"); - - return interceptClass; -} - -Class KWRealClassForClass(Class aClass) { - if (KWClassIsInterceptClass(aClass)) - return [aClass superclass]; - - return aClass; -} - -#pragma mark - Enabling Intercepting - -static BOOL IsTollFreeBridged(Class class, id obj) -{ - // this is a naive check, but good enough for the purposes of failing fast - return [NSStringFromClass(class) hasPrefix:@"NSCF"]; -} - -// Canonical class is the non-intercept, non-metaclass, class for an object. -// -// (e.g. [Animal class] would be canonical, not -// object_getClass([Animal class]), if the Animal class has not been touched -// by the intercept mechanism. - -Class KWSetupObjectInterceptSupport(id anObject) { - Class objectClass = object_getClass(anObject); - - if (IsTollFreeBridged(objectClass, anObject)) { - [NSException raise:@"KWTollFreeBridgingInterceptException" format:@"Attempted to stub object of class %@. Kiwi does not support setting expectation or stubbing methods on toll-free bridged objects.", NSStringFromClass(objectClass)]; - } - - if (KWClassIsInterceptClass(objectClass)) - return objectClass; - - BOOL objectIsClass = KWObjectIsClass(anObject); - Class canonicalClass = objectIsClass ? anObject : objectClass; - Class canonicalInterceptClass = KWInterceptClassForCanonicalClass(canonicalClass); - Class interceptClass = objectIsClass ? object_getClass(canonicalInterceptClass) : canonicalInterceptClass; - - object_setClass(anObject, interceptClass); - - return interceptClass; -} - -void KWSetupMethodInterceptSupport(Class interceptClass, SEL aSelector) { - BOOL isMetaClass = class_isMetaClass(interceptClass); - Method method = isMetaClass ? class_getClassMethod(interceptClass, aSelector) - : class_getInstanceMethod(interceptClass, aSelector); - - if (method == nil) { - [NSException raise:NSInvalidArgumentException format:@"cannot setup intercept support for -%@ because no such method exists", - NSStringFromSelector(aSelector)]; - } - - const char *encoding = method_getTypeEncoding(method); - IMP forwardingImplementation = KWForwardingImplementationForMethodEncoding(encoding); - class_addMethod(interceptClass, aSelector, forwardingImplementation, encoding); -} - -#pragma mark - Intercept Enabled Method Implementations - -void KWInterceptedForwardInvocation(id anObject, SEL aSelector, NSInvocation* anInvocation) { - NSMapTable *spiesMap = KWMessageSpiesForObject(anObject); - for (KWMessagePattern *messagePattern in spiesMap) { - if ([messagePattern matchesInvocation:anInvocation]) { - NSArray *spies = [spiesMap objectForKey:messagePattern]; - - for (id spy in spies) { - [spy object:anObject didReceiveInvocation:anInvocation]; - } - } - } - - for (KWStub *stub in KWObjectStubsForObject(anObject)) { - if ([stub processInvocation:anInvocation]) - return; - } - - Class interceptClass = KWRestoreOriginalClass(anObject); - [anInvocation invoke]; - // anObject->isa = interceptClass; - object_setClass(anObject, interceptClass); -} - -void KWInterceptedDealloc(id anObject, SEL aSelector) { - KWClearMessageSpies(anObject); - KWClearObjectStubs(anObject); - KWRestoreOriginalClass(anObject); -} - -Class KWInterceptedClass(id anObject, SEL aSelector) { - Class interceptClass = object_getClass(anObject); - Class originalClass = class_getSuperclass(interceptClass); - return originalClass; -} - -Class KWInterceptedSuperclass(id anObject, SEL aSelector) { - Class interceptClass = object_getClass(anObject); - Class originalClass = class_getSuperclass(interceptClass); - Class originalSuperclass = class_getSuperclass(originalClass); - return originalSuperclass; -} - -#pragma mark - Managing Objects Stubs - -void KWAssociateObjectStub(id anObject, KWStub *aStub, BOOL overrideExisting) { - KWObjectStubsInit(); - - NSMutableArray *stubs = KWObjectStubsForObject(anObject); - if (stubs == nil) { - stubs = [[NSMutableArray alloc] init]; - KWObjectStubsSet(anObject, stubs); - } - - NSUInteger stubCount = [stubs count]; - - for (NSUInteger i = 0; i < stubCount; ++i) { - KWStub *existingStub = stubs[i]; - - if ([aStub.messagePattern isEqualToMessagePattern:existingStub.messagePattern]) { - if (overrideExisting) { - [stubs removeObjectAtIndex:i]; - break; - } else { - return; - } - } - } - - [stubs addObject:aStub]; -} - -#pragma mark - Managing Message Spies - -void KWAssociateMessageSpy(id anObject, id aSpy, KWMessagePattern *aMessagePattern) { - KWMessageSpiesInit(); - - NSMapTable *spies = KWMessageSpiesForObject(anObject); - if (spies == nil) { - spies = [NSMapTable mapTableWithKeyOptions:NSMapTableStrongMemory valueOptions:NSMapTableStrongMemory]; - KWMessageSpiesSet(anObject, spies); - } - - NSMutableArray *messagePatternSpies = [spies objectForKey:aMessagePattern]; - if (messagePatternSpies == nil) { - messagePatternSpies = [[NSMutableArray alloc] init]; - [spies setObject:messagePatternSpies forKey:aMessagePattern]; - } - - - if ([messagePatternSpies containsObject:aSpy]) - return; - - [messagePatternSpies addObject:aSpy]; -} - -#pragma mark - KWMessageSpies - -static NSMapTable *KWMessageSpies = nil; - -void KWMessageSpiesInit(void) { - if (KWMessageSpies == nil) { - KWMessageSpies = [NSMapTable mapTableWithKeyOptions:NSMapTableStrongMemory valueOptions:NSMapTableStrongMemory]; - }; -} - -NSMapTable *KWMessageSpiesForObject(id anObject) { - return [KWMessageSpies objectForKey:KWInterceptedObjectKey(anObject)]; -} - -void KWMessageSpiesSet(id anObject, NSMapTable *spies) { - [KWMessageSpies setObject:spies forKey:KWInterceptedObjectKey(anObject)]; -} - -void KWClearObjectSpy(id anObject, id aSpy, KWMessagePattern *aMessagePattern) { - NSMapTable *spyArrayDictionary = KWMessageSpiesForObject(anObject); - NSMutableArray *spies = [spyArrayDictionary objectForKey:aMessagePattern]; - [spies removeObject:aSpy]; -} - -void KWClearMessageSpies(id anObject) { - [KWMessageSpies removeObjectForKey:KWInterceptedObjectKey(anObject)]; -} - -void KWClearAllMessageSpies(void) { - for (KWInterceptedObjectBlock key in KWMessageSpies) { - id spiedObject = key(); - if (KWObjectClassRestored(spiedObject)) { - continue; - } - KWRestoreOriginalClass(spiedObject); - } - [KWMessageSpies removeAllObjects]; -} - - -#pragma mark KWObjectStubs - -static NSMapTable *KWObjectStubs = nil; - -void KWObjectStubsInit(void) { - if (KWObjectStubs == nil) { - KWObjectStubs = [NSMapTable mapTableWithKeyOptions:NSMapTableStrongMemory valueOptions:NSMapTableStrongMemory]; - } -} - -NSMutableArray *KWObjectStubsForObject(id anObject) { - return [KWObjectStubs objectForKey:KWInterceptedObjectKey(anObject)]; -} - -void KWObjectStubsSet(id anObject, NSMutableArray *stubs) { - [KWObjectStubs setObject:stubs forKey:KWInterceptedObjectKey(anObject)]; -} - -void KWClearObjectStubs(id anObject) { - [KWObjectStubs removeObjectForKey:KWInterceptedObjectKey(anObject)]; -} - -void KWClearAllObjectStubs(void) { - for (KWInterceptedObjectBlock key in KWObjectStubs) { - id stubbedObject = key(); - if (KWObjectClassRestored(stubbedObject)) { - continue; - } - KWRestoreOriginalClass(stubbedObject); - } - [KWObjectStubs removeAllObjects]; -} - -#pragma mark KWRestoredObjects - -static NSMutableArray *KWRestoredObjects = nil; - -BOOL KWObjectClassRestored(id anObject) { - return [KWRestoredObjects containsObject:KWInterceptedObjectKey(anObject)]; -} - -Class KWRestoreOriginalClass(id anObject) { - Class interceptClass = object_getClass(anObject); - if (KWClassIsInterceptClass(interceptClass)) - { - Class originalClass = class_getSuperclass(interceptClass); - // anObject->isa = originalClass; - object_setClass(anObject, originalClass); - } - [KWRestoredObjects addObject:anObject]; - return interceptClass; -} - -#pragma mark KWInterceptedObjectKey - -static void *kKWInterceptedObjectKey = &kKWInterceptedObjectKey; - -KWInterceptedObjectBlock KWInterceptedObjectKey(id anObject) { - KWInterceptedObjectBlock key = objc_getAssociatedObject(anObject, kKWInterceptedObjectKey); - if (key == nil) { - __weak id weakobj = anObject; - key = ^{ return weakobj; }; - objc_setAssociatedObject(anObject, kKWInterceptedObjectKey, [key copy], OBJC_ASSOCIATION_COPY); - } - return key; -} - -#pragma mark - Managing Stubs & Spies - -void KWClearStubsAndSpies(void) { - KWRestoredObjects = [NSMutableArray array]; - KWClearAllMessageSpies(); - KWClearAllObjectStubs(); - KWRestoredObjects = nil; -} diff --git a/Pods/Kiwi/Classes/Stubbing/KWStub.h b/Pods/Kiwi/Classes/Stubbing/KWStub.h deleted file mode 100644 index b16d70e..0000000 --- a/Pods/Kiwi/Classes/Stubbing/KWStub.h +++ /dev/null @@ -1,37 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" - -@class KWMessagePattern; - -@interface KWStub : NSObject - -#pragma mark - Initializing - -- (id)initWithMessagePattern:(KWMessagePattern *)aMessagePattern; -- (id)initWithMessagePattern:(KWMessagePattern *)aMessagePattern value:(id)aValue; -- (id)initWithMessagePattern:(KWMessagePattern *)aMessagePattern block:(id (^)(NSArray *params))aBlock; -- (id)initWithMessagePattern:(KWMessagePattern *)aMessagePattern value:(id)aValue times:(id)times afterThatReturn:(id)aSecondValue; - -+ (id)stubWithMessagePattern:(KWMessagePattern *)aMessagePattern; -+ (id)stubWithMessagePattern:(KWMessagePattern *)aMessagePattern value:(id)aValue; -+ (id)stubWithMessagePattern:(KWMessagePattern *)aMessagePattern block:(id (^)(NSArray *params))aBlock; -+ (id)stubWithMessagePattern:(KWMessagePattern *)aMessagePattern value:(id)aValue times:(id)times afterThatReturn:(id)aSecondValue; - -#pragma mark - Properties - -@property (nonatomic, readonly) KWMessagePattern *messagePattern; -@property (nonatomic, readonly) id value; -@property (nonatomic, readonly) id returnValueTimes; -@property (nonatomic, readonly) int returnedValueTimes; -@property (nonatomic, readonly) id secondValue; - -#pragma mark - Processing Invocations - -- (BOOL)processInvocation:(NSInvocation *)anInvocation; - -@end diff --git a/Pods/Kiwi/Classes/Stubbing/KWStub.m b/Pods/Kiwi/Classes/Stubbing/KWStub.m deleted file mode 100644 index 3db6c63..0000000 --- a/Pods/Kiwi/Classes/Stubbing/KWStub.m +++ /dev/null @@ -1,216 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KWStub.h" -#import "KWMessagePattern.h" -#import "KWObjCUtilities.h" -#import "KWStringUtilities.h" -#import "KWValue.h" - -#import "NSInvocation+OCMAdditions.h" - -@interface KWStub(){} -@property (nonatomic, copy) id (^block)(NSArray *params); -@end - -@implementation KWStub - -#pragma mark - Initializing - -- (id)initWithMessagePattern:(KWMessagePattern *)aMessagePattern { - return [self initWithMessagePattern:aMessagePattern value:nil]; -} - -- (id)initWithMessagePattern:(KWMessagePattern *)aMessagePattern value:(id)aValue { - self = [super init]; - if (self) { - messagePattern = aMessagePattern; - value = aValue; - } - return self; -} - -- (id)initWithMessagePattern:(KWMessagePattern *)aMessagePattern block:(id (^)(NSArray *params))aBlock { - self = [super init]; - if (self) { - messagePattern = aMessagePattern; - _block = aBlock; - } - return self; -} - -- (id)initWithMessagePattern:(KWMessagePattern *)aMessagePattern value:(id)aValue times:(id)times afterThatReturn:(id)aSecondValue { - self = [super init]; - if (self) { - messagePattern = aMessagePattern; - value = aValue; - returnValueTimes = times; - secondValue = aSecondValue; - } - return self; -} - -+ (id)stubWithMessagePattern:(KWMessagePattern *)aMessagePattern { - return [self stubWithMessagePattern:aMessagePattern value:nil]; -} - -+ (id)stubWithMessagePattern:(KWMessagePattern *)aMessagePattern value:(id)aValue { - return [[self alloc] initWithMessagePattern:aMessagePattern value:aValue]; -} - -+ (id)stubWithMessagePattern:(KWMessagePattern *)aMessagePattern block:(id (^)(NSArray *params))aBlock { - return [[self alloc] initWithMessagePattern:aMessagePattern block:aBlock]; -} - -+ (id)stubWithMessagePattern:(KWMessagePattern *)aMessagePattern value:(id)aValue times:(id)times afterThatReturn:(id)aSecondValue { - return [[self alloc] initWithMessagePattern:aMessagePattern value:aValue times:times afterThatReturn:aSecondValue]; -} - -#pragma mark - Properties - -@synthesize messagePattern; -@synthesize value; -@synthesize secondValue; -@synthesize returnValueTimes; -@synthesize returnedValueTimes; - -#pragma mark - Processing Invocations - -- (void)writeZerosToInvocationReturnValue:(NSInvocation *)anInvocation { - NSUInteger returnLength = [[anInvocation methodSignature] methodReturnLength]; - - if (returnLength == 0) - return; - - void *bytes = malloc(returnLength); - memset(bytes, 0, returnLength); - [anInvocation setReturnValue:bytes]; - free(bytes); -} - -- (NSData *)valueDataWithObjCType:(const char *)objCType { - assert(self.value && "self.value must not be nil"); - NSData *data = [self.value dataForObjCType:objCType]; - - if (data == nil) { - [NSException raise:@"KWStubException" format:@"wrapped stub value type (%s) could not be converted to the target type (%s)", - [self.value objCType], - objCType]; - } - - return data; -} - -- (void)writeWrappedValueToInvocationReturnValue:(NSInvocation *)anInvocation { - assert(self.value && "self.value must not be nil"); - const char *returnType = [[anInvocation methodSignature] methodReturnType]; - NSData *data = nil; - - NSData *choosedForData = [self.value dataValue]; - - if (returnValueTimes != nil) { - NSString *returnValueTimesString = returnValueTimes; - int returnValueTimesInt = [returnValueTimesString intValue]; - - if (returnedValueTimes >= returnValueTimesInt) { - choosedForData = [self.secondValue dataValue]; - } - returnedValueTimes++; - } - - - // When the return type is not the same as the type of the wrapped value, - // attempt to convert the wrapped value to the desired type. - - if (KWObjCTypeEqualToObjCType([self.value objCType], returnType)) - data = choosedForData; - else - data = [self valueDataWithObjCType:returnType]; - - [anInvocation setReturnValue:(void *)[data bytes]]; -} - -- (void)writeObjectValueToInvocationReturnValue:(NSInvocation *)anInvocation { - assert(self.value && "self.value must not be nil"); - - void *choosedForData = &value; - - if (returnValueTimes != nil) { - NSString *returnValueTimesString = returnValueTimes; - int returnValueTimesInt = [returnValueTimesString intValue]; - - if (returnedValueTimes >= returnValueTimesInt) { - choosedForData = &secondValue; - } - returnedValueTimes++; - } - - [anInvocation setReturnValue:choosedForData]; - -#ifndef __clang_analyzer__ - NSString *selectorString = NSStringFromSelector([anInvocation selector]); - - // To conform to memory management conventions, retain if writing a result - // that begins with alloc, new or contains copy. This shows up as a false - // positive in clang due to the runtime conditional, so ignore it. - if (KWStringHasWordPrefix(selectorString, @"alloc") || - KWStringHasWordPrefix(selectorString, @"new") || - KWStringHasWord(selectorString, @"copy") || - KWStringHasWord(selectorString, @"Copy")) { - - // NOTE: this should be done in a better way. - // If you don't understand it, it's basically just a -performSelector: call - // Currently, I'm rather doing this than suppressing the warnings with #pragma - SEL selector = NSSelectorFromString(@"retain"); - ((void (*)(id, SEL))[self.value methodForSelector:selector])(self.value, selector); - } -#endif -} - -- (BOOL)processInvocation:(NSInvocation *)anInvocation { - if (![self.messagePattern matchesInvocation:anInvocation]) - return NO; - - if (self.block) { - NSUInteger numberOfArguments = [[anInvocation methodSignature] numberOfArguments]; - NSMutableArray *args = [NSMutableArray arrayWithCapacity:(numberOfArguments-2)]; - for (NSUInteger i = 2; i < numberOfArguments; ++i) { - id arg = [anInvocation getArgumentAtIndexAsObject:(int)i]; - - const char *argType = [[anInvocation methodSignature] getArgumentTypeAtIndex:i]; - if (strcmp(argType, "@?") == 0) arg = [arg copy]; - - if (arg == nil) - arg = [NSNull null]; - - [args addObject:arg]; - } - - id newValue = self.block(args); - if (newValue != value) { - value = newValue; - } - - [args removeAllObjects]; // We don't want these objects to be in autorelease pool - } - - if (self.value == nil) - [self writeZerosToInvocationReturnValue:anInvocation]; - else if ([self.value isKindOfClass:[KWValue class]]) - [self writeWrappedValueToInvocationReturnValue:anInvocation]; - else - [self writeObjectValueToInvocationReturnValue:anInvocation]; - - return YES; -} - -#pragma mark - Debugging - -- (NSString *)description { - return [NSString stringWithFormat:@"messagePattern: %@\nvalue: %@", self.messagePattern, self.value]; -} - -@end diff --git a/Pods/Kiwi/Classes/Stubbing/NSObject+KiwiStubAdditions.h b/Pods/Kiwi/Classes/Stubbing/NSObject+KiwiStubAdditions.h deleted file mode 100644 index 12775e9..0000000 --- a/Pods/Kiwi/Classes/Stubbing/NSObject+KiwiStubAdditions.h +++ /dev/null @@ -1,63 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" - -@class KWCaptureSpy; -@class KWMessagePattern; - -@protocol KWMessageSpying; - -@protocol KiwiStubAdditions - -#pragma mark - Stubbing Methods - -- (void)stub:(SEL)aSelector; -- (void)stub:(SEL)aSelector withBlock:(id (^)(NSArray *params))block; -- (void)stub:(SEL)aSelector withArguments:(id)firstArgument, ...; -- (void)stub:(SEL)aSelector andReturn:(id)aValue; -- (void)stub:(SEL)aSelector andReturn:(id)aValue withArguments:(id)firstArgument, ...; -- (void)stub:(SEL)aSelector andReturn:(id)aValue times:(NSNumber *)times afterThatReturn:(id)aSecondValue; - -+ (void)stub:(SEL)aSelector; -+ (void)stub:(SEL)aSelector withBlock:(id (^)(NSArray *params))block; -+ (void)stub:(SEL)aSelector withArguments:(id)firstArgument, ...; -+ (void)stub:(SEL)aSelector andReturn:(id)aValue; -+ (void)stub:(SEL)aSelector andReturn:(id)aValue withArguments:(id)firstArgument, ...; -+ (void)stub:(SEL)aSelector andReturn:(id)aValue times:(NSNumber *)times afterThatReturn:(id)aSecondValue; - -- (id)stub DEPRECATED_ATTRIBUTE; -- (id)stubAndReturn:(id)aValue DEPRECATED_ATTRIBUTE; -- (id)stubAndReturn:(id)aValue times:(id)times afterThatReturn:(id)aSecondValue DEPRECATED_ATTRIBUTE; - -// These methods will become private -- (void)stubMessagePattern:(KWMessagePattern *)aMessagePattern andReturn:(id)aValue; -- (void)stubMessagePattern:(KWMessagePattern *)aMessagePattern andReturn:(id)aValue overrideExisting:(BOOL)overrideExisting; -- (void)stubMessagePattern:(KWMessagePattern *)aMessagePattern andReturn:(id)aValue times:(id)times afterThatReturn:(id)aSecondValue; -- (void)stubMessagePattern:(KWMessagePattern *)aMessagePattern withBlock:(id (^)(NSArray *params))block; - -// These methods will become private -+ (void)stubMessagePattern:(KWMessagePattern *)aMessagePattern andReturn:(id)aValue; -+ (void)stubMessagePattern:(KWMessagePattern *)aMessagePattern andReturn:(id)aValue times:(id)times afterThatReturn:(id)aSecondValue; -+ (void)stubMessagePattern:(KWMessagePattern *)aMessagePattern withBlock:(id (^)(NSArray *params))block; - -- (void)clearStubs; - -#pragma mark - Spying on Messages - -- (void)addMessageSpy:(id)aSpy forMessagePattern:(KWMessagePattern *)aMessagePattern; -- (void)removeMessageSpy:(id)aSpy forMessagePattern:(KWMessagePattern *)aMessagePattern; -- (KWCaptureSpy *)captureArgument:(SEL)selector atIndex:(NSUInteger)index; - -+ (void)addMessageSpy:(id)aSpy forMessagePattern:(KWMessagePattern *)aMessagePattern; -+ (void)removeMessageSpy:(id)aSpy forMessagePattern:(KWMessagePattern *)aMessagePattern; -+ (KWCaptureSpy *)captureArgument:(SEL)selector atIndex:(NSUInteger)index; - -@end - -@interface NSObject(KiwiStubAdditions) - -@end diff --git a/Pods/Kiwi/Classes/Stubbing/NSObject+KiwiStubAdditions.m b/Pods/Kiwi/Classes/Stubbing/NSObject+KiwiStubAdditions.m deleted file mode 100644 index bf0e035..0000000 --- a/Pods/Kiwi/Classes/Stubbing/NSObject+KiwiStubAdditions.m +++ /dev/null @@ -1,266 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "NSObject+KiwiStubAdditions.h" -#import "KWCaptureSpy.h" -#import "KWIntercept.h" -#import "KWInvocationCapturer.h" -#import "KWMessagePattern.h" -#import "KWObjCUtilities.h" -#import "KWStringUtilities.h" -#import "KWStub.h" - -static NSString * const StubValueKey = @"StubValueKey"; -static NSString * const StubSecondValueKey = @"StubSecondValueKey"; -static NSString * const ChangeStubValueAfterTimesKey = @"ChangeStubValueAfterTimesKey"; - -@implementation NSObject(KiwiStubAdditions) - -#pragma mark - Capturing Invocations - -- (NSMethodSignature *)invocationCapturer:(KWInvocationCapturer *)anInvocationCapturer methodSignatureForSelector:(SEL)aSelector { - NSMethodSignature *signature = [self methodSignatureForSelector:aSelector]; - - if (signature != nil) - return signature; - - NSString *encoding = KWEncodingForDefaultMethod(); - return [NSMethodSignature signatureWithObjCTypes:[encoding UTF8String]]; -} - -- (void)invocationCapturer:(KWInvocationCapturer *)anInvocationCapturer didCaptureInvocation:(NSInvocation *)anInvocation { - KWMessagePattern *messagePattern = [KWMessagePattern messagePatternFromInvocation:anInvocation]; - id value = (anInvocationCapturer.userInfo)[StubValueKey]; - if (!(anInvocationCapturer.userInfo)[StubSecondValueKey]) { - [self stubMessagePattern:messagePattern andReturn:value]; - } else { - id times = (anInvocationCapturer.userInfo)[ChangeStubValueAfterTimesKey]; - id secondValue = (anInvocationCapturer.userInfo)[StubSecondValueKey]; - [self stubMessagePattern:messagePattern andReturn:value times:times afterThatReturn:secondValue]; - } -} - -#pragma mark - Stubbing Methods - -- (void)stub:(SEL)aSelector { - KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:aSelector]; - [self stubMessagePattern:messagePattern andReturn:nil]; -} - -- (void)stub:(SEL)aSelector withBlock:(id (^)(NSArray *))block { - KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:aSelector]; - [self stubMessagePattern:messagePattern withBlock:block]; -} - -- (void)stub:(SEL)aSelector withArguments:(id)firstArgument, ... { - va_list argumentList; - va_start(argumentList, firstArgument); - KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:aSelector firstArgumentFilter:firstArgument argumentList:argumentList]; - [self stubMessagePattern:messagePattern andReturn:nil]; -} - -- (void)stub:(SEL)aSelector andReturn:(id)aValue { - KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:aSelector]; - [self stubMessagePattern:messagePattern andReturn:aValue]; -} - -- (void)stub:(SEL)aSelector andReturn:(id)aValue withArguments:(id)firstArgument, ... { - va_list argumentList; - va_start(argumentList, firstArgument); - KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:aSelector firstArgumentFilter:firstArgument argumentList:argumentList]; - [self stubMessagePattern:messagePattern andReturn:aValue]; -} - -- (void)stub:(SEL)aSelector andReturn:(id)aValue times:(NSNumber *)times afterThatReturn:(id)aSecondValue { - KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:aSelector]; - [self stubMessagePattern:messagePattern andReturn:aValue times:times afterThatReturn:aSecondValue]; -} - -+ (void)stub:(SEL)aSelector { - KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:aSelector]; - [self stubMessagePattern:messagePattern andReturn:nil]; -} - -+ (void)stub:(SEL)aSelector withBlock:(id (^)(NSArray *))block { - KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:aSelector]; - [self stubMessagePattern:messagePattern withBlock:block]; -} - -+ (void)stub:(SEL)aSelector withArguments:(id)firstArgument, ... { - va_list argumentList; - va_start(argumentList, firstArgument); - KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:aSelector firstArgumentFilter:firstArgument argumentList:argumentList]; - [self stubMessagePattern:messagePattern andReturn:nil]; -} - -+ (void)stub:(SEL)aSelector andReturn:(id)aValue { - KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:aSelector]; - [self stubMessagePattern:messagePattern andReturn:aValue]; -} - -+ (void)stub:(SEL)aSelector andReturn:(id)aValue withArguments:(id)firstArgument, ... { - va_list argumentList; - va_start(argumentList, firstArgument); - KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:aSelector firstArgumentFilter:firstArgument argumentList:argumentList]; - [self stubMessagePattern:messagePattern andReturn:aValue]; -} - -+ (void)stub:(SEL)aSelector andReturn:(id)aValue times:(NSNumber *)times afterThatReturn:(id)aSecondValue { - KWMessagePattern *messagePattern = [KWMessagePattern messagePatternWithSelector:aSelector]; - [self stubMessagePattern:messagePattern andReturn:aValue times:times afterThatReturn:aSecondValue]; -} - -- (id)stub { - return [KWInvocationCapturer invocationCapturerWithDelegate:self]; -} - -- (id)stubAndReturn:(id)aValue { - NSDictionary *userInfo = @{StubValueKey: aValue}; - return [KWInvocationCapturer invocationCapturerWithDelegate:self userInfo:userInfo]; -} - -- (id)stubAndReturn:(id)aValue times:(id)times afterThatReturn:(id)aSecondValue { - NSDictionary *userInfo = @{StubValueKey: aValue, ChangeStubValueAfterTimesKey: times, StubSecondValueKey: aSecondValue}; - return [KWInvocationCapturer invocationCapturerWithDelegate:self userInfo:userInfo]; -} - -- (void)stubMessagePattern:(KWMessagePattern *)aMessagePattern andReturn:(id)aValue { - [self stubMessagePattern:aMessagePattern andReturn:aValue overrideExisting:YES]; -} - -- (void)stubMessagePattern:(KWMessagePattern *)aMessagePattern andReturn:(id)aValue overrideExisting:(BOOL)overrideExisting { - if ([self methodSignatureForSelector:aMessagePattern.selector] == nil) { - [NSException raise:@"KWStubException" format:@"cannot stub -%@ because no such method exists", - NSStringFromSelector(aMessagePattern.selector)]; - } - - Class interceptClass = KWSetupObjectInterceptSupport(self); - KWSetupMethodInterceptSupport(interceptClass, aMessagePattern.selector); - KWStub *stub = [KWStub stubWithMessagePattern:aMessagePattern value:aValue]; - KWAssociateObjectStub(self, stub, overrideExisting); -} - -- (void)stubMessagePattern:(KWMessagePattern *)aMessagePattern andReturn:(id)aValue times:(id)times afterThatReturn:(id)aSecondValue { - if ([self methodSignatureForSelector:aMessagePattern.selector] == nil) { - [NSException raise:@"KWStubException" format:@"cannot stub -%@ because no such method exists", - NSStringFromSelector(aMessagePattern.selector)]; - } - - Class interceptClass = KWSetupObjectInterceptSupport(self); - KWSetupMethodInterceptSupport(interceptClass, aMessagePattern.selector); - KWStub *stub = [KWStub stubWithMessagePattern:aMessagePattern value:aValue times:times afterThatReturn:aSecondValue]; - KWAssociateObjectStub(self, stub, YES); -} - -- (void)stubMessagePattern:(KWMessagePattern *)aMessagePattern withBlock:(id (^)(NSArray *params))block { - if ([self methodSignatureForSelector:aMessagePattern.selector] == nil) { - [NSException raise:@"KWStubException" format:@"cannot stub -%@ because no such method exists", - NSStringFromSelector(aMessagePattern.selector)]; - } - - Class interceptClass = KWSetupObjectInterceptSupport(self); - KWSetupMethodInterceptSupport(interceptClass, aMessagePattern.selector); - KWStub *stub = [KWStub stubWithMessagePattern:aMessagePattern block:block]; - KWAssociateObjectStub(self, stub, YES); -} - -+ (void)stubMessagePattern:(KWMessagePattern *)aMessagePattern andReturn:(id)aValue { - [self stubMessagePattern:aMessagePattern andReturn:aValue overrideExisting:YES]; -} - -+ (void)stubMessagePattern:(KWMessagePattern *)aMessagePattern andReturn:(id)aValue overrideExisting:(BOOL)override { - if ([self methodSignatureForSelector:aMessagePattern.selector] == nil) { - [NSException raise:@"KWStubException" format:@"cannot stub -%@ because no such method exists", - NSStringFromSelector(aMessagePattern.selector)]; - } - - Class interceptClass = KWSetupObjectInterceptSupport(self); - KWSetupMethodInterceptSupport(interceptClass, aMessagePattern.selector); - KWStub *stub = [KWStub stubWithMessagePattern:aMessagePattern value:aValue]; - KWAssociateObjectStub(self, stub, override); -} - -+ (void)stubMessagePattern:(KWMessagePattern *)aMessagePattern andReturn:(id)aValue times:(id)times afterThatReturn:(id)aSecondValue { - [self stubMessagePattern:aMessagePattern andReturn:aValue times:times afterThatReturn:aSecondValue overrideExisting:YES]; -} - -+ (void)stubMessagePattern:(KWMessagePattern *)aMessagePattern andReturn:(id)aValue times:(id)times afterThatReturn:(id)aSecondValue overrideExisting:(BOOL)override { - if ([self methodSignatureForSelector:aMessagePattern.selector] == nil) { - [NSException raise:@"KWStubException" format:@"cannot stub -%@ because no such method exists", - NSStringFromSelector(aMessagePattern.selector)]; - } - - Class interceptClass = KWSetupObjectInterceptSupport(self); - KWSetupMethodInterceptSupport(interceptClass, aMessagePattern.selector); - KWStub *stub = [KWStub stubWithMessagePattern:aMessagePattern value:aValue times:times afterThatReturn:aSecondValue]; - KWAssociateObjectStub(self, stub, override); -} - -+ (void)stubMessagePattern:(KWMessagePattern *)aMessagePattern withBlock:(id (^)(NSArray *params))block { - [self stubMessagePattern:aMessagePattern withBlock:block overrideExisting:YES]; -} - -+ (void)stubMessagePattern:(KWMessagePattern *)aMessagePattern withBlock:(id (^)(NSArray *params))block overrideExisting:(BOOL)override { - if ([self methodSignatureForSelector:aMessagePattern.selector] == nil) { - [NSException raise:@"KWStubException" format:@"cannot stub -%@ because no such method exists", - NSStringFromSelector(aMessagePattern.selector)]; - } - - Class interceptClass = KWSetupObjectInterceptSupport(self); - KWSetupMethodInterceptSupport(interceptClass, aMessagePattern.selector); - KWStub *stub = [KWStub stubWithMessagePattern:aMessagePattern block:block]; - KWAssociateObjectStub(self, stub, override); -} - -- (void)clearStubs { - KWClearObjectStubs(self); -} - -#pragma mark - Spying on Messages - -- (void)addMessageSpy:(id)aSpy forMessagePattern:(KWMessagePattern *)aMessagePattern { - if ([self methodSignatureForSelector:aMessagePattern.selector] == nil) { - [NSException raise:@"KWSpyException" format:@"cannot add spy for -%@ because no such method exists", - NSStringFromSelector(aMessagePattern.selector)]; - } - - Class interceptClass = KWSetupObjectInterceptSupport(self); - KWSetupMethodInterceptSupport(interceptClass, aMessagePattern.selector); - KWAssociateMessageSpy(self, aSpy, aMessagePattern); -} - -- (void)removeMessageSpy:(id)aSpy forMessagePattern:(KWMessagePattern *)aMessagePattern { - KWClearObjectSpy(self, aSpy, aMessagePattern); -} - -- (KWCaptureSpy *)captureArgument:(SEL)selector atIndex:(NSUInteger)index { - KWCaptureSpy *spy = [[KWCaptureSpy alloc] initWithArgumentIndex:index]; - [self addMessageSpy:spy forMessagePattern:[KWMessagePattern messagePatternWithSelector:selector]]; - return spy; -} - -+ (void)addMessageSpy:(id)aSpy forMessagePattern:(KWMessagePattern *)aMessagePattern { - if ([self methodSignatureForSelector:aMessagePattern.selector] == nil) { - [NSException raise:@"KWSpyException" format:@"cannot add spy for -%@ because no such method exists", - NSStringFromSelector(aMessagePattern.selector)]; - } - - Class interceptClass = KWSetupObjectInterceptSupport(self); - KWSetupMethodInterceptSupport(interceptClass, aMessagePattern.selector); - KWAssociateMessageSpy(self, aSpy, aMessagePattern); -} - -+ (void)removeMessageSpy:(id)aSpy forMessagePattern:(KWMessagePattern *)aMessagePattern { - KWClearObjectSpy(self, aSpy, aMessagePattern); -} - -+ (KWCaptureSpy *)captureArgument:(SEL)selector atIndex:(NSUInteger)index { - KWCaptureSpy *spy = [[KWCaptureSpy alloc] initWithArgumentIndex:index]; - [self addMessageSpy:spy forMessagePattern:[KWMessagePattern messagePatternWithSelector:selector]]; - return spy; -} - -@end diff --git a/Pods/Kiwi/Classes/Verifiers/KWAsyncVerifier.h b/Pods/Kiwi/Classes/Verifiers/KWAsyncVerifier.h deleted file mode 100644 index dd407c3..0000000 --- a/Pods/Kiwi/Classes/Verifiers/KWAsyncVerifier.h +++ /dev/null @@ -1,36 +0,0 @@ -// -// KWAsyncVerifier.h -// iOSFalconCore -// -// Created by Luke Redpath on 13/01/2011. -// Copyright 2011 LJR Software Limited. All rights reserved. -// - -#import -#import "KWMatchVerifier.h" -#import "KWProbe.h" - -#define kKW_DEFAULT_PROBE_TIMEOUT 1.0 - -@class KWAsyncMatcherProbe; - - -@interface KWAsyncVerifier : KWMatchVerifier - -@property (nonatomic, assign) NSTimeInterval timeout; -@property (nonatomic, assign) BOOL shouldWait; - -+ (id)asyncVerifierWithExpectationType:(KWExpectationType)anExpectationType callSite:(KWCallSite *)aCallSite matcherFactory:(KWMatcherFactory *)aMatcherFactory reporter:(id)aReporter probeTimeout:(NSTimeInterval)probeTimeout shouldWait:(BOOL)shouldWait; -- (void)verifyWithProbe:(KWAsyncMatcherProbe *)aProbe; - -@end - - -@interface KWAsyncMatcherProbe : NSObject - -@property (nonatomic, assign) BOOL matchResult; -@property (nonatomic, readonly) id matcher; - -- (id)initWithMatcher:(id)aMatcher; - -@end diff --git a/Pods/Kiwi/Classes/Verifiers/KWAsyncVerifier.m b/Pods/Kiwi/Classes/Verifiers/KWAsyncVerifier.m deleted file mode 100644 index 80aaf07..0000000 --- a/Pods/Kiwi/Classes/Verifiers/KWAsyncVerifier.m +++ /dev/null @@ -1,90 +0,0 @@ -// -// KWAsyncVerifier.m -// iOSFalconCore -// -// Created by Luke Redpath on 13/01/2011. -// Copyright 2011 LJR Software Limited. All rights reserved. -// - -#import "KWAsyncVerifier.h" -#import "KWFailure.h" -#import "KWMatching.h" -#import "KWReporting.h" -#import "KWProbePoller.h" - -@implementation KWAsyncVerifier - -+ (id)asyncVerifierWithExpectationType:(KWExpectationType)anExpectationType callSite:(KWCallSite *)aCallSite matcherFactory:(KWMatcherFactory *)aMatcherFactory reporter:(id)aReporter probeTimeout:(NSTimeInterval)probeTimeout shouldWait:(BOOL)shouldWait { - KWAsyncVerifier *verifier = [[self alloc] initWithExpectationType:anExpectationType callSite:aCallSite matcherFactory:aMatcherFactory reporter:aReporter]; - verifier.timeout = probeTimeout; - verifier.shouldWait = shouldWait; - return verifier; -} - -- (id)initWithExpectationType:(KWExpectationType)anExpectationType callSite:(KWCallSite *)aCallSite matcherFactory:(KWMatcherFactory *)aMatcherFactory reporter:(id)aReporter { - self = [super initWithExpectationType:anExpectationType callSite:aCallSite matcherFactory:aMatcherFactory reporter:aReporter]; - if (self) { - self.timeout = kKW_DEFAULT_PROBE_TIMEOUT; - } - return self; -} - -- (void)verifyWithProbe:(KWAsyncMatcherProbe *)aProbe { - @try { - KWProbePoller *poller = [[KWProbePoller alloc] initWithTimeout:self.timeout delay:kKW_DEFAULT_PROBE_DELAY shouldWait: self.shouldWait]; - - if (![poller check:aProbe]) { - if (self.expectationType == KWExpectationTypeShould) { - NSString *message = [aProbe.matcher failureMessageForShould]; - KWFailure *failure = [KWFailure failureWithCallSite:self.callSite message:message]; - [self.reporter reportFailure:failure]; - } - } else { - // poller returned YES -- fail if expectation is NOT - if (self.expectationType == KWExpectationTypeShouldNot) { - NSString *message = [aProbe.matcher failureMessageForShouldNot]; - KWFailure *failure = [KWFailure failureWithCallSite:self.callSite message:message]; - [self.reporter reportFailure:failure]; - } - } - - - } @catch (NSException *exception) { - KWFailure *failure = [KWFailure failureWithCallSite:self.callSite message:[exception description]]; - [self.reporter reportFailure:failure]; - } -} - -- (void)verifyWithMatcher:(id)aMatcher { - KWAsyncMatcherProbe *probe = [[KWAsyncMatcherProbe alloc] initWithMatcher:aMatcher]; - [self verifyWithProbe:probe]; -} - -@end - -@implementation KWAsyncMatcherProbe - -- (id)initWithMatcher:(id)aMatcher { - self = [super init]; - if (self) { - _matcher = aMatcher; - - // make sure the matcher knows we are going to evaluate it multiple times - if ([aMatcher respondsToSelector:@selector(willEvaluateMultipleTimes)]) { - [aMatcher setWillEvaluateMultipleTimes:YES]; - } - } - return self; -} - - -- (BOOL)isSatisfied { - return self.matchResult; -} - -- (void)sample { - self.matchResult = [self.matcher evaluate]; -} - -@end - diff --git a/Pods/Kiwi/Classes/Verifiers/KWExistVerifier.h b/Pods/Kiwi/Classes/Verifiers/KWExistVerifier.h deleted file mode 100644 index 91c0c18..0000000 --- a/Pods/Kiwi/Classes/Verifiers/KWExistVerifier.h +++ /dev/null @@ -1,27 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" -#import "KWExpectationType.h" -#import "KWVerifying.h" - -@class KWCallSite; - -@protocol KWReporting; - -@interface KWExistVerifier : NSObject - -#pragma mark - Initializing - -- (id)initWithExpectationType:(KWExpectationType)anExpectationType callSite:(KWCallSite *)aCallSite reporter:(id)aReporter; - -+ (id)existVerifierWithExpectationType:(KWExpectationType)anExpectationType callSite:(KWCallSite *)aCallSite reporter:(id)aReporter; - -#pragma mark - Properties - -@property (nonatomic, strong) id subject; - -@end diff --git a/Pods/Kiwi/Classes/Verifiers/KWExistVerifier.m b/Pods/Kiwi/Classes/Verifiers/KWExistVerifier.m deleted file mode 100644 index 9485a07..0000000 --- a/Pods/Kiwi/Classes/Verifiers/KWExistVerifier.m +++ /dev/null @@ -1,63 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KWExistVerifier.h" - -#import "KWCallSite.h" -#import "KWFailure.h" -#import "KWFormatter.h" -#import "KWReporting.h" - -@interface KWExistVerifier() - -@property (nonatomic, readonly) KWExpectationType expectationType; -@property (nonatomic, readonly) id reporter; - -@property (nonatomic, strong) KWCallSite *callSite; - -@end - -@implementation KWExistVerifier - -#pragma mark - Initializing - -- (id)initWithExpectationType:(KWExpectationType)anExpectationType callSite:(KWCallSite *)aCallSite reporter:(id)aReporter { - self = [super init]; - if (self) { - _expectationType = anExpectationType; - _callSite = aCallSite; - _reporter = aReporter; - } - - return self; -} - -+ (id)existVerifierWithExpectationType:(KWExpectationType)anExpectationType callSite:(KWCallSite *)aCallSite reporter:(id)aReporter { - return [[self alloc] initWithExpectationType:anExpectationType callSite:aCallSite reporter:aReporter]; -} - - -- (NSString *)descriptionForAnonymousItNode { - if (self.expectationType == KWExpectationTypeShould) { - return @"should exist"; - } - return @"should not exist"; -} - -#pragma mark - Ending Examples - -- (void)exampleWillEnd { - if (self.expectationType == KWExpectationTypeShould && self.subject == nil) { - KWFailure *failure = [KWFailure failureWithCallSite:self.callSite message:@"expected subject not to be nil"]; - [self.reporter reportFailure:failure]; - } else if (self.expectationType == KWExpectationTypeShouldNot && self.subject != nil) { - KWFailure *failure = [KWFailure failureWithCallSite:self.callSite format:@"expected subject to be nil, got %@", - [KWFormatter formatObject:self.subject]]; - [self.reporter reportFailure:failure]; - } -} - -@end diff --git a/Pods/Kiwi/Classes/Verifiers/KWMatchVerifier.h b/Pods/Kiwi/Classes/Verifiers/KWMatchVerifier.h deleted file mode 100644 index 0fa981a..0000000 --- a/Pods/Kiwi/Classes/Verifiers/KWMatchVerifier.h +++ /dev/null @@ -1,39 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" -#import "KWExpectationType.h" -#import "KWVerifying.h" - -@class KWCallSite; -@class KWMatcherFactory; - -@protocol KWMatching; -@protocol KWReporting; - -@interface KWMatchVerifier : NSObject - -#pragma mark - Properties - -@property (nonatomic, readonly) KWExpectationType expectationType; - -@property (nonatomic, readonly) KWMatcherFactory *matcherFactory; -@property (nonatomic, readonly) id reporter; - -@property (nonatomic, strong) id subject; - - -#pragma mark - Initializing - -- (id)initForShouldWithCallSite:(KWCallSite *)aCallSite matcherFactory:(KWMatcherFactory *)aMatcherFactory reporter:(id)aReporter; -- (id)initForShouldNotWithCallSite:(KWCallSite *)aCallSite matcherFactory:(KWMatcherFactory *)aMatcherFactory reporter:(id)aReporter; -- (id)initWithExpectationType:(KWExpectationType)anExpectationType callSite:(KWCallSite *)aCallSite matcherFactory:(KWMatcherFactory *)aMatcherFactory reporter:(id)aReporter; - -+ (id)matchVerifierWithExpectationType:(KWExpectationType)anExpectationType callSite:(KWCallSite *)aCallSite matcherFactory:(KWMatcherFactory *)aMatcherFactory reporter:(id)aReporter; - -- (void)verifyWithMatcher:(id)aMatcher; - -@end diff --git a/Pods/Kiwi/Classes/Verifiers/KWMatchVerifier.m b/Pods/Kiwi/Classes/Verifiers/KWMatchVerifier.m deleted file mode 100644 index e90cbec..0000000 --- a/Pods/Kiwi/Classes/Verifiers/KWMatchVerifier.m +++ /dev/null @@ -1,180 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KWMatchVerifier.h" - -#import "KWCallSite.h" -#import "KWExample.h" -#import "KWFailure.h" -#import "KWFormatter.h" -#import "KWInvocationCapturer.h" -#import "KWMatcherFactory.h" -#import "KWReporting.h" -#import "KWStringUtilities.h" -#import "KWWorkarounds.h" -#import "NSInvocation+KiwiAdditions.h" -#import "NSMethodSignature+KiwiAdditions.h" - -@interface KWMatchVerifier() - -#pragma mark - Properties - -@property (nonatomic, readwrite, strong) id endOfExampleMatcher; -@property (nonatomic, readwrite, strong) id matcher; -@property (nonatomic, readwrite, strong) KWExample *example; - -@property (nonatomic, strong) KWCallSite *callSite; - -@end - -@implementation KWMatchVerifier - -#pragma mark - Initializing - -- (id)initForShouldWithCallSite:(KWCallSite *)aCallSite matcherFactory:(KWMatcherFactory *)aMatcherFactory reporter:(id)aReporter { - return [self initWithExpectationType:KWExpectationTypeShould callSite:aCallSite matcherFactory:aMatcherFactory reporter:aReporter]; -} - -- (id)initForShouldNotWithCallSite:(KWCallSite *)aCallSite matcherFactory:(KWMatcherFactory *)aMatcherFactory reporter:(id)aReporter { - return [self initWithExpectationType:KWExpectationTypeShouldNot callSite:aCallSite matcherFactory:aMatcherFactory reporter:aReporter]; -} - -- (id)initWithExpectationType:(KWExpectationType)anExpectationType callSite:(KWCallSite *)aCallSite matcherFactory:(KWMatcherFactory *)aMatcherFactory reporter:(id)aReporter { - self = [super init]; - if (self) { - _expectationType = anExpectationType; - _callSite = aCallSite; - _matcherFactory = aMatcherFactory; - _reporter = aReporter; - _example = (KWExample *)aReporter; - } - - return self; -} - -+ (id)matchVerifierWithExpectationType:(KWExpectationType)anExpectationType callSite:(KWCallSite *)aCallSite matcherFactory:(KWMatcherFactory *)aMatcherFactory reporter:(id)aReporter { - return [[self alloc] initWithExpectationType:anExpectationType callSite:aCallSite matcherFactory:aMatcherFactory reporter:aReporter]; -} - - -- (NSString *)descriptionForAnonymousItNode { - NSString *typeString = @""; - - switch (self.expectationType) { - case KWExpectationTypeShould: - typeString = @"should"; - break; - case KWExpectationTypeShouldNot: - typeString = @"should not"; - } - id actualMatcher = (self.endOfExampleMatcher == nil) ? self.matcher : self.endOfExampleMatcher; - return [NSString stringWithFormat:@"%@ %@", typeString, actualMatcher]; -} - -#pragma mark - Verifying - -- (void)verifyWithMatcher:(id)aMatcher { - BOOL specFailed = NO; - NSString *failureMessage = nil; - - @try { - BOOL matchResult = [aMatcher evaluate]; - - if (self.expectationType == KWExpectationTypeShould && !matchResult) { - failureMessage = [aMatcher failureMessageForShould]; - specFailed = YES; - - } else if (self.expectationType == KWExpectationTypeShouldNot && matchResult) { - failureMessage = [aMatcher failureMessageForShouldNot]; - specFailed = YES; - } - } @catch (NSException *exception) { - failureMessage = [exception description]; - specFailed = YES; - } - @finally { - if (specFailed) { - KWFailure *failure = [KWFailure failureWithCallSite:self.callSite message:failureMessage]; - [self.reporter reportFailure:failure]; - } - } -} - -#pragma mark - Ending Examples - -- (void)exampleWillEnd { - if (self.endOfExampleMatcher) { - [self verifyWithMatcher:self.endOfExampleMatcher]; - } -} - -#pragma mark - Handling Invocations - -- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector { - NSMethodSignature *signature = [super methodSignatureForSelector:aSelector]; - - if (signature != nil) - return signature; - - signature = [self.matcherFactory methodSignatureForMatcherSelector:aSelector]; - - if (signature != nil) - return signature; - - // Return a dummy method signature so that problems can be handled in - // -forwardInvocation:. - NSString *encoding = KWEncodingForDefaultMethod(); - return [NSMethodSignature signatureWithObjCTypes:[encoding UTF8String]]; -} - -- (void)forwardInvocation:(NSInvocation *)anInvocation { -#if KW_TARGET_HAS_INVOCATION_EXCEPTION_BUG - @try { -#endif // #if KW_TARGET_HAS_INVOCATION_EXCEPTION_BUG - - self.matcher = (id)[self.matcherFactory matcherFromInvocation:anInvocation subject:self.subject]; - - if (self.matcher == nil) { - KWFailure *failure = [KWFailure failureWithCallSite:self.callSite format:@"could not create matcher for -%@", - NSStringFromSelector(anInvocation.selector)]; - [self.reporter reportFailure:failure]; - } - - if (self.expectationType == KWExpectationTypeShouldNot && [self.matcher respondsToSelector:@selector(setWillEvaluateAgainstNegativeExpectation:)]) { - [self.matcher setWillEvaluateAgainstNegativeExpectation:YES]; - } - - if (self.example.unresolvedVerifier == self) { - self.example.unresolvedVerifier = nil; - } - - [anInvocation invokeWithTarget:self.matcher]; - -#if KW_TARGET_HAS_INVOCATION_EXCEPTION_BUG - // A matcher might have set an exception within the -invokeWithTarget, so - // raise if one was set. - NSException *exception = KWGetAndClearExceptionFromAcrossInvocationBoundary(); - [exception raise]; -#endif // #if KW_TARGET_HAS_INVOCATION_EXCEPTION_BUG - - if ([self.matcher respondsToSelector:@selector(shouldBeEvaluatedAtEndOfExample)] && [self.matcher shouldBeEvaluatedAtEndOfExample]) { - self.endOfExampleMatcher = self.matcher; - self.matcher = nil; - } - else { - [self verifyWithMatcher:self.matcher]; - } - -#if KW_TARGET_HAS_INVOCATION_EXCEPTION_BUG - } @catch (NSException *exception) { - KWFailure *failure = [KWFailure failureWithCallSite:self.callSite format:[exception reason]]; - [self.reporter reportFailure:failure]; - return; - } -#endif // #if KW_TARGET_HAS_INVOCATION_EXCEPTION_BUG -} - -@end diff --git a/Pods/Kiwi/Classes/Verifiers/KWVerifying.h b/Pods/Kiwi/Classes/Verifiers/KWVerifying.h deleted file mode 100644 index d26d3bc..0000000 --- a/Pods/Kiwi/Classes/Verifiers/KWVerifying.h +++ /dev/null @@ -1,25 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" - -@class KWCallSite; - -@protocol KWVerifying - -@property (nonatomic, readonly) KWCallSite *callSite; - -- (NSString *)descriptionForAnonymousItNode; - -#pragma mark - Subjects - -@property (nonatomic, strong) id subject; - -#pragma mark - Ending Examples - -- (void)exampleWillEnd; - -@end diff --git a/Pods/Kiwi/License.txt b/Pods/Kiwi/License.txt deleted file mode 100644 index 5591081..0000000 --- a/Pods/Kiwi/License.txt +++ /dev/null @@ -1,27 +0,0 @@ -Copyright (c) 2010, Allen Ding -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this -list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright notice, -this list of conditions and the following disclaimer in the documentation -and/or other materials provided with the distribution. - -3. Neither the name of Allen Ding nor the names of any contributors may be -used to endorse or promote products derived from this software without specific -prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/Pods/Kiwi/Readme.md b/Pods/Kiwi/Readme.md deleted file mode 100644 index a3d258f..0000000 --- a/Pods/Kiwi/Readme.md +++ /dev/null @@ -1,39 +0,0 @@ -# Simple BDD for iOS -[![Build Status](https://travis-ci.org/kiwi-bdd/Kiwi.svg?branch=master)](https://travis-ci.org/kiwi-bdd/Kiwi) - -Kiwi is a Behavior Driven Development library for iOS development. -The goal is to provide a BDD library that is exquisitely simple to setup and use. - -## Why? -The idea behind Kiwi is to have tests that are more readable than what is possible with the bundled test framework. - -Tests (or rather specs) are written in Objective-C and run within the comfort of Xcode to provide a test environment that is as unobtrusive and seamless as possible in terms of running tests and error reporting. - -Specs look like this: - -```objective-c -describe(@"Team", ^{ - context(@"when newly created", ^{ - it(@"should have a name", ^{ - id team = [Team team]; - [[team.name should] equal:@"Black Hawks"]; - }); - - it(@"should have 11 players", ^{ - id team = [Team team]; - [[[team should] have:11] players]; - }); - }); -}); -``` - -## Documentation -The [Kiwi Wiki](https://github.com/kiwi-bdd/Kiwi/wiki) is the official documentation source. - -## Getting it -The best way to get Kiwi is by using [CocoaPods](https://github.com/cocoapods/cocoapods). -For all the installation details, check out the [Wiki](https://github.com/kiwi-bdd/Kiwi/wiki) - -## Support -For all the questions / suggestions you have, that aren't bug reports please use our [Google Group](https://groups.google.com/forum/#!forum/kiwi-bdd) - diff --git a/Pods/Local Podspecs/TransitionKit.podspec.json b/Pods/Local Podspecs/TransitionKit.podspec.json deleted file mode 100644 index 90615d8..0000000 --- a/Pods/Local Podspecs/TransitionKit.podspec.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "TransitionKit", - "version": "2.2.2", - "license": "Apache2", - "summary": "A block-based State Machine API for Objective-C.", - "homepage": "https://github.com/blakewatters/TransitionKit", - "authors": { - "Blake Watters": "blakewatters@gmail.com" - }, - "source": { - "git": "https://github.com/blakewatters/TransitionKit.git", - "tag": "2.2.2" - }, - "source_files": "Code", - "requires_arc": true, - "platforms": { - "ios": "6.0", - "osx": "10.7" - } -} diff --git a/Pods/Manifest.lock b/Pods/Manifest.lock deleted file mode 100644 index 75d8275..0000000 --- a/Pods/Manifest.lock +++ /dev/null @@ -1,19 +0,0 @@ -PODS: - - Kiwi (2.3.1) - - TransitionKit (2.2.2) - -DEPENDENCIES: - - Kiwi (~> 2.3.0) - - TransitionKit (from `.`) - -EXTERNAL SOURCES: - TransitionKit: - :path: "." - -SPEC CHECKSUMS: - Kiwi: f038a6c61f7a9e4d7766bff5717aa3b3fdb75f55 - TransitionKit: 19d0306ff077193330e9541a0fe83a1b9d60b51a - -PODFILE CHECKSUM: 9d722f9d462a2ecbe03c5482c8efe2da293aec9c - -COCOAPODS: 1.2.0 diff --git a/Pods/Pods.xcodeproj/project.pbxproj b/Pods/Pods.xcodeproj/project.pbxproj deleted file mode 100644 index 3b01c7a..0000000 --- a/Pods/Pods.xcodeproj/project.pbxproj +++ /dev/null @@ -1,2122 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 010E6BB736F19FD1AA6971F50607F393 /* KWEqualMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 6918A19DC1D5CAE9508F3926F0CA0D94 /* KWEqualMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 0180AE619D2E90A7B91EC63F3E71FFB0 /* KWAfterAllNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 616DEFC59352FFC06ED487243FFF6B21 /* KWAfterAllNode.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 0182489055E1268F25E8B603C6CC7597 /* KWContainStringMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 37076C5802E00623594BAE04318D8D4E /* KWContainStringMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 02C83D2F844269B5C60A732CCE33ACCF /* KWReceiveMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = E9A767EE0FEFAF78C2DE1FC493B51227 /* KWReceiveMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 03594326A541A67C41C740BEC2A03D2B /* KWUserDefinedMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 4D7C88351B49C622BAF0DC4C9B90F767 /* KWUserDefinedMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 0457C2027603717E8E3817938414A56C /* KWMessageTracker.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A8586A48B0A358C7103C4922AC7B380 /* KWMessageTracker.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 05AC39DE095A5A0E274DA7A45BFEA8D8 /* KWExampleNodeVisitor.h in Headers */ = {isa = PBXBuildFile; fileRef = 212D76EA5FA339A0C58D61F208F6EA66 /* KWExampleNodeVisitor.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 064DFC59E321508CDD171A395218CAE6 /* KWInequalityMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = FB12994D3EF0E8618DFD72B113CE6FDD /* KWInequalityMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 065051075100D0622D41AFC30C960AE9 /* KWProbePoller.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E9D87D62E79368CCD6684A9FF4355BF /* KWProbePoller.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 06C6EF9FC3A32A2B75836DDB78F4A6B9 /* KWRespondToSelectorMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 5304A5F95231E220F6E93622A05954C8 /* KWRespondToSelectorMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 07259889701A4569A51688AFCBB91BB5 /* KWMatcherFactory.h in Headers */ = {isa = PBXBuildFile; fileRef = DC07648E71560AA3BF5E8BD9F4C528A8 /* KWMatcherFactory.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0736EB85307DA8EA09963FA2B7D3FD98 /* KWHaveValueMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = B56D5211DEC0FC63EF4667A7441FAE76 /* KWHaveValueMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 07736F2821DD4EAE940D2E4D6BD53EE5 /* KWSuiteConfigurationBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 19B4F9E95D59C44F83433C051B8360E0 /* KWSuiteConfigurationBase.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 077B3FEF98F626A415ED234B67647815 /* KWCallSite.h in Headers */ = {isa = PBXBuildFile; fileRef = 2E862E7F777D7FF09F2CFC5DFA8CB14F /* KWCallSite.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 07A8C5B470C45BE1DFE22008301A1820 /* Kiwi.h in Headers */ = {isa = PBXBuildFile; fileRef = 43FEA8C258296A47215FA1418AC340E5 /* Kiwi.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 07AF7694FE6381334D06320D73266F5E /* KWMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 2ACAFC3703DEE3F72D38ADED35EB11A7 /* KWMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 07C054A878BF24B1EB65587189D5A9EC /* KWObjCUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = E3EFEE43F7D968D5C20954859E6D98A3 /* KWObjCUtilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0A5C86B31F2F48AC636D9D583FC959E1 /* KWCallSite.m in Sources */ = {isa = PBXBuildFile; fileRef = 17E094ECF9B0E4DFC3FBAD5C205A19DD /* KWCallSite.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 0A7324E8B1ADA246A24826AE05909542 /* KWBeforeAllNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 3E95B982DF325EDFC5857FC3AE79ACB6 /* KWBeforeAllNode.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 0AFB0088768E7BA2305CF207773375A7 /* KWInvocationCapturer.h in Headers */ = {isa = PBXBuildFile; fileRef = 4CAB5D796FF6822200772634A39EEEDD /* KWInvocationCapturer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0B4768417E50F9A26B323C35500D86CE /* TKTransition.m in Sources */ = {isa = PBXBuildFile; fileRef = AF2E9FB8B7A08C2681DFBE771F6DDD64 /* TKTransition.m */; }; - 0C57509F151321562E40A3E37E5AFE8A /* KWBeZeroMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 6DBEBCBD3DECBF4556D3375E80FDE35F /* KWBeZeroMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0D8759AA1745E9406024472541F0B2E5 /* KWMatching.h in Headers */ = {isa = PBXBuildFile; fileRef = 0A45858C5D1F13CFB7E9D72A1DC37F0C /* KWMatching.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0D8FDEE95ED55B98DCE99F5861BC13D5 /* NSNumber+KiwiAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F9F719B5BBCE9382930036499525B39 /* NSNumber+KiwiAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0EDA1A0555848448D20EF0727A7204F4 /* KWGenericMatchingAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = DDD467069D9324A4453D8C98B781B720 /* KWGenericMatchingAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 0F58C42E578263774D5766FB45CCB7C0 /* KWMessagePattern.m in Sources */ = {isa = PBXBuildFile; fileRef = 059420CE8C1DC29FD9EE1B1B2A3E0335 /* KWMessagePattern.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 0F788A212C951290F031D4235FFCF169 /* KiwiBlockMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = A9099286068F40F2D5B95BEB6A0C4CAB /* KiwiBlockMacros.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0FC35F4CD100ED99A9A6F395ADA63C5D /* KWNotificationMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = FAFEF33D625201A59D46CB32EB4A3A8F /* KWNotificationMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1006C13EE31E4963A17BE01EB0E13CBE /* KWBeWithinMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 6BFE0CAE805CF54C07E3BF863F446C61 /* KWBeWithinMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 11A86D103E58377BB99304DD1C66F913 /* KWNilMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 57D0C1D91B37A359DAA73D15AD96586A /* KWNilMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 120305E4CF371CC596589397046E0B5E /* KWSuiteConfigurationBase.m in Sources */ = {isa = PBXBuildFile; fileRef = 5AE7ADADCD07B566FCC1A7ABDDC56F7B /* KWSuiteConfigurationBase.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 12087973B84C90C596E15A4308C842AE /* KWCallSite.h in Headers */ = {isa = PBXBuildFile; fileRef = 2E862E7F777D7FF09F2CFC5DFA8CB14F /* KWCallSite.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 12B26F5CFCD18C0C292C58358E7BE1C4 /* KWMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = FCFA5EE0ED967CD54CA824E8C49A5946 /* KWMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 14A33FDBE96191797350BABD61FC951C /* NSProxy+KiwiVerifierAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 0C649F57F3B4C015E10DFD233992CE16 /* NSProxy+KiwiVerifierAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 14F8A068C1FFD00BFA43B01EA2151285 /* KWStringUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 5B6C76352971E8DC93F728CFCDFE9D78 /* KWStringUtilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 15B0D250017BEC1E777E2939C086AA6F /* KWAsyncVerifier.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B960BA95F7E2372382893C73E851C5F /* KWAsyncVerifier.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 163C5C54F9314B54F27B594C13C5EA08 /* KWLetNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 670B20674A4437F828F4026CA8033171 /* KWLetNode.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 176377C673DF7B6E599A75B48411038A /* NSObject+KiwiSpyAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D1FCCBF683DDBBAE6848A5DE33F64A3 /* NSObject+KiwiSpyAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 1794ABAF0F88A86238A7AA7216AFA4F4 /* KWSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 9E9FB4F5D8ABF9DBB05D40B9E4D350E6 /* KWSpec.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 17A9E6B6973DF83511FD248C84D4D66B /* KWAfterAllNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 0ECFB18D1A19B589397B6D18E4E5A21C /* KWAfterAllNode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 17B89913A1017928C114BF422BDD92F6 /* KWMessagePattern.h in Headers */ = {isa = PBXBuildFile; fileRef = A2F96CE5DC0D8EC6DEDBE2259FA0BE65 /* KWMessagePattern.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 184C04FC32A8440A6CBFB64BE5902836 /* KWFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = 2D7DCCB27760A04D2768AB68AE1363A3 /* KWFormatter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 199531462ED7392ECB467A508260B8CD /* KWUserDefinedMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = D8E9B5260480E4EA7ED06C6BEE15DF56 /* KWUserDefinedMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 19E3B453EE107807D771EF4BA635924E /* KWChangeMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 78E2ABB82E91C9992234960DD027F1B1 /* KWChangeMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1AF51D75CF9F028C286AF174B67EED83 /* NSInvocation+KiwiAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 847D05418B5B6F10CABA60007ADBCB40 /* NSInvocation+KiwiAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 1BD562AF8A49A4267C032A061DC7D501 /* KWInvocationCapturer.m in Sources */ = {isa = PBXBuildFile; fileRef = 82C58D345F3385EE526EB9E6093F4A9B /* KWInvocationCapturer.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 1D07490EEDA918C13F48243D534C577F /* KWLet.h in Headers */ = {isa = PBXBuildFile; fileRef = C11BE1F6B5286EE0E9399EFAEC329D45 /* KWLet.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1D1CC5F432C0EBB23070C2803A949F88 /* NSObject+KiwiSpyAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 2CE74D52AD87FC18362A0D06C0DB71B2 /* NSObject+KiwiSpyAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1E8D5F5BEBCB64B1B278C0FE4B8E599A /* KWIntercept.h in Headers */ = {isa = PBXBuildFile; fileRef = 5105ED7F6D13025869962A50A6635F3B /* KWIntercept.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1F2DBF32F1A551D7A40AEE4B8F8A44CE /* KWInvocationCapturer.m in Sources */ = {isa = PBXBuildFile; fileRef = 82C58D345F3385EE526EB9E6093F4A9B /* KWInvocationCapturer.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 1F60FEEE4A56F6FFEB3380B4BB37481A /* KWBeSubclassOfClassMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 2C8C3A6BE1E5DCEACB92D753366DF758 /* KWBeSubclassOfClassMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1FF0F25721F5FFFBAAA4030395FEE587 /* KWRegularExpressionPatternMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = E5C056310DD25611B55920F706F9A023 /* KWRegularExpressionPatternMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 207CB6B45DEE6B1591DAF3A982C2A3BE /* KWBeEmptyMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 541F3BE533709B3274E60136132AFD18 /* KWBeEmptyMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 2187C0D534B6141302799E48D8258614 /* NSObject+KiwiSpyAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D1FCCBF683DDBBAE6848A5DE33F64A3 /* NSObject+KiwiSpyAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 22F694957C2F5E11888A947161C9A9A9 /* KWBeBetweenMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 643D7C56E967BA3D7E131EA1BBB094D7 /* KWBeBetweenMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2363BF3A7F0820D9CAD9935AFD60CB67 /* TKEvent.m in Sources */ = {isa = PBXBuildFile; fileRef = EF9DEC550C5A27F945AFE8A095175528 /* TKEvent.m */; }; - 23FB7A13BF35BF4CDACCA9470EFE1152 /* KiwiConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = A7EE6629E43BB2D68A69F97133AEC45E /* KiwiConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 24AFF5156DCB19C96AB91DBCCD2395E7 /* KWBeBetweenMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CC9A6D18B5072D2DF0B38DA413C1A78 /* KWBeBetweenMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 24F4268F620C3FB4D34A69424865D045 /* NSMethodSignature+KiwiAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = E25E46EAB69062E09638D06EB1EFCD4B /* NSMethodSignature+KiwiAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 25378B5EE43F5602BB752B66AC5D81DE /* KWProbePoller.m in Sources */ = {isa = PBXBuildFile; fileRef = E044190493CF6FB17C083B26DDDC24D2 /* KWProbePoller.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 255F6FA56C4EA4AA7FF705725A49E14A /* KWStringUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 5B6C76352971E8DC93F728CFCDFE9D78 /* KWStringUtilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 25E1D66190691CA88C9404DA67132F4F /* KWProbePoller.m in Sources */ = {isa = PBXBuildFile; fileRef = E044190493CF6FB17C083B26DDDC24D2 /* KWProbePoller.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 25F0BB238FE4AA445A2CBB55E96E77E4 /* KWStringContainsMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = E85547003C04A12B37AB4713D4AC488F /* KWStringContainsMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 25F5DCB8CF476D9F62F65F7EABEA94D9 /* KWFutureObject.h in Headers */ = {isa = PBXBuildFile; fileRef = F6DD37FDB7E373823C221B489E7DC4B9 /* KWFutureObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 263F1EA736C06F512CE2733A5949BBDE /* KWExample.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E9C00C464746D026083FA7E144C708F /* KWExample.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 28BFF4C1807BBADD10B1306DBC544B60 /* KWBeMemberOfClassMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 294D205727AABFE5EFA3ECAAC1FC56ED /* KWBeMemberOfClassMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 2A523772E71CAC21E57D51B0766BDD1F /* KWRespondToSelectorMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 148C2542C42112ED2D7CB15FE8831AE1 /* KWRespondToSelectorMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2A6D59BAABE9035419752723266424D6 /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1CC7333B171173016282DC518E43F3F0 /* XCTest.framework */; }; - 2CC4E2A0D33DDD8E62D6BB1ADA595870 /* KWMessagePattern.h in Headers */ = {isa = PBXBuildFile; fileRef = A2F96CE5DC0D8EC6DEDBE2259FA0BE65 /* KWMessagePattern.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2DBD3520B7BDC713252E376AEA5AED98 /* KWRegisterMatchersNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 65F128845017C1E79C0EA03F9F3BCBF7 /* KWRegisterMatchersNode.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 2DFB76A817F3A39FA5797BC5EA4A0398 /* KWHaveValueMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 94F563A02CDEC9274FCA4DB421D4BC73 /* KWHaveValueMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2EA04A056D6EF1EE32476FB599104C50 /* KWMatchVerifier.m in Sources */ = {isa = PBXBuildFile; fileRef = 22A3F9B97668DEDE95EA01736E9F652E /* KWMatchVerifier.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 2F3189D678A5DFE31B5AEEC217EFF916 /* KWBeMemberOfClassMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 294D205727AABFE5EFA3ECAAC1FC56ED /* KWBeMemberOfClassMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 2F70B54DFC18341F899CCA31548F3438 /* KWExample.m in Sources */ = {isa = PBXBuildFile; fileRef = B07A9E216C297461B3F7B35F32D049AF /* KWExample.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 2F94180B86ED7E8CC2EC505934C19321 /* KWFailure.m in Sources */ = {isa = PBXBuildFile; fileRef = 92EEA89B422A33F3B2D62457F182A99E /* KWFailure.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 2FDB3E734F0D46DDEB5EDDA85A536669 /* KWBeBetweenMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CC9A6D18B5072D2DF0B38DA413C1A78 /* KWBeBetweenMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 30C90896AC3F8EA88039851F56728FC5 /* KWChangeMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = ACA878E9592C301AB401C38EF55E4A33 /* KWChangeMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 32343DCFF9A443C585D502CCE7AAD820 /* NSInvocation+KiwiAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = EEB8D19562B679A83C28687DEE1E7BEC /* NSInvocation+KiwiAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 32B39D8A87B0D152D95BBC0D4A097A02 /* KWContainStringMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 2863C373DB49AB3F8C8E423F51C863AE /* KWContainStringMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 32E1A9B3D6CC5F39416FDAE65B1D5C4E /* KWExampleDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 7BA6032F0844756BD46A7E8079D19AC3 /* KWExampleDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 32F01D97F4820974B545C04454F050BB /* KWStringPrefixMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D6ED896B521357E09A4062C09A66CE3 /* KWStringPrefixMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 334793C23533175664D28D90BB96C472 /* KWInequalityMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = FB12994D3EF0E8618DFD72B113CE6FDD /* KWInequalityMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 343AEF850A376878D228948B34F45423 /* KWInequalityMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 06562BE430DC665872475BE5B5175D0B /* KWInequalityMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 350000C5F9112FA7EBF3736470F22D20 /* KWGenericMatchEvaluator.h in Headers */ = {isa = PBXBuildFile; fileRef = 250EBC95B13ABC459B6B8EABD7448826 /* KWGenericMatchEvaluator.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 35DC16E86C84712DA480EE95842D9578 /* KWMatcherFactory.m in Sources */ = {isa = PBXBuildFile; fileRef = 8BEF8601DBDFF67698C86A7465D0DE6D /* KWMatcherFactory.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 368FB1A1E3900230800B77A71E207F17 /* KWStub.h in Headers */ = {isa = PBXBuildFile; fileRef = D98B4B3B4B36CF2D79CA727DAC03DA3B /* KWStub.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 373EB0ED4BC5B0ADAD3E66B8A629C053 /* KWExampleSuiteBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 90B84A9B0042A11B9E60703C9E586918 /* KWExampleSuiteBuilder.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 3778FA0F845FD93630DFE40349EAEBCD /* KWReporting.h in Headers */ = {isa = PBXBuildFile; fileRef = D604F15564BCC64E0D54F6EAC5AE0C78 /* KWReporting.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 37D08572CF57EAB6A0560E4C43875513 /* KWMessageTracker.h in Headers */ = {isa = PBXBuildFile; fileRef = 975A571B9E39A04BB66BECB12B3324D3 /* KWMessageTracker.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3811FB7DA3CAD250353AF5788D2B9976 /* KWNull.m in Sources */ = {isa = PBXBuildFile; fileRef = FA42334A250A8C547004751E11857E1B /* KWNull.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 38E26EF1D335A29D9426061FA3D8F68E /* NSInvocation+OCMAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 69508E0AF28F70BAB3C98863761ED848 /* NSInvocation+OCMAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3AE863BE836C5B87376F36C59ED70362 /* KWBlock.m in Sources */ = {isa = PBXBuildFile; fileRef = EE46777CFFF114CB04E87C56B4AD171C /* KWBlock.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 3B0DD47F194CB0EB08F47E96B0FC5F53 /* KWBeZeroMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 6D7C527685C98ACE3FE01EE25379EE76 /* KWBeZeroMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 3B28CD5909A2F25107F1B673C91B4FED /* NSObject+KiwiStubAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = F44D64D96339AB0F279947116D802AC9 /* NSObject+KiwiStubAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3C8591E2B0740AF80D9A782628EC5ACD /* KWExpectationType.h in Headers */ = {isa = PBXBuildFile; fileRef = E922B62B6EC20FE76AB93A12DAE45D6D /* KWExpectationType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3D52A2715B20DEEE437D0B2022C106D7 /* KWBeforeEachNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 35A7A4DC14FDD71920BF9A2DFED5A026 /* KWBeforeEachNode.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 3D5C8CDA447DD3056C7B77865FC14A27 /* NSInvocation+KiwiAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 847D05418B5B6F10CABA60007ADBCB40 /* NSInvocation+KiwiAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 3D6D5EB8713C4127E1524C6F35174F5D /* KWSymbolicator.m in Sources */ = {isa = PBXBuildFile; fileRef = B4D2C9D0CB170604E6F9200C03CA1D9A /* KWSymbolicator.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 3DBEAB200D573DBA1B571760D430DD80 /* TKTransition.h in Headers */ = {isa = PBXBuildFile; fileRef = B4A02E00A9BA3C496659704D483248DB /* TKTransition.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3E72BBD8E58BD109BB80145B8F9C1178 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C03EA831D91AD195092236D7BB777AB9 /* Foundation.framework */; }; - 3EFB5FF1FE90FD0797A62C0DE3A8F37A /* KWBeIdenticalToMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 91102A88506DBDC6287A88895B888BDB /* KWBeIdenticalToMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3F55B1ACA6108E90D02D53410A75EE08 /* KWExistVerifier.m in Sources */ = {isa = PBXBuildFile; fileRef = 489C1906472A7F4CB9FE8902259892E0 /* KWExistVerifier.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 3FA153D99DA1B3D9FE6CC640BB4D4EDA /* KWMessageSpying.h in Headers */ = {isa = PBXBuildFile; fileRef = 69DA46C17E7EB139FD868FF009783CED /* KWMessageSpying.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3FDB5E494C3CC94F807A44D1E805580F /* KWCaptureSpy.h in Headers */ = {isa = PBXBuildFile; fileRef = EFDDEBEB2F897787179080F5CE50DBEF /* KWCaptureSpy.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3FFEA4F8AB525AB868D8AEB07EA8C03B /* KWCallSite.m in Sources */ = {isa = PBXBuildFile; fileRef = 17E094ECF9B0E4DFC3FBAD5C205A19DD /* KWCallSite.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 413BBA7435EE7E6A44339130DF646662 /* KWBeTrueMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 1AD1B970493E965C8223D04338FA580E /* KWBeTrueMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 42670A829613D5692FAF2AA60F091C46 /* TKState.h in Headers */ = {isa = PBXBuildFile; fileRef = 393F94421B8F85C548119F76EE48452F /* TKState.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 42F564AFCE5F1C28581F7541F49464E8 /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1390E56741A21D7304092F55FCB26EBB /* XCTest.framework */; }; - 4369473C30925D7FC329DC6613E7B844 /* KWDeviceInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 568BAD5CD52E19264F45E0E0381DA0FD /* KWDeviceInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 44A9B6C3D312821713F24E5AEEEE487B /* KWChangeMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 78E2ABB82E91C9992234960DD027F1B1 /* KWChangeMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 452A0F9169C2A6E0108FE9093CEABBA7 /* KWExpectationType.h in Headers */ = {isa = PBXBuildFile; fileRef = E922B62B6EC20FE76AB93A12DAE45D6D /* KWExpectationType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 45C0528F6511722C7817F9A7C61CED55 /* NSMethodSignature+KiwiAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 2B07F535CD9693EE287B474286083A2C /* NSMethodSignature+KiwiAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 4633DFE9D741A82F21FDE5EA4A253AB4 /* NSProxy+KiwiVerifierAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = AEEAFD580CA92BE681F25B01C0A8AD08 /* NSProxy+KiwiVerifierAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4660CC5CF74FE66DC3A2896CE2DBCCCC /* KWContextNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C892E8DBF96E3993B73DC024F824CBA /* KWContextNode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 47CC1D8B07476B9A94E153C11972949A /* KWAfterAllNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 0ECFB18D1A19B589397B6D18E4E5A21C /* KWAfterAllNode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 47DAEBE3B4A192BD969FF0A68F5AB87E /* KWMessageSpying.h in Headers */ = {isa = PBXBuildFile; fileRef = 69DA46C17E7EB139FD868FF009783CED /* KWMessageSpying.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 48753BC1F64DEE0D552ABC844596DCB8 /* KWBlockRaiseMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = D5A2992D992C249872890F4DBBE4FD5E /* KWBlockRaiseMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 489C4CB4B9CB7EAF81919ACD0E21C0C7 /* KWHaveValueMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 94F563A02CDEC9274FCA4DB421D4BC73 /* KWHaveValueMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 48EFC34AF677FEF893B91E4E3A47A160 /* KWGenericMatchEvaluator.m in Sources */ = {isa = PBXBuildFile; fileRef = 7FBBDCBAA6261E65D006B972D25D28A1 /* KWGenericMatchEvaluator.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 4943B7B672CF83DAC3B57DA7300AD2FD /* KWSuiteConfigurationBase.m in Sources */ = {isa = PBXBuildFile; fileRef = 5AE7ADADCD07B566FCC1A7ABDDC56F7B /* KWSuiteConfigurationBase.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 49BDD0814A5D76AD8672C24A6F454255 /* Kiwi-iOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 669C539461364A09713D2166205A32A6 /* Kiwi-iOS-dummy.m */; }; - 4BF9A49D3238D0B17FA44DA696BAE87E /* KWBeIdenticalToMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = FF807698AD6A9FB090E1D13BE0625829 /* KWBeIdenticalToMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 4CD35007C025B3ADBF19AD6A2D82F9FC /* KWBeZeroMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 6D7C527685C98ACE3FE01EE25379EE76 /* KWBeZeroMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 4D4263653D1578E9DD609AA83DAF2FA0 /* NSObject+KiwiVerifierAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 2875B32C66DD81C46D31A653122995FA /* NSObject+KiwiVerifierAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4D7BABDFF3502395337D7B89B981C737 /* KWMock.h in Headers */ = {isa = PBXBuildFile; fileRef = A2432F14B5A93B3E4A832E863EC8D274 /* KWMock.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4E1E6454654322B99E9F6DD078F89FDF /* KWValue.m in Sources */ = {isa = PBXBuildFile; fileRef = 9263A3870C29E2DCB5D42C6C30E7ED74 /* KWValue.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 4E4F84A5E2B65ED09DF73F7433EFAC6D /* KWHaveValueMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = B56D5211DEC0FC63EF4667A7441FAE76 /* KWHaveValueMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 4F017117CCAE45745B586319AE73E50A /* KWFutureObject.h in Headers */ = {isa = PBXBuildFile; fileRef = F6DD37FDB7E373823C221B489E7DC4B9 /* KWFutureObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4F1470FBFDBF19386FFFD70D5AC1C0BF /* KWVerifying.h in Headers */ = {isa = PBXBuildFile; fileRef = F7CDBCCA2EF3A6B79094328F2563D194 /* KWVerifying.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 527BC36A14FB8839C65378AA9BC15FE7 /* KWMatchVerifier.h in Headers */ = {isa = PBXBuildFile; fileRef = EA432EC6DB6F989648B12DFC16438C9E /* KWMatchVerifier.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5307061923E305D92977DFB521411996 /* TKTransition.h in Headers */ = {isa = PBXBuildFile; fileRef = B4A02E00A9BA3C496659704D483248DB /* TKTransition.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 53EC4E1B850078B4554A9ACFBC649EAE /* KWBlockNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 351A65F768811A66D14252F4360E6C9C /* KWBlockNode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 547A077A9E6178D9598C300FFF151CF5 /* KWWorkarounds.m in Sources */ = {isa = PBXBuildFile; fileRef = D6823D61CF304E54C491F5960BAA58F6 /* KWWorkarounds.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 54C9F208DDD22272E417F6D2935FA13D /* KWBlockRaiseMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BF0DCD2266DE17DB603E6DBF522F0BD /* KWBlockRaiseMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 5513F143E495B60C4151D3BB69D6B603 /* KWMatchers.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C970E9FDC8AA8D6B5FE73B21B5F8F38 /* KWMatchers.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 56332351EBE74D01ED8CC3FC0F51BB9A /* KWWorkarounds.h in Headers */ = {isa = PBXBuildFile; fileRef = E6CFB6229102ACF8C2F1199E7D42D7F7 /* KWWorkarounds.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 56939F35513122AE97B870AFC1C1048E /* KWGenericMatchEvaluator.h in Headers */ = {isa = PBXBuildFile; fileRef = 250EBC95B13ABC459B6B8EABD7448826 /* KWGenericMatchEvaluator.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 56CE04A2A0DB0D25F07741B53EDC3B3A /* KWNull.h in Headers */ = {isa = PBXBuildFile; fileRef = 754CFB098670EAE31A27C94634697BD7 /* KWNull.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 578D001781D34D09D1CA3640B9D0611B /* KWGenericMatchingAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = E36378CB9EB76D52E79133F25E22361F /* KWGenericMatchingAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 57ADC789A23CF8819993A17276058A17 /* KWAny.m in Sources */ = {isa = PBXBuildFile; fileRef = 113E1B9BC80A7DEDB2792CCD634B0BD6 /* KWAny.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 5ADD80DBD55A52515824AB01C6E53AA1 /* KiwiConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = A7EE6629E43BB2D68A69F97133AEC45E /* KiwiConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5CB3CD73C17442D5B93C65CBC63FBE0B /* KWExampleNodeVisitor.h in Headers */ = {isa = PBXBuildFile; fileRef = 212D76EA5FA339A0C58D61F208F6EA66 /* KWExampleNodeVisitor.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5E792D390FF798FAB7ECCAAAE27B74A3 /* KWHaveMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 546126E831DA125797DBA34D0B0B15C9 /* KWHaveMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 5EC1A72962E5FA55A9661284A3B908D4 /* KWObjCUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 758113E06C1F73B605A9CF5A2C891A21 /* KWObjCUtilities.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 5F6111D380EAB1851F8C72379CE21459 /* NSNumber+KiwiAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 55C97AE1AB95D9CF6768CE01B9CA68E5 /* NSNumber+KiwiAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 60289A33C1FAACF5E462BD11610B666E /* TransitionKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 23E1571FCA3A6EC612572E670F594659 /* TransitionKit.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6078E16B0A6071359372D547FEEEE8C1 /* KWProbe.h in Headers */ = {isa = PBXBuildFile; fileRef = 0EBBF9946B43D7E71A5F2A438DCB4D4E /* KWProbe.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 608383AE35F5C04B9CE379F7C2EBDC90 /* NSInvocation+OCMAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 69508E0AF28F70BAB3C98863761ED848 /* NSInvocation+OCMAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 61F180750CD0CC25B294AF1E1B0AC0F6 /* Pods-Tests-TransitionKit macOS Tests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = EEE29A800ABF3CF88B82DE34324E8142 /* Pods-Tests-TransitionKit macOS Tests-dummy.m */; }; - 6551A7102EC412B1490DA623AF8A290B /* KWGenericMatchingAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = E36378CB9EB76D52E79133F25E22361F /* KWGenericMatchingAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 664E177BBD81DD36DA3EE35449E33E69 /* NSValue+KiwiAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 72816FA54D8B9194113465674457951E /* NSValue+KiwiAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 670FF3349F3A0F8B4BC8FFBD79ED728D /* KWExampleSuite.h in Headers */ = {isa = PBXBuildFile; fileRef = 21911470869B89C13289979D4BD650AE /* KWExampleSuite.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 67707C8AD544DBE7D724910213337B0E /* KWNilMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 57D0C1D91B37A359DAA73D15AD96586A /* KWNilMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 68574D95A9A19F524770A1DBDF5DA162 /* KWContainStringMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 2863C373DB49AB3F8C8E423F51C863AE /* KWContainStringMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 68762E3951FDE0BAAB1352E021602A09 /* KWAsyncVerifier.m in Sources */ = {isa = PBXBuildFile; fileRef = B34A4A73DC8745B202D4328E9FE95AFF /* KWAsyncVerifier.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 68950F726519CC96F62CFFE951E6FF1F /* KWDeviceInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = E86341347141CDD7F7314BE23137DFF3 /* KWDeviceInfo.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 68E14886EA15A961B9E5E1C48A1569C2 /* TransitionKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 23E1571FCA3A6EC612572E670F594659 /* TransitionKit.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6996F6ABC0EAAA48832A67772A4B9A1B /* KWMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 2ACAFC3703DEE3F72D38ADED35EB11A7 /* KWMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 69D6089949BE0A3DE75639E992F91F1F /* KWBeSubclassOfClassMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = AB59D582F4CF6FC48DB8535B21595281 /* KWBeSubclassOfClassMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 6A069EDBCA03B1DED5820E60E1E7A282 /* NSObject+KiwiMockAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = ED4A9764F248CFF43569FF0BFAB30448 /* NSObject+KiwiMockAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 6A4397DDFF899B88996800D6AAE5AF62 /* NSObject+KiwiVerifierAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 2875B32C66DD81C46D31A653122995FA /* NSObject+KiwiVerifierAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6A6081607281830D99A7B4D526B372E3 /* KWBeforeEachNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 630D678B8DADB0BED7FC51FFFF48924A /* KWBeforeEachNode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6BD79E6BC82865BC909830800D61ADE1 /* KWExampleSuite.m in Sources */ = {isa = PBXBuildFile; fileRef = DCE29C3EEECABA223CE9F305FDB9BE84 /* KWExampleSuite.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 6C74A19A8F09516BE8E4AFD8767C5C45 /* KWExampleSuiteBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F2B9871936398B30FC4361D5A71826A /* KWExampleSuiteBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6CB202C83C6A430CC3340A1BD255299F /* KWBlock.h in Headers */ = {isa = PBXBuildFile; fileRef = 73CC2A29DEABE0D93CDCBA1118E8BD9D /* KWBlock.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6D24CD950686584CE3B77526A8899743 /* KWChangeMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = ACA878E9592C301AB401C38EF55E4A33 /* KWChangeMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 6EDA71F89F776BFCAE7E5B8128D06441 /* KWFutureObject.m in Sources */ = {isa = PBXBuildFile; fileRef = BBAD47D3C57FAA56D76723628BCFD574 /* KWFutureObject.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 6FF09585ED02D77C6FC88049779B98DB /* KWSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 9E9FB4F5D8ABF9DBB05D40B9E4D350E6 /* KWSpec.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 70363D67218718B91DDDA219E55F2CCB /* KWObjCUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = E3EFEE43F7D968D5C20954859E6D98A3 /* KWObjCUtilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 706D9F3638386DF7020D8BE31F4755F2 /* KWBeforeAllNode.h in Headers */ = {isa = PBXBuildFile; fileRef = CFD8CC34D996E6495B03B6DAE579BAFD /* KWBeforeAllNode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7186C5BAC933E94F51870E688C697909 /* TKEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 97F048881AF42E17E7F1E7D6F5F6FE67 /* TKEvent.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 71FEB1523D7BB4BA64B003432E5435CF /* KWExampleSuite.h in Headers */ = {isa = PBXBuildFile; fileRef = 21911470869B89C13289979D4BD650AE /* KWExampleSuite.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7213F8B340E9C93B4CF0F265FB81194D /* KWMatchers.m in Sources */ = {isa = PBXBuildFile; fileRef = 527FB1E1ADF4ECC1E7D0903B9A53620B /* KWMatchers.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 73B78F53F4257DCD329BBE3E02893713 /* KWBeforeAllNode.h in Headers */ = {isa = PBXBuildFile; fileRef = CFD8CC34D996E6495B03B6DAE579BAFD /* KWBeforeAllNode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 73E461FE9027AF117D1D5DFB92AE30DE /* KWBeBetweenMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 643D7C56E967BA3D7E131EA1BBB094D7 /* KWBeBetweenMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7493F85BA7B98488F4EAB8F05005E849 /* KWContainMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = D9444A54A51E466BF711929BEC8EF795 /* KWContainMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7536BC000208B941A15C66D9AC3B844B /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 422FAD60290D2EA7012293B8FDE679F8 /* Cocoa.framework */; }; - 75586CC3ECC4BAF133AA7DF0CAC8A80C /* KWMock.h in Headers */ = {isa = PBXBuildFile; fileRef = A2432F14B5A93B3E4A832E863EC8D274 /* KWMock.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 76403E606476CACF72904984BBCF45A9 /* TKTransition.m in Sources */ = {isa = PBXBuildFile; fileRef = AF2E9FB8B7A08C2681DFBE771F6DDD64 /* TKTransition.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 7769F3ACE46424A17E5894C4AF3B8464 /* KWExampleSuiteBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F2B9871936398B30FC4361D5A71826A /* KWExampleSuiteBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 77FEBA873ADC4E8E046841DD45BF50EC /* TransitionKit-iOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 9761199A4AC57161FD46825EE28C0174 /* TransitionKit-iOS-dummy.m */; }; - 77FECDA3511C7322159331970D6056F6 /* KWBeEmptyMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 541F3BE533709B3274E60136132AFD18 /* KWBeEmptyMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 79581937E9D65BA1C1852A80AD29697E /* KWBeKindOfClassMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 2C5659E20E953DFEC130ED99ED3A5B61 /* KWBeKindOfClassMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 797ACC7F2388F34739761C36C55998A0 /* KWExample.m in Sources */ = {isa = PBXBuildFile; fileRef = B07A9E216C297461B3F7B35F32D049AF /* KWExample.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 79B82DDACE11A10435064D89605AF55A /* KWRegularExpressionPatternMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = E5C056310DD25611B55920F706F9A023 /* KWRegularExpressionPatternMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 79CE245D3D7DB125977D3120BB131DCB /* KWBeSubclassOfClassMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 2C8C3A6BE1E5DCEACB92D753366DF758 /* KWBeSubclassOfClassMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7A89BEE2FC57F4BA4D6F8D75546321CC /* KWHaveMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 546126E831DA125797DBA34D0B0B15C9 /* KWHaveMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 7AFEB088F8BA613F6CB04C0C1A9611E8 /* KWInvocationCapturer.h in Headers */ = {isa = PBXBuildFile; fileRef = 4CAB5D796FF6822200772634A39EEEDD /* KWInvocationCapturer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7B95840ED283D3C44176D5DF361BB208 /* NSProxy+KiwiVerifierAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = AEEAFD580CA92BE681F25B01C0A8AD08 /* NSProxy+KiwiVerifierAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7D8906C69E30B165C387C9CB577E72E9 /* TKStateMachine.m in Sources */ = {isa = PBXBuildFile; fileRef = CB5BF753B42AC2690BF9B169CD493C86 /* TKStateMachine.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 7DEFDC0A3FFEE37796CEAF29411020D1 /* KWProbePoller.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E9D87D62E79368CCD6684A9FF4355BF /* KWProbePoller.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7DFDD07DBF392005CBA20DAC5AB898EC /* KWFailure.h in Headers */ = {isa = PBXBuildFile; fileRef = 932BF14AECD2A29276E065EE2B454CF2 /* KWFailure.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7E894B31E2DED258C26BD66099C1A18A /* KWEqualMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 40A69EA9528A384C2C5662193EEE6FE5 /* KWEqualMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7E8F78F9B7CA6A5A97CDE1BB1BF1C0DC /* KWStringContainsMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = E85547003C04A12B37AB4713D4AC488F /* KWStringContainsMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7F61D640908CE988E9983BE3DFD0271A /* KWItNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 3F5ABA49B2E5915A05F4F4D314DE7F77 /* KWItNode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 801989CF9E631F6D524D6DFDA6351945 /* KWBeforeEachNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 35A7A4DC14FDD71920BF9A2DFED5A026 /* KWBeforeEachNode.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 80B246C3B4811E24DA0279460375A51D /* KWUserDefinedMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = D8E9B5260480E4EA7ED06C6BEE15DF56 /* KWUserDefinedMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 83440E0FB9BD1047567E24663B62E0C6 /* NSObject+KiwiStubAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = F44D64D96339AB0F279947116D802AC9 /* NSObject+KiwiStubAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 86047793D0A53863B2C78695B385DD35 /* KWAfterEachNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 0A8AB445D6EC0328FAA1894B40437D6B /* KWAfterEachNode.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 886C6A1950E34F05DBBF85F4060AA649 /* NSInvocation+OCMAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 4D59A4EB3E67A9BFD8E887BDD4BD25A1 /* NSInvocation+OCMAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 88820FD1D69F5580D37B7481704900D0 /* KWGenericMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 29AC97F54FF338B0F3C1DFEA43EB047F /* KWGenericMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8964615A05EE4D78941C4400B0F862D0 /* KWProbe.h in Headers */ = {isa = PBXBuildFile; fileRef = 0EBBF9946B43D7E71A5F2A438DCB4D4E /* KWProbe.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 89FA29670697202F07E2CBF1BC81E94B /* KWBeforeEachNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 630D678B8DADB0BED7FC51FFFF48924A /* KWBeforeEachNode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8A197C5061631D1D45D707AFA0D1E76F /* KWContextNode.m in Sources */ = {isa = PBXBuildFile; fileRef = A9FF2729E28D56E18100AF4F0851D30E /* KWContextNode.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 8AFCA4F7E9A09F62A8E5DC8B63B5FABB /* KWNilMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = BD0A74A8AB1D7AACBAEB25E5A6561A7A /* KWNilMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 8C2125090A33DDAE77FC27579B2DA822 /* NSObject+KiwiSpyAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 2CE74D52AD87FC18362A0D06C0DB71B2 /* NSObject+KiwiSpyAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8C98AF30B55372FC043884A9DF3B4AFB /* KWRespondToSelectorMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 148C2542C42112ED2D7CB15FE8831AE1 /* KWRespondToSelectorMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8DFBA7B6FBF1689E1A9DA3E38DA68F93 /* TKEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 97F048881AF42E17E7F1E7D6F5F6FE67 /* TKEvent.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8E77B2D0AE3944F5BDCEEA67FFC21D7B /* KWStub.m in Sources */ = {isa = PBXBuildFile; fileRef = 26DF249D09AB92EB9692D412D4BF934A /* KWStub.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 8E9B86CC84972221CCF727B6006646EB /* KWBeforeAllNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 3E95B982DF325EDFC5857FC3AE79ACB6 /* KWBeforeAllNode.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 907228CAF3A5A56A0DD88A3ABBEEC4F7 /* KWPendingNode.h in Headers */ = {isa = PBXBuildFile; fileRef = CC14B905FA8567008244E93BBC9BC6F4 /* KWPendingNode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 92C37BD2B243196F7907355631DBCD91 /* KWAny.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BA34CE0BCFEF3D6F6CB188883176EB9 /* KWAny.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 92E98A8D309269B3B27A7EFE6405CB7F /* KWStringPrefixMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 85910BD89BFA64FDFE83917EF907901D /* KWStringPrefixMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 92EF660EA614616E2679B77B6A48FCAA /* KWContainMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 64DEF5400AD4404A94E8A5C096952E12 /* KWContainMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 93775F9843BD8027BA06BE25BE4E3B63 /* KWAny.m in Sources */ = {isa = PBXBuildFile; fileRef = 113E1B9BC80A7DEDB2792CCD634B0BD6 /* KWAny.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 93848992D73D394B1DB0FE1F0BDB267C /* NSNumber+KiwiAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F9F719B5BBCE9382930036499525B39 /* NSNumber+KiwiAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 93A1A3BD88FE79DC63350BEACE575513 /* KWBeWithinMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 6BFE0CAE805CF54C07E3BF863F446C61 /* KWBeWithinMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 940FB0F410414914060A7BB35054751A /* NSValue+KiwiAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C92F272EF0A0B073D7C55273A349F3A /* NSValue+KiwiAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 94550E3EE37A21AA76AB5283C33B9F53 /* KWBeKindOfClassMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 2C5659E20E953DFEC130ED99ED3A5B61 /* KWBeKindOfClassMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 95174DB1EC3E37B7DBFE25952AD3506B /* KWCaptureSpy.m in Sources */ = {isa = PBXBuildFile; fileRef = 5ACC0EC17A9E0127F21610540BA6468B /* KWCaptureSpy.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 9575D0D12346CBD310AA352078383E49 /* KWConformToProtocolMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 4F5E10FF37964EFF6B2D196DEDC49F16 /* KWConformToProtocolMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 96B267E85BAA4586C9BC6BC1F7D06B2A /* KiwiMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = B1FDE3CFE9DF3F2F0D13D797EEA66E2D /* KiwiMacros.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 96BD56A4E87DFD479C8F4A928280FDAB /* NSMethodSignature+KiwiAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = E25E46EAB69062E09638D06EB1EFCD4B /* NSMethodSignature+KiwiAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 974C25893601BD9DF6EA8CAA79473210 /* KWBlockRaiseMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = D5A2992D992C249872890F4DBBE4FD5E /* KWBlockRaiseMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 97F6C0CEBBD1D84DDDBB1B2EF52C9B86 /* KWExistVerifier.m in Sources */ = {isa = PBXBuildFile; fileRef = 489C1906472A7F4CB9FE8902259892E0 /* KWExistVerifier.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 987220996F6A91503CE0C4E22D098C44 /* KWMatcherFactory.m in Sources */ = {isa = PBXBuildFile; fileRef = 8BEF8601DBDFF67698C86A7465D0DE6D /* KWMatcherFactory.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 9899D11758BC813FB0419BC1AC6FAB2C /* KWConformToProtocolMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = DFCFCF9B94B19B1BFC1B2F0819E6AD00 /* KWConformToProtocolMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 98FDDFD391BD267924EE6CC22ED7062A /* KWExample.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E9C00C464746D026083FA7E144C708F /* KWExample.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9A72AB04E9045B0A01EED79520FEB118 /* KWConformToProtocolMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = DFCFCF9B94B19B1BFC1B2F0819E6AD00 /* KWConformToProtocolMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9ABDA22D3CDB0336EFB65BFF18A4D708 /* KWBeKindOfClassMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 1872AE16F181CB62786A96B5ADA3C37C /* KWBeKindOfClassMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9AC7F117690447D71C4AE1037D8915E7 /* KWValue.h in Headers */ = {isa = PBXBuildFile; fileRef = F0273CAD5C5B65C439A64EDDE81B1E24 /* KWValue.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9B03D0CAA15758750810645C9932CA1D /* KWSymbolicator.m in Sources */ = {isa = PBXBuildFile; fileRef = B4D2C9D0CB170604E6F9200C03CA1D9A /* KWSymbolicator.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 9B618C0CD420F0A139A57667C8C8A76E /* KWStringPrefixMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D6ED896B521357E09A4062C09A66CE3 /* KWStringPrefixMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9C1542AF7C58114B9268B2F727B5907C /* KWLetNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 670B20674A4437F828F4026CA8033171 /* KWLetNode.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 9C21170AB9330FEA1658C750EC50076E /* KWMatching.h in Headers */ = {isa = PBXBuildFile; fileRef = 0A45858C5D1F13CFB7E9D72A1DC37F0C /* KWMatching.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9D3216A4B6DE42F86ADEDE82A983733C /* KWRegisterMatchersNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 65F128845017C1E79C0EA03F9F3BCBF7 /* KWRegisterMatchersNode.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 9E0882BDBA6A5FDC8875B0B066F88176 /* KWItNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 3F5ABA49B2E5915A05F4F4D314DE7F77 /* KWItNode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9E1F41D4F02EA6B5C14CBD273B7575D1 /* KWPendingNode.m in Sources */ = {isa = PBXBuildFile; fileRef = CEB7705CFF20069B0AD464D3788E8509 /* KWPendingNode.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 9EDF851C6F4807A8E9883D428A1DADA0 /* KWBeTrueMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 1AD1B970493E965C8223D04338FA580E /* KWBeTrueMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 9EE0C8A77C46248C21438C205B7C2A4A /* KWLet.h in Headers */ = {isa = PBXBuildFile; fileRef = C11BE1F6B5286EE0E9399EFAEC329D45 /* KWLet.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9F8ADF4B8A23DA467A58B2CA85004B1D /* KWAny.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BA34CE0BCFEF3D6F6CB188883176EB9 /* KWAny.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9F9FDC697EA3086EE1F3F283132610F2 /* KWWorkarounds.m in Sources */ = {isa = PBXBuildFile; fileRef = D6823D61CF304E54C491F5960BAA58F6 /* KWWorkarounds.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - A19A6D0233DC476BBEA4FFFF96F9E912 /* KWStringUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = F91E3402743EB2CB50D26AEDAE9F5F95 /* KWStringUtilities.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - A1F0DB582D722677028817A07A64135E /* KWMatchVerifier.m in Sources */ = {isa = PBXBuildFile; fileRef = 22A3F9B97668DEDE95EA01736E9F652E /* KWMatchVerifier.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - A2D2F89E31DCAF9F8FCC75D8A5F8DDA8 /* KWStringUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = F91E3402743EB2CB50D26AEDAE9F5F95 /* KWStringUtilities.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - A5A6CB20CFF1492521765D309E37618B /* NSObject+KiwiVerifierAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = F237C8C61313415A9EBF8DEAC7D45AB3 /* NSObject+KiwiVerifierAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - A5C649646804F9EB9ABF0F47A6B39B7A /* KWLetNode.h in Headers */ = {isa = PBXBuildFile; fileRef = D16A250AB4D5D8A30BC6AEA9384AD724 /* KWLetNode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A5FC2650125F41BEEEDFA5833D8FBD1C /* KWAsyncVerifier.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B960BA95F7E2372382893C73E851C5F /* KWAsyncVerifier.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A68DCDAF09DB5784A0A97E1BE3727A3D /* KWAllTestsSuite.m in Sources */ = {isa = PBXBuildFile; fileRef = 78BB682ADE58F2C57B11F4385418B8D6 /* KWAllTestsSuite.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - A69817743786792F8869367BC0F30498 /* KWNotificationMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = FAFEF33D625201A59D46CB32EB4A3A8F /* KWNotificationMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A6D7EF06BB7272D8C0839CE5879FD347 /* TKStateMachine.h in Headers */ = {isa = PBXBuildFile; fileRef = 034EA5E4571A5F342C7C36A734A37900 /* TKStateMachine.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A7EBF3901AD27854FEE945D7BAEE05DE /* KWExampleSuite.m in Sources */ = {isa = PBXBuildFile; fileRef = DCE29C3EEECABA223CE9F305FDB9BE84 /* KWExampleSuite.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - A7F488D91AD3D8FB51CAA6C57DF741C0 /* KWBeZeroMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 6DBEBCBD3DECBF4556D3375E80FDE35F /* KWBeZeroMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A968B33702DD77E5BBC884BFA334D13E /* KWRespondToSelectorMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 5304A5F95231E220F6E93622A05954C8 /* KWRespondToSelectorMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - A9B0C7D39C84527896B212E3A459BAA6 /* KWFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = 14AD1285328ED8B3CA0CDC6242BB6D88 /* KWFormatter.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - A9DC3F82A007C3E089CE72B807F33457 /* KWAllTestsSuite.m in Sources */ = {isa = PBXBuildFile; fileRef = 78BB682ADE58F2C57B11F4385418B8D6 /* KWAllTestsSuite.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - AA32EBD7DA1450CD5E4CC4273D9349CD /* KWMessageTracker.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A8586A48B0A358C7103C4922AC7B380 /* KWMessageTracker.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - AAB0DB1172B404F6347215D7D34EAC46 /* KWExampleNode.h in Headers */ = {isa = PBXBuildFile; fileRef = EAEADAF5178E2B5D2310BB77BC366FB3 /* KWExampleNode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AB183E1EC7605D0A89CD89CCB760885F /* NSValue+KiwiAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C92F272EF0A0B073D7C55273A349F3A /* NSValue+KiwiAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - AB3F1725AA34B0A84A34508B7F2FD18F /* KWHaveMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = B90D667595B25FE8107776F651A911E0 /* KWHaveMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AC51C3442720B7560C15CC80CD3C4A8B /* KWBlockRaiseMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BF0DCD2266DE17DB603E6DBF522F0BD /* KWBlockRaiseMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - AC7AB08A42002500304DE1F4D65DA711 /* KWFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = 14AD1285328ED8B3CA0CDC6242BB6D88 /* KWFormatter.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - AD841562234FF714506B2F97D13FFCA8 /* KWNull.m in Sources */ = {isa = PBXBuildFile; fileRef = FA42334A250A8C547004751E11857E1B /* KWNull.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - AE5B2A1C61A25EDF8F2B70C6004BCE62 /* KWValue.m in Sources */ = {isa = PBXBuildFile; fileRef = 9263A3870C29E2DCB5D42C6C30E7ED74 /* KWValue.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - AE6D7D1BC35B22F1644F5E10B98DB21E /* TKState.m in Sources */ = {isa = PBXBuildFile; fileRef = 648D8A393C28444D622BF37F02B422B7 /* TKState.m */; }; - AE88E82FA28AAE0B5DFF1A6B21BA3585 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 422FAD60290D2EA7012293B8FDE679F8 /* Cocoa.framework */; }; - AF4915797FA9574F6FD837F72E5E8EFB /* KWGenericMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 500E0B5EFFDDF7D6E2537BC1CD76732B /* KWGenericMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - B05ABF483A29F5C61048A5D0E78D961C /* KWCaptureSpy.m in Sources */ = {isa = PBXBuildFile; fileRef = 5ACC0EC17A9E0127F21610540BA6468B /* KWCaptureSpy.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - B0D42A487F03F8D368E83F8BB02A74E3 /* KWSymbolicator.h in Headers */ = {isa = PBXBuildFile; fileRef = 8EE55801BA8EAF4F36D6C4137DE0AFBD /* KWSymbolicator.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B2154F6FBD9A18E1BAFCB2D3C9A7CAC7 /* KWFailure.m in Sources */ = {isa = PBXBuildFile; fileRef = 92EEA89B422A33F3B2D62457F182A99E /* KWFailure.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - B23301896BC4EC3D744313B30B066EDB /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 422FAD60290D2EA7012293B8FDE679F8 /* Cocoa.framework */; }; - B2B20639154A56213D644C575103D323 /* KWContainMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 64DEF5400AD4404A94E8A5C096952E12 /* KWContainMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - B39E633401292DB0CFED005819EBA927 /* NSProxy+KiwiVerifierAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 0C649F57F3B4C015E10DFD233992CE16 /* NSProxy+KiwiVerifierAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - B3AFD9EB4735B642306D1FCC4ACC103B /* KWWorkarounds.h in Headers */ = {isa = PBXBuildFile; fileRef = E6CFB6229102ACF8C2F1199E7D42D7F7 /* KWWorkarounds.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B47D1F954701BAAC7CAB0BC116671D46 /* KWContainStringMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 37076C5802E00623594BAE04318D8D4E /* KWContainStringMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - B4AE5F7362824A8B4E3A5D04F8A37A79 /* KWBlockNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 70892B40A7F42C5557A713B07351BF9A /* KWBlockNode.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - B5388D57FA41AB88D1D555DBBE18560E /* KWBeWithinMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = EB679DECBA9D0FFF026255D78C84FB1A /* KWBeWithinMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - B71F59035F7C46E7BF3521B2939B5A21 /* KWNotificationMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = D5723A007DC1B78FD63A32F36D9165DA /* KWNotificationMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - B72CF0933C475668003DECF5F66132FE /* NSMethodSignature+KiwiAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 2B07F535CD9693EE287B474286083A2C /* NSMethodSignature+KiwiAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - B7FCF79C808419F473F8B10488C4FC8D /* KWMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = FCFA5EE0ED967CD54CA824E8C49A5946 /* KWMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - B8AD393C7DD1C21B89956F08FF8D10F9 /* KWRegularExpressionPatternMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 05585137F87BD6ACB734B44912378228 /* KWRegularExpressionPatternMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B8FCBE3DE70A719CCB71E45F386E58A3 /* KWStringContainsMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = FF4125BC7B176A4EC21EF18019AD8969 /* KWStringContainsMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - B92F4C9B0506606C306877404C0199D0 /* KWFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = 2D7DCCB27760A04D2768AB68AE1363A3 /* KWFormatter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B93AA4B97C003C7A64CBB18C7858E286 /* KWEqualMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 40A69EA9528A384C2C5662193EEE6FE5 /* KWEqualMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B9748E2C12404D0F5F60A5A715DF7D4F /* KWValue.h in Headers */ = {isa = PBXBuildFile; fileRef = F0273CAD5C5B65C439A64EDDE81B1E24 /* KWValue.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BA594BC05159229EEABE09E2ED750158 /* Pods-Tests-TransitionKit iOS Tests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 501D4C05B73F1D1B4D25C3DD17EE8FD2 /* Pods-Tests-TransitionKit iOS Tests-dummy.m */; }; - BB568DC44BF7951AE5A5B635291F5C22 /* KWIntercept.m in Sources */ = {isa = PBXBuildFile; fileRef = 5E83908F3C4D685D8B8DE9ADFF71CDF8 /* KWIntercept.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - BB9F7EF7582967C4A3BE813E047F1182 /* KWRegisterMatchersNode.h in Headers */ = {isa = PBXBuildFile; fileRef = FB8E3C2A0E050F90BE46AF302869CB3A /* KWRegisterMatchersNode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BC1EDFD79E919CB096A788705CC61349 /* KWMessagePattern.m in Sources */ = {isa = PBXBuildFile; fileRef = 059420CE8C1DC29FD9EE1B1B2A3E0335 /* KWMessagePattern.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - BC61525D23CDC8D0B8586379E2C93F6B /* TKStateMachine.h in Headers */ = {isa = PBXBuildFile; fileRef = 034EA5E4571A5F342C7C36A734A37900 /* TKStateMachine.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BCB1D31899C82234731FDBA070AD18C5 /* KWContextNode.m in Sources */ = {isa = PBXBuildFile; fileRef = A9FF2729E28D56E18100AF4F0851D30E /* KWContextNode.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - BF8964A7EF22E74B3A38AF8CAA722772 /* KWDeviceInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 568BAD5CD52E19264F45E0E0381DA0FD /* KWDeviceInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C3E4BC94B693F1FDB384E218DEA9BEAC /* KWFailure.h in Headers */ = {isa = PBXBuildFile; fileRef = 932BF14AECD2A29276E065EE2B454CF2 /* KWFailure.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C49E0F6B3C2EA36637248B02AFD4952F /* KWObjCUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 758113E06C1F73B605A9CF5A2C891A21 /* KWObjCUtilities.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - C4C4EBB019EBCB6F7CBEEAB64FB15495 /* KWStub.m in Sources */ = {isa = PBXBuildFile; fileRef = 26DF249D09AB92EB9692D412D4BF934A /* KWStub.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - C4E907B261FB46CD30E19DFA5D6B56B0 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C03EA831D91AD195092236D7BB777AB9 /* Foundation.framework */; }; - C5B4BE226A5E953C0D2B17C6BE31C778 /* KWReceiveMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 6D69F5BBAC66284191543C373C50055E /* KWReceiveMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C683F58183CE76C559A2EFB81839F00F /* Kiwi.h in Headers */ = {isa = PBXBuildFile; fileRef = 43FEA8C258296A47215FA1418AC340E5 /* Kiwi.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C6CADACA676A0471F909CA044FD6245C /* KWVerifying.h in Headers */ = {isa = PBXBuildFile; fileRef = F7CDBCCA2EF3A6B79094328F2563D194 /* KWVerifying.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C6F9D6F8C39D0CE3442CB20B04541392 /* KWStub.h in Headers */ = {isa = PBXBuildFile; fileRef = D98B4B3B4B36CF2D79CA727DAC03DA3B /* KWStub.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C814749C2E7E2D6995AB480EAD9DAC19 /* KWReceiveMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 6D69F5BBAC66284191543C373C50055E /* KWReceiveMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C85DDAE94B97D337DD0C03F38629BFB2 /* TKState.m in Sources */ = {isa = PBXBuildFile; fileRef = 648D8A393C28444D622BF37F02B422B7 /* TKState.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - C8B87A09E4BE7169A535ED70B2EF0F84 /* KWBeMemberOfClassMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = CA86054E4BF8A85EBFCCC53B71CD3AD7 /* KWBeMemberOfClassMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C9C699A8F30405DDEC0EDDA09204B717 /* KWNotificationMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = D5723A007DC1B78FD63A32F36D9165DA /* KWNotificationMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - C9C76BD3AEB1FEE8BF99E06DAF762263 /* KWUserDefinedMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 4D7C88351B49C622BAF0DC4C9B90F767 /* KWUserDefinedMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - CA8E39717C2FBFDB1F9B32BCF41C929C /* KWMatchVerifier.h in Headers */ = {isa = PBXBuildFile; fileRef = EA432EC6DB6F989648B12DFC16438C9E /* KWMatchVerifier.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CA93F1365797C2B24F27A8D10DEFD28B /* KWConformToProtocolMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 4F5E10FF37964EFF6B2D196DEDC49F16 /* KWConformToProtocolMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - CC93AC87ABF536A2CE2E2A6295BF9B16 /* KWItNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 1ABEFB505538A1453B7380EDB6331F13 /* KWItNode.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - CCE60C3C4F2F51F1E654856BD90F0918 /* KWBlock.m in Sources */ = {isa = PBXBuildFile; fileRef = EE46777CFFF114CB04E87C56B4AD171C /* KWBlock.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - CD18A54B27E89A347BBF192D19F6204A /* KWPendingNode.h in Headers */ = {isa = PBXBuildFile; fileRef = CC14B905FA8567008244E93BBC9BC6F4 /* KWPendingNode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CD62F0E362C57316DD923BBC9686D5C3 /* TKStateMachine.m in Sources */ = {isa = PBXBuildFile; fileRef = CB5BF753B42AC2690BF9B169CD493C86 /* TKStateMachine.m */; }; - CF28F7715E2CD1D137A9EB429337DF5E /* KWRegularExpressionPatternMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 05585137F87BD6ACB734B44912378228 /* KWRegularExpressionPatternMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CF413D778E74D670ABB03BB3D1A45736 /* KWAfterEachNode.h in Headers */ = {isa = PBXBuildFile; fileRef = C00391BF74FFCEB4E362820633E44A16 /* KWAfterEachNode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CF6DD5AADA77B3344A366DD12EC5B09D /* KWReporting.h in Headers */ = {isa = PBXBuildFile; fileRef = D604F15564BCC64E0D54F6EAC5AE0C78 /* KWReporting.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CF709A346B865CE16FDB52BDFA507228 /* KWBlockNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 351A65F768811A66D14252F4360E6C9C /* KWBlockNode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CFB4D3807E5E452B39534AFB7DB4D5A2 /* KWBeTrueMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = D349CE6FFB645614081D42AA23475E68 /* KWBeTrueMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D027389517585029A1DB3F21FADAD6F3 /* Kiwi-OSX-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = BEC09EF12D36C112A2073415D47EA590 /* Kiwi-OSX-dummy.m */; }; - D0C742678B727EC2241B6575F4671695 /* NSInvocation+OCMAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 4D59A4EB3E67A9BFD8E887BDD4BD25A1 /* NSInvocation+OCMAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - D0F7E3F5BE625C64ECEA00F7BED1AF20 /* KWBeWithinMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = EB679DECBA9D0FFF026255D78C84FB1A /* KWBeWithinMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - D18142C904C1E9672DD910F56E2AF90D /* KWSymbolicator.h in Headers */ = {isa = PBXBuildFile; fileRef = 8EE55801BA8EAF4F36D6C4137DE0AFBD /* KWSymbolicator.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D263FD0792138010B78FC6518C9F9B2F /* NSObject+KiwiVerifierAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = F237C8C61313415A9EBF8DEAC7D45AB3 /* NSObject+KiwiVerifierAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - D3367FD9E9A7D744BDD1E0749AA33BCB /* KWCaptureSpy.h in Headers */ = {isa = PBXBuildFile; fileRef = EFDDEBEB2F897787179080F5CE50DBEF /* KWCaptureSpy.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D35121C657101570DA4DE73989859D4A /* KiwiBlockMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = A9099286068F40F2D5B95BEB6A0C4CAB /* KiwiBlockMacros.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D41101368156778E16E4302CCBEF6F2C /* KWDeviceInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = E86341347141CDD7F7314BE23137DFF3 /* KWDeviceInfo.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - D51F991AA4B2899F6E4DF67B21226005 /* KWRegisterMatchersNode.h in Headers */ = {isa = PBXBuildFile; fileRef = FB8E3C2A0E050F90BE46AF302869CB3A /* KWRegisterMatchersNode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D547AB85F57F83F6E1E1315F54DF6BAB /* KWAsyncVerifier.m in Sources */ = {isa = PBXBuildFile; fileRef = B34A4A73DC8745B202D4328E9FE95AFF /* KWAsyncVerifier.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - D59552DD43EAC5C07F901827F465F075 /* KiwiMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = B1FDE3CFE9DF3F2F0D13D797EEA66E2D /* KiwiMacros.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D5C0BEC54E6E08F27DEFE58C60A93182 /* KWBlock.h in Headers */ = {isa = PBXBuildFile; fileRef = 73CC2A29DEABE0D93CDCBA1118E8BD9D /* KWBlock.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D679FFF2FE84830FE8C6C207EE17020F /* KWIntercept.m in Sources */ = {isa = PBXBuildFile; fileRef = 5E83908F3C4D685D8B8DE9ADFF71CDF8 /* KWIntercept.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - D8BFA49CFBD3FCFF67997040E3ADE0DC /* TKEvent.m in Sources */ = {isa = PBXBuildFile; fileRef = EF9DEC550C5A27F945AFE8A095175528 /* TKEvent.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - D8FE8917FFE9FB8C8D3EA63EC703D0AB /* KWGenericMatchEvaluator.m in Sources */ = {isa = PBXBuildFile; fileRef = 7FBBDCBAA6261E65D006B972D25D28A1 /* KWGenericMatchEvaluator.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - D9BA398056FE88A3439D4F9422757640 /* NSObject+KiwiMockAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = ED4A9764F248CFF43569FF0BFAB30448 /* NSObject+KiwiMockAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - D9F12A025FE4C7CE2FCB8DD33C26F198 /* KWStringPrefixMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 85910BD89BFA64FDFE83917EF907901D /* KWStringPrefixMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - DA612633E3303BD2A48507B1F13E7097 /* KWHaveMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = B90D667595B25FE8107776F651A911E0 /* KWHaveMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DABBD01BE904698B0621EF4DF5172AE3 /* KWMock.m in Sources */ = {isa = PBXBuildFile; fileRef = E80E5E0CFA0B6C597B0B3B3A35415977 /* KWMock.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - DAC40D3A594C6B0AEB18C610B64E9D23 /* KWBeEmptyMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 2611FC65E9B987E3203ECC8545C4DCF1 /* KWBeEmptyMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DC40F10B3621FC00FB7703893E2A7049 /* NSValue+KiwiAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 72816FA54D8B9194113465674457951E /* NSValue+KiwiAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DE400941D2D5B6B8358CA97676C94D22 /* KWSuiteConfigurationBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 19B4F9E95D59C44F83433C051B8360E0 /* KWSuiteConfigurationBase.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DFC34EC5DB5010FA53CD339B61B2395A /* KWNull.h in Headers */ = {isa = PBXBuildFile; fileRef = 754CFB098670EAE31A27C94634697BD7 /* KWNull.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E0AEC8BA31635C2EB289858458E90514 /* NSObject+KiwiStubAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = AD34216E46DBCE86FEFAE4EB35FE8683 /* NSObject+KiwiStubAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - E0F5E8CE257973F986E0399A198B8D51 /* KWIntercept.h in Headers */ = {isa = PBXBuildFile; fileRef = 5105ED7F6D13025869962A50A6635F3B /* KWIntercept.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E1239F5E1844971BC1B744ABCD967591 /* KWExistVerifier.h in Headers */ = {isa = PBXBuildFile; fileRef = 8431073B8C86A3C5F402310A4CCFCD7A /* KWExistVerifier.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E20C519D17ECB56B41089B9E30C3F662 /* KWPendingNode.m in Sources */ = {isa = PBXBuildFile; fileRef = CEB7705CFF20069B0AD464D3788E8509 /* KWPendingNode.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - E38AC06C212AC67F98BAEAB1BF3CC52A /* KWBeSubclassOfClassMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = AB59D582F4CF6FC48DB8535B21595281 /* KWBeSubclassOfClassMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - E40E68902478A30BA8DB0EA5CB6980E7 /* NSObject+KiwiMockAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 96E3F8085FBB092401A31E59CEBCCA05 /* NSObject+KiwiMockAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E482075785F8F7B5768A15D20E89B02B /* KWMatcherFactory.h in Headers */ = {isa = PBXBuildFile; fileRef = DC07648E71560AA3BF5E8BD9F4C528A8 /* KWMatcherFactory.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E52732838C66BD0D2BB07C2E1702E02B /* KWGenericMatchingAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = DDD467069D9324A4453D8C98B781B720 /* KWGenericMatchingAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - E5F3206DCC644EAEF2C337A96730D086 /* KWMatchers.m in Sources */ = {isa = PBXBuildFile; fileRef = 527FB1E1ADF4ECC1E7D0903B9A53620B /* KWMatchers.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - E63B08634F16B49F49B5E3203B794319 /* NSObject+KiwiStubAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = AD34216E46DBCE86FEFAE4EB35FE8683 /* NSObject+KiwiStubAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - E76EE15F1A787C2C52D3B7BCC06D5298 /* KWStringContainsMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = FF4125BC7B176A4EC21EF18019AD8969 /* KWStringContainsMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - E7B5E9D97FD7B214A100EB20452C2047 /* KWContextNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C892E8DBF96E3993B73DC024F824CBA /* KWContextNode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E817928E7D5C52431BB65E2379A024EC /* KWExampleDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 7BA6032F0844756BD46A7E8079D19AC3 /* KWExampleDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E819F87187DAA403D2C7D54B1FBE7F2F /* KWBeMemberOfClassMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = CA86054E4BF8A85EBFCCC53B71CD3AD7 /* KWBeMemberOfClassMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E94CF827E6F3C6718893148BDBBB13BC /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C03EA831D91AD195092236D7BB777AB9 /* Foundation.framework */; }; - EA02236B57C4A7CDE39BDEC43EB46139 /* KWExistVerifier.h in Headers */ = {isa = PBXBuildFile; fileRef = 8431073B8C86A3C5F402310A4CCFCD7A /* KWExistVerifier.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EB8643EEFB250DA966E35161687AC6D6 /* KWItNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 1ABEFB505538A1453B7380EDB6331F13 /* KWItNode.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - EBAB14B188FB1A8E359F8D91CE87344F /* KWSpec.h in Headers */ = {isa = PBXBuildFile; fileRef = 4DC62BEFA5390CA11BE3B98CE2923ECB /* KWSpec.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EBDF157092F3EEFCC0DFD3E3BD67B85C /* KWBeKindOfClassMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 1872AE16F181CB62786A96B5ADA3C37C /* KWBeKindOfClassMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - ECB98F443826BDBD5118CA5556061AEF /* KWAfterEachNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 0A8AB445D6EC0328FAA1894B40437D6B /* KWAfterEachNode.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - EDDAD25DA404DDBF539AFFFD1787FB48 /* KWExampleNode.h in Headers */ = {isa = PBXBuildFile; fileRef = EAEADAF5178E2B5D2310BB77BC366FB3 /* KWExampleNode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EE302C96B9F2CC3491D25EE5C5F7B51E /* KWInequalityMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 06562BE430DC665872475BE5B5175D0B /* KWInequalityMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - EE5CA8398835A13EC3F3E1F9B8344E21 /* KWFutureObject.m in Sources */ = {isa = PBXBuildFile; fileRef = BBAD47D3C57FAA56D76723628BCFD574 /* KWFutureObject.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - EECE294FB1A61066664F75C9993B674F /* KWSpec.h in Headers */ = {isa = PBXBuildFile; fileRef = 4DC62BEFA5390CA11BE3B98CE2923ECB /* KWSpec.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EF72BFCC295BCFEFB28FB330DFB9DD53 /* KWNilMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = BD0A74A8AB1D7AACBAEB25E5A6561A7A /* KWNilMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - F221338F78CBE36A4B9B3980B81A59C0 /* KWBlockNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 70892B40A7F42C5557A713B07351BF9A /* KWBlockNode.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - F2274BE822162179599DE310F66F3135 /* KWBeEmptyMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 2611FC65E9B987E3203ECC8545C4DCF1 /* KWBeEmptyMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F3A1E009F594274B126CBC82552A18BB /* KWBeIdenticalToMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 91102A88506DBDC6287A88895B888BDB /* KWBeIdenticalToMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F48BE3290CA0FCF915D941B8066540E3 /* KWLetNode.h in Headers */ = {isa = PBXBuildFile; fileRef = D16A250AB4D5D8A30BC6AEA9384AD724 /* KWLetNode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F4DC7CD545DE7AC583C53C64AAC9EBB7 /* KWEqualMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 6918A19DC1D5CAE9508F3926F0CA0D94 /* KWEqualMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - F539DE93AF83C99F101D0FD577A97170 /* TransitionKit-OSX-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 44C6610BE6F06F04404102ECBFB01DD3 /* TransitionKit-OSX-dummy.m */; }; - F53AE33F06F554C8F1D5DF46A8D63719 /* TKState.h in Headers */ = {isa = PBXBuildFile; fileRef = 393F94421B8F85C548119F76EE48452F /* TKState.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F59D02DBC3C9198DE2E78FD7A429E5A1 /* NSObject+KiwiMockAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 96E3F8085FBB092401A31E59CEBCCA05 /* NSObject+KiwiMockAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F6508813F978E711824D53906423ED9F /* NSNumber+KiwiAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 55C97AE1AB95D9CF6768CE01B9CA68E5 /* NSNumber+KiwiAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - F6F52B8A2E6B79933E309AB97F490BDF /* KWMessageTracker.h in Headers */ = {isa = PBXBuildFile; fileRef = 975A571B9E39A04BB66BECB12B3324D3 /* KWMessageTracker.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F733A59B703FD11A0C30EDCA68C3AB15 /* KWExampleSuiteBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 90B84A9B0042A11B9E60703C9E586918 /* KWExampleSuiteBuilder.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - F85D354DBBDF1A3024A7482E03C56C8C /* KWGenericMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 29AC97F54FF338B0F3C1DFEA43EB047F /* KWGenericMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F862822D7A941C87194F7F31EC441C78 /* KWCountType.h in Headers */ = {isa = PBXBuildFile; fileRef = 42EBE5950F6E0E14DB65083B425C611D /* KWCountType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F873323951518CF82350C232FCA8DAC4 /* KWAfterEachNode.h in Headers */ = {isa = PBXBuildFile; fileRef = C00391BF74FFCEB4E362820633E44A16 /* KWAfterEachNode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F99A5D8602F91BDE42E17E2CD59FB7DD /* KWContainMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = D9444A54A51E466BF711929BEC8EF795 /* KWContainMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FAF00A1B6E2D90F043B88D0BE38B7006 /* KWBeIdenticalToMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = FF807698AD6A9FB090E1D13BE0625829 /* KWBeIdenticalToMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - FB9F5FAE8140B6FD4248AD4A9059AD1E /* KWGenericMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 500E0B5EFFDDF7D6E2537BC1CD76732B /* KWGenericMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - FBE5BD09AEC4615C08DC390DD781FC42 /* KWMock.m in Sources */ = {isa = PBXBuildFile; fileRef = E80E5E0CFA0B6C597B0B3B3A35415977 /* KWMock.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - FC46F05FFAD4BE39909AE3EDA0B7B09C /* KWCountType.h in Headers */ = {isa = PBXBuildFile; fileRef = 42EBE5950F6E0E14DB65083B425C611D /* KWCountType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FD58D4D8B73312436CD6AC43EC28D86E /* KWBeTrueMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = D349CE6FFB645614081D42AA23475E68 /* KWBeTrueMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FEA9319D1CE12C02EBFFDF90918174B3 /* KWMatchers.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C970E9FDC8AA8D6B5FE73B21B5F8F38 /* KWMatchers.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FECEB5E5135C5DF75A97E9B9B14FC88D /* KWAfterAllNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 616DEFC59352FFC06ED487243FFF6B21 /* KWAfterAllNode.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - FF1BABAB26615A63BDB0765DF48833D7 /* NSInvocation+KiwiAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = EEB8D19562B679A83C28687DEE1E7BEC /* NSInvocation+KiwiAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FF54E9158DB1B92E682DDCBB6D9B6050 /* KWReceiveMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = E9A767EE0FEFAF78C2DE1FC493B51227 /* KWReceiveMatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - 9487AB6E8C62E7D23D888C6C9F80DA8D /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; - proxyType = 1; - remoteGlobalIDString = 9C77A4CD37823CC5839C1244E3B4655E; - remoteInfo = "Kiwi-OSX"; - }; - AB4E34AA78D13AFBB23AA850EF5B586E /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; - proxyType = 1; - remoteGlobalIDString = 6C4B72EAD29C118CA0F3246466DBFFE3; - remoteInfo = "TransitionKit-iOS"; - }; - D1A9F006DDCB7DE990672BBF7F2BBC3E /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; - proxyType = 1; - remoteGlobalIDString = C013B188CECFD144F264E15EC3C2A8DA; - remoteInfo = "TransitionKit-OSX"; - }; - EBBC78A34964489ACCC332C919128BF1 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; - proxyType = 1; - remoteGlobalIDString = 96B533C5E6327385FD6AB88890A3A0EB; - remoteInfo = "Kiwi-iOS"; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - 034EA5E4571A5F342C7C36A734A37900 /* TKStateMachine.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TKStateMachine.h; sourceTree = ""; }; - 05585137F87BD6ACB734B44912378228 /* KWRegularExpressionPatternMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWRegularExpressionPatternMatcher.h; path = Classes/Matchers/KWRegularExpressionPatternMatcher.h; sourceTree = ""; }; - 059420CE8C1DC29FD9EE1B1B2A3E0335 /* KWMessagePattern.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWMessagePattern.m; path = Classes/Core/KWMessagePattern.m; sourceTree = ""; }; - 06562BE430DC665872475BE5B5175D0B /* KWInequalityMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWInequalityMatcher.m; path = Classes/Matchers/KWInequalityMatcher.m; sourceTree = ""; }; - 0A45858C5D1F13CFB7E9D72A1DC37F0C /* KWMatching.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWMatching.h; path = Classes/Core/KWMatching.h; sourceTree = ""; }; - 0A8AB445D6EC0328FAA1894B40437D6B /* KWAfterEachNode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWAfterEachNode.m; path = Classes/Nodes/KWAfterEachNode.m; sourceTree = ""; }; - 0BB6F5764C789C7A2DCC2705F49A926B /* Pods-Tests-TransitionKit macOS Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Tests-TransitionKit macOS Tests.debug.xcconfig"; sourceTree = ""; }; - 0C649F57F3B4C015E10DFD233992CE16 /* NSProxy+KiwiVerifierAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSProxy+KiwiVerifierAdditions.m"; path = "Classes/Core/NSProxy+KiwiVerifierAdditions.m"; sourceTree = ""; }; - 0CC9A6D18B5072D2DF0B38DA413C1A78 /* KWBeBetweenMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWBeBetweenMatcher.m; path = Classes/Matchers/KWBeBetweenMatcher.m; sourceTree = ""; }; - 0EBBF9946B43D7E71A5F2A438DCB4D4E /* KWProbe.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWProbe.h; path = Classes/Core/KWProbe.h; sourceTree = ""; }; - 0ECFB18D1A19B589397B6D18E4E5A21C /* KWAfterAllNode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWAfterAllNode.h; path = Classes/Nodes/KWAfterAllNode.h; sourceTree = ""; }; - 0F2B9871936398B30FC4361D5A71826A /* KWExampleSuiteBuilder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWExampleSuiteBuilder.h; path = Classes/Core/KWExampleSuiteBuilder.h; sourceTree = ""; }; - 10AB2797AAC0DCB6A9B711A1B731B574 /* libTransitionKit-iOS.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libTransitionKit-iOS.a"; path = "libTransitionKit-iOS.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 113E1B9BC80A7DEDB2792CCD634B0BD6 /* KWAny.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWAny.m; path = Classes/Core/KWAny.m; sourceTree = ""; }; - 1390E56741A21D7304092F55FCB26EBB /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/System/Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; }; - 148C2542C42112ED2D7CB15FE8831AE1 /* KWRespondToSelectorMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWRespondToSelectorMatcher.h; path = Classes/Matchers/KWRespondToSelectorMatcher.h; sourceTree = ""; }; - 14AD1285328ED8B3CA0CDC6242BB6D88 /* KWFormatter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWFormatter.m; path = Classes/Core/KWFormatter.m; sourceTree = ""; }; - 14CB7E251F85E37E0EDEF6DDA5F3758B /* Pods-Tests-TransitionKit macOS Tests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-Tests-TransitionKit macOS Tests-frameworks.sh"; sourceTree = ""; }; - 16CEEB90C83E148E1BE783D800B495B2 /* Pods-Tests-TransitionKit iOS Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Tests-TransitionKit iOS Tests.release.xcconfig"; sourceTree = ""; }; - 17E094ECF9B0E4DFC3FBAD5C205A19DD /* KWCallSite.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWCallSite.m; path = Classes/Core/KWCallSite.m; sourceTree = ""; }; - 1872AE16F181CB62786A96B5ADA3C37C /* KWBeKindOfClassMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWBeKindOfClassMatcher.h; path = Classes/Matchers/KWBeKindOfClassMatcher.h; sourceTree = ""; }; - 19B4F9E95D59C44F83433C051B8360E0 /* KWSuiteConfigurationBase.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWSuiteConfigurationBase.h; path = Classes/Config/KWSuiteConfigurationBase.h; sourceTree = ""; }; - 1ABEFB505538A1453B7380EDB6331F13 /* KWItNode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWItNode.m; path = Classes/Nodes/KWItNode.m; sourceTree = ""; }; - 1AD1B970493E965C8223D04338FA580E /* KWBeTrueMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWBeTrueMatcher.m; path = Classes/Matchers/KWBeTrueMatcher.m; sourceTree = ""; }; - 1CC7333B171173016282DC518E43F3F0 /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.0.sdk/System/Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; }; - 1CE262A553A2502921C0E78DA2A7F6DC /* libKiwi-iOS.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libKiwi-iOS.a"; path = "libKiwi-iOS.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 1E9C00C464746D026083FA7E144C708F /* KWExample.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWExample.h; path = Classes/Core/KWExample.h; sourceTree = ""; }; - 212D76EA5FA339A0C58D61F208F6EA66 /* KWExampleNodeVisitor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWExampleNodeVisitor.h; path = Classes/Core/KWExampleNodeVisitor.h; sourceTree = ""; }; - 21911470869B89C13289979D4BD650AE /* KWExampleSuite.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWExampleSuite.h; path = Classes/Core/KWExampleSuite.h; sourceTree = ""; }; - 22A3F9B97668DEDE95EA01736E9F652E /* KWMatchVerifier.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWMatchVerifier.m; path = Classes/Verifiers/KWMatchVerifier.m; sourceTree = ""; }; - 23E1571FCA3A6EC612572E670F594659 /* TransitionKit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TransitionKit.h; sourceTree = ""; }; - 250EBC95B13ABC459B6B8EABD7448826 /* KWGenericMatchEvaluator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWGenericMatchEvaluator.h; path = Classes/Matchers/KWGenericMatchEvaluator.h; sourceTree = ""; }; - 2611FC65E9B987E3203ECC8545C4DCF1 /* KWBeEmptyMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWBeEmptyMatcher.h; path = Classes/Matchers/KWBeEmptyMatcher.h; sourceTree = ""; }; - 26DF249D09AB92EB9692D412D4BF934A /* KWStub.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWStub.m; path = Classes/Stubbing/KWStub.m; sourceTree = ""; }; - 2863C373DB49AB3F8C8E423F51C863AE /* KWContainStringMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWContainStringMatcher.h; path = Classes/Matchers/KWContainStringMatcher.h; sourceTree = ""; }; - 2875B32C66DD81C46D31A653122995FA /* NSObject+KiwiVerifierAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+KiwiVerifierAdditions.h"; path = "Classes/Core/NSObject+KiwiVerifierAdditions.h"; sourceTree = ""; }; - 294D205727AABFE5EFA3ECAAC1FC56ED /* KWBeMemberOfClassMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWBeMemberOfClassMatcher.m; path = Classes/Matchers/KWBeMemberOfClassMatcher.m; sourceTree = ""; }; - 29AC97F54FF338B0F3C1DFEA43EB047F /* KWGenericMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWGenericMatcher.h; path = Classes/Matchers/KWGenericMatcher.h; sourceTree = ""; }; - 2A8586A48B0A358C7103C4922AC7B380 /* KWMessageTracker.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWMessageTracker.m; path = Classes/Core/KWMessageTracker.m; sourceTree = ""; }; - 2ACAFC3703DEE3F72D38ADED35EB11A7 /* KWMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWMatcher.h; path = Classes/Core/KWMatcher.h; sourceTree = ""; }; - 2B07F535CD9693EE287B474286083A2C /* NSMethodSignature+KiwiAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSMethodSignature+KiwiAdditions.m"; path = "Classes/Core/NSMethodSignature+KiwiAdditions.m"; sourceTree = ""; }; - 2C5659E20E953DFEC130ED99ED3A5B61 /* KWBeKindOfClassMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWBeKindOfClassMatcher.m; path = Classes/Matchers/KWBeKindOfClassMatcher.m; sourceTree = ""; }; - 2C8C3A6BE1E5DCEACB92D753366DF758 /* KWBeSubclassOfClassMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWBeSubclassOfClassMatcher.h; path = Classes/Matchers/KWBeSubclassOfClassMatcher.h; sourceTree = ""; }; - 2CE74D52AD87FC18362A0D06C0DB71B2 /* NSObject+KiwiSpyAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+KiwiSpyAdditions.h"; path = "Classes/Core/NSObject+KiwiSpyAdditions.h"; sourceTree = ""; }; - 2D7DCCB27760A04D2768AB68AE1363A3 /* KWFormatter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWFormatter.h; path = Classes/Core/KWFormatter.h; sourceTree = ""; }; - 2E862E7F777D7FF09F2CFC5DFA8CB14F /* KWCallSite.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWCallSite.h; path = Classes/Core/KWCallSite.h; sourceTree = ""; }; - 351A65F768811A66D14252F4360E6C9C /* KWBlockNode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWBlockNode.h; path = Classes/Nodes/KWBlockNode.h; sourceTree = ""; }; - 35A7A4DC14FDD71920BF9A2DFED5A026 /* KWBeforeEachNode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWBeforeEachNode.m; path = Classes/Nodes/KWBeforeEachNode.m; sourceTree = ""; }; - 37076C5802E00623594BAE04318D8D4E /* KWContainStringMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWContainStringMatcher.m; path = Classes/Matchers/KWContainStringMatcher.m; sourceTree = ""; }; - 393F94421B8F85C548119F76EE48452F /* TKState.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TKState.h; sourceTree = ""; }; - 3BA34CE0BCFEF3D6F6CB188883176EB9 /* KWAny.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWAny.h; path = Classes/Core/KWAny.h; sourceTree = ""; }; - 3C92F272EF0A0B073D7C55273A349F3A /* NSValue+KiwiAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSValue+KiwiAdditions.m"; path = "Classes/Core/NSValue+KiwiAdditions.m"; sourceTree = ""; }; - 3D1FCCBF683DDBBAE6848A5DE33F64A3 /* NSObject+KiwiSpyAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+KiwiSpyAdditions.m"; path = "Classes/Core/NSObject+KiwiSpyAdditions.m"; sourceTree = ""; }; - 3D6ED896B521357E09A4062C09A66CE3 /* KWStringPrefixMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWStringPrefixMatcher.h; path = Classes/Matchers/KWStringPrefixMatcher.h; sourceTree = ""; }; - 3E95B982DF325EDFC5857FC3AE79ACB6 /* KWBeforeAllNode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWBeforeAllNode.m; path = Classes/Nodes/KWBeforeAllNode.m; sourceTree = ""; }; - 3F5ABA49B2E5915A05F4F4D314DE7F77 /* KWItNode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWItNode.h; path = Classes/Nodes/KWItNode.h; sourceTree = ""; }; - 40A69EA9528A384C2C5662193EEE6FE5 /* KWEqualMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWEqualMatcher.h; path = Classes/Matchers/KWEqualMatcher.h; sourceTree = ""; }; - 422FAD60290D2EA7012293B8FDE679F8 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/System/Library/Frameworks/Cocoa.framework; sourceTree = DEVELOPER_DIR; }; - 42EBE5950F6E0E14DB65083B425C611D /* KWCountType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWCountType.h; path = Classes/Core/KWCountType.h; sourceTree = ""; }; - 43FEA8C258296A47215FA1418AC340E5 /* Kiwi.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Kiwi.h; path = Classes/Core/Kiwi.h; sourceTree = ""; }; - 44C6610BE6F06F04404102ECBFB01DD3 /* TransitionKit-OSX-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "TransitionKit-OSX-dummy.m"; sourceTree = ""; }; - 480C95E78BCF7FD2EDB54E8ABE0C8719 /* libTransitionKit-OSX.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libTransitionKit-OSX.a"; path = "libTransitionKit-OSX.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 489C1906472A7F4CB9FE8902259892E0 /* KWExistVerifier.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWExistVerifier.m; path = Classes/Verifiers/KWExistVerifier.m; sourceTree = ""; }; - 4BF0DCD2266DE17DB603E6DBF522F0BD /* KWBlockRaiseMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWBlockRaiseMatcher.m; path = Classes/Matchers/KWBlockRaiseMatcher.m; sourceTree = ""; }; - 4C970E9FDC8AA8D6B5FE73B21B5F8F38 /* KWMatchers.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWMatchers.h; path = Classes/Core/KWMatchers.h; sourceTree = ""; }; - 4CAB5D796FF6822200772634A39EEEDD /* KWInvocationCapturer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWInvocationCapturer.h; path = Classes/Core/KWInvocationCapturer.h; sourceTree = ""; }; - 4D59A4EB3E67A9BFD8E887BDD4BD25A1 /* NSInvocation+OCMAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSInvocation+OCMAdditions.m"; path = "Classes/Core/NSInvocation+OCMAdditions.m"; sourceTree = ""; }; - 4D7C88351B49C622BAF0DC4C9B90F767 /* KWUserDefinedMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWUserDefinedMatcher.m; path = Classes/Matchers/KWUserDefinedMatcher.m; sourceTree = ""; }; - 4DC62BEFA5390CA11BE3B98CE2923ECB /* KWSpec.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWSpec.h; path = Classes/Core/KWSpec.h; sourceTree = ""; }; - 4F5E10FF37964EFF6B2D196DEDC49F16 /* KWConformToProtocolMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWConformToProtocolMatcher.m; path = Classes/Matchers/KWConformToProtocolMatcher.m; sourceTree = ""; }; - 500E0B5EFFDDF7D6E2537BC1CD76732B /* KWGenericMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWGenericMatcher.m; path = Classes/Matchers/KWGenericMatcher.m; sourceTree = ""; }; - 501D4C05B73F1D1B4D25C3DD17EE8FD2 /* Pods-Tests-TransitionKit iOS Tests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Tests-TransitionKit iOS Tests-dummy.m"; sourceTree = ""; }; - 5105ED7F6D13025869962A50A6635F3B /* KWIntercept.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWIntercept.h; path = Classes/Stubbing/KWIntercept.h; sourceTree = ""; }; - 527E7E0152A581D6B6A50B3D154A14BB /* TransitionKit-iOS-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "TransitionKit-iOS-prefix.pch"; path = "../TransitionKit-iOS/TransitionKit-iOS-prefix.pch"; sourceTree = ""; }; - 527FB1E1ADF4ECC1E7D0903B9A53620B /* KWMatchers.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWMatchers.m; path = Classes/Core/KWMatchers.m; sourceTree = ""; }; - 5304A5F95231E220F6E93622A05954C8 /* KWRespondToSelectorMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWRespondToSelectorMatcher.m; path = Classes/Matchers/KWRespondToSelectorMatcher.m; sourceTree = ""; }; - 541F3BE533709B3274E60136132AFD18 /* KWBeEmptyMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWBeEmptyMatcher.m; path = Classes/Matchers/KWBeEmptyMatcher.m; sourceTree = ""; }; - 546126E831DA125797DBA34D0B0B15C9 /* KWHaveMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWHaveMatcher.m; path = Classes/Matchers/KWHaveMatcher.m; sourceTree = ""; }; - 55C97AE1AB95D9CF6768CE01B9CA68E5 /* NSNumber+KiwiAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSNumber+KiwiAdditions.m"; path = "Classes/Core/NSNumber+KiwiAdditions.m"; sourceTree = ""; }; - 568BAD5CD52E19264F45E0E0381DA0FD /* KWDeviceInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWDeviceInfo.h; path = Classes/Core/KWDeviceInfo.h; sourceTree = ""; }; - 57D0C1D91B37A359DAA73D15AD96586A /* KWNilMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWNilMatcher.h; path = Classes/Matchers/KWNilMatcher.h; sourceTree = ""; }; - 5ACC0EC17A9E0127F21610540BA6468B /* KWCaptureSpy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWCaptureSpy.m; path = Classes/Core/KWCaptureSpy.m; sourceTree = ""; }; - 5AE7ADADCD07B566FCC1A7ABDDC56F7B /* KWSuiteConfigurationBase.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWSuiteConfigurationBase.m; path = Classes/Config/KWSuiteConfigurationBase.m; sourceTree = ""; }; - 5B6C76352971E8DC93F728CFCDFE9D78 /* KWStringUtilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWStringUtilities.h; path = Classes/Core/KWStringUtilities.h; sourceTree = ""; }; - 5E83908F3C4D685D8B8DE9ADFF71CDF8 /* KWIntercept.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWIntercept.m; path = Classes/Stubbing/KWIntercept.m; sourceTree = ""; }; - 616DEFC59352FFC06ED487243FFF6B21 /* KWAfterAllNode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWAfterAllNode.m; path = Classes/Nodes/KWAfterAllNode.m; sourceTree = ""; }; - 630D678B8DADB0BED7FC51FFFF48924A /* KWBeforeEachNode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWBeforeEachNode.h; path = Classes/Nodes/KWBeforeEachNode.h; sourceTree = ""; }; - 643D7C56E967BA3D7E131EA1BBB094D7 /* KWBeBetweenMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWBeBetweenMatcher.h; path = Classes/Matchers/KWBeBetweenMatcher.h; sourceTree = ""; }; - 6487FCC415D782C5054DA3B881FF98F4 /* Pods-Tests-TransitionKit iOS Tests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-Tests-TransitionKit iOS Tests-acknowledgements.plist"; sourceTree = ""; }; - 648D8A393C28444D622BF37F02B422B7 /* TKState.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TKState.m; sourceTree = ""; }; - 64DEF5400AD4404A94E8A5C096952E12 /* KWContainMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWContainMatcher.m; path = Classes/Matchers/KWContainMatcher.m; sourceTree = ""; }; - 65F128845017C1E79C0EA03F9F3BCBF7 /* KWRegisterMatchersNode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWRegisterMatchersNode.m; path = Classes/Nodes/KWRegisterMatchersNode.m; sourceTree = ""; }; - 669C539461364A09713D2166205A32A6 /* Kiwi-iOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "Kiwi-iOS-dummy.m"; path = "../Kiwi-iOS/Kiwi-iOS-dummy.m"; sourceTree = ""; }; - 670B20674A4437F828F4026CA8033171 /* KWLetNode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWLetNode.m; path = Classes/Nodes/KWLetNode.m; sourceTree = ""; }; - 6918A19DC1D5CAE9508F3926F0CA0D94 /* KWEqualMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWEqualMatcher.m; path = Classes/Matchers/KWEqualMatcher.m; sourceTree = ""; }; - 69508E0AF28F70BAB3C98863761ED848 /* NSInvocation+OCMAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSInvocation+OCMAdditions.h"; path = "Classes/Core/NSInvocation+OCMAdditions.h"; sourceTree = ""; }; - 69DA46C17E7EB139FD868FF009783CED /* KWMessageSpying.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWMessageSpying.h; path = Classes/Core/KWMessageSpying.h; sourceTree = ""; }; - 6BFE0CAE805CF54C07E3BF863F446C61 /* KWBeWithinMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWBeWithinMatcher.h; path = Classes/Matchers/KWBeWithinMatcher.h; sourceTree = ""; }; - 6D69F5BBAC66284191543C373C50055E /* KWReceiveMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWReceiveMatcher.h; path = Classes/Matchers/KWReceiveMatcher.h; sourceTree = ""; }; - 6D7C527685C98ACE3FE01EE25379EE76 /* KWBeZeroMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWBeZeroMatcher.m; path = Classes/Matchers/KWBeZeroMatcher.m; sourceTree = ""; }; - 6DBEBCBD3DECBF4556D3375E80FDE35F /* KWBeZeroMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWBeZeroMatcher.h; path = Classes/Matchers/KWBeZeroMatcher.h; sourceTree = ""; }; - 6E9D87D62E79368CCD6684A9FF4355BF /* KWProbePoller.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWProbePoller.h; path = Classes/Core/KWProbePoller.h; sourceTree = ""; }; - 70892B40A7F42C5557A713B07351BF9A /* KWBlockNode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWBlockNode.m; path = Classes/Nodes/KWBlockNode.m; sourceTree = ""; }; - 72816FA54D8B9194113465674457951E /* NSValue+KiwiAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSValue+KiwiAdditions.h"; path = "Classes/Core/NSValue+KiwiAdditions.h"; sourceTree = ""; }; - 73CC2A29DEABE0D93CDCBA1118E8BD9D /* KWBlock.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWBlock.h; path = Classes/Core/KWBlock.h; sourceTree = ""; }; - 754CFB098670EAE31A27C94634697BD7 /* KWNull.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWNull.h; path = Classes/Core/KWNull.h; sourceTree = ""; }; - 758113E06C1F73B605A9CF5A2C891A21 /* KWObjCUtilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWObjCUtilities.m; path = Classes/Core/KWObjCUtilities.m; sourceTree = ""; }; - 78B81192B4CF29FC2B76DBAF0B7D8799 /* Pods-Tests-TransitionKit iOS Tests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-Tests-TransitionKit iOS Tests-acknowledgements.markdown"; sourceTree = ""; }; - 78BB682ADE58F2C57B11F4385418B8D6 /* KWAllTestsSuite.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWAllTestsSuite.m; path = Classes/Config/KWAllTestsSuite.m; sourceTree = ""; }; - 78E2ABB82E91C9992234960DD027F1B1 /* KWChangeMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWChangeMatcher.h; path = Classes/Matchers/KWChangeMatcher.h; sourceTree = ""; }; - 7BA6032F0844756BD46A7E8079D19AC3 /* KWExampleDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWExampleDelegate.h; path = Classes/Core/KWExampleDelegate.h; sourceTree = ""; }; - 7D7697FE1511358632E4594253DC3571 /* libPods-Tests-TransitionKit macOS Tests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libPods-Tests-TransitionKit macOS Tests.a"; path = "libPods-Tests-TransitionKit macOS Tests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 7E6C4367195FD7CD3EC26AABC022DF10 /* Pods-Tests-TransitionKit macOS Tests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-Tests-TransitionKit macOS Tests-resources.sh"; sourceTree = ""; }; - 7FBBDCBAA6261E65D006B972D25D28A1 /* KWGenericMatchEvaluator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWGenericMatchEvaluator.m; path = Classes/Matchers/KWGenericMatchEvaluator.m; sourceTree = ""; }; - 81709A68610F4926EF12AF994568B7C4 /* Pods-Tests-TransitionKit iOS Tests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-Tests-TransitionKit iOS Tests-frameworks.sh"; sourceTree = ""; }; - 82C58D345F3385EE526EB9E6093F4A9B /* KWInvocationCapturer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWInvocationCapturer.m; path = Classes/Core/KWInvocationCapturer.m; sourceTree = ""; }; - 8360901F15ABA7A40903E016D32D0707 /* Pods-Tests-TransitionKit macOS Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Tests-TransitionKit macOS Tests.release.xcconfig"; sourceTree = ""; }; - 8431073B8C86A3C5F402310A4CCFCD7A /* KWExistVerifier.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWExistVerifier.h; path = Classes/Verifiers/KWExistVerifier.h; sourceTree = ""; }; - 847D05418B5B6F10CABA60007ADBCB40 /* NSInvocation+KiwiAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSInvocation+KiwiAdditions.m"; path = "Classes/Core/NSInvocation+KiwiAdditions.m"; sourceTree = ""; }; - 85910BD89BFA64FDFE83917EF907901D /* KWStringPrefixMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWStringPrefixMatcher.m; path = Classes/Matchers/KWStringPrefixMatcher.m; sourceTree = ""; }; - 866777442F22D145FA6F9C65F8484823 /* libKiwi-OSX.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libKiwi-OSX.a"; path = "libKiwi-OSX.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 8B960BA95F7E2372382893C73E851C5F /* KWAsyncVerifier.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWAsyncVerifier.h; path = Classes/Verifiers/KWAsyncVerifier.h; sourceTree = ""; }; - 8BEF8601DBDFF67698C86A7465D0DE6D /* KWMatcherFactory.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWMatcherFactory.m; path = Classes/Core/KWMatcherFactory.m; sourceTree = ""; }; - 8C892E8DBF96E3993B73DC024F824CBA /* KWContextNode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWContextNode.h; path = Classes/Nodes/KWContextNode.h; sourceTree = ""; }; - 8EE55801BA8EAF4F36D6C4137DE0AFBD /* KWSymbolicator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWSymbolicator.h; path = Classes/Core/KWSymbolicator.h; sourceTree = ""; }; - 8F9F719B5BBCE9382930036499525B39 /* NSNumber+KiwiAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSNumber+KiwiAdditions.h"; path = "Classes/Core/NSNumber+KiwiAdditions.h"; sourceTree = ""; }; - 90B84A9B0042A11B9E60703C9E586918 /* KWExampleSuiteBuilder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWExampleSuiteBuilder.m; path = Classes/Core/KWExampleSuiteBuilder.m; sourceTree = ""; }; - 91102A88506DBDC6287A88895B888BDB /* KWBeIdenticalToMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWBeIdenticalToMatcher.h; path = Classes/Matchers/KWBeIdenticalToMatcher.h; sourceTree = ""; }; - 9263A3870C29E2DCB5D42C6C30E7ED74 /* KWValue.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWValue.m; path = Classes/Core/KWValue.m; sourceTree = ""; }; - 92EEA89B422A33F3B2D62457F182A99E /* KWFailure.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWFailure.m; path = Classes/Core/KWFailure.m; sourceTree = ""; }; - 932BF14AECD2A29276E065EE2B454CF2 /* KWFailure.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWFailure.h; path = Classes/Core/KWFailure.h; sourceTree = ""; }; - 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - 94F563A02CDEC9274FCA4DB421D4BC73 /* KWHaveValueMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWHaveValueMatcher.h; path = Classes/Matchers/KWHaveValueMatcher.h; sourceTree = ""; }; - 96E3F8085FBB092401A31E59CEBCCA05 /* NSObject+KiwiMockAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+KiwiMockAdditions.h"; path = "Classes/Mocking/NSObject+KiwiMockAdditions.h"; sourceTree = ""; }; - 975A571B9E39A04BB66BECB12B3324D3 /* KWMessageTracker.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWMessageTracker.h; path = Classes/Core/KWMessageTracker.h; sourceTree = ""; }; - 9761199A4AC57161FD46825EE28C0174 /* TransitionKit-iOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "TransitionKit-iOS-dummy.m"; path = "../TransitionKit-iOS/TransitionKit-iOS-dummy.m"; sourceTree = ""; }; - 97F048881AF42E17E7F1E7D6F5F6FE67 /* TKEvent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TKEvent.h; sourceTree = ""; }; - 9E9FB4F5D8ABF9DBB05D40B9E4D350E6 /* KWSpec.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWSpec.m; path = Classes/Core/KWSpec.m; sourceTree = ""; }; - A0F594363F623208C379DD678DD0ABDD /* Kiwi-OSX-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Kiwi-OSX-prefix.pch"; sourceTree = ""; }; - A2432F14B5A93B3E4A832E863EC8D274 /* KWMock.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWMock.h; path = Classes/Mocking/KWMock.h; sourceTree = ""; }; - A2F96CE5DC0D8EC6DEDBE2259FA0BE65 /* KWMessagePattern.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWMessagePattern.h; path = Classes/Core/KWMessagePattern.h; sourceTree = ""; }; - A7EE6629E43BB2D68A69F97133AEC45E /* KiwiConfiguration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KiwiConfiguration.h; path = Classes/Core/KiwiConfiguration.h; sourceTree = ""; }; - A9099286068F40F2D5B95BEB6A0C4CAB /* KiwiBlockMacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KiwiBlockMacros.h; path = Classes/Core/KiwiBlockMacros.h; sourceTree = ""; }; - A9FF2729E28D56E18100AF4F0851D30E /* KWContextNode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWContextNode.m; path = Classes/Nodes/KWContextNode.m; sourceTree = ""; }; - AB59D582F4CF6FC48DB8535B21595281 /* KWBeSubclassOfClassMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWBeSubclassOfClassMatcher.m; path = Classes/Matchers/KWBeSubclassOfClassMatcher.m; sourceTree = ""; }; - ACA878E9592C301AB401C38EF55E4A33 /* KWChangeMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWChangeMatcher.m; path = Classes/Matchers/KWChangeMatcher.m; sourceTree = ""; }; - AD0AD0691900FE20808DB37D7CE905BD /* Pods-Tests-TransitionKit macOS Tests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-Tests-TransitionKit macOS Tests-acknowledgements.plist"; sourceTree = ""; }; - AD34216E46DBCE86FEFAE4EB35FE8683 /* NSObject+KiwiStubAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+KiwiStubAdditions.m"; path = "Classes/Stubbing/NSObject+KiwiStubAdditions.m"; sourceTree = ""; }; - AEEAFD580CA92BE681F25B01C0A8AD08 /* NSProxy+KiwiVerifierAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSProxy+KiwiVerifierAdditions.h"; path = "Classes/Core/NSProxy+KiwiVerifierAdditions.h"; sourceTree = ""; }; - AF2E9FB8B7A08C2681DFBE771F6DDD64 /* TKTransition.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TKTransition.m; sourceTree = ""; }; - B07A9E216C297461B3F7B35F32D049AF /* KWExample.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWExample.m; path = Classes/Core/KWExample.m; sourceTree = ""; }; - B1FDE3CFE9DF3F2F0D13D797EEA66E2D /* KiwiMacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KiwiMacros.h; path = Classes/Core/KiwiMacros.h; sourceTree = ""; }; - B34A4A73DC8745B202D4328E9FE95AFF /* KWAsyncVerifier.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWAsyncVerifier.m; path = Classes/Verifiers/KWAsyncVerifier.m; sourceTree = ""; }; - B4A02E00A9BA3C496659704D483248DB /* TKTransition.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TKTransition.h; sourceTree = ""; }; - B4D2C9D0CB170604E6F9200C03CA1D9A /* KWSymbolicator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWSymbolicator.m; path = Classes/Core/KWSymbolicator.m; sourceTree = ""; }; - B4D30D55A41A848A797A5009195D0E77 /* TransitionKit-OSX.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "TransitionKit-OSX.xcconfig"; sourceTree = ""; }; - B56D5211DEC0FC63EF4667A7441FAE76 /* KWHaveValueMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWHaveValueMatcher.m; path = Classes/Matchers/KWHaveValueMatcher.m; sourceTree = ""; }; - B7AA28898252FA71C48171258F4DABD3 /* TransitionKit-OSX-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "TransitionKit-OSX-prefix.pch"; sourceTree = ""; }; - B90D667595B25FE8107776F651A911E0 /* KWHaveMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWHaveMatcher.h; path = Classes/Matchers/KWHaveMatcher.h; sourceTree = ""; }; - BBAD47D3C57FAA56D76723628BCFD574 /* KWFutureObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWFutureObject.m; path = Classes/Core/KWFutureObject.m; sourceTree = ""; }; - BCC0A7D3803F2BCC4EA4A1AF84421BD2 /* Kiwi-iOS-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "Kiwi-iOS-prefix.pch"; path = "../Kiwi-iOS/Kiwi-iOS-prefix.pch"; sourceTree = ""; }; - BD0A74A8AB1D7AACBAEB25E5A6561A7A /* KWNilMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWNilMatcher.m; path = Classes/Matchers/KWNilMatcher.m; sourceTree = ""; }; - BE3DB1826B68E076AF2053EB46479F9C /* Kiwi-OSX.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Kiwi-OSX.xcconfig"; sourceTree = ""; }; - BEC09EF12D36C112A2073415D47EA590 /* Kiwi-OSX-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Kiwi-OSX-dummy.m"; sourceTree = ""; }; - C00391BF74FFCEB4E362820633E44A16 /* KWAfterEachNode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWAfterEachNode.h; path = Classes/Nodes/KWAfterEachNode.h; sourceTree = ""; }; - C03EA831D91AD195092236D7BB777AB9 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; - C11BE1F6B5286EE0E9399EFAEC329D45 /* KWLet.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWLet.h; path = Classes/Core/KWLet.h; sourceTree = ""; }; - CA86054E4BF8A85EBFCCC53B71CD3AD7 /* KWBeMemberOfClassMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWBeMemberOfClassMatcher.h; path = Classes/Matchers/KWBeMemberOfClassMatcher.h; sourceTree = ""; }; - CB5BF753B42AC2690BF9B169CD493C86 /* TKStateMachine.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TKStateMachine.m; sourceTree = ""; }; - CC14B905FA8567008244E93BBC9BC6F4 /* KWPendingNode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWPendingNode.h; path = Classes/Nodes/KWPendingNode.h; sourceTree = ""; }; - CEB7705CFF20069B0AD464D3788E8509 /* KWPendingNode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWPendingNode.m; path = Classes/Nodes/KWPendingNode.m; sourceTree = ""; }; - CFD8CC34D996E6495B03B6DAE579BAFD /* KWBeforeAllNode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWBeforeAllNode.h; path = Classes/Nodes/KWBeforeAllNode.h; sourceTree = ""; }; - D16A250AB4D5D8A30BC6AEA9384AD724 /* KWLetNode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWLetNode.h; path = Classes/Nodes/KWLetNode.h; sourceTree = ""; }; - D349CE6FFB645614081D42AA23475E68 /* KWBeTrueMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWBeTrueMatcher.h; path = Classes/Matchers/KWBeTrueMatcher.h; sourceTree = ""; }; - D5723A007DC1B78FD63A32F36D9165DA /* KWNotificationMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWNotificationMatcher.m; path = Classes/Matchers/KWNotificationMatcher.m; sourceTree = ""; }; - D5A2992D992C249872890F4DBBE4FD5E /* KWBlockRaiseMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWBlockRaiseMatcher.h; path = Classes/Matchers/KWBlockRaiseMatcher.h; sourceTree = ""; }; - D604F15564BCC64E0D54F6EAC5AE0C78 /* KWReporting.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWReporting.h; path = Classes/Core/KWReporting.h; sourceTree = ""; }; - D6823D61CF304E54C491F5960BAA58F6 /* KWWorkarounds.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWWorkarounds.m; path = Classes/Core/KWWorkarounds.m; sourceTree = ""; }; - D8E9B5260480E4EA7ED06C6BEE15DF56 /* KWUserDefinedMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWUserDefinedMatcher.h; path = Classes/Matchers/KWUserDefinedMatcher.h; sourceTree = ""; }; - D9444A54A51E466BF711929BEC8EF795 /* KWContainMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWContainMatcher.h; path = Classes/Matchers/KWContainMatcher.h; sourceTree = ""; }; - D962F9362779AE2C4D97F3F663613538 /* Pods-Tests-TransitionKit iOS Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Tests-TransitionKit iOS Tests.debug.xcconfig"; sourceTree = ""; }; - D98B4B3B4B36CF2D79CA727DAC03DA3B /* KWStub.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWStub.h; path = Classes/Stubbing/KWStub.h; sourceTree = ""; }; - DC07648E71560AA3BF5E8BD9F4C528A8 /* KWMatcherFactory.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWMatcherFactory.h; path = Classes/Core/KWMatcherFactory.h; sourceTree = ""; }; - DCE29C3EEECABA223CE9F305FDB9BE84 /* KWExampleSuite.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWExampleSuite.m; path = Classes/Core/KWExampleSuite.m; sourceTree = ""; }; - DDD467069D9324A4453D8C98B781B720 /* KWGenericMatchingAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWGenericMatchingAdditions.m; path = Classes/Matchers/KWGenericMatchingAdditions.m; sourceTree = ""; }; - DFCFCF9B94B19B1BFC1B2F0819E6AD00 /* KWConformToProtocolMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWConformToProtocolMatcher.h; path = Classes/Matchers/KWConformToProtocolMatcher.h; sourceTree = ""; }; - E00C27B968DCB013A54B7C5EB0389177 /* TransitionKit-iOS.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "TransitionKit-iOS.xcconfig"; path = "../TransitionKit-iOS/TransitionKit-iOS.xcconfig"; sourceTree = ""; }; - E044190493CF6FB17C083B26DDDC24D2 /* KWProbePoller.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWProbePoller.m; path = Classes/Core/KWProbePoller.m; sourceTree = ""; }; - E25E46EAB69062E09638D06EB1EFCD4B /* NSMethodSignature+KiwiAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSMethodSignature+KiwiAdditions.h"; path = "Classes/Core/NSMethodSignature+KiwiAdditions.h"; sourceTree = ""; }; - E36378CB9EB76D52E79133F25E22361F /* KWGenericMatchingAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWGenericMatchingAdditions.h; path = Classes/Matchers/KWGenericMatchingAdditions.h; sourceTree = ""; }; - E3EFEE43F7D968D5C20954859E6D98A3 /* KWObjCUtilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWObjCUtilities.h; path = Classes/Core/KWObjCUtilities.h; sourceTree = ""; }; - E456727FDD3E673A571693D0F8E1C0E0 /* Pods-Tests-TransitionKit macOS Tests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-Tests-TransitionKit macOS Tests-acknowledgements.markdown"; sourceTree = ""; }; - E5C056310DD25611B55920F706F9A023 /* KWRegularExpressionPatternMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWRegularExpressionPatternMatcher.m; path = Classes/Matchers/KWRegularExpressionPatternMatcher.m; sourceTree = ""; }; - E6CFB6229102ACF8C2F1199E7D42D7F7 /* KWWorkarounds.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWWorkarounds.h; path = Classes/Core/KWWorkarounds.h; sourceTree = ""; }; - E80E5E0CFA0B6C597B0B3B3A35415977 /* KWMock.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWMock.m; path = Classes/Mocking/KWMock.m; sourceTree = ""; }; - E85547003C04A12B37AB4713D4AC488F /* KWStringContainsMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWStringContainsMatcher.h; path = Classes/Matchers/KWStringContainsMatcher.h; sourceTree = ""; }; - E86341347141CDD7F7314BE23137DFF3 /* KWDeviceInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWDeviceInfo.m; path = Classes/Core/KWDeviceInfo.m; sourceTree = ""; }; - E922B62B6EC20FE76AB93A12DAE45D6D /* KWExpectationType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWExpectationType.h; path = Classes/Core/KWExpectationType.h; sourceTree = ""; }; - E9A767EE0FEFAF78C2DE1FC493B51227 /* KWReceiveMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWReceiveMatcher.m; path = Classes/Matchers/KWReceiveMatcher.m; sourceTree = ""; }; - EA432EC6DB6F989648B12DFC16438C9E /* KWMatchVerifier.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWMatchVerifier.h; path = Classes/Verifiers/KWMatchVerifier.h; sourceTree = ""; }; - EAEADAF5178E2B5D2310BB77BC366FB3 /* KWExampleNode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWExampleNode.h; path = Classes/Nodes/KWExampleNode.h; sourceTree = ""; }; - EB679DECBA9D0FFF026255D78C84FB1A /* KWBeWithinMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWBeWithinMatcher.m; path = Classes/Matchers/KWBeWithinMatcher.m; sourceTree = ""; }; - EBA1B98D14D759934B51499FF4C6EAE1 /* Kiwi-iOS.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Kiwi-iOS.xcconfig"; path = "../Kiwi-iOS/Kiwi-iOS.xcconfig"; sourceTree = ""; }; - ED4A9764F248CFF43569FF0BFAB30448 /* NSObject+KiwiMockAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+KiwiMockAdditions.m"; path = "Classes/Mocking/NSObject+KiwiMockAdditions.m"; sourceTree = ""; }; - EE46777CFFF114CB04E87C56B4AD171C /* KWBlock.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWBlock.m; path = Classes/Core/KWBlock.m; sourceTree = ""; }; - EEB8D19562B679A83C28687DEE1E7BEC /* NSInvocation+KiwiAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSInvocation+KiwiAdditions.h"; path = "Classes/Core/NSInvocation+KiwiAdditions.h"; sourceTree = ""; }; - EEE29A800ABF3CF88B82DE34324E8142 /* Pods-Tests-TransitionKit macOS Tests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Tests-TransitionKit macOS Tests-dummy.m"; sourceTree = ""; }; - EF9DEC550C5A27F945AFE8A095175528 /* TKEvent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TKEvent.m; sourceTree = ""; }; - EFDDEBEB2F897787179080F5CE50DBEF /* KWCaptureSpy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWCaptureSpy.h; path = Classes/Core/KWCaptureSpy.h; sourceTree = ""; }; - F0273CAD5C5B65C439A64EDDE81B1E24 /* KWValue.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWValue.h; path = Classes/Core/KWValue.h; sourceTree = ""; }; - F1E5C5C93CEF5427302C8B5C91C391E3 /* Pods-Tests-TransitionKit iOS Tests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-Tests-TransitionKit iOS Tests-resources.sh"; sourceTree = ""; }; - F237C8C61313415A9EBF8DEAC7D45AB3 /* NSObject+KiwiVerifierAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+KiwiVerifierAdditions.m"; path = "Classes/Core/NSObject+KiwiVerifierAdditions.m"; sourceTree = ""; }; - F44D64D96339AB0F279947116D802AC9 /* NSObject+KiwiStubAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+KiwiStubAdditions.h"; path = "Classes/Stubbing/NSObject+KiwiStubAdditions.h"; sourceTree = ""; }; - F6DD37FDB7E373823C221B489E7DC4B9 /* KWFutureObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWFutureObject.h; path = Classes/Core/KWFutureObject.h; sourceTree = ""; }; - F7CDBCCA2EF3A6B79094328F2563D194 /* KWVerifying.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWVerifying.h; path = Classes/Verifiers/KWVerifying.h; sourceTree = ""; }; - F91E3402743EB2CB50D26AEDAE9F5F95 /* KWStringUtilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWStringUtilities.m; path = Classes/Core/KWStringUtilities.m; sourceTree = ""; }; - FA42334A250A8C547004751E11857E1B /* KWNull.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWNull.m; path = Classes/Core/KWNull.m; sourceTree = ""; }; - FAFEF33D625201A59D46CB32EB4A3A8F /* KWNotificationMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWNotificationMatcher.h; path = Classes/Matchers/KWNotificationMatcher.h; sourceTree = ""; }; - FB12994D3EF0E8618DFD72B113CE6FDD /* KWInequalityMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWInequalityMatcher.h; path = Classes/Matchers/KWInequalityMatcher.h; sourceTree = ""; }; - FB8E3C2A0E050F90BE46AF302869CB3A /* KWRegisterMatchersNode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KWRegisterMatchersNode.h; path = Classes/Nodes/KWRegisterMatchersNode.h; sourceTree = ""; }; - FCFA5EE0ED967CD54CA824E8C49A5946 /* KWMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWMatcher.m; path = Classes/Core/KWMatcher.m; sourceTree = ""; }; - FF4091FC5A79BE72E877EB6405345315 /* libPods-Tests-TransitionKit iOS Tests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libPods-Tests-TransitionKit iOS Tests.a"; path = "libPods-Tests-TransitionKit iOS Tests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - FF4125BC7B176A4EC21EF18019AD8969 /* KWStringContainsMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWStringContainsMatcher.m; path = Classes/Matchers/KWStringContainsMatcher.m; sourceTree = ""; }; - FF807698AD6A9FB090E1D13BE0625829 /* KWBeIdenticalToMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KWBeIdenticalToMatcher.m; path = Classes/Matchers/KWBeIdenticalToMatcher.m; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 17AE13D4BB4D45EDC8DC825DE5F1F638 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 3E72BBD8E58BD109BB80145B8F9C1178 /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 5E25360B55AFFD04D088ADE3201D3BF6 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 7536BC000208B941A15C66D9AC3B844B /* Cocoa.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 75DCDCFF68ED5C3C1B7E4DBFBF5E5E09 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - E94CF827E6F3C6718893148BDBBB13BC /* Foundation.framework in Frameworks */, - 2A6D59BAABE9035419752723266424D6 /* XCTest.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 99B491F5FF1CE3196EA43F3B1E95CC93 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - C4E907B261FB46CD30E19DFA5D6B56B0 /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - C1FF25098B4B5C3EC76CE9FE3C27C570 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - AE88E82FA28AAE0B5DFF1A6B21BA3585 /* Cocoa.framework in Frameworks */, - 42F564AFCE5F1C28581F7541F49464E8 /* XCTest.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - E3590702E5F61CEAD5CCEF4B1F87F744 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - B23301896BC4EC3D744313B30B066EDB /* Cocoa.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 0585E7DE0F9ECED68D2FD0FFEEB4E455 /* Products */ = { - isa = PBXGroup; - children = ( - 1CE262A553A2502921C0E78DA2A7F6DC /* libKiwi-iOS.a */, - 866777442F22D145FA6F9C65F8484823 /* libKiwi-OSX.a */, - FF4091FC5A79BE72E877EB6405345315 /* libPods-Tests-TransitionKit iOS Tests.a */, - 7D7697FE1511358632E4594253DC3571 /* libPods-Tests-TransitionKit macOS Tests.a */, - 10AB2797AAC0DCB6A9B711A1B731B574 /* libTransitionKit-iOS.a */, - 480C95E78BCF7FD2EDB54E8ABE0C8719 /* libTransitionKit-OSX.a */, - ); - name = Products; - sourceTree = ""; - }; - 10DD41A94D5A3AF7CF24D24DBAF649B3 /* OS X */ = { - isa = PBXGroup; - children = ( - 422FAD60290D2EA7012293B8FDE679F8 /* Cocoa.framework */, - 1390E56741A21D7304092F55FCB26EBB /* XCTest.framework */, - ); - name = "OS X"; - sourceTree = ""; - }; - 324E01A98CC579B6EA8523CD8C7FDFA3 /* Support Files */ = { - isa = PBXGroup; - children = ( - EBA1B98D14D759934B51499FF4C6EAE1 /* Kiwi-iOS.xcconfig */, - 669C539461364A09713D2166205A32A6 /* Kiwi-iOS-dummy.m */, - BCC0A7D3803F2BCC4EA4A1AF84421BD2 /* Kiwi-iOS-prefix.pch */, - BE3DB1826B68E076AF2053EB46479F9C /* Kiwi-OSX.xcconfig */, - BEC09EF12D36C112A2073415D47EA590 /* Kiwi-OSX-dummy.m */, - A0F594363F623208C379DD678DD0ABDD /* Kiwi-OSX-prefix.pch */, - ); - name = "Support Files"; - path = "../Target Support Files/Kiwi-OSX"; - sourceTree = ""; - }; - 428085ED33354FC3F65CD9032545EE4B /* iOS */ = { - isa = PBXGroup; - children = ( - C03EA831D91AD195092236D7BB777AB9 /* Foundation.framework */, - 1CC7333B171173016282DC518E43F3F0 /* XCTest.framework */, - ); - name = iOS; - sourceTree = ""; - }; - 59EDFAEC439148502A9DA655CB98F298 /* Pods */ = { - isa = PBXGroup; - children = ( - DD7EF3186A6BDBA8D3AE13812FBCBB93 /* Kiwi */, - ); - name = Pods; - sourceTree = ""; - }; - 7DB346D0F39D3F0E887471402A8071AB = { - isa = PBXGroup; - children = ( - 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */, - 8E27127DF81951A729365A95ADC74123 /* Development Pods */, - A944112664219A87DE27239EDD7E0B22 /* Frameworks */, - 59EDFAEC439148502A9DA655CB98F298 /* Pods */, - 0585E7DE0F9ECED68D2FD0FFEEB4E455 /* Products */, - D3D2822F49B771452759CA6426247623 /* Targets Support Files */, - ); - sourceTree = ""; - }; - 8E27127DF81951A729365A95ADC74123 /* Development Pods */ = { - isa = PBXGroup; - children = ( - F21A01D39E98072E5374650370BA4535 /* TransitionKit */, - ); - name = "Development Pods"; - sourceTree = ""; - }; - 8EF271D2A871ED27938021EF8EA1C38F /* Code */ = { - isa = PBXGroup; - children = ( - 97F048881AF42E17E7F1E7D6F5F6FE67 /* TKEvent.h */, - EF9DEC550C5A27F945AFE8A095175528 /* TKEvent.m */, - 393F94421B8F85C548119F76EE48452F /* TKState.h */, - 648D8A393C28444D622BF37F02B422B7 /* TKState.m */, - 034EA5E4571A5F342C7C36A734A37900 /* TKStateMachine.h */, - CB5BF753B42AC2690BF9B169CD493C86 /* TKStateMachine.m */, - B4A02E00A9BA3C496659704D483248DB /* TKTransition.h */, - AF2E9FB8B7A08C2681DFBE771F6DDD64 /* TKTransition.m */, - 23E1571FCA3A6EC612572E670F594659 /* TransitionKit.h */, - ); - name = Code; - path = Code; - sourceTree = ""; - }; - A944112664219A87DE27239EDD7E0B22 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 428085ED33354FC3F65CD9032545EE4B /* iOS */, - 10DD41A94D5A3AF7CF24D24DBAF649B3 /* OS X */, - ); - name = Frameworks; - sourceTree = ""; - }; - AD708CD4922E58195565A399A8EC530E /* Support Files */ = { - isa = PBXGroup; - children = ( - E00C27B968DCB013A54B7C5EB0389177 /* TransitionKit-iOS.xcconfig */, - 9761199A4AC57161FD46825EE28C0174 /* TransitionKit-iOS-dummy.m */, - 527E7E0152A581D6B6A50B3D154A14BB /* TransitionKit-iOS-prefix.pch */, - B4D30D55A41A848A797A5009195D0E77 /* TransitionKit-OSX.xcconfig */, - 44C6610BE6F06F04404102ECBFB01DD3 /* TransitionKit-OSX-dummy.m */, - B7AA28898252FA71C48171258F4DABD3 /* TransitionKit-OSX-prefix.pch */, - ); - name = "Support Files"; - path = "Pods/Target Support Files/TransitionKit-OSX"; - sourceTree = ""; - }; - D3D2822F49B771452759CA6426247623 /* Targets Support Files */ = { - isa = PBXGroup; - children = ( - E31FAF1084C42B5DD9BAEE298609D99B /* Pods-Tests-TransitionKit iOS Tests */, - E0112F16FF1D622A4CB43AFBD17BCDC5 /* Pods-Tests-TransitionKit macOS Tests */, - ); - name = "Targets Support Files"; - sourceTree = ""; - }; - DD7EF3186A6BDBA8D3AE13812FBCBB93 /* Kiwi */ = { - isa = PBXGroup; - children = ( - 43FEA8C258296A47215FA1418AC340E5 /* Kiwi.h */, - A9099286068F40F2D5B95BEB6A0C4CAB /* KiwiBlockMacros.h */, - A7EE6629E43BB2D68A69F97133AEC45E /* KiwiConfiguration.h */, - B1FDE3CFE9DF3F2F0D13D797EEA66E2D /* KiwiMacros.h */, - 0ECFB18D1A19B589397B6D18E4E5A21C /* KWAfterAllNode.h */, - 616DEFC59352FFC06ED487243FFF6B21 /* KWAfterAllNode.m */, - C00391BF74FFCEB4E362820633E44A16 /* KWAfterEachNode.h */, - 0A8AB445D6EC0328FAA1894B40437D6B /* KWAfterEachNode.m */, - 78BB682ADE58F2C57B11F4385418B8D6 /* KWAllTestsSuite.m */, - 3BA34CE0BCFEF3D6F6CB188883176EB9 /* KWAny.h */, - 113E1B9BC80A7DEDB2792CCD634B0BD6 /* KWAny.m */, - 8B960BA95F7E2372382893C73E851C5F /* KWAsyncVerifier.h */, - B34A4A73DC8745B202D4328E9FE95AFF /* KWAsyncVerifier.m */, - 643D7C56E967BA3D7E131EA1BBB094D7 /* KWBeBetweenMatcher.h */, - 0CC9A6D18B5072D2DF0B38DA413C1A78 /* KWBeBetweenMatcher.m */, - 2611FC65E9B987E3203ECC8545C4DCF1 /* KWBeEmptyMatcher.h */, - 541F3BE533709B3274E60136132AFD18 /* KWBeEmptyMatcher.m */, - CFD8CC34D996E6495B03B6DAE579BAFD /* KWBeforeAllNode.h */, - 3E95B982DF325EDFC5857FC3AE79ACB6 /* KWBeforeAllNode.m */, - 630D678B8DADB0BED7FC51FFFF48924A /* KWBeforeEachNode.h */, - 35A7A4DC14FDD71920BF9A2DFED5A026 /* KWBeforeEachNode.m */, - 91102A88506DBDC6287A88895B888BDB /* KWBeIdenticalToMatcher.h */, - FF807698AD6A9FB090E1D13BE0625829 /* KWBeIdenticalToMatcher.m */, - 1872AE16F181CB62786A96B5ADA3C37C /* KWBeKindOfClassMatcher.h */, - 2C5659E20E953DFEC130ED99ED3A5B61 /* KWBeKindOfClassMatcher.m */, - CA86054E4BF8A85EBFCCC53B71CD3AD7 /* KWBeMemberOfClassMatcher.h */, - 294D205727AABFE5EFA3ECAAC1FC56ED /* KWBeMemberOfClassMatcher.m */, - 2C8C3A6BE1E5DCEACB92D753366DF758 /* KWBeSubclassOfClassMatcher.h */, - AB59D582F4CF6FC48DB8535B21595281 /* KWBeSubclassOfClassMatcher.m */, - D349CE6FFB645614081D42AA23475E68 /* KWBeTrueMatcher.h */, - 1AD1B970493E965C8223D04338FA580E /* KWBeTrueMatcher.m */, - 6BFE0CAE805CF54C07E3BF863F446C61 /* KWBeWithinMatcher.h */, - EB679DECBA9D0FFF026255D78C84FB1A /* KWBeWithinMatcher.m */, - 6DBEBCBD3DECBF4556D3375E80FDE35F /* KWBeZeroMatcher.h */, - 6D7C527685C98ACE3FE01EE25379EE76 /* KWBeZeroMatcher.m */, - 73CC2A29DEABE0D93CDCBA1118E8BD9D /* KWBlock.h */, - EE46777CFFF114CB04E87C56B4AD171C /* KWBlock.m */, - 351A65F768811A66D14252F4360E6C9C /* KWBlockNode.h */, - 70892B40A7F42C5557A713B07351BF9A /* KWBlockNode.m */, - D5A2992D992C249872890F4DBBE4FD5E /* KWBlockRaiseMatcher.h */, - 4BF0DCD2266DE17DB603E6DBF522F0BD /* KWBlockRaiseMatcher.m */, - 2E862E7F777D7FF09F2CFC5DFA8CB14F /* KWCallSite.h */, - 17E094ECF9B0E4DFC3FBAD5C205A19DD /* KWCallSite.m */, - EFDDEBEB2F897787179080F5CE50DBEF /* KWCaptureSpy.h */, - 5ACC0EC17A9E0127F21610540BA6468B /* KWCaptureSpy.m */, - 78E2ABB82E91C9992234960DD027F1B1 /* KWChangeMatcher.h */, - ACA878E9592C301AB401C38EF55E4A33 /* KWChangeMatcher.m */, - DFCFCF9B94B19B1BFC1B2F0819E6AD00 /* KWConformToProtocolMatcher.h */, - 4F5E10FF37964EFF6B2D196DEDC49F16 /* KWConformToProtocolMatcher.m */, - D9444A54A51E466BF711929BEC8EF795 /* KWContainMatcher.h */, - 64DEF5400AD4404A94E8A5C096952E12 /* KWContainMatcher.m */, - 2863C373DB49AB3F8C8E423F51C863AE /* KWContainStringMatcher.h */, - 37076C5802E00623594BAE04318D8D4E /* KWContainStringMatcher.m */, - 8C892E8DBF96E3993B73DC024F824CBA /* KWContextNode.h */, - A9FF2729E28D56E18100AF4F0851D30E /* KWContextNode.m */, - 42EBE5950F6E0E14DB65083B425C611D /* KWCountType.h */, - 568BAD5CD52E19264F45E0E0381DA0FD /* KWDeviceInfo.h */, - E86341347141CDD7F7314BE23137DFF3 /* KWDeviceInfo.m */, - 40A69EA9528A384C2C5662193EEE6FE5 /* KWEqualMatcher.h */, - 6918A19DC1D5CAE9508F3926F0CA0D94 /* KWEqualMatcher.m */, - 1E9C00C464746D026083FA7E144C708F /* KWExample.h */, - B07A9E216C297461B3F7B35F32D049AF /* KWExample.m */, - 7BA6032F0844756BD46A7E8079D19AC3 /* KWExampleDelegate.h */, - EAEADAF5178E2B5D2310BB77BC366FB3 /* KWExampleNode.h */, - 212D76EA5FA339A0C58D61F208F6EA66 /* KWExampleNodeVisitor.h */, - 21911470869B89C13289979D4BD650AE /* KWExampleSuite.h */, - DCE29C3EEECABA223CE9F305FDB9BE84 /* KWExampleSuite.m */, - 0F2B9871936398B30FC4361D5A71826A /* KWExampleSuiteBuilder.h */, - 90B84A9B0042A11B9E60703C9E586918 /* KWExampleSuiteBuilder.m */, - 8431073B8C86A3C5F402310A4CCFCD7A /* KWExistVerifier.h */, - 489C1906472A7F4CB9FE8902259892E0 /* KWExistVerifier.m */, - E922B62B6EC20FE76AB93A12DAE45D6D /* KWExpectationType.h */, - 932BF14AECD2A29276E065EE2B454CF2 /* KWFailure.h */, - 92EEA89B422A33F3B2D62457F182A99E /* KWFailure.m */, - 2D7DCCB27760A04D2768AB68AE1363A3 /* KWFormatter.h */, - 14AD1285328ED8B3CA0CDC6242BB6D88 /* KWFormatter.m */, - F6DD37FDB7E373823C221B489E7DC4B9 /* KWFutureObject.h */, - BBAD47D3C57FAA56D76723628BCFD574 /* KWFutureObject.m */, - 29AC97F54FF338B0F3C1DFEA43EB047F /* KWGenericMatcher.h */, - 500E0B5EFFDDF7D6E2537BC1CD76732B /* KWGenericMatcher.m */, - 250EBC95B13ABC459B6B8EABD7448826 /* KWGenericMatchEvaluator.h */, - 7FBBDCBAA6261E65D006B972D25D28A1 /* KWGenericMatchEvaluator.m */, - E36378CB9EB76D52E79133F25E22361F /* KWGenericMatchingAdditions.h */, - DDD467069D9324A4453D8C98B781B720 /* KWGenericMatchingAdditions.m */, - B90D667595B25FE8107776F651A911E0 /* KWHaveMatcher.h */, - 546126E831DA125797DBA34D0B0B15C9 /* KWHaveMatcher.m */, - 94F563A02CDEC9274FCA4DB421D4BC73 /* KWHaveValueMatcher.h */, - B56D5211DEC0FC63EF4667A7441FAE76 /* KWHaveValueMatcher.m */, - FB12994D3EF0E8618DFD72B113CE6FDD /* KWInequalityMatcher.h */, - 06562BE430DC665872475BE5B5175D0B /* KWInequalityMatcher.m */, - 5105ED7F6D13025869962A50A6635F3B /* KWIntercept.h */, - 5E83908F3C4D685D8B8DE9ADFF71CDF8 /* KWIntercept.m */, - 4CAB5D796FF6822200772634A39EEEDD /* KWInvocationCapturer.h */, - 82C58D345F3385EE526EB9E6093F4A9B /* KWInvocationCapturer.m */, - 3F5ABA49B2E5915A05F4F4D314DE7F77 /* KWItNode.h */, - 1ABEFB505538A1453B7380EDB6331F13 /* KWItNode.m */, - C11BE1F6B5286EE0E9399EFAEC329D45 /* KWLet.h */, - D16A250AB4D5D8A30BC6AEA9384AD724 /* KWLetNode.h */, - 670B20674A4437F828F4026CA8033171 /* KWLetNode.m */, - 2ACAFC3703DEE3F72D38ADED35EB11A7 /* KWMatcher.h */, - FCFA5EE0ED967CD54CA824E8C49A5946 /* KWMatcher.m */, - DC07648E71560AA3BF5E8BD9F4C528A8 /* KWMatcherFactory.h */, - 8BEF8601DBDFF67698C86A7465D0DE6D /* KWMatcherFactory.m */, - 4C970E9FDC8AA8D6B5FE73B21B5F8F38 /* KWMatchers.h */, - 527FB1E1ADF4ECC1E7D0903B9A53620B /* KWMatchers.m */, - 0A45858C5D1F13CFB7E9D72A1DC37F0C /* KWMatching.h */, - EA432EC6DB6F989648B12DFC16438C9E /* KWMatchVerifier.h */, - 22A3F9B97668DEDE95EA01736E9F652E /* KWMatchVerifier.m */, - A2F96CE5DC0D8EC6DEDBE2259FA0BE65 /* KWMessagePattern.h */, - 059420CE8C1DC29FD9EE1B1B2A3E0335 /* KWMessagePattern.m */, - 69DA46C17E7EB139FD868FF009783CED /* KWMessageSpying.h */, - 975A571B9E39A04BB66BECB12B3324D3 /* KWMessageTracker.h */, - 2A8586A48B0A358C7103C4922AC7B380 /* KWMessageTracker.m */, - A2432F14B5A93B3E4A832E863EC8D274 /* KWMock.h */, - E80E5E0CFA0B6C597B0B3B3A35415977 /* KWMock.m */, - 57D0C1D91B37A359DAA73D15AD96586A /* KWNilMatcher.h */, - BD0A74A8AB1D7AACBAEB25E5A6561A7A /* KWNilMatcher.m */, - FAFEF33D625201A59D46CB32EB4A3A8F /* KWNotificationMatcher.h */, - D5723A007DC1B78FD63A32F36D9165DA /* KWNotificationMatcher.m */, - 754CFB098670EAE31A27C94634697BD7 /* KWNull.h */, - FA42334A250A8C547004751E11857E1B /* KWNull.m */, - E3EFEE43F7D968D5C20954859E6D98A3 /* KWObjCUtilities.h */, - 758113E06C1F73B605A9CF5A2C891A21 /* KWObjCUtilities.m */, - CC14B905FA8567008244E93BBC9BC6F4 /* KWPendingNode.h */, - CEB7705CFF20069B0AD464D3788E8509 /* KWPendingNode.m */, - 0EBBF9946B43D7E71A5F2A438DCB4D4E /* KWProbe.h */, - 6E9D87D62E79368CCD6684A9FF4355BF /* KWProbePoller.h */, - E044190493CF6FB17C083B26DDDC24D2 /* KWProbePoller.m */, - 6D69F5BBAC66284191543C373C50055E /* KWReceiveMatcher.h */, - E9A767EE0FEFAF78C2DE1FC493B51227 /* KWReceiveMatcher.m */, - FB8E3C2A0E050F90BE46AF302869CB3A /* KWRegisterMatchersNode.h */, - 65F128845017C1E79C0EA03F9F3BCBF7 /* KWRegisterMatchersNode.m */, - 05585137F87BD6ACB734B44912378228 /* KWRegularExpressionPatternMatcher.h */, - E5C056310DD25611B55920F706F9A023 /* KWRegularExpressionPatternMatcher.m */, - D604F15564BCC64E0D54F6EAC5AE0C78 /* KWReporting.h */, - 148C2542C42112ED2D7CB15FE8831AE1 /* KWRespondToSelectorMatcher.h */, - 5304A5F95231E220F6E93622A05954C8 /* KWRespondToSelectorMatcher.m */, - 4DC62BEFA5390CA11BE3B98CE2923ECB /* KWSpec.h */, - 9E9FB4F5D8ABF9DBB05D40B9E4D350E6 /* KWSpec.m */, - E85547003C04A12B37AB4713D4AC488F /* KWStringContainsMatcher.h */, - FF4125BC7B176A4EC21EF18019AD8969 /* KWStringContainsMatcher.m */, - 3D6ED896B521357E09A4062C09A66CE3 /* KWStringPrefixMatcher.h */, - 85910BD89BFA64FDFE83917EF907901D /* KWStringPrefixMatcher.m */, - 5B6C76352971E8DC93F728CFCDFE9D78 /* KWStringUtilities.h */, - F91E3402743EB2CB50D26AEDAE9F5F95 /* KWStringUtilities.m */, - D98B4B3B4B36CF2D79CA727DAC03DA3B /* KWStub.h */, - 26DF249D09AB92EB9692D412D4BF934A /* KWStub.m */, - 19B4F9E95D59C44F83433C051B8360E0 /* KWSuiteConfigurationBase.h */, - 5AE7ADADCD07B566FCC1A7ABDDC56F7B /* KWSuiteConfigurationBase.m */, - 8EE55801BA8EAF4F36D6C4137DE0AFBD /* KWSymbolicator.h */, - B4D2C9D0CB170604E6F9200C03CA1D9A /* KWSymbolicator.m */, - D8E9B5260480E4EA7ED06C6BEE15DF56 /* KWUserDefinedMatcher.h */, - 4D7C88351B49C622BAF0DC4C9B90F767 /* KWUserDefinedMatcher.m */, - F0273CAD5C5B65C439A64EDDE81B1E24 /* KWValue.h */, - 9263A3870C29E2DCB5D42C6C30E7ED74 /* KWValue.m */, - F7CDBCCA2EF3A6B79094328F2563D194 /* KWVerifying.h */, - E6CFB6229102ACF8C2F1199E7D42D7F7 /* KWWorkarounds.h */, - D6823D61CF304E54C491F5960BAA58F6 /* KWWorkarounds.m */, - EEB8D19562B679A83C28687DEE1E7BEC /* NSInvocation+KiwiAdditions.h */, - 847D05418B5B6F10CABA60007ADBCB40 /* NSInvocation+KiwiAdditions.m */, - 69508E0AF28F70BAB3C98863761ED848 /* NSInvocation+OCMAdditions.h */, - 4D59A4EB3E67A9BFD8E887BDD4BD25A1 /* NSInvocation+OCMAdditions.m */, - E25E46EAB69062E09638D06EB1EFCD4B /* NSMethodSignature+KiwiAdditions.h */, - 2B07F535CD9693EE287B474286083A2C /* NSMethodSignature+KiwiAdditions.m */, - 8F9F719B5BBCE9382930036499525B39 /* NSNumber+KiwiAdditions.h */, - 55C97AE1AB95D9CF6768CE01B9CA68E5 /* NSNumber+KiwiAdditions.m */, - 96E3F8085FBB092401A31E59CEBCCA05 /* NSObject+KiwiMockAdditions.h */, - ED4A9764F248CFF43569FF0BFAB30448 /* NSObject+KiwiMockAdditions.m */, - 2CE74D52AD87FC18362A0D06C0DB71B2 /* NSObject+KiwiSpyAdditions.h */, - 3D1FCCBF683DDBBAE6848A5DE33F64A3 /* NSObject+KiwiSpyAdditions.m */, - F44D64D96339AB0F279947116D802AC9 /* NSObject+KiwiStubAdditions.h */, - AD34216E46DBCE86FEFAE4EB35FE8683 /* NSObject+KiwiStubAdditions.m */, - 2875B32C66DD81C46D31A653122995FA /* NSObject+KiwiVerifierAdditions.h */, - F237C8C61313415A9EBF8DEAC7D45AB3 /* NSObject+KiwiVerifierAdditions.m */, - AEEAFD580CA92BE681F25B01C0A8AD08 /* NSProxy+KiwiVerifierAdditions.h */, - 0C649F57F3B4C015E10DFD233992CE16 /* NSProxy+KiwiVerifierAdditions.m */, - 72816FA54D8B9194113465674457951E /* NSValue+KiwiAdditions.h */, - 3C92F272EF0A0B073D7C55273A349F3A /* NSValue+KiwiAdditions.m */, - 324E01A98CC579B6EA8523CD8C7FDFA3 /* Support Files */, - ); - name = Kiwi; - path = Kiwi; - sourceTree = ""; - }; - E0112F16FF1D622A4CB43AFBD17BCDC5 /* Pods-Tests-TransitionKit macOS Tests */ = { - isa = PBXGroup; - children = ( - E456727FDD3E673A571693D0F8E1C0E0 /* Pods-Tests-TransitionKit macOS Tests-acknowledgements.markdown */, - AD0AD0691900FE20808DB37D7CE905BD /* Pods-Tests-TransitionKit macOS Tests-acknowledgements.plist */, - EEE29A800ABF3CF88B82DE34324E8142 /* Pods-Tests-TransitionKit macOS Tests-dummy.m */, - 14CB7E251F85E37E0EDEF6DDA5F3758B /* Pods-Tests-TransitionKit macOS Tests-frameworks.sh */, - 7E6C4367195FD7CD3EC26AABC022DF10 /* Pods-Tests-TransitionKit macOS Tests-resources.sh */, - 0BB6F5764C789C7A2DCC2705F49A926B /* Pods-Tests-TransitionKit macOS Tests.debug.xcconfig */, - 8360901F15ABA7A40903E016D32D0707 /* Pods-Tests-TransitionKit macOS Tests.release.xcconfig */, - ); - name = "Pods-Tests-TransitionKit macOS Tests"; - path = "Target Support Files/Pods-Tests-TransitionKit macOS Tests"; - sourceTree = ""; - }; - E31FAF1084C42B5DD9BAEE298609D99B /* Pods-Tests-TransitionKit iOS Tests */ = { - isa = PBXGroup; - children = ( - 78B81192B4CF29FC2B76DBAF0B7D8799 /* Pods-Tests-TransitionKit iOS Tests-acknowledgements.markdown */, - 6487FCC415D782C5054DA3B881FF98F4 /* Pods-Tests-TransitionKit iOS Tests-acknowledgements.plist */, - 501D4C05B73F1D1B4D25C3DD17EE8FD2 /* Pods-Tests-TransitionKit iOS Tests-dummy.m */, - 81709A68610F4926EF12AF994568B7C4 /* Pods-Tests-TransitionKit iOS Tests-frameworks.sh */, - F1E5C5C93CEF5427302C8B5C91C391E3 /* Pods-Tests-TransitionKit iOS Tests-resources.sh */, - D962F9362779AE2C4D97F3F663613538 /* Pods-Tests-TransitionKit iOS Tests.debug.xcconfig */, - 16CEEB90C83E148E1BE783D800B495B2 /* Pods-Tests-TransitionKit iOS Tests.release.xcconfig */, - ); - name = "Pods-Tests-TransitionKit iOS Tests"; - path = "Target Support Files/Pods-Tests-TransitionKit iOS Tests"; - sourceTree = ""; - }; - F21A01D39E98072E5374650370BA4535 /* TransitionKit */ = { - isa = PBXGroup; - children = ( - 8EF271D2A871ED27938021EF8EA1C38F /* Code */, - AD708CD4922E58195565A399A8EC530E /* Support Files */, - ); - name = TransitionKit; - path = ..; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - 3A05ED090C4E56048C9DBE5DB9A86732 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 7186C5BAC933E94F51870E688C697909 /* TKEvent.h in Headers */, - F53AE33F06F554C8F1D5DF46A8D63719 /* TKState.h in Headers */, - BC61525D23CDC8D0B8586379E2C93F6B /* TKStateMachine.h in Headers */, - 3DBEAB200D573DBA1B571760D430DD80 /* TKTransition.h in Headers */, - 60289A33C1FAACF5E462BD11610B666E /* TransitionKit.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - AA19E8387D3CCA3517C55A6792275D8D /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - C683F58183CE76C559A2EFB81839F00F /* Kiwi.h in Headers */, - 0F788A212C951290F031D4235FFCF169 /* KiwiBlockMacros.h in Headers */, - 23FB7A13BF35BF4CDACCA9470EFE1152 /* KiwiConfiguration.h in Headers */, - D59552DD43EAC5C07F901827F465F075 /* KiwiMacros.h in Headers */, - 17A9E6B6973DF83511FD248C84D4D66B /* KWAfterAllNode.h in Headers */, - F873323951518CF82350C232FCA8DAC4 /* KWAfterEachNode.h in Headers */, - 92C37BD2B243196F7907355631DBCD91 /* KWAny.h in Headers */, - A5FC2650125F41BEEEDFA5833D8FBD1C /* KWAsyncVerifier.h in Headers */, - 22F694957C2F5E11888A947161C9A9A9 /* KWBeBetweenMatcher.h in Headers */, - F2274BE822162179599DE310F66F3135 /* KWBeEmptyMatcher.h in Headers */, - 706D9F3638386DF7020D8BE31F4755F2 /* KWBeforeAllNode.h in Headers */, - 89FA29670697202F07E2CBF1BC81E94B /* KWBeforeEachNode.h in Headers */, - F3A1E009F594274B126CBC82552A18BB /* KWBeIdenticalToMatcher.h in Headers */, - 9ABDA22D3CDB0336EFB65BFF18A4D708 /* KWBeKindOfClassMatcher.h in Headers */, - C8B87A09E4BE7169A535ED70B2EF0F84 /* KWBeMemberOfClassMatcher.h in Headers */, - 1F60FEEE4A56F6FFEB3380B4BB37481A /* KWBeSubclassOfClassMatcher.h in Headers */, - FD58D4D8B73312436CD6AC43EC28D86E /* KWBeTrueMatcher.h in Headers */, - 93A1A3BD88FE79DC63350BEACE575513 /* KWBeWithinMatcher.h in Headers */, - 0C57509F151321562E40A3E37E5AFE8A /* KWBeZeroMatcher.h in Headers */, - D5C0BEC54E6E08F27DEFE58C60A93182 /* KWBlock.h in Headers */, - CF709A346B865CE16FDB52BDFA507228 /* KWBlockNode.h in Headers */, - 48753BC1F64DEE0D552ABC844596DCB8 /* KWBlockRaiseMatcher.h in Headers */, - 12087973B84C90C596E15A4308C842AE /* KWCallSite.h in Headers */, - D3367FD9E9A7D744BDD1E0749AA33BCB /* KWCaptureSpy.h in Headers */, - 44A9B6C3D312821713F24E5AEEEE487B /* KWChangeMatcher.h in Headers */, - 9A72AB04E9045B0A01EED79520FEB118 /* KWConformToProtocolMatcher.h in Headers */, - F99A5D8602F91BDE42E17E2CD59FB7DD /* KWContainMatcher.h in Headers */, - 32B39D8A87B0D152D95BBC0D4A097A02 /* KWContainStringMatcher.h in Headers */, - E7B5E9D97FD7B214A100EB20452C2047 /* KWContextNode.h in Headers */, - F862822D7A941C87194F7F31EC441C78 /* KWCountType.h in Headers */, - BF8964A7EF22E74B3A38AF8CAA722772 /* KWDeviceInfo.h in Headers */, - 7E894B31E2DED258C26BD66099C1A18A /* KWEqualMatcher.h in Headers */, - 263F1EA736C06F512CE2733A5949BBDE /* KWExample.h in Headers */, - E817928E7D5C52431BB65E2379A024EC /* KWExampleDelegate.h in Headers */, - EDDAD25DA404DDBF539AFFFD1787FB48 /* KWExampleNode.h in Headers */, - 5CB3CD73C17442D5B93C65CBC63FBE0B /* KWExampleNodeVisitor.h in Headers */, - 71FEB1523D7BB4BA64B003432E5435CF /* KWExampleSuite.h in Headers */, - 7769F3ACE46424A17E5894C4AF3B8464 /* KWExampleSuiteBuilder.h in Headers */, - EA02236B57C4A7CDE39BDEC43EB46139 /* KWExistVerifier.h in Headers */, - 3C8591E2B0740AF80D9A782628EC5ACD /* KWExpectationType.h in Headers */, - C3E4BC94B693F1FDB384E218DEA9BEAC /* KWFailure.h in Headers */, - B92F4C9B0506606C306877404C0199D0 /* KWFormatter.h in Headers */, - 4F017117CCAE45745B586319AE73E50A /* KWFutureObject.h in Headers */, - 88820FD1D69F5580D37B7481704900D0 /* KWGenericMatcher.h in Headers */, - 56939F35513122AE97B870AFC1C1048E /* KWGenericMatchEvaluator.h in Headers */, - 578D001781D34D09D1CA3640B9D0611B /* KWGenericMatchingAdditions.h in Headers */, - AB3F1725AA34B0A84A34508B7F2FD18F /* KWHaveMatcher.h in Headers */, - 489C4CB4B9CB7EAF81919ACD0E21C0C7 /* KWHaveValueMatcher.h in Headers */, - 064DFC59E321508CDD171A395218CAE6 /* KWInequalityMatcher.h in Headers */, - 1E8D5F5BEBCB64B1B278C0FE4B8E599A /* KWIntercept.h in Headers */, - 0AFB0088768E7BA2305CF207773375A7 /* KWInvocationCapturer.h in Headers */, - 9E0882BDBA6A5FDC8875B0B066F88176 /* KWItNode.h in Headers */, - 1D07490EEDA918C13F48243D534C577F /* KWLet.h in Headers */, - F48BE3290CA0FCF915D941B8066540E3 /* KWLetNode.h in Headers */, - 07AF7694FE6381334D06320D73266F5E /* KWMatcher.h in Headers */, - 07259889701A4569A51688AFCBB91BB5 /* KWMatcherFactory.h in Headers */, - 5513F143E495B60C4151D3BB69D6B603 /* KWMatchers.h in Headers */, - 0D8759AA1745E9406024472541F0B2E5 /* KWMatching.h in Headers */, - CA8E39717C2FBFDB1F9B32BCF41C929C /* KWMatchVerifier.h in Headers */, - 17B89913A1017928C114BF422BDD92F6 /* KWMessagePattern.h in Headers */, - 47DAEBE3B4A192BD969FF0A68F5AB87E /* KWMessageSpying.h in Headers */, - 37D08572CF57EAB6A0560E4C43875513 /* KWMessageTracker.h in Headers */, - 75586CC3ECC4BAF133AA7DF0CAC8A80C /* KWMock.h in Headers */, - 67707C8AD544DBE7D724910213337B0E /* KWNilMatcher.h in Headers */, - A69817743786792F8869367BC0F30498 /* KWNotificationMatcher.h in Headers */, - DFC34EC5DB5010FA53CD339B61B2395A /* KWNull.h in Headers */, - 07C054A878BF24B1EB65587189D5A9EC /* KWObjCUtilities.h in Headers */, - CD18A54B27E89A347BBF192D19F6204A /* KWPendingNode.h in Headers */, - 6078E16B0A6071359372D547FEEEE8C1 /* KWProbe.h in Headers */, - 065051075100D0622D41AFC30C960AE9 /* KWProbePoller.h in Headers */, - C5B4BE226A5E953C0D2B17C6BE31C778 /* KWReceiveMatcher.h in Headers */, - BB9F7EF7582967C4A3BE813E047F1182 /* KWRegisterMatchersNode.h in Headers */, - CF28F7715E2CD1D137A9EB429337DF5E /* KWRegularExpressionPatternMatcher.h in Headers */, - 3778FA0F845FD93630DFE40349EAEBCD /* KWReporting.h in Headers */, - 8C98AF30B55372FC043884A9DF3B4AFB /* KWRespondToSelectorMatcher.h in Headers */, - EBAB14B188FB1A8E359F8D91CE87344F /* KWSpec.h in Headers */, - 25F0BB238FE4AA445A2CBB55E96E77E4 /* KWStringContainsMatcher.h in Headers */, - 32F01D97F4820974B545C04454F050BB /* KWStringPrefixMatcher.h in Headers */, - 14F8A068C1FFD00BFA43B01EA2151285 /* KWStringUtilities.h in Headers */, - C6F9D6F8C39D0CE3442CB20B04541392 /* KWStub.h in Headers */, - DE400941D2D5B6B8358CA97676C94D22 /* KWSuiteConfigurationBase.h in Headers */, - B0D42A487F03F8D368E83F8BB02A74E3 /* KWSymbolicator.h in Headers */, - 80B246C3B4811E24DA0279460375A51D /* KWUserDefinedMatcher.h in Headers */, - 9AC7F117690447D71C4AE1037D8915E7 /* KWValue.h in Headers */, - 4F1470FBFDBF19386FFFD70D5AC1C0BF /* KWVerifying.h in Headers */, - B3AFD9EB4735B642306D1FCC4ACC103B /* KWWorkarounds.h in Headers */, - 32343DCFF9A443C585D502CCE7AAD820 /* NSInvocation+KiwiAdditions.h in Headers */, - 608383AE35F5C04B9CE379F7C2EBDC90 /* NSInvocation+OCMAdditions.h in Headers */, - 24F4268F620C3FB4D34A69424865D045 /* NSMethodSignature+KiwiAdditions.h in Headers */, - 93848992D73D394B1DB0FE1F0BDB267C /* NSNumber+KiwiAdditions.h in Headers */, - F59D02DBC3C9198DE2E78FD7A429E5A1 /* NSObject+KiwiMockAdditions.h in Headers */, - 1D1CC5F432C0EBB23070C2803A949F88 /* NSObject+KiwiSpyAdditions.h in Headers */, - 3B28CD5909A2F25107F1B673C91B4FED /* NSObject+KiwiStubAdditions.h in Headers */, - 6A4397DDFF899B88996800D6AAE5AF62 /* NSObject+KiwiVerifierAdditions.h in Headers */, - 4633DFE9D741A82F21FDE5EA4A253AB4 /* NSProxy+KiwiVerifierAdditions.h in Headers */, - DC40F10B3621FC00FB7703893E2A7049 /* NSValue+KiwiAdditions.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - DB42A021F85E896E7B4859530C77601A /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 07A8C5B470C45BE1DFE22008301A1820 /* Kiwi.h in Headers */, - D35121C657101570DA4DE73989859D4A /* KiwiBlockMacros.h in Headers */, - 5ADD80DBD55A52515824AB01C6E53AA1 /* KiwiConfiguration.h in Headers */, - 96B267E85BAA4586C9BC6BC1F7D06B2A /* KiwiMacros.h in Headers */, - 47CC1D8B07476B9A94E153C11972949A /* KWAfterAllNode.h in Headers */, - CF413D778E74D670ABB03BB3D1A45736 /* KWAfterEachNode.h in Headers */, - 9F8ADF4B8A23DA467A58B2CA85004B1D /* KWAny.h in Headers */, - 15B0D250017BEC1E777E2939C086AA6F /* KWAsyncVerifier.h in Headers */, - 73E461FE9027AF117D1D5DFB92AE30DE /* KWBeBetweenMatcher.h in Headers */, - DAC40D3A594C6B0AEB18C610B64E9D23 /* KWBeEmptyMatcher.h in Headers */, - 73B78F53F4257DCD329BBE3E02893713 /* KWBeforeAllNode.h in Headers */, - 6A6081607281830D99A7B4D526B372E3 /* KWBeforeEachNode.h in Headers */, - 3EFB5FF1FE90FD0797A62C0DE3A8F37A /* KWBeIdenticalToMatcher.h in Headers */, - EBDF157092F3EEFCC0DFD3E3BD67B85C /* KWBeKindOfClassMatcher.h in Headers */, - E819F87187DAA403D2C7D54B1FBE7F2F /* KWBeMemberOfClassMatcher.h in Headers */, - 79CE245D3D7DB125977D3120BB131DCB /* KWBeSubclassOfClassMatcher.h in Headers */, - CFB4D3807E5E452B39534AFB7DB4D5A2 /* KWBeTrueMatcher.h in Headers */, - 1006C13EE31E4963A17BE01EB0E13CBE /* KWBeWithinMatcher.h in Headers */, - A7F488D91AD3D8FB51CAA6C57DF741C0 /* KWBeZeroMatcher.h in Headers */, - 6CB202C83C6A430CC3340A1BD255299F /* KWBlock.h in Headers */, - 53EC4E1B850078B4554A9ACFBC649EAE /* KWBlockNode.h in Headers */, - 974C25893601BD9DF6EA8CAA79473210 /* KWBlockRaiseMatcher.h in Headers */, - 077B3FEF98F626A415ED234B67647815 /* KWCallSite.h in Headers */, - 3FDB5E494C3CC94F807A44D1E805580F /* KWCaptureSpy.h in Headers */, - 19E3B453EE107807D771EF4BA635924E /* KWChangeMatcher.h in Headers */, - 9899D11758BC813FB0419BC1AC6FAB2C /* KWConformToProtocolMatcher.h in Headers */, - 7493F85BA7B98488F4EAB8F05005E849 /* KWContainMatcher.h in Headers */, - 68574D95A9A19F524770A1DBDF5DA162 /* KWContainStringMatcher.h in Headers */, - 4660CC5CF74FE66DC3A2896CE2DBCCCC /* KWContextNode.h in Headers */, - FC46F05FFAD4BE39909AE3EDA0B7B09C /* KWCountType.h in Headers */, - 4369473C30925D7FC329DC6613E7B844 /* KWDeviceInfo.h in Headers */, - B93AA4B97C003C7A64CBB18C7858E286 /* KWEqualMatcher.h in Headers */, - 98FDDFD391BD267924EE6CC22ED7062A /* KWExample.h in Headers */, - 32E1A9B3D6CC5F39416FDAE65B1D5C4E /* KWExampleDelegate.h in Headers */, - AAB0DB1172B404F6347215D7D34EAC46 /* KWExampleNode.h in Headers */, - 05AC39DE095A5A0E274DA7A45BFEA8D8 /* KWExampleNodeVisitor.h in Headers */, - 670FF3349F3A0F8B4BC8FFBD79ED728D /* KWExampleSuite.h in Headers */, - 6C74A19A8F09516BE8E4AFD8767C5C45 /* KWExampleSuiteBuilder.h in Headers */, - E1239F5E1844971BC1B744ABCD967591 /* KWExistVerifier.h in Headers */, - 452A0F9169C2A6E0108FE9093CEABBA7 /* KWExpectationType.h in Headers */, - 7DFDD07DBF392005CBA20DAC5AB898EC /* KWFailure.h in Headers */, - 184C04FC32A8440A6CBFB64BE5902836 /* KWFormatter.h in Headers */, - 25F5DCB8CF476D9F62F65F7EABEA94D9 /* KWFutureObject.h in Headers */, - F85D354DBBDF1A3024A7482E03C56C8C /* KWGenericMatcher.h in Headers */, - 350000C5F9112FA7EBF3736470F22D20 /* KWGenericMatchEvaluator.h in Headers */, - 6551A7102EC412B1490DA623AF8A290B /* KWGenericMatchingAdditions.h in Headers */, - DA612633E3303BD2A48507B1F13E7097 /* KWHaveMatcher.h in Headers */, - 2DFB76A817F3A39FA5797BC5EA4A0398 /* KWHaveValueMatcher.h in Headers */, - 334793C23533175664D28D90BB96C472 /* KWInequalityMatcher.h in Headers */, - E0F5E8CE257973F986E0399A198B8D51 /* KWIntercept.h in Headers */, - 7AFEB088F8BA613F6CB04C0C1A9611E8 /* KWInvocationCapturer.h in Headers */, - 7F61D640908CE988E9983BE3DFD0271A /* KWItNode.h in Headers */, - 9EE0C8A77C46248C21438C205B7C2A4A /* KWLet.h in Headers */, - A5C649646804F9EB9ABF0F47A6B39B7A /* KWLetNode.h in Headers */, - 6996F6ABC0EAAA48832A67772A4B9A1B /* KWMatcher.h in Headers */, - E482075785F8F7B5768A15D20E89B02B /* KWMatcherFactory.h in Headers */, - FEA9319D1CE12C02EBFFDF90918174B3 /* KWMatchers.h in Headers */, - 9C21170AB9330FEA1658C750EC50076E /* KWMatching.h in Headers */, - 527BC36A14FB8839C65378AA9BC15FE7 /* KWMatchVerifier.h in Headers */, - 2CC4E2A0D33DDD8E62D6BB1ADA595870 /* KWMessagePattern.h in Headers */, - 3FA153D99DA1B3D9FE6CC640BB4D4EDA /* KWMessageSpying.h in Headers */, - F6F52B8A2E6B79933E309AB97F490BDF /* KWMessageTracker.h in Headers */, - 4D7BABDFF3502395337D7B89B981C737 /* KWMock.h in Headers */, - 11A86D103E58377BB99304DD1C66F913 /* KWNilMatcher.h in Headers */, - 0FC35F4CD100ED99A9A6F395ADA63C5D /* KWNotificationMatcher.h in Headers */, - 56CE04A2A0DB0D25F07741B53EDC3B3A /* KWNull.h in Headers */, - 70363D67218718B91DDDA219E55F2CCB /* KWObjCUtilities.h in Headers */, - 907228CAF3A5A56A0DD88A3ABBEEC4F7 /* KWPendingNode.h in Headers */, - 8964615A05EE4D78941C4400B0F862D0 /* KWProbe.h in Headers */, - 7DEFDC0A3FFEE37796CEAF29411020D1 /* KWProbePoller.h in Headers */, - C814749C2E7E2D6995AB480EAD9DAC19 /* KWReceiveMatcher.h in Headers */, - D51F991AA4B2899F6E4DF67B21226005 /* KWRegisterMatchersNode.h in Headers */, - B8AD393C7DD1C21B89956F08FF8D10F9 /* KWRegularExpressionPatternMatcher.h in Headers */, - CF6DD5AADA77B3344A366DD12EC5B09D /* KWReporting.h in Headers */, - 2A523772E71CAC21E57D51B0766BDD1F /* KWRespondToSelectorMatcher.h in Headers */, - EECE294FB1A61066664F75C9993B674F /* KWSpec.h in Headers */, - 7E8F78F9B7CA6A5A97CDE1BB1BF1C0DC /* KWStringContainsMatcher.h in Headers */, - 9B618C0CD420F0A139A57667C8C8A76E /* KWStringPrefixMatcher.h in Headers */, - 255F6FA56C4EA4AA7FF705725A49E14A /* KWStringUtilities.h in Headers */, - 368FB1A1E3900230800B77A71E207F17 /* KWStub.h in Headers */, - 07736F2821DD4EAE940D2E4D6BD53EE5 /* KWSuiteConfigurationBase.h in Headers */, - D18142C904C1E9672DD910F56E2AF90D /* KWSymbolicator.h in Headers */, - 199531462ED7392ECB467A508260B8CD /* KWUserDefinedMatcher.h in Headers */, - B9748E2C12404D0F5F60A5A715DF7D4F /* KWValue.h in Headers */, - C6CADACA676A0471F909CA044FD6245C /* KWVerifying.h in Headers */, - 56332351EBE74D01ED8CC3FC0F51BB9A /* KWWorkarounds.h in Headers */, - FF1BABAB26615A63BDB0765DF48833D7 /* NSInvocation+KiwiAdditions.h in Headers */, - 38E26EF1D335A29D9426061FA3D8F68E /* NSInvocation+OCMAdditions.h in Headers */, - 96BD56A4E87DFD479C8F4A928280FDAB /* NSMethodSignature+KiwiAdditions.h in Headers */, - 0D8FDEE95ED55B98DCE99F5861BC13D5 /* NSNumber+KiwiAdditions.h in Headers */, - E40E68902478A30BA8DB0EA5CB6980E7 /* NSObject+KiwiMockAdditions.h in Headers */, - 8C2125090A33DDAE77FC27579B2DA822 /* NSObject+KiwiSpyAdditions.h in Headers */, - 83440E0FB9BD1047567E24663B62E0C6 /* NSObject+KiwiStubAdditions.h in Headers */, - 4D4263653D1578E9DD609AA83DAF2FA0 /* NSObject+KiwiVerifierAdditions.h in Headers */, - 7B95840ED283D3C44176D5DF361BB208 /* NSProxy+KiwiVerifierAdditions.h in Headers */, - 664E177BBD81DD36DA3EE35449E33E69 /* NSValue+KiwiAdditions.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - E35253596729DAF68C86B283DC215523 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 8DFBA7B6FBF1689E1A9DA3E38DA68F93 /* TKEvent.h in Headers */, - 42670A829613D5692FAF2AA60F091C46 /* TKState.h in Headers */, - A6D7EF06BB7272D8C0839CE5879FD347 /* TKStateMachine.h in Headers */, - 5307061923E305D92977DFB521411996 /* TKTransition.h in Headers */, - 68E14886EA15A961B9E5E1C48A1569C2 /* TransitionKit.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - 6C4B72EAD29C118CA0F3246466DBFFE3 /* TransitionKit-iOS */ = { - isa = PBXNativeTarget; - buildConfigurationList = F83A3E3FC031DDB52C5711A8EA618980 /* Build configuration list for PBXNativeTarget "TransitionKit-iOS" */; - buildPhases = ( - FCD05DE2B27FBEA62ADC144E2996C8F5 /* Sources */, - 99B491F5FF1CE3196EA43F3B1E95CC93 /* Frameworks */, - 3A05ED090C4E56048C9DBE5DB9A86732 /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "TransitionKit-iOS"; - productName = "TransitionKit-iOS"; - productReference = 10AB2797AAC0DCB6A9B711A1B731B574 /* libTransitionKit-iOS.a */; - productType = "com.apple.product-type.library.static"; - }; - 96B533C5E6327385FD6AB88890A3A0EB /* Kiwi-iOS */ = { - isa = PBXNativeTarget; - buildConfigurationList = 7ED8A66845390748D47100DC49BBACC1 /* Build configuration list for PBXNativeTarget "Kiwi-iOS" */; - buildPhases = ( - 43FCCB491D325818E58281D24711FA91 /* Sources */, - 75DCDCFF68ED5C3C1B7E4DBFBF5E5E09 /* Frameworks */, - DB42A021F85E896E7B4859530C77601A /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "Kiwi-iOS"; - productName = "Kiwi-iOS"; - productReference = 1CE262A553A2502921C0E78DA2A7F6DC /* libKiwi-iOS.a */; - productType = "com.apple.product-type.library.static"; - }; - 9C77A4CD37823CC5839C1244E3B4655E /* Kiwi-OSX */ = { - isa = PBXNativeTarget; - buildConfigurationList = D29BF99BD59A94E27F6564D8F69F8668 /* Build configuration list for PBXNativeTarget "Kiwi-OSX" */; - buildPhases = ( - 9B958589B11C3F568BEA5B93CCE55FFA /* Sources */, - C1FF25098B4B5C3EC76CE9FE3C27C570 /* Frameworks */, - AA19E8387D3CCA3517C55A6792275D8D /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "Kiwi-OSX"; - productName = "Kiwi-OSX"; - productReference = 866777442F22D145FA6F9C65F8484823 /* libKiwi-OSX.a */; - productType = "com.apple.product-type.library.static"; - }; - C013B188CECFD144F264E15EC3C2A8DA /* TransitionKit-OSX */ = { - isa = PBXNativeTarget; - buildConfigurationList = DCCAB301F1A74A65F88E628330868946 /* Build configuration list for PBXNativeTarget "TransitionKit-OSX" */; - buildPhases = ( - 8FACBB7AC191F48FC5AE27A3B9BDBC9B /* Sources */, - 5E25360B55AFFD04D088ADE3201D3BF6 /* Frameworks */, - E35253596729DAF68C86B283DC215523 /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "TransitionKit-OSX"; - productName = "TransitionKit-OSX"; - productReference = 480C95E78BCF7FD2EDB54E8ABE0C8719 /* libTransitionKit-OSX.a */; - productType = "com.apple.product-type.library.static"; - }; - D77BEF52F4D78CECA48B0CB09FBD290F /* Pods-Tests-TransitionKit macOS Tests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 732241965CA0943B1A35E4972B6D2D38 /* Build configuration list for PBXNativeTarget "Pods-Tests-TransitionKit macOS Tests" */; - buildPhases = ( - 1081079837F147F5073749CFFA6B736D /* Sources */, - E3590702E5F61CEAD5CCEF4B1F87F744 /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - 580543BEE42281E85EB3A4320F80B860 /* PBXTargetDependency */, - 266A469DFC53418AAD7133CB940300D6 /* PBXTargetDependency */, - ); - name = "Pods-Tests-TransitionKit macOS Tests"; - productName = "Pods-Tests-TransitionKit macOS Tests"; - productReference = 7D7697FE1511358632E4594253DC3571 /* libPods-Tests-TransitionKit macOS Tests.a */; - productType = "com.apple.product-type.library.static"; - }; - E9ECB5AF80EAA077EFBF9F7AE188570C /* Pods-Tests-TransitionKit iOS Tests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 4197FBCDF4581E8B51CE53E1F97273F5 /* Build configuration list for PBXNativeTarget "Pods-Tests-TransitionKit iOS Tests" */; - buildPhases = ( - F827F4E067AC0F67D2C0B83A2445B0C8 /* Sources */, - 17AE13D4BB4D45EDC8DC825DE5F1F638 /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - 91387026FCD8B8617BFE269927EAECE4 /* PBXTargetDependency */, - A9E5EA1AF4CFE193BD955390605BFBC3 /* PBXTargetDependency */, - ); - name = "Pods-Tests-TransitionKit iOS Tests"; - productName = "Pods-Tests-TransitionKit iOS Tests"; - productReference = FF4091FC5A79BE72E877EB6405345315 /* libPods-Tests-TransitionKit iOS Tests.a */; - productType = "com.apple.product-type.library.static"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - D41D8CD98F00B204E9800998ECF8427E /* Project object */ = { - isa = PBXProject; - attributes = { - LastSwiftUpdateCheck = 0730; - LastUpgradeCheck = 0700; - }; - buildConfigurationList = 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - ); - mainGroup = 7DB346D0F39D3F0E887471402A8071AB; - productRefGroup = 0585E7DE0F9ECED68D2FD0FFEEB4E455 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 96B533C5E6327385FD6AB88890A3A0EB /* Kiwi-iOS */, - 9C77A4CD37823CC5839C1244E3B4655E /* Kiwi-OSX */, - E9ECB5AF80EAA077EFBF9F7AE188570C /* Pods-Tests-TransitionKit iOS Tests */, - D77BEF52F4D78CECA48B0CB09FBD290F /* Pods-Tests-TransitionKit macOS Tests */, - 6C4B72EAD29C118CA0F3246466DBFFE3 /* TransitionKit-iOS */, - C013B188CECFD144F264E15EC3C2A8DA /* TransitionKit-OSX */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXSourcesBuildPhase section */ - 1081079837F147F5073749CFFA6B736D /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 61F180750CD0CC25B294AF1E1B0AC0F6 /* Pods-Tests-TransitionKit macOS Tests-dummy.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 43FCCB491D325818E58281D24711FA91 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 49BDD0814A5D76AD8672C24A6F454255 /* Kiwi-iOS-dummy.m in Sources */, - 0180AE619D2E90A7B91EC63F3E71FFB0 /* KWAfterAllNode.m in Sources */, - 86047793D0A53863B2C78695B385DD35 /* KWAfterEachNode.m in Sources */, - A9DC3F82A007C3E089CE72B807F33457 /* KWAllTestsSuite.m in Sources */, - 93775F9843BD8027BA06BE25BE4E3B63 /* KWAny.m in Sources */, - D547AB85F57F83F6E1E1315F54DF6BAB /* KWAsyncVerifier.m in Sources */, - 24AFF5156DCB19C96AB91DBCCD2395E7 /* KWBeBetweenMatcher.m in Sources */, - 207CB6B45DEE6B1591DAF3A982C2A3BE /* KWBeEmptyMatcher.m in Sources */, - 8E9B86CC84972221CCF727B6006646EB /* KWBeforeAllNode.m in Sources */, - 801989CF9E631F6D524D6DFDA6351945 /* KWBeforeEachNode.m in Sources */, - FAF00A1B6E2D90F043B88D0BE38B7006 /* KWBeIdenticalToMatcher.m in Sources */, - 79581937E9D65BA1C1852A80AD29697E /* KWBeKindOfClassMatcher.m in Sources */, - 2F3189D678A5DFE31B5AEEC217EFF916 /* KWBeMemberOfClassMatcher.m in Sources */, - 69D6089949BE0A3DE75639E992F91F1F /* KWBeSubclassOfClassMatcher.m in Sources */, - 413BBA7435EE7E6A44339130DF646662 /* KWBeTrueMatcher.m in Sources */, - B5388D57FA41AB88D1D555DBBE18560E /* KWBeWithinMatcher.m in Sources */, - 4CD35007C025B3ADBF19AD6A2D82F9FC /* KWBeZeroMatcher.m in Sources */, - 3AE863BE836C5B87376F36C59ED70362 /* KWBlock.m in Sources */, - B4AE5F7362824A8B4E3A5D04F8A37A79 /* KWBlockNode.m in Sources */, - AC51C3442720B7560C15CC80CD3C4A8B /* KWBlockRaiseMatcher.m in Sources */, - 3FFEA4F8AB525AB868D8AEB07EA8C03B /* KWCallSite.m in Sources */, - B05ABF483A29F5C61048A5D0E78D961C /* KWCaptureSpy.m in Sources */, - 30C90896AC3F8EA88039851F56728FC5 /* KWChangeMatcher.m in Sources */, - 9575D0D12346CBD310AA352078383E49 /* KWConformToProtocolMatcher.m in Sources */, - B2B20639154A56213D644C575103D323 /* KWContainMatcher.m in Sources */, - 0182489055E1268F25E8B603C6CC7597 /* KWContainStringMatcher.m in Sources */, - 8A197C5061631D1D45D707AFA0D1E76F /* KWContextNode.m in Sources */, - 68950F726519CC96F62CFFE951E6FF1F /* KWDeviceInfo.m in Sources */, - F4DC7CD545DE7AC583C53C64AAC9EBB7 /* KWEqualMatcher.m in Sources */, - 2F70B54DFC18341F899CCA31548F3438 /* KWExample.m in Sources */, - A7EBF3901AD27854FEE945D7BAEE05DE /* KWExampleSuite.m in Sources */, - F733A59B703FD11A0C30EDCA68C3AB15 /* KWExampleSuiteBuilder.m in Sources */, - 3F55B1ACA6108E90D02D53410A75EE08 /* KWExistVerifier.m in Sources */, - B2154F6FBD9A18E1BAFCB2D3C9A7CAC7 /* KWFailure.m in Sources */, - AC7AB08A42002500304DE1F4D65DA711 /* KWFormatter.m in Sources */, - 6EDA71F89F776BFCAE7E5B8128D06441 /* KWFutureObject.m in Sources */, - AF4915797FA9574F6FD837F72E5E8EFB /* KWGenericMatcher.m in Sources */, - D8FE8917FFE9FB8C8D3EA63EC703D0AB /* KWGenericMatchEvaluator.m in Sources */, - E52732838C66BD0D2BB07C2E1702E02B /* KWGenericMatchingAdditions.m in Sources */, - 5E792D390FF798FAB7ECCAAAE27B74A3 /* KWHaveMatcher.m in Sources */, - 0736EB85307DA8EA09963FA2B7D3FD98 /* KWHaveValueMatcher.m in Sources */, - EE302C96B9F2CC3491D25EE5C5F7B51E /* KWInequalityMatcher.m in Sources */, - D679FFF2FE84830FE8C6C207EE17020F /* KWIntercept.m in Sources */, - 1F2DBF32F1A551D7A40AEE4B8F8A44CE /* KWInvocationCapturer.m in Sources */, - CC93AC87ABF536A2CE2E2A6295BF9B16 /* KWItNode.m in Sources */, - 163C5C54F9314B54F27B594C13C5EA08 /* KWLetNode.m in Sources */, - 12B26F5CFCD18C0C292C58358E7BE1C4 /* KWMatcher.m in Sources */, - 987220996F6A91503CE0C4E22D098C44 /* KWMatcherFactory.m in Sources */, - 7213F8B340E9C93B4CF0F265FB81194D /* KWMatchers.m in Sources */, - 2EA04A056D6EF1EE32476FB599104C50 /* KWMatchVerifier.m in Sources */, - BC1EDFD79E919CB096A788705CC61349 /* KWMessagePattern.m in Sources */, - AA32EBD7DA1450CD5E4CC4273D9349CD /* KWMessageTracker.m in Sources */, - FBE5BD09AEC4615C08DC390DD781FC42 /* KWMock.m in Sources */, - 8AFCA4F7E9A09F62A8E5DC8B63B5FABB /* KWNilMatcher.m in Sources */, - C9C699A8F30405DDEC0EDDA09204B717 /* KWNotificationMatcher.m in Sources */, - 3811FB7DA3CAD250353AF5788D2B9976 /* KWNull.m in Sources */, - 5EC1A72962E5FA55A9661284A3B908D4 /* KWObjCUtilities.m in Sources */, - 9E1F41D4F02EA6B5C14CBD273B7575D1 /* KWPendingNode.m in Sources */, - 25E1D66190691CA88C9404DA67132F4F /* KWProbePoller.m in Sources */, - FF54E9158DB1B92E682DDCBB6D9B6050 /* KWReceiveMatcher.m in Sources */, - 2DBD3520B7BDC713252E376AEA5AED98 /* KWRegisterMatchersNode.m in Sources */, - 79B82DDACE11A10435064D89605AF55A /* KWRegularExpressionPatternMatcher.m in Sources */, - A968B33702DD77E5BBC884BFA334D13E /* KWRespondToSelectorMatcher.m in Sources */, - 6FF09585ED02D77C6FC88049779B98DB /* KWSpec.m in Sources */, - B8FCBE3DE70A719CCB71E45F386E58A3 /* KWStringContainsMatcher.m in Sources */, - 92E98A8D309269B3B27A7EFE6405CB7F /* KWStringPrefixMatcher.m in Sources */, - A19A6D0233DC476BBEA4FFFF96F9E912 /* KWStringUtilities.m in Sources */, - C4C4EBB019EBCB6F7CBEEAB64FB15495 /* KWStub.m in Sources */, - 120305E4CF371CC596589397046E0B5E /* KWSuiteConfigurationBase.m in Sources */, - 3D6D5EB8713C4127E1524C6F35174F5D /* KWSymbolicator.m in Sources */, - C9C76BD3AEB1FEE8BF99E06DAF762263 /* KWUserDefinedMatcher.m in Sources */, - AE5B2A1C61A25EDF8F2B70C6004BCE62 /* KWValue.m in Sources */, - 547A077A9E6178D9598C300FFF151CF5 /* KWWorkarounds.m in Sources */, - 3D5C8CDA447DD3056C7B77865FC14A27 /* NSInvocation+KiwiAdditions.m in Sources */, - D0C742678B727EC2241B6575F4671695 /* NSInvocation+OCMAdditions.m in Sources */, - B72CF0933C475668003DECF5F66132FE /* NSMethodSignature+KiwiAdditions.m in Sources */, - 5F6111D380EAB1851F8C72379CE21459 /* NSNumber+KiwiAdditions.m in Sources */, - D9BA398056FE88A3439D4F9422757640 /* NSObject+KiwiMockAdditions.m in Sources */, - 2187C0D534B6141302799E48D8258614 /* NSObject+KiwiSpyAdditions.m in Sources */, - E63B08634F16B49F49B5E3203B794319 /* NSObject+KiwiStubAdditions.m in Sources */, - A5A6CB20CFF1492521765D309E37618B /* NSObject+KiwiVerifierAdditions.m in Sources */, - B39E633401292DB0CFED005819EBA927 /* NSProxy+KiwiVerifierAdditions.m in Sources */, - AB183E1EC7605D0A89CD89CCB760885F /* NSValue+KiwiAdditions.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 8FACBB7AC191F48FC5AE27A3B9BDBC9B /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - D8BFA49CFBD3FCFF67997040E3ADE0DC /* TKEvent.m in Sources */, - C85DDAE94B97D337DD0C03F38629BFB2 /* TKState.m in Sources */, - 7D8906C69E30B165C387C9CB577E72E9 /* TKStateMachine.m in Sources */, - 76403E606476CACF72904984BBCF45A9 /* TKTransition.m in Sources */, - F539DE93AF83C99F101D0FD577A97170 /* TransitionKit-OSX-dummy.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 9B958589B11C3F568BEA5B93CCE55FFA /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - D027389517585029A1DB3F21FADAD6F3 /* Kiwi-OSX-dummy.m in Sources */, - FECEB5E5135C5DF75A97E9B9B14FC88D /* KWAfterAllNode.m in Sources */, - ECB98F443826BDBD5118CA5556061AEF /* KWAfterEachNode.m in Sources */, - A68DCDAF09DB5784A0A97E1BE3727A3D /* KWAllTestsSuite.m in Sources */, - 57ADC789A23CF8819993A17276058A17 /* KWAny.m in Sources */, - 68762E3951FDE0BAAB1352E021602A09 /* KWAsyncVerifier.m in Sources */, - 2FDB3E734F0D46DDEB5EDDA85A536669 /* KWBeBetweenMatcher.m in Sources */, - 77FECDA3511C7322159331970D6056F6 /* KWBeEmptyMatcher.m in Sources */, - 0A7324E8B1ADA246A24826AE05909542 /* KWBeforeAllNode.m in Sources */, - 3D52A2715B20DEEE437D0B2022C106D7 /* KWBeforeEachNode.m in Sources */, - 4BF9A49D3238D0B17FA44DA696BAE87E /* KWBeIdenticalToMatcher.m in Sources */, - 94550E3EE37A21AA76AB5283C33B9F53 /* KWBeKindOfClassMatcher.m in Sources */, - 28BFF4C1807BBADD10B1306DBC544B60 /* KWBeMemberOfClassMatcher.m in Sources */, - E38AC06C212AC67F98BAEAB1BF3CC52A /* KWBeSubclassOfClassMatcher.m in Sources */, - 9EDF851C6F4807A8E9883D428A1DADA0 /* KWBeTrueMatcher.m in Sources */, - D0F7E3F5BE625C64ECEA00F7BED1AF20 /* KWBeWithinMatcher.m in Sources */, - 3B0DD47F194CB0EB08F47E96B0FC5F53 /* KWBeZeroMatcher.m in Sources */, - CCE60C3C4F2F51F1E654856BD90F0918 /* KWBlock.m in Sources */, - F221338F78CBE36A4B9B3980B81A59C0 /* KWBlockNode.m in Sources */, - 54C9F208DDD22272E417F6D2935FA13D /* KWBlockRaiseMatcher.m in Sources */, - 0A5C86B31F2F48AC636D9D583FC959E1 /* KWCallSite.m in Sources */, - 95174DB1EC3E37B7DBFE25952AD3506B /* KWCaptureSpy.m in Sources */, - 6D24CD950686584CE3B77526A8899743 /* KWChangeMatcher.m in Sources */, - CA93F1365797C2B24F27A8D10DEFD28B /* KWConformToProtocolMatcher.m in Sources */, - 92EF660EA614616E2679B77B6A48FCAA /* KWContainMatcher.m in Sources */, - B47D1F954701BAAC7CAB0BC116671D46 /* KWContainStringMatcher.m in Sources */, - BCB1D31899C82234731FDBA070AD18C5 /* KWContextNode.m in Sources */, - D41101368156778E16E4302CCBEF6F2C /* KWDeviceInfo.m in Sources */, - 010E6BB736F19FD1AA6971F50607F393 /* KWEqualMatcher.m in Sources */, - 797ACC7F2388F34739761C36C55998A0 /* KWExample.m in Sources */, - 6BD79E6BC82865BC909830800D61ADE1 /* KWExampleSuite.m in Sources */, - 373EB0ED4BC5B0ADAD3E66B8A629C053 /* KWExampleSuiteBuilder.m in Sources */, - 97F6C0CEBBD1D84DDDBB1B2EF52C9B86 /* KWExistVerifier.m in Sources */, - 2F94180B86ED7E8CC2EC505934C19321 /* KWFailure.m in Sources */, - A9B0C7D39C84527896B212E3A459BAA6 /* KWFormatter.m in Sources */, - EE5CA8398835A13EC3F3E1F9B8344E21 /* KWFutureObject.m in Sources */, - FB9F5FAE8140B6FD4248AD4A9059AD1E /* KWGenericMatcher.m in Sources */, - 48EFC34AF677FEF893B91E4E3A47A160 /* KWGenericMatchEvaluator.m in Sources */, - 0EDA1A0555848448D20EF0727A7204F4 /* KWGenericMatchingAdditions.m in Sources */, - 7A89BEE2FC57F4BA4D6F8D75546321CC /* KWHaveMatcher.m in Sources */, - 4E4F84A5E2B65ED09DF73F7433EFAC6D /* KWHaveValueMatcher.m in Sources */, - 343AEF850A376878D228948B34F45423 /* KWInequalityMatcher.m in Sources */, - BB568DC44BF7951AE5A5B635291F5C22 /* KWIntercept.m in Sources */, - 1BD562AF8A49A4267C032A061DC7D501 /* KWInvocationCapturer.m in Sources */, - EB8643EEFB250DA966E35161687AC6D6 /* KWItNode.m in Sources */, - 9C1542AF7C58114B9268B2F727B5907C /* KWLetNode.m in Sources */, - B7FCF79C808419F473F8B10488C4FC8D /* KWMatcher.m in Sources */, - 35DC16E86C84712DA480EE95842D9578 /* KWMatcherFactory.m in Sources */, - E5F3206DCC644EAEF2C337A96730D086 /* KWMatchers.m in Sources */, - A1F0DB582D722677028817A07A64135E /* KWMatchVerifier.m in Sources */, - 0F58C42E578263774D5766FB45CCB7C0 /* KWMessagePattern.m in Sources */, - 0457C2027603717E8E3817938414A56C /* KWMessageTracker.m in Sources */, - DABBD01BE904698B0621EF4DF5172AE3 /* KWMock.m in Sources */, - EF72BFCC295BCFEFB28FB330DFB9DD53 /* KWNilMatcher.m in Sources */, - B71F59035F7C46E7BF3521B2939B5A21 /* KWNotificationMatcher.m in Sources */, - AD841562234FF714506B2F97D13FFCA8 /* KWNull.m in Sources */, - C49E0F6B3C2EA36637248B02AFD4952F /* KWObjCUtilities.m in Sources */, - E20C519D17ECB56B41089B9E30C3F662 /* KWPendingNode.m in Sources */, - 25378B5EE43F5602BB752B66AC5D81DE /* KWProbePoller.m in Sources */, - 02C83D2F844269B5C60A732CCE33ACCF /* KWReceiveMatcher.m in Sources */, - 9D3216A4B6DE42F86ADEDE82A983733C /* KWRegisterMatchersNode.m in Sources */, - 1FF0F25721F5FFFBAAA4030395FEE587 /* KWRegularExpressionPatternMatcher.m in Sources */, - 06C6EF9FC3A32A2B75836DDB78F4A6B9 /* KWRespondToSelectorMatcher.m in Sources */, - 1794ABAF0F88A86238A7AA7216AFA4F4 /* KWSpec.m in Sources */, - E76EE15F1A787C2C52D3B7BCC06D5298 /* KWStringContainsMatcher.m in Sources */, - D9F12A025FE4C7CE2FCB8DD33C26F198 /* KWStringPrefixMatcher.m in Sources */, - A2D2F89E31DCAF9F8FCC75D8A5F8DDA8 /* KWStringUtilities.m in Sources */, - 8E77B2D0AE3944F5BDCEEA67FFC21D7B /* KWStub.m in Sources */, - 4943B7B672CF83DAC3B57DA7300AD2FD /* KWSuiteConfigurationBase.m in Sources */, - 9B03D0CAA15758750810645C9932CA1D /* KWSymbolicator.m in Sources */, - 03594326A541A67C41C740BEC2A03D2B /* KWUserDefinedMatcher.m in Sources */, - 4E1E6454654322B99E9F6DD078F89FDF /* KWValue.m in Sources */, - 9F9FDC697EA3086EE1F3F283132610F2 /* KWWorkarounds.m in Sources */, - 1AF51D75CF9F028C286AF174B67EED83 /* NSInvocation+KiwiAdditions.m in Sources */, - 886C6A1950E34F05DBBF85F4060AA649 /* NSInvocation+OCMAdditions.m in Sources */, - 45C0528F6511722C7817F9A7C61CED55 /* NSMethodSignature+KiwiAdditions.m in Sources */, - F6508813F978E711824D53906423ED9F /* NSNumber+KiwiAdditions.m in Sources */, - 6A069EDBCA03B1DED5820E60E1E7A282 /* NSObject+KiwiMockAdditions.m in Sources */, - 176377C673DF7B6E599A75B48411038A /* NSObject+KiwiSpyAdditions.m in Sources */, - E0AEC8BA31635C2EB289858458E90514 /* NSObject+KiwiStubAdditions.m in Sources */, - D263FD0792138010B78FC6518C9F9B2F /* NSObject+KiwiVerifierAdditions.m in Sources */, - 14A33FDBE96191797350BABD61FC951C /* NSProxy+KiwiVerifierAdditions.m in Sources */, - 940FB0F410414914060A7BB35054751A /* NSValue+KiwiAdditions.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - F827F4E067AC0F67D2C0B83A2445B0C8 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - BA594BC05159229EEABE09E2ED750158 /* Pods-Tests-TransitionKit iOS Tests-dummy.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - FCD05DE2B27FBEA62ADC144E2996C8F5 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 2363BF3A7F0820D9CAD9935AFD60CB67 /* TKEvent.m in Sources */, - AE6D7D1BC35B22F1644F5E10B98DB21E /* TKState.m in Sources */, - CD62F0E362C57316DD923BBC9686D5C3 /* TKStateMachine.m in Sources */, - 0B4768417E50F9A26B323C35500D86CE /* TKTransition.m in Sources */, - 77FEBA873ADC4E8E046841DD45BF50EC /* TransitionKit-iOS-dummy.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - 266A469DFC53418AAD7133CB940300D6 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "TransitionKit-OSX"; - target = C013B188CECFD144F264E15EC3C2A8DA /* TransitionKit-OSX */; - targetProxy = D1A9F006DDCB7DE990672BBF7F2BBC3E /* PBXContainerItemProxy */; - }; - 580543BEE42281E85EB3A4320F80B860 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Kiwi-OSX"; - target = 9C77A4CD37823CC5839C1244E3B4655E /* Kiwi-OSX */; - targetProxy = 9487AB6E8C62E7D23D888C6C9F80DA8D /* PBXContainerItemProxy */; - }; - 91387026FCD8B8617BFE269927EAECE4 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Kiwi-iOS"; - target = 96B533C5E6327385FD6AB88890A3A0EB /* Kiwi-iOS */; - targetProxy = EBBC78A34964489ACCC332C919128BF1 /* PBXContainerItemProxy */; - }; - A9E5EA1AF4CFE193BD955390605BFBC3 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "TransitionKit-iOS"; - target = 6C4B72EAD29C118CA0F3246466DBFFE3 /* TransitionKit-iOS */; - targetProxy = AB4E34AA78D13AFBB23AA850EF5B586E /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin XCBuildConfiguration section */ - 1720CAA85D3A460378317197F522234A /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = E00C27B968DCB013A54B7C5EB0389177 /* TransitionKit-iOS.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREFIX_HEADER = "Target Support Files/TransitionKit-iOS/TransitionKit-iOS-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 6.0; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRIVATE_HEADERS_FOLDER_PATH = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - PUBLIC_HEADERS_FOLDER_PATH = ""; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Release; - }; - 23B5166CBAFAAC7B317EAAD1A8246883 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = BE3DB1826B68E076AF2053EB46479F9C /* Kiwi-OSX.xcconfig */; - buildSettings = { - CODE_SIGN_IDENTITY = "-"; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - EXECUTABLE_PREFIX = lib; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREFIX_HEADER = "Target Support Files/Kiwi-OSX/Kiwi-OSX-prefix.pch"; - MACOSX_DEPLOYMENT_TARGET = 10.7; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRIVATE_HEADERS_FOLDER_PATH = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - PUBLIC_HEADERS_FOLDER_PATH = ""; - SDKROOT = macosx; - }; - name = Release; - }; - 277DE89115430C595E1621B0086C09F2 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 8360901F15ABA7A40903E016D32D0707 /* Pods-Tests-TransitionKit macOS Tests.release.xcconfig */; - buildSettings = { - CODE_SIGN_IDENTITY = "-"; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - EXECUTABLE_PREFIX = lib; - GCC_NO_COMMON_BLOCKS = YES; - MACH_O_TYPE = staticlib; - MACOSX_DEPLOYMENT_TARGET = 10.7; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - SKIP_INSTALL = YES; - }; - name = Release; - }; - 3C6732BA3B3DC863E5CE09412490FC54 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D962F9362779AE2C4D97F3F663613538 /* Pods-Tests-TransitionKit iOS Tests.debug.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - IPHONEOS_DEPLOYMENT_TARGET = 6.0; - MACH_O_TYPE = staticlib; - MTL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Debug; - }; - 429AF1EFF704A6FD70885A0E758FB363 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = E00C27B968DCB013A54B7C5EB0389177 /* TransitionKit-iOS.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREFIX_HEADER = "Target Support Files/TransitionKit-iOS/TransitionKit-iOS-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 6.0; - MTL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRIVATE_HEADERS_FOLDER_PATH = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - PUBLIC_HEADERS_FOLDER_PATH = ""; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Debug; - }; - 4D5914BB57674FF304D4C120B9F94A02 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGNING_REQUIRED = NO; - COPY_PHASE_STRIP = YES; - ENABLE_NS_ASSERTIONS = NO; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_PREPROCESSOR_DEFINITIONS = ( - "POD_CONFIGURATION_RELEASE=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 6.0; - MACOSX_DEPLOYMENT_TARGET = 10.7; - PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/; - STRIP_INSTALLED_PRODUCT = NO; - SYMROOT = "${SRCROOT}/../build"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 55F18F2E91F927FDD8BC5744A1CAFE61 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 0BB6F5764C789C7A2DCC2705F49A926B /* Pods-Tests-TransitionKit macOS Tests.debug.xcconfig */; - buildSettings = { - CODE_SIGN_IDENTITY = "-"; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - EXECUTABLE_PREFIX = lib; - GCC_NO_COMMON_BLOCKS = YES; - MACH_O_TYPE = staticlib; - MACOSX_DEPLOYMENT_TARGET = 10.7; - MTL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - SKIP_INSTALL = YES; - }; - name = Debug; - }; - 5985AF023DD0C15C8D5C013F65BB551A /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = B4D30D55A41A848A797A5009195D0E77 /* TransitionKit-OSX.xcconfig */; - buildSettings = { - CODE_SIGN_IDENTITY = "-"; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - EXECUTABLE_PREFIX = lib; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREFIX_HEADER = "Target Support Files/TransitionKit-OSX/TransitionKit-OSX-prefix.pch"; - MACOSX_DEPLOYMENT_TARGET = 10.7; - MTL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRIVATE_HEADERS_FOLDER_PATH = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - PUBLIC_HEADERS_FOLDER_PATH = ""; - SDKROOT = macosx; - }; - name = Debug; - }; - 5A861044A950069B568F4D93153F40EB /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = B4D30D55A41A848A797A5009195D0E77 /* TransitionKit-OSX.xcconfig */; - buildSettings = { - CODE_SIGN_IDENTITY = "-"; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - EXECUTABLE_PREFIX = lib; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREFIX_HEADER = "Target Support Files/TransitionKit-OSX/TransitionKit-OSX-prefix.pch"; - MACOSX_DEPLOYMENT_TARGET = 10.7; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRIVATE_HEADERS_FOLDER_PATH = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - PUBLIC_HEADERS_FOLDER_PATH = ""; - SDKROOT = macosx; - }; - name = Release; - }; - 6069721D9E8EA870122B39CD801512C1 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = BE3DB1826B68E076AF2053EB46479F9C /* Kiwi-OSX.xcconfig */; - buildSettings = { - CODE_SIGN_IDENTITY = "-"; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - EXECUTABLE_PREFIX = lib; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREFIX_HEADER = "Target Support Files/Kiwi-OSX/Kiwi-OSX-prefix.pch"; - MACOSX_DEPLOYMENT_TARGET = 10.7; - MTL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRIVATE_HEADERS_FOLDER_PATH = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - PUBLIC_HEADERS_FOLDER_PATH = ""; - SDKROOT = macosx; - }; - name = Debug; - }; - 93C9734A3F2B1CFBA9ADAE4869C9A083 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = EBA1B98D14D759934B51499FF4C6EAE1 /* Kiwi-iOS.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREFIX_HEADER = "Target Support Files/Kiwi-iOS/Kiwi-iOS-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 5.0; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRIVATE_HEADERS_FOLDER_PATH = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - PUBLIC_HEADERS_FOLDER_PATH = ""; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Release; - }; - ADD0062EF21E06B1E3B28F97750232A5 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = EBA1B98D14D759934B51499FF4C6EAE1 /* Kiwi-iOS.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREFIX_HEADER = "Target Support Files/Kiwi-iOS/Kiwi-iOS-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 5.0; - MTL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRIVATE_HEADERS_FOLDER_PATH = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - PUBLIC_HEADERS_FOLDER_PATH = ""; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Debug; - }; - C697A3CF048C7DAEE6215D1950770D3E /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 16CEEB90C83E148E1BE783D800B495B2 /* Pods-Tests-TransitionKit iOS Tests.release.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - IPHONEOS_DEPLOYMENT_TARGET = 6.0; - MACH_O_TYPE = staticlib; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Release; - }; - EBC5C79E7E365C10A8D690582C717947 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGNING_REQUIRED = NO; - COPY_PHASE_STRIP = NO; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "POD_CONFIGURATION_DEBUG=1", - "DEBUG=1", - "$(inherited)", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 6.0; - MACOSX_DEPLOYMENT_TARGET = 10.7; - ONLY_ACTIVE_ARCH = YES; - PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/; - STRIP_INSTALLED_PRODUCT = NO; - SYMROOT = "${SRCROOT}/../build"; - }; - name = Debug; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - EBC5C79E7E365C10A8D690582C717947 /* Debug */, - 4D5914BB57674FF304D4C120B9F94A02 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 4197FBCDF4581E8B51CE53E1F97273F5 /* Build configuration list for PBXNativeTarget "Pods-Tests-TransitionKit iOS Tests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 3C6732BA3B3DC863E5CE09412490FC54 /* Debug */, - C697A3CF048C7DAEE6215D1950770D3E /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 732241965CA0943B1A35E4972B6D2D38 /* Build configuration list for PBXNativeTarget "Pods-Tests-TransitionKit macOS Tests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 55F18F2E91F927FDD8BC5744A1CAFE61 /* Debug */, - 277DE89115430C595E1621B0086C09F2 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 7ED8A66845390748D47100DC49BBACC1 /* Build configuration list for PBXNativeTarget "Kiwi-iOS" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - ADD0062EF21E06B1E3B28F97750232A5 /* Debug */, - 93C9734A3F2B1CFBA9ADAE4869C9A083 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - D29BF99BD59A94E27F6564D8F69F8668 /* Build configuration list for PBXNativeTarget "Kiwi-OSX" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 6069721D9E8EA870122B39CD801512C1 /* Debug */, - 23B5166CBAFAAC7B317EAAD1A8246883 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - DCCAB301F1A74A65F88E628330868946 /* Build configuration list for PBXNativeTarget "TransitionKit-OSX" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 5985AF023DD0C15C8D5C013F65BB551A /* Debug */, - 5A861044A950069B568F4D93153F40EB /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - F83A3E3FC031DDB52C5711A8EA618980 /* Build configuration list for PBXNativeTarget "TransitionKit-iOS" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 429AF1EFF704A6FD70885A0E758FB363 /* Debug */, - 1720CAA85D3A460378317197F522234A /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = D41D8CD98F00B204E9800998ECF8427E /* Project object */; -} diff --git a/Pods/Target Support Files/Kiwi-OSX/Kiwi-OSX-dummy.m b/Pods/Target Support Files/Kiwi-OSX/Kiwi-OSX-dummy.m deleted file mode 100644 index bc3aa14..0000000 --- a/Pods/Target Support Files/Kiwi-OSX/Kiwi-OSX-dummy.m +++ /dev/null @@ -1,5 +0,0 @@ -#import -@interface PodsDummy_Kiwi_OSX : NSObject -@end -@implementation PodsDummy_Kiwi_OSX -@end diff --git a/Pods/Target Support Files/Kiwi-OSX/Kiwi-OSX-prefix.pch b/Pods/Target Support Files/Kiwi-OSX/Kiwi-OSX-prefix.pch deleted file mode 100644 index a1c6284..0000000 --- a/Pods/Target Support Files/Kiwi-OSX/Kiwi-OSX-prefix.pch +++ /dev/null @@ -1,13 +0,0 @@ -#ifdef __OBJC__ -#import -#else -#ifndef FOUNDATION_EXPORT -#if defined(__cplusplus) -#define FOUNDATION_EXPORT extern "C" -#else -#define FOUNDATION_EXPORT extern -#endif -#endif -#endif - -#import diff --git a/Pods/Target Support Files/Kiwi-OSX/Kiwi-OSX.xcconfig b/Pods/Target Support Files/Kiwi-OSX/Kiwi-OSX.xcconfig deleted file mode 100644 index ce32753..0000000 --- a/Pods/Target Support Files/Kiwi-OSX/Kiwi-OSX.xcconfig +++ /dev/null @@ -1,12 +0,0 @@ -CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/Kiwi-OSX -FRAMEWORK_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks" $(DEVELOPER_FRAMEWORKS_DIR) -FRAMEWORK_SEARCH_PATHS[sdk=macosx10.10] = $(inherited) $(DEVELOPER_DIR)/Platforms/MacOSX.platform/Developer/Library/Frameworks -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/Kiwi" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Kiwi" "${PODS_ROOT}/Headers/Public/TransitionKit" -OTHER_LDFLAGS = -framework "XCTest" -PODS_BUILD_DIR = $BUILD_DIR -PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_ROOT = ${SRCROOT} -PODS_TARGET_SRCROOT = ${PODS_ROOT}/Kiwi -PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} -SKIP_INSTALL = YES diff --git a/Pods/Target Support Files/Kiwi-iOS/Kiwi-iOS-dummy.m b/Pods/Target Support Files/Kiwi-iOS/Kiwi-iOS-dummy.m deleted file mode 100644 index 08fcb9d..0000000 --- a/Pods/Target Support Files/Kiwi-iOS/Kiwi-iOS-dummy.m +++ /dev/null @@ -1,5 +0,0 @@ -#import -@interface PodsDummy_Kiwi_iOS : NSObject -@end -@implementation PodsDummy_Kiwi_iOS -@end diff --git a/Pods/Target Support Files/Kiwi-iOS/Kiwi-iOS-prefix.pch b/Pods/Target Support Files/Kiwi-iOS/Kiwi-iOS-prefix.pch deleted file mode 100644 index f188b83..0000000 --- a/Pods/Target Support Files/Kiwi-iOS/Kiwi-iOS-prefix.pch +++ /dev/null @@ -1,13 +0,0 @@ -#ifdef __OBJC__ -#import -#else -#ifndef FOUNDATION_EXPORT -#if defined(__cplusplus) -#define FOUNDATION_EXPORT extern "C" -#else -#define FOUNDATION_EXPORT extern -#endif -#endif -#endif - -#import diff --git a/Pods/Target Support Files/Kiwi-iOS/Kiwi-iOS.xcconfig b/Pods/Target Support Files/Kiwi-iOS/Kiwi-iOS.xcconfig deleted file mode 100644 index 8eaae27..0000000 --- a/Pods/Target Support Files/Kiwi-iOS/Kiwi-iOS.xcconfig +++ /dev/null @@ -1,13 +0,0 @@ -CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/Kiwi-iOS -FRAMEWORK_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks" $(SDKROOT)/Developer/Library/Frameworks $(inherited) $(DEVELOPER_FRAMEWORKS_DIR) -FRAMEWORK_SEARCH_PATHS[sdk=iphoneos8.0] = $(inherited) $(DEVELOPER_DIR)/Platforms/iPhoneOS.platform/Developer/Library/Frameworks -FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator8.0] = $(inherited) $(DEVELOPER_DIR)/Platforms/iPhoneSimulator.platform/Developer/Library/Frameworks -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/Kiwi" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Kiwi" "${PODS_ROOT}/Headers/Public/TransitionKit" -OTHER_LDFLAGS = -framework "XCTest" -PODS_BUILD_DIR = $BUILD_DIR -PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_ROOT = ${SRCROOT} -PODS_TARGET_SRCROOT = ${PODS_ROOT}/Kiwi -PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} -SKIP_INSTALL = YES diff --git a/Pods/Target Support Files/Pods-Tests-TransitionKit iOS Tests/Pods-Tests-TransitionKit iOS Tests-acknowledgements.markdown b/Pods/Target Support Files/Pods-Tests-TransitionKit iOS Tests/Pods-Tests-TransitionKit iOS Tests-acknowledgements.markdown deleted file mode 100644 index 25eb981..0000000 --- a/Pods/Target Support Files/Pods-Tests-TransitionKit iOS Tests/Pods-Tests-TransitionKit iOS Tests-acknowledgements.markdown +++ /dev/null @@ -1,240 +0,0 @@ -# Acknowledgements -This application makes use of the following third party libraries: - -## Kiwi - -Copyright (c) 2010, Allen Ding -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this -list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright notice, -this list of conditions and the following disclaimer in the documentation -and/or other materials provided with the distribution. - -3. Neither the name of Allen Ding nor the names of any contributors may be -used to endorse or promote products derived from this software without specific -prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -## TransitionKit - - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright 2013-2014 Blake Watters - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - -Generated by CocoaPods - https://cocoapods.org diff --git a/Pods/Target Support Files/Pods-Tests-TransitionKit iOS Tests/Pods-Tests-TransitionKit iOS Tests-acknowledgements.plist b/Pods/Target Support Files/Pods-Tests-TransitionKit iOS Tests/Pods-Tests-TransitionKit iOS Tests-acknowledgements.plist deleted file mode 100644 index 108f417..0000000 --- a/Pods/Target Support Files/Pods-Tests-TransitionKit iOS Tests/Pods-Tests-TransitionKit iOS Tests-acknowledgements.plist +++ /dev/null @@ -1,278 +0,0 @@ - - - - - PreferenceSpecifiers - - - FooterText - This application makes use of the following third party libraries: - Title - Acknowledgements - Type - PSGroupSpecifier - - - FooterText - Copyright (c) 2010, Allen Ding -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this -list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright notice, -this list of conditions and the following disclaimer in the documentation -and/or other materials provided with the distribution. - -3. Neither the name of Allen Ding nor the names of any contributors may be -used to endorse or promote products derived from this software without specific -prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - License - MIT - Title - Kiwi - Type - PSGroupSpecifier - - - FooterText - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright 2013-2014 Blake Watters - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - - License - Apache2 - Title - TransitionKit - Type - PSGroupSpecifier - - - FooterText - Generated by CocoaPods - https://cocoapods.org - Title - - Type - PSGroupSpecifier - - - StringsTable - Acknowledgements - Title - Acknowledgements - - diff --git a/Pods/Target Support Files/Pods-Tests-TransitionKit iOS Tests/Pods-Tests-TransitionKit iOS Tests-dummy.m b/Pods/Target Support Files/Pods-Tests-TransitionKit iOS Tests/Pods-Tests-TransitionKit iOS Tests-dummy.m deleted file mode 100644 index de0ad5b..0000000 --- a/Pods/Target Support Files/Pods-Tests-TransitionKit iOS Tests/Pods-Tests-TransitionKit iOS Tests-dummy.m +++ /dev/null @@ -1,5 +0,0 @@ -#import -@interface PodsDummy_Pods_Tests_TransitionKit_iOS_Tests : NSObject -@end -@implementation PodsDummy_Pods_Tests_TransitionKit_iOS_Tests -@end diff --git a/Pods/Target Support Files/Pods-Tests-TransitionKit iOS Tests/Pods-Tests-TransitionKit iOS Tests-frameworks.sh b/Pods/Target Support Files/Pods-Tests-TransitionKit iOS Tests/Pods-Tests-TransitionKit iOS Tests-frameworks.sh deleted file mode 100755 index 0f29f13..0000000 --- a/Pods/Target Support Files/Pods-Tests-TransitionKit iOS Tests/Pods-Tests-TransitionKit iOS Tests-frameworks.sh +++ /dev/null @@ -1,92 +0,0 @@ -#!/bin/sh -set -e - -echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" -mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - -SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" - -install_framework() -{ - if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then - local source="${BUILT_PRODUCTS_DIR}/$1" - elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then - local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")" - elif [ -r "$1" ]; then - local source="$1" - fi - - local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - - if [ -L "${source}" ]; then - echo "Symlinked..." - source="$(readlink "${source}")" - fi - - # use filter instead of exclude so missing patterns dont' throw errors - echo "rsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" - rsync -av --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" - - local basename - basename="$(basename -s .framework "$1")" - binary="${destination}/${basename}.framework/${basename}" - if ! [ -r "$binary" ]; then - binary="${destination}/${basename}" - fi - - # Strip invalid architectures so "fat" simulator / device frameworks work on device - if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then - strip_invalid_archs "$binary" - fi - - # Resign the code if required by the build settings to avoid unstable apps - code_sign_if_enabled "${destination}/$(basename "$1")" - - # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. - if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then - local swift_runtime_libs - swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u && exit ${PIPESTATUS[0]}) - for lib in $swift_runtime_libs; do - echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" - rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" - code_sign_if_enabled "${destination}/${lib}" - done - fi -} - -# Signs a framework with the provided identity -code_sign_if_enabled() { - if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then - # Use the current code_sign_identitiy - echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" - local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements '$1'" - - if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then - code_sign_cmd="$code_sign_cmd &" - fi - echo "$code_sign_cmd" - eval "$code_sign_cmd" - fi -} - -# Strip invalid architectures -strip_invalid_archs() { - binary="$1" - # Get architectures for current file - archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | rev)" - stripped="" - for arch in $archs; do - if ! [[ "${VALID_ARCHS}" == *"$arch"* ]]; then - # Strip non-valid architectures in-place - lipo -remove "$arch" -output "$binary" "$binary" || exit 1 - stripped="$stripped $arch" - fi - done - if [[ "$stripped" ]]; then - echo "Stripped $binary of architectures:$stripped" - fi -} - -if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then - wait -fi diff --git a/Pods/Target Support Files/Pods-Tests-TransitionKit iOS Tests/Pods-Tests-TransitionKit iOS Tests-resources.sh b/Pods/Target Support Files/Pods-Tests-TransitionKit iOS Tests/Pods-Tests-TransitionKit iOS Tests-resources.sh deleted file mode 100755 index 4602c68..0000000 --- a/Pods/Target Support Files/Pods-Tests-TransitionKit iOS Tests/Pods-Tests-TransitionKit iOS Tests-resources.sh +++ /dev/null @@ -1,99 +0,0 @@ -#!/bin/sh -set -e - -mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" - -RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt -> "$RESOURCES_TO_COPY" - -XCASSET_FILES=() - -case "${TARGETED_DEVICE_FAMILY}" in - 1,2) - TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" - ;; - 1) - TARGET_DEVICE_ARGS="--target-device iphone" - ;; - 2) - TARGET_DEVICE_ARGS="--target-device ipad" - ;; - 3) - TARGET_DEVICE_ARGS="--target-device tv" - ;; - *) - TARGET_DEVICE_ARGS="--target-device mac" - ;; -esac - -install_resource() -{ - if [[ "$1" = /* ]] ; then - RESOURCE_PATH="$1" - else - RESOURCE_PATH="${PODS_ROOT}/$1" - fi - if [[ ! -e "$RESOURCE_PATH" ]] ; then - cat << EOM -error: Resource "$RESOURCE_PATH" not found. Run 'pod install' to update the copy resources script. -EOM - exit 1 - fi - case $RESOURCE_PATH in - *.storyboard) - echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" - ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} - ;; - *.xib) - echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" - ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} - ;; - *.framework) - echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - echo "rsync -av $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - rsync -av "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - ;; - *.xcdatamodel) - echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" - xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom" - ;; - *.xcdatamodeld) - echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" - xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd" - ;; - *.xcmappingmodel) - echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" - xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm" - ;; - *.xcassets) - ABSOLUTE_XCASSET_FILE="$RESOURCE_PATH" - XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE") - ;; - *) - echo "$RESOURCE_PATH" - echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY" - ;; - esac -} - -mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" -rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" -if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then - mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" - rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" -fi -rm -f "$RESOURCES_TO_COPY" - -if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "$XCASSET_FILES" ] -then - # Find all other xcassets (this unfortunately includes those of path pods and other targets). - OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d) - while read line; do - if [[ $line != "${PODS_ROOT}*" ]]; then - XCASSET_FILES+=("$line") - fi - done <<<"$OTHER_XCASSETS" - - printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" -fi diff --git a/Pods/Target Support Files/Pods-Tests-TransitionKit iOS Tests/Pods-Tests-TransitionKit iOS Tests.debug.xcconfig b/Pods/Target Support Files/Pods-Tests-TransitionKit iOS Tests/Pods-Tests-TransitionKit iOS Tests.debug.xcconfig deleted file mode 100644 index 0d54282..0000000 --- a/Pods/Target Support Files/Pods-Tests-TransitionKit iOS Tests/Pods-Tests-TransitionKit iOS Tests.debug.xcconfig +++ /dev/null @@ -1,11 +0,0 @@ -FRAMEWORK_SEARCH_PATHS = $(inherited) $(SDKROOT)/Developer/Library/Frameworks $(inherited) $(DEVELOPER_FRAMEWORKS_DIR) "$(PLATFORM_DIR)/Developer/Library/Frameworks" -FRAMEWORK_SEARCH_PATHS[sdk=iphoneos8.0] = $(inherited) $(DEVELOPER_DIR)/Platforms/iPhoneOS.platform/Developer/Library/Frameworks -FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator8.0] = $(inherited) $(DEVELOPER_DIR)/Platforms/iPhoneSimulator.platform/Developer/Library/Frameworks -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Kiwi" "${PODS_ROOT}/Headers/Public/TransitionKit" -LIBRARY_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/Kiwi-iOS" "$PODS_CONFIGURATION_BUILD_DIR/TransitionKit-iOS" -OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/Kiwi" -isystem "${PODS_ROOT}/Headers/Public/TransitionKit" -OTHER_LDFLAGS = $(inherited) -ObjC -l"Kiwi-iOS" -l"TransitionKit-iOS" -framework "XCTest" -PODS_BUILD_DIR = $BUILD_DIR -PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_ROOT = ${SRCROOT}/Pods diff --git a/Pods/Target Support Files/Pods-Tests-TransitionKit iOS Tests/Pods-Tests-TransitionKit iOS Tests.release.xcconfig b/Pods/Target Support Files/Pods-Tests-TransitionKit iOS Tests/Pods-Tests-TransitionKit iOS Tests.release.xcconfig deleted file mode 100644 index 0d54282..0000000 --- a/Pods/Target Support Files/Pods-Tests-TransitionKit iOS Tests/Pods-Tests-TransitionKit iOS Tests.release.xcconfig +++ /dev/null @@ -1,11 +0,0 @@ -FRAMEWORK_SEARCH_PATHS = $(inherited) $(SDKROOT)/Developer/Library/Frameworks $(inherited) $(DEVELOPER_FRAMEWORKS_DIR) "$(PLATFORM_DIR)/Developer/Library/Frameworks" -FRAMEWORK_SEARCH_PATHS[sdk=iphoneos8.0] = $(inherited) $(DEVELOPER_DIR)/Platforms/iPhoneOS.platform/Developer/Library/Frameworks -FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator8.0] = $(inherited) $(DEVELOPER_DIR)/Platforms/iPhoneSimulator.platform/Developer/Library/Frameworks -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Kiwi" "${PODS_ROOT}/Headers/Public/TransitionKit" -LIBRARY_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/Kiwi-iOS" "$PODS_CONFIGURATION_BUILD_DIR/TransitionKit-iOS" -OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/Kiwi" -isystem "${PODS_ROOT}/Headers/Public/TransitionKit" -OTHER_LDFLAGS = $(inherited) -ObjC -l"Kiwi-iOS" -l"TransitionKit-iOS" -framework "XCTest" -PODS_BUILD_DIR = $BUILD_DIR -PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_ROOT = ${SRCROOT}/Pods diff --git a/Pods/Target Support Files/Pods-Tests-TransitionKit macOS Tests/Pods-Tests-TransitionKit macOS Tests-acknowledgements.markdown b/Pods/Target Support Files/Pods-Tests-TransitionKit macOS Tests/Pods-Tests-TransitionKit macOS Tests-acknowledgements.markdown deleted file mode 100644 index 25eb981..0000000 --- a/Pods/Target Support Files/Pods-Tests-TransitionKit macOS Tests/Pods-Tests-TransitionKit macOS Tests-acknowledgements.markdown +++ /dev/null @@ -1,240 +0,0 @@ -# Acknowledgements -This application makes use of the following third party libraries: - -## Kiwi - -Copyright (c) 2010, Allen Ding -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this -list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright notice, -this list of conditions and the following disclaimer in the documentation -and/or other materials provided with the distribution. - -3. Neither the name of Allen Ding nor the names of any contributors may be -used to endorse or promote products derived from this software without specific -prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -## TransitionKit - - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright 2013-2014 Blake Watters - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - -Generated by CocoaPods - https://cocoapods.org diff --git a/Pods/Target Support Files/Pods-Tests-TransitionKit macOS Tests/Pods-Tests-TransitionKit macOS Tests-acknowledgements.plist b/Pods/Target Support Files/Pods-Tests-TransitionKit macOS Tests/Pods-Tests-TransitionKit macOS Tests-acknowledgements.plist deleted file mode 100644 index 108f417..0000000 --- a/Pods/Target Support Files/Pods-Tests-TransitionKit macOS Tests/Pods-Tests-TransitionKit macOS Tests-acknowledgements.plist +++ /dev/null @@ -1,278 +0,0 @@ - - - - - PreferenceSpecifiers - - - FooterText - This application makes use of the following third party libraries: - Title - Acknowledgements - Type - PSGroupSpecifier - - - FooterText - Copyright (c) 2010, Allen Ding -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this -list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright notice, -this list of conditions and the following disclaimer in the documentation -and/or other materials provided with the distribution. - -3. Neither the name of Allen Ding nor the names of any contributors may be -used to endorse or promote products derived from this software without specific -prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - License - MIT - Title - Kiwi - Type - PSGroupSpecifier - - - FooterText - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright 2013-2014 Blake Watters - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - - License - Apache2 - Title - TransitionKit - Type - PSGroupSpecifier - - - FooterText - Generated by CocoaPods - https://cocoapods.org - Title - - Type - PSGroupSpecifier - - - StringsTable - Acknowledgements - Title - Acknowledgements - - diff --git a/Pods/Target Support Files/Pods-Tests-TransitionKit macOS Tests/Pods-Tests-TransitionKit macOS Tests-dummy.m b/Pods/Target Support Files/Pods-Tests-TransitionKit macOS Tests/Pods-Tests-TransitionKit macOS Tests-dummy.m deleted file mode 100644 index 043d689..0000000 --- a/Pods/Target Support Files/Pods-Tests-TransitionKit macOS Tests/Pods-Tests-TransitionKit macOS Tests-dummy.m +++ /dev/null @@ -1,5 +0,0 @@ -#import -@interface PodsDummy_Pods_Tests_TransitionKit_macOS_Tests : NSObject -@end -@implementation PodsDummy_Pods_Tests_TransitionKit_macOS_Tests -@end diff --git a/Pods/Target Support Files/Pods-Tests-TransitionKit macOS Tests/Pods-Tests-TransitionKit macOS Tests-frameworks.sh b/Pods/Target Support Files/Pods-Tests-TransitionKit macOS Tests/Pods-Tests-TransitionKit macOS Tests-frameworks.sh deleted file mode 100755 index 0f29f13..0000000 --- a/Pods/Target Support Files/Pods-Tests-TransitionKit macOS Tests/Pods-Tests-TransitionKit macOS Tests-frameworks.sh +++ /dev/null @@ -1,92 +0,0 @@ -#!/bin/sh -set -e - -echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" -mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - -SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" - -install_framework() -{ - if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then - local source="${BUILT_PRODUCTS_DIR}/$1" - elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then - local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")" - elif [ -r "$1" ]; then - local source="$1" - fi - - local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - - if [ -L "${source}" ]; then - echo "Symlinked..." - source="$(readlink "${source}")" - fi - - # use filter instead of exclude so missing patterns dont' throw errors - echo "rsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" - rsync -av --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" - - local basename - basename="$(basename -s .framework "$1")" - binary="${destination}/${basename}.framework/${basename}" - if ! [ -r "$binary" ]; then - binary="${destination}/${basename}" - fi - - # Strip invalid architectures so "fat" simulator / device frameworks work on device - if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then - strip_invalid_archs "$binary" - fi - - # Resign the code if required by the build settings to avoid unstable apps - code_sign_if_enabled "${destination}/$(basename "$1")" - - # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. - if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then - local swift_runtime_libs - swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u && exit ${PIPESTATUS[0]}) - for lib in $swift_runtime_libs; do - echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" - rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" - code_sign_if_enabled "${destination}/${lib}" - done - fi -} - -# Signs a framework with the provided identity -code_sign_if_enabled() { - if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then - # Use the current code_sign_identitiy - echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" - local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements '$1'" - - if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then - code_sign_cmd="$code_sign_cmd &" - fi - echo "$code_sign_cmd" - eval "$code_sign_cmd" - fi -} - -# Strip invalid architectures -strip_invalid_archs() { - binary="$1" - # Get architectures for current file - archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | rev)" - stripped="" - for arch in $archs; do - if ! [[ "${VALID_ARCHS}" == *"$arch"* ]]; then - # Strip non-valid architectures in-place - lipo -remove "$arch" -output "$binary" "$binary" || exit 1 - stripped="$stripped $arch" - fi - done - if [[ "$stripped" ]]; then - echo "Stripped $binary of architectures:$stripped" - fi -} - -if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then - wait -fi diff --git a/Pods/Target Support Files/Pods-Tests-TransitionKit macOS Tests/Pods-Tests-TransitionKit macOS Tests-resources.sh b/Pods/Target Support Files/Pods-Tests-TransitionKit macOS Tests/Pods-Tests-TransitionKit macOS Tests-resources.sh deleted file mode 100755 index 443d4b3..0000000 --- a/Pods/Target Support Files/Pods-Tests-TransitionKit macOS Tests/Pods-Tests-TransitionKit macOS Tests-resources.sh +++ /dev/null @@ -1,99 +0,0 @@ -#!/bin/sh -set -e - -mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" - -RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt -> "$RESOURCES_TO_COPY" - -XCASSET_FILES=() - -case "${TARGETED_DEVICE_FAMILY}" in - 1,2) - TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" - ;; - 1) - TARGET_DEVICE_ARGS="--target-device iphone" - ;; - 2) - TARGET_DEVICE_ARGS="--target-device ipad" - ;; - 3) - TARGET_DEVICE_ARGS="--target-device tv" - ;; - *) - TARGET_DEVICE_ARGS="--target-device mac" - ;; -esac - -install_resource() -{ - if [[ "$1" = /* ]] ; then - RESOURCE_PATH="$1" - else - RESOURCE_PATH="${PODS_ROOT}/$1" - fi - if [[ ! -e "$RESOURCE_PATH" ]] ; then - cat << EOM -error: Resource "$RESOURCE_PATH" not found. Run 'pod install' to update the copy resources script. -EOM - exit 1 - fi - case $RESOURCE_PATH in - *.storyboard) - echo "ibtool --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" - ibtool --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} - ;; - *.xib) - echo "ibtool --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" - ibtool --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} - ;; - *.framework) - echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - echo "rsync -av $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - rsync -av "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - ;; - *.xcdatamodel) - echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" - xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom" - ;; - *.xcdatamodeld) - echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" - xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd" - ;; - *.xcmappingmodel) - echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" - xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm" - ;; - *.xcassets) - ABSOLUTE_XCASSET_FILE="$RESOURCE_PATH" - XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE") - ;; - *) - echo "$RESOURCE_PATH" - echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY" - ;; - esac -} - -mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" -rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" -if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then - mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" - rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" -fi -rm -f "$RESOURCES_TO_COPY" - -if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "$XCASSET_FILES" ] -then - # Find all other xcassets (this unfortunately includes those of path pods and other targets). - OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d) - while read line; do - if [[ $line != "${PODS_ROOT}*" ]]; then - XCASSET_FILES+=("$line") - fi - done <<<"$OTHER_XCASSETS" - - printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" -fi diff --git a/Pods/Target Support Files/Pods-Tests-TransitionKit macOS Tests/Pods-Tests-TransitionKit macOS Tests.debug.xcconfig b/Pods/Target Support Files/Pods-Tests-TransitionKit macOS Tests/Pods-Tests-TransitionKit macOS Tests.debug.xcconfig deleted file mode 100644 index 296c0ee..0000000 --- a/Pods/Target Support Files/Pods-Tests-TransitionKit macOS Tests/Pods-Tests-TransitionKit macOS Tests.debug.xcconfig +++ /dev/null @@ -1,10 +0,0 @@ -FRAMEWORK_SEARCH_PATHS = $(inherited) $(DEVELOPER_FRAMEWORKS_DIR) "$(PLATFORM_DIR)/Developer/Library/Frameworks" -FRAMEWORK_SEARCH_PATHS[sdk=macosx10.10] = $(inherited) $(DEVELOPER_DIR)/Platforms/MacOSX.platform/Developer/Library/Frameworks -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Kiwi" "${PODS_ROOT}/Headers/Public/TransitionKit" -LIBRARY_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/Kiwi-OSX" "$PODS_CONFIGURATION_BUILD_DIR/TransitionKit-OSX" -OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/Kiwi" -isystem "${PODS_ROOT}/Headers/Public/TransitionKit" -OTHER_LDFLAGS = $(inherited) -ObjC -l"Kiwi-OSX" -l"TransitionKit-OSX" -framework "XCTest" -PODS_BUILD_DIR = $BUILD_DIR -PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_ROOT = ${SRCROOT}/Pods diff --git a/Pods/Target Support Files/Pods-Tests-TransitionKit macOS Tests/Pods-Tests-TransitionKit macOS Tests.release.xcconfig b/Pods/Target Support Files/Pods-Tests-TransitionKit macOS Tests/Pods-Tests-TransitionKit macOS Tests.release.xcconfig deleted file mode 100644 index 296c0ee..0000000 --- a/Pods/Target Support Files/Pods-Tests-TransitionKit macOS Tests/Pods-Tests-TransitionKit macOS Tests.release.xcconfig +++ /dev/null @@ -1,10 +0,0 @@ -FRAMEWORK_SEARCH_PATHS = $(inherited) $(DEVELOPER_FRAMEWORKS_DIR) "$(PLATFORM_DIR)/Developer/Library/Frameworks" -FRAMEWORK_SEARCH_PATHS[sdk=macosx10.10] = $(inherited) $(DEVELOPER_DIR)/Platforms/MacOSX.platform/Developer/Library/Frameworks -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Kiwi" "${PODS_ROOT}/Headers/Public/TransitionKit" -LIBRARY_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/Kiwi-OSX" "$PODS_CONFIGURATION_BUILD_DIR/TransitionKit-OSX" -OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/Kiwi" -isystem "${PODS_ROOT}/Headers/Public/TransitionKit" -OTHER_LDFLAGS = $(inherited) -ObjC -l"Kiwi-OSX" -l"TransitionKit-OSX" -framework "XCTest" -PODS_BUILD_DIR = $BUILD_DIR -PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_ROOT = ${SRCROOT}/Pods diff --git a/Pods/Target Support Files/TransitionKit-OSX/TransitionKit-OSX-dummy.m b/Pods/Target Support Files/TransitionKit-OSX/TransitionKit-OSX-dummy.m deleted file mode 100644 index 06b26d5..0000000 --- a/Pods/Target Support Files/TransitionKit-OSX/TransitionKit-OSX-dummy.m +++ /dev/null @@ -1,5 +0,0 @@ -#import -@interface PodsDummy_TransitionKit_OSX : NSObject -@end -@implementation PodsDummy_TransitionKit_OSX -@end diff --git a/Pods/Target Support Files/TransitionKit-OSX/TransitionKit-OSX-prefix.pch b/Pods/Target Support Files/TransitionKit-OSX/TransitionKit-OSX-prefix.pch deleted file mode 100644 index 082f8af..0000000 --- a/Pods/Target Support Files/TransitionKit-OSX/TransitionKit-OSX-prefix.pch +++ /dev/null @@ -1,12 +0,0 @@ -#ifdef __OBJC__ -#import -#else -#ifndef FOUNDATION_EXPORT -#if defined(__cplusplus) -#define FOUNDATION_EXPORT extern "C" -#else -#define FOUNDATION_EXPORT extern -#endif -#endif -#endif - diff --git a/Pods/Target Support Files/TransitionKit-OSX/TransitionKit-OSX.xcconfig b/Pods/Target Support Files/TransitionKit-OSX/TransitionKit-OSX.xcconfig deleted file mode 100644 index c82bb31..0000000 --- a/Pods/Target Support Files/TransitionKit-OSX/TransitionKit-OSX.xcconfig +++ /dev/null @@ -1,9 +0,0 @@ -CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/TransitionKit-OSX -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/TransitionKit" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Kiwi" "${PODS_ROOT}/Headers/Public/TransitionKit" -PODS_BUILD_DIR = $BUILD_DIR -PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_ROOT = ${SRCROOT} -PODS_TARGET_SRCROOT = ${PODS_ROOT}/.. -PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} -SKIP_INSTALL = YES diff --git a/Pods/Target Support Files/TransitionKit-iOS/TransitionKit-iOS-dummy.m b/Pods/Target Support Files/TransitionKit-iOS/TransitionKit-iOS-dummy.m deleted file mode 100644 index 0752cef..0000000 --- a/Pods/Target Support Files/TransitionKit-iOS/TransitionKit-iOS-dummy.m +++ /dev/null @@ -1,5 +0,0 @@ -#import -@interface PodsDummy_TransitionKit_iOS : NSObject -@end -@implementation PodsDummy_TransitionKit_iOS -@end diff --git a/Pods/Target Support Files/TransitionKit-iOS/TransitionKit-iOS-prefix.pch b/Pods/Target Support Files/TransitionKit-iOS/TransitionKit-iOS-prefix.pch deleted file mode 100644 index beb2a24..0000000 --- a/Pods/Target Support Files/TransitionKit-iOS/TransitionKit-iOS-prefix.pch +++ /dev/null @@ -1,12 +0,0 @@ -#ifdef __OBJC__ -#import -#else -#ifndef FOUNDATION_EXPORT -#if defined(__cplusplus) -#define FOUNDATION_EXPORT extern "C" -#else -#define FOUNDATION_EXPORT extern -#endif -#endif -#endif - diff --git a/Pods/Target Support Files/TransitionKit-iOS/TransitionKit-iOS.xcconfig b/Pods/Target Support Files/TransitionKit-iOS/TransitionKit-iOS.xcconfig deleted file mode 100644 index 8007187..0000000 --- a/Pods/Target Support Files/TransitionKit-iOS/TransitionKit-iOS.xcconfig +++ /dev/null @@ -1,9 +0,0 @@ -CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/TransitionKit-iOS -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/TransitionKit" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Kiwi" "${PODS_ROOT}/Headers/Public/TransitionKit" -PODS_BUILD_DIR = $BUILD_DIR -PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_ROOT = ${SRCROOT} -PODS_TARGET_SRCROOT = ${PODS_ROOT}/.. -PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} -SKIP_INSTALL = YES diff --git a/Specs/TKEventSpec.m b/Specs/TKEventSpec.m index ea1e03a..e72584d 100644 --- a/Specs/TKEventSpec.m +++ b/Specs/TKEventSpec.m @@ -18,7 +18,7 @@ // limitations under the License. // -#import "Kiwi.h" +#import #import "TKEvent.h" SPEC_BEGIN(TKEventSpec) diff --git a/Specs/TKStateMachineSpec.m b/Specs/TKStateMachineSpec.m index ffce220..3e02388 100644 --- a/Specs/TKStateMachineSpec.m +++ b/Specs/TKStateMachineSpec.m @@ -18,7 +18,7 @@ // limitations under the License. // -#import "Kiwi.h" +#import #import "TransitionKit.h" @interface TKSpecPerson : NSObject diff --git a/Specs/TKStateSpec.m b/Specs/TKStateSpec.m index d7cf84d..aea2012 100644 --- a/Specs/TKStateSpec.m +++ b/Specs/TKStateSpec.m @@ -18,7 +18,7 @@ // limitations under the License. // -#import "Kiwi.h" +#import #import "TKState.h" SPEC_BEGIN(TKStateSpec) diff --git a/TransitionKit.podspec b/TransitionKit.podspec index 5edf74e..46e90cc 100644 --- a/TransitionKit.podspec +++ b/TransitionKit.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'TransitionKit' - s.version = '2.2.2' + s.version = '2.2.3' s.license = 'Apache2' s.summary = 'A block-based State Machine API for Objective-C.' s.homepage = 'https://github.com/blakewatters/TransitionKit' diff --git a/TransitionKit.xcodeproj/project.pbxproj b/TransitionKit.xcodeproj/project.pbxproj index 773ede1..1a6e295 100644 --- a/TransitionKit.xcodeproj/project.pbxproj +++ b/TransitionKit.xcodeproj/project.pbxproj @@ -7,8 +7,6 @@ objects = { /* Begin PBXBuildFile section */ - 4A2BB047F5A14535F57C1A51 /* libPods-Tests-TransitionKit macOS Tests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 74EFA08FC6503BC6182379E9 /* libPods-Tests-TransitionKit macOS Tests.a */; }; - C26DECB7911ABDD5730805CF /* libPods-Tests-TransitionKit iOS Tests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 12FA2DE0BA99C2E7137B2DB7 /* libPods-Tests-TransitionKit iOS Tests.a */; }; FE0936171E80374A0092BF67 /* TransitionKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FE0935F91E8037330092BF67 /* TransitionKit.framework */; }; FE0936261E8037520092BF67 /* TransitionKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FE0936061E80373D0092BF67 /* TransitionKit.framework */; }; FE09362E1E8037E00092BF67 /* TKStateMachine.h in Headers */ = {isa = PBXBuildFile; fileRef = 252C464116F6A4B500CF1FEA /* TKStateMachine.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -35,6 +33,8 @@ FE09364F1E8038010092BF67 /* TKStateMachineSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 252C465116F6A57700CF1FEA /* TKStateMachineSpec.m */; }; FE0936501E8038010092BF67 /* TKEventSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 252C465516F6A58700CF1FEA /* TKEventSpec.m */; }; FE0936511E8038010092BF67 /* TKStateSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 252C465916F6A59500CF1FEA /* TKStateSpec.m */; }; + FEF0DB751ECECC42000EE0BA /* Kiwi.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FEF0DB701ECECC33000EE0BA /* Kiwi.framework */; }; + FEF0DB761ECECC44000EE0BA /* Kiwi.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FEF0DB731ECECC33000EE0BA /* Kiwi.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -55,8 +55,6 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 12FA2DE0BA99C2E7137B2DB7 /* libPods-Tests-TransitionKit iOS Tests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Tests-TransitionKit iOS Tests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 18D08393BB039C0A0161C451 /* Pods-Tests-TransitionKit iOS Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Tests-TransitionKit iOS Tests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Tests-TransitionKit iOS Tests/Pods-Tests-TransitionKit iOS Tests.debug.xcconfig"; sourceTree = ""; }; 252C45DB16F681D400CF1FEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; 252C45EC16F681D500CF1FEA /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; }; 252C460416F6833D00CF1FEA /* TransitionKit-Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "TransitionKit-Prefix.pch"; sourceTree = ""; }; @@ -77,17 +75,14 @@ 252C465C16F6A79100CF1FEA /* TransitionKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TransitionKit.h; sourceTree = ""; }; 25B01F9A1808941D007488E1 /* TKTransition.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TKTransition.h; sourceTree = ""; }; 25B01F9B1808941D007488E1 /* TKTransition.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TKTransition.m; sourceTree = ""; }; - 74EFA08FC6503BC6182379E9 /* libPods-Tests-TransitionKit macOS Tests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Tests-TransitionKit macOS Tests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 8392F2C67B8853B2F81DC73D /* Pods-Tests-TransitionKit macOS Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Tests-TransitionKit macOS Tests.release.xcconfig"; path = "Pods/Target Support Files/Pods-Tests-TransitionKit macOS Tests/Pods-Tests-TransitionKit macOS Tests.release.xcconfig"; sourceTree = ""; }; - D2405CF76733FE28D497CC0C /* Pods-Tests-TransitionKit macOS Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Tests-TransitionKit macOS Tests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Tests-TransitionKit macOS Tests/Pods-Tests-TransitionKit macOS Tests.debug.xcconfig"; sourceTree = ""; }; - ED941CE9FACB859E3E50920F /* Pods-Tests-TransitionKit iOS Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Tests-TransitionKit iOS Tests.release.xcconfig"; path = "Pods/Target Support Files/Pods-Tests-TransitionKit iOS Tests/Pods-Tests-TransitionKit iOS Tests.release.xcconfig"; sourceTree = ""; }; FE0935F91E8037330092BF67 /* TransitionKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = TransitionKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; FE0936061E80373D0092BF67 /* TransitionKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = TransitionKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; FE0936121E80374A0092BF67 /* TransitionKit.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = TransitionKit.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; FE0936211E8037520092BF67 /* TransitionKit.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = TransitionKit.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; FE09362C1E8037A70092BF67 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - FE0936521E8038120092BF67 /* Podfile */ = {isa = PBXFileReference; lastKnownFileType = text; path = Podfile; sourceTree = ""; }; FE0936531E8038120092BF67 /* TransitionKit.podspec */ = {isa = PBXFileReference; lastKnownFileType = text; path = TransitionKit.podspec; sourceTree = ""; }; + FEF0DB701ECECC33000EE0BA /* Kiwi.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Kiwi.framework; sourceTree = ""; }; + FEF0DB731ECECC33000EE0BA /* Kiwi.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Kiwi.framework; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -109,8 +104,8 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + FEF0DB751ECECC42000EE0BA /* Kiwi.framework in Frameworks */, FE0936171E80374A0092BF67 /* TransitionKit.framework in Frameworks */, - C26DECB7911ABDD5730805CF /* libPods-Tests-TransitionKit iOS Tests.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -118,8 +113,8 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + FEF0DB761ECECC44000EE0BA /* Kiwi.framework in Frameworks */, FE0936261E8037520092BF67 /* TransitionKit.framework in Frameworks */, - 4A2BB047F5A14535F57C1A51 /* libPods-Tests-TransitionKit macOS Tests.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -129,13 +124,12 @@ 252C45CF16F681D400CF1FEA = { isa = PBXGroup; children = ( - FE0936521E8038120092BF67 /* Podfile */, FE0936531E8038120092BF67 /* TransitionKit.podspec */, + FEF0DB6C1ECECC33000EE0BA /* Carthage */, 252C460316F6833D00CF1FEA /* Code */, 252C460816F6835900CF1FEA /* Specs */, 252C45DA16F681D400CF1FEA /* Frameworks */, 252C45D916F681D400CF1FEA /* Products */, - 81FF891CF10A469DBB77FC6A /* Pods */, ); sourceTree = ""; }; @@ -157,8 +151,6 @@ 252C45EC16F681D500CF1FEA /* UIKit.framework */, 252C461716F6849A00CF1FEA /* Cocoa.framework */, 252C461916F6849A00CF1FEA /* Other Frameworks */, - 12FA2DE0BA99C2E7137B2DB7 /* libPods-Tests-TransitionKit iOS Tests.a */, - 74EFA08FC6503BC6182379E9 /* libPods-Tests-TransitionKit macOS Tests.a */, ); name = Frameworks; sourceTree = ""; @@ -202,15 +194,37 @@ name = "Other Frameworks"; sourceTree = ""; }; - 81FF891CF10A469DBB77FC6A /* Pods */ = { + FEF0DB6C1ECECC33000EE0BA /* Carthage */ = { isa = PBXGroup; children = ( - 18D08393BB039C0A0161C451 /* Pods-Tests-TransitionKit iOS Tests.debug.xcconfig */, - ED941CE9FACB859E3E50920F /* Pods-Tests-TransitionKit iOS Tests.release.xcconfig */, - D2405CF76733FE28D497CC0C /* Pods-Tests-TransitionKit macOS Tests.debug.xcconfig */, - 8392F2C67B8853B2F81DC73D /* Pods-Tests-TransitionKit macOS Tests.release.xcconfig */, + FEF0DB6D1ECECC33000EE0BA /* Build */, ); - name = Pods; + path = Carthage; + sourceTree = ""; + }; + FEF0DB6D1ECECC33000EE0BA /* Build */ = { + isa = PBXGroup; + children = ( + FEF0DB6F1ECECC33000EE0BA /* iOS */, + FEF0DB721ECECC33000EE0BA /* Mac */, + ); + path = Build; + sourceTree = ""; + }; + FEF0DB6F1ECECC33000EE0BA /* iOS */ = { + isa = PBXGroup; + children = ( + FEF0DB701ECECC33000EE0BA /* Kiwi.framework */, + ); + path = iOS; + sourceTree = ""; + }; + FEF0DB721ECECC33000EE0BA /* Mac */ = { + isa = PBXGroup; + children = ( + FEF0DB731ECECC33000EE0BA /* Kiwi.framework */, + ); + path = Mac; sourceTree = ""; }; /* End PBXGroup section */ @@ -283,12 +297,10 @@ isa = PBXNativeTarget; buildConfigurationList = FE09361A1E80374A0092BF67 /* Build configuration list for PBXNativeTarget "TransitionKit iOS Tests" */; buildPhases = ( - 846A313D99D77F7E0DD43BCE /* [CP] Check Pods Manifest.lock */, FE09360E1E80374A0092BF67 /* Sources */, FE09360F1E80374A0092BF67 /* Frameworks */, FE0936101E80374A0092BF67 /* Resources */, - 28DC7AEF0DE18072EFA0F7F7 /* [CP] Embed Pods Frameworks */, - A1EA6FBC5B59CCAF48AD73BB /* [CP] Copy Pods Resources */, + FEF0DB771ECECCA7000EE0BA /* Carthage */, ); buildRules = ( ); @@ -304,12 +316,10 @@ isa = PBXNativeTarget; buildConfigurationList = FE0936291E8037520092BF67 /* Build configuration list for PBXNativeTarget "TransitionKit macOS Tests" */; buildPhases = ( - 727FED450CBB192386E2059F /* [CP] Check Pods Manifest.lock */, FE09361D1E8037520092BF67 /* Sources */, FE09361E1E8037520092BF67 /* Frameworks */, FE09361F1E8037520092BF67 /* Resources */, - 41DBB6D291A913F5CA2092B6 /* [CP] Embed Pods Frameworks */, - 8EE80F62A4568759F8B09A37 /* [CP] Copy Pods Resources */, + FEF0DB781ECECCAC000EE0BA /* Carthage */, ); buildRules = ( ); @@ -328,7 +338,7 @@ isa = PBXProject; attributes = { LastTestingUpgradeCheck = 0510; - LastUpgradeCheck = 0510; + LastUpgradeCheck = 0830; TargetAttributes = { FE0935F81E8037330092BF67 = { CreatedOnToolsVersion = 8.2.1; @@ -400,95 +410,35 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 28DC7AEF0DE18072EFA0F7F7 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Tests-TransitionKit iOS Tests/Pods-Tests-TransitionKit iOS Tests-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - 41DBB6D291A913F5CA2092B6 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Tests-TransitionKit macOS Tests/Pods-Tests-TransitionKit macOS Tests-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - 727FED450CBB192386E2059F /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "[CP] Check Pods Manifest.lock"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n"; - showEnvVarsInLog = 0; - }; - 846A313D99D77F7E0DD43BCE /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "[CP] Check Pods Manifest.lock"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n"; - showEnvVarsInLog = 0; - }; - 8EE80F62A4568759F8B09A37 /* [CP] Copy Pods Resources */ = { + FEF0DB771ECECCA7000EE0BA /* Carthage */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( + "$(SRCROOT)/Carthage/Build/iOS/Kiwi.framework", ); - name = "[CP] Copy Pods Resources"; + name = Carthage; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Tests-TransitionKit macOS Tests/Pods-Tests-TransitionKit macOS Tests-resources.sh\"\n"; - showEnvVarsInLog = 0; + shellScript = "/usr/local/bin/carthage copy-frameworks"; }; - A1EA6FBC5B59CCAF48AD73BB /* [CP] Copy Pods Resources */ = { + FEF0DB781ECECCAC000EE0BA /* Carthage */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( + "$(SRCROOT)/Carthage/Build/Mac/Kiwi.framework", ); - name = "[CP] Copy Pods Resources"; + name = Carthage; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Tests-TransitionKit iOS Tests/Pods-Tests-TransitionKit iOS Tests-resources.sh\"\n"; - showEnvVarsInLog = 0; + shellScript = "/usr/local/bin/carthage copy-frameworks"; }; /* End PBXShellScriptBuildPhase section */ @@ -569,22 +519,32 @@ CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = ( "DEBUG=1", "$(inherited)", ); GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 6.1; ONLY_ACTIVE_ARCH = YES; @@ -600,15 +560,24 @@ CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = YES; + ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 6.1; PRODUCT_NAME = TransitionKit; @@ -630,7 +599,7 @@ CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; CURRENT_PROJECT_VERSION = 1; DEBUG_INFORMATION_FORMAT = dwarf; DEFINES_MODULE = YES; @@ -671,7 +640,7 @@ CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; COPY_PHASE_STRIP = NO; CURRENT_PROJECT_VERSION = 1; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; @@ -787,7 +756,6 @@ }; FE09361B1E80374A0092BF67 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 18D08393BB039C0A0161C451 /* Pods-Tests-TransitionKit iOS Tests.debug.xcconfig */; buildSettings = { CLANG_ANALYZER_NONNULL = YES; CLANG_ENABLE_MODULES = YES; @@ -802,6 +770,10 @@ DEBUG_INFORMATION_FORMAT = dwarf; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/iOS", + ); GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; @@ -818,7 +790,6 @@ }; FE09361C1E80374A0092BF67 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = ED941CE9FACB859E3E50920F /* Pods-Tests-TransitionKit iOS Tests.release.xcconfig */; buildSettings = { CLANG_ANALYZER_NONNULL = YES; CLANG_ENABLE_MODULES = YES; @@ -834,6 +805,10 @@ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/iOS", + ); GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; @@ -850,7 +825,6 @@ }; FE09362A1E8037520092BF67 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = D2405CF76733FE28D497CC0C /* Pods-Tests-TransitionKit macOS Tests.debug.xcconfig */; buildSettings = { CLANG_ANALYZER_NONNULL = YES; CLANG_ENABLE_MODULES = YES; @@ -866,6 +840,10 @@ DEBUG_INFORMATION_FORMAT = dwarf; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/Mac", + ); GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; @@ -883,7 +861,6 @@ }; FE09362B1E8037520092BF67 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 8392F2C67B8853B2F81DC73D /* Pods-Tests-TransitionKit macOS Tests.release.xcconfig */; buildSettings = { CLANG_ANALYZER_NONNULL = YES; CLANG_ENABLE_MODULES = YES; @@ -900,6 +877,10 @@ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/Mac", + ); GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; diff --git a/TransitionKit.xcodeproj/xcshareddata/xcschemes/TransitionKit iOS.xcscheme b/TransitionKit.xcodeproj/xcshareddata/xcschemes/TransitionKit iOS.xcscheme index 73bd918..fb7911f 100644 --- a/TransitionKit.xcodeproj/xcshareddata/xcschemes/TransitionKit iOS.xcscheme +++ b/TransitionKit.xcodeproj/xcshareddata/xcschemes/TransitionKit iOS.xcscheme @@ -1,6 +1,6 @@ - - From 2d6f9b1ddc319b2a02b0ce3023586890e762cd5b Mon Sep 17 00:00:00 2001 From: Artur Grigor Date: Fri, 19 May 2017 10:18:58 +0300 Subject: [PATCH 08/19] Added some encrypted GITHUB_ACCESS_TOKEN. --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 0725b10..cc3782d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,6 +7,7 @@ env: - WORKSPACE=TransitionKit.xcworkspace - IOS_FRAMEWORK_SCHEME="TransitionKit iOS" - MACOS_FRAMEWORK_SCHEME="TransitionKit macOS" + secure: v4Kt8RHWUyjAijwiro2dwlZjLv9QQLOBzWTzPy/zC/NDETmDvFVFMii+N7+cwtWVYcYTK4dnpgHKm2JbSg/8M9EtVft2zB/DkJBZ0j0BwQMIEAKLeIhOw5rVwVNitaVk/ZbunJd2Bkt/44PgUckUvbUcQXS33k3Txl2MROBT8wMpEIKxgaqnVNrKOTpX9dmVgp39v/RWi2NAj63fzq/tTlns0PNob1wtyNT2K4+pagaD2xFaFuGr7h/t+suDA/wlIaiYKLXdkQNwNxy/efMAYBQfYZp/XjMLU1mVeAvAqhQtuIwOxGMsWBFciR37+PM2W7n181wTpYmYczvjR8d8epE0O5/m+Bdz70KutOWs07jFXW5b8M7aLLAGxN+Di0MsogyUEStCZBO5mvKFbbRU9OOPHn0mJSOPAQj8plIWo0InrgvHOhS56sx7eDmDNyZTwkwy/wBxHRdUYliiVepl+snzqWk2xseg7FltKai1f3xJzoVNXUzRDoehkcdyOERoFLk/wBDjK7fdkm5VSbNEyqg4/4lxJFvQ6ovN81W3+m3GpVq3rHwY2PQQVJxQ8i/pECkyr60DCNr0Szl7abUeIo9M4NeZt/GJysxyHdR/BIhkyRYc0vnkcHEIVj5b8ErvwNjdAMGaBNPTdGbQQvnltQ7gluVyG5rtLfN+q/ZmSjA= matrix: - DESTINATION="OS=10.0,name=iPhone 6s Plus" SCHEME="$IOS_FRAMEWORK_SCHEME" RUN_TESTS="YES" - DESTINATION="OS=9.0,name=iPad 2" SCHEME="$IOS_FRAMEWORK_SCHEME" RUN_TESTS="YES" From 92c523b8238a2d48babe568491842a2b76b628c0 Mon Sep 17 00:00:00 2001 From: Artur Grigor Date: Fri, 19 May 2017 10:35:10 +0300 Subject: [PATCH 09/19] Updated the acess token. --- .travis.yml | 43 +++++++++++++++++++++---------------------- 1 file changed, 21 insertions(+), 22 deletions(-) diff --git a/.travis.yml b/.travis.yml index cc3782d..308c0bf 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,31 +7,30 @@ env: - WORKSPACE=TransitionKit.xcworkspace - IOS_FRAMEWORK_SCHEME="TransitionKit iOS" - MACOS_FRAMEWORK_SCHEME="TransitionKit macOS" - secure: v4Kt8RHWUyjAijwiro2dwlZjLv9QQLOBzWTzPy/zC/NDETmDvFVFMii+N7+cwtWVYcYTK4dnpgHKm2JbSg/8M9EtVft2zB/DkJBZ0j0BwQMIEAKLeIhOw5rVwVNitaVk/ZbunJd2Bkt/44PgUckUvbUcQXS33k3Txl2MROBT8wMpEIKxgaqnVNrKOTpX9dmVgp39v/RWi2NAj63fzq/tTlns0PNob1wtyNT2K4+pagaD2xFaFuGr7h/t+suDA/wlIaiYKLXdkQNwNxy/efMAYBQfYZp/XjMLU1mVeAvAqhQtuIwOxGMsWBFciR37+PM2W7n181wTpYmYczvjR8d8epE0O5/m+Bdz70KutOWs07jFXW5b8M7aLLAGxN+Di0MsogyUEStCZBO5mvKFbbRU9OOPHn0mJSOPAQj8plIWo0InrgvHOhS56sx7eDmDNyZTwkwy/wBxHRdUYliiVepl+snzqWk2xseg7FltKai1f3xJzoVNXUzRDoehkcdyOERoFLk/wBDjK7fdkm5VSbNEyqg4/4lxJFvQ6ovN81W3+m3GpVq3rHwY2PQQVJxQ8i/pECkyr60DCNr0Szl7abUeIo9M4NeZt/GJysxyHdR/BIhkyRYc0vnkcHEIVj5b8ErvwNjdAMGaBNPTdGbQQvnltQ7gluVyG5rtLfN+q/ZmSjA= + - secure: GJxuge6KjDfMUa12T6dhCmfDrOKt/QQy00uUHtAfNakQM7+FOJsk46c120GZDHcjtsjme0tgTV4JYEvASMtt/05qvo+GewCXYcPm9a/lfDJHpMa4liFiy8jb5RKkcBPJ5WQXspDuRtS84tm8hdAwWWPvj9Jh2wgYEAy8Id19PPN0CQQiAg7qRtmwgsSDNXxatrSkMffpZyG4z6xBY5o1P/NR4nWs/8zvyMtojPdJU10kNWoklxyfyTyUoBI+3TFd8c+oLfW+Fxf9YpcQNq7dlek0p/cvR05UqBQEfGuEOOxzpreVScCBP6pQqMtvDJmhquyGNVdjLzCwWzbK1bkeNzk4/dapLSIsmINMa+NlxfnjrbagbxOV0ZuN0QVPdixB8XVMAk0fQTAovakrzBVv6BWmG9KN8nKvz5OBYRIWnlgvdsTFxFiFncuGYhg7dDi/STtAedMLzMAbXTHErtEgXLyp3kNMUhjNF4dBjkD4JZf1lyTFEN3EufMmJOkqUZ9i8u2bc0WmxjgjXcxzGJgP9C3ZBYJ/xz7n+FuZtwats2RGjMXHGnu677yjzxl0+dHEwRcNd2jisiZqQyl2xI9/7p072QhHwpgwZWmRCPXd3iLjgv1463bPCtohsdSI8RJxFXpN0wFkk/EXGTXyoU3oQWJrM3J+3QtOqNPfJ3uaVq4= matrix: - - DESTINATION="OS=10.0,name=iPhone 6s Plus" SCHEME="$IOS_FRAMEWORK_SCHEME" RUN_TESTS="YES" - - DESTINATION="OS=9.0,name=iPad 2" SCHEME="$IOS_FRAMEWORK_SCHEME" RUN_TESTS="YES" - - - DESTINATION="arch=x86_64" SCHEME="$MACOS_FRAMEWORK_SCHEME" RUN_TESTS="YES" + - DESTINATION="OS=10.0,name=iPhone 6s Plus" SCHEME="$IOS_FRAMEWORK_SCHEME" RUN_TESTS="YES" + - DESTINATION="OS=9.0,name=iPad 2" SCHEME="$IOS_FRAMEWORK_SCHEME" RUN_TESTS="YES" + - DESTINATION="arch=x86_64" SCHEME="$MACOS_FRAMEWORK_SCHEME" RUN_TESTS="YES" before_install: - - brew update - - brew outdated carthage || brew upgrade carthage +- brew update +- brew outdated carthage || brew upgrade carthage before_script: - - carthage bootstrap +- carthage bootstrap script: - - set -o pipefail - - xcodebuild -version +- set -o pipefail +- xcodebuild -version - # Build Framework in Debug and Run Tests if specified - - if [ $RUN_TESTS == "YES" ]; then - travis_retry xcodebuild -workspace "$WORKSPACE" -scheme "$SCHEME" -destination "$DESTINATION" -configuration Debug ONLY_ACTIVE_ARCH=NO ENABLE_TESTABILITY=YES test; - else - travis_retry xcodebuild -workspace "$WORKSPACE" -scheme "$SCHEME" -destination "$DESTINATION" -configuration Debug ONLY_ACTIVE_ARCH=NO build; - fi +# Build Framework in Debug and Run Tests if specified +- if [ $RUN_TESTS == "YES" ]; then + travis_retry xcodebuild -workspace "$WORKSPACE" -scheme "$SCHEME" -destination "$DESTINATION" -configuration Debug ONLY_ACTIVE_ARCH=NO ENABLE_TESTABILITY=YES test; +else + travis_retry xcodebuild -workspace "$WORKSPACE" -scheme "$SCHEME" -destination "$DESTINATION" -configuration Debug ONLY_ACTIVE_ARCH=NO build; +fi - # Build Framework in Release and Run Tests if specified - - if [ $RUN_TESTS == "YES" ]; then - travis_retry xcodebuild -workspace "$WORKSPACE" -scheme "$SCHEME" -destination "$DESTINATION" -configuration Release ONLY_ACTIVE_ARCH=NO ENABLE_TESTABILITY=YES test; - else - travis_retry xcodebuild -workspace "$WORKSPACE" -scheme "$SCHEME" -destination "$DESTINATION" -configuration Release ONLY_ACTIVE_ARCH=NO build; - fi +# Build Framework in Release and Run Tests if specified +- if [ $RUN_TESTS == "YES" ]; then + travis_retry xcodebuild -workspace "$WORKSPACE" -scheme "$SCHEME" -destination "$DESTINATION" -configuration Release ONLY_ACTIVE_ARCH=NO ENABLE_TESTABILITY=YES test; +else + travis_retry xcodebuild -workspace "$WORKSPACE" -scheme "$SCHEME" -destination "$DESTINATION" -configuration Release ONLY_ACTIVE_ARCH=NO build; +fi From 9dc27112d055ab853d554406e1faaa0a4679cc0c Mon Sep 17 00:00:00 2001 From: Artur Grigor Date: Fri, 19 May 2017 10:41:57 +0300 Subject: [PATCH 10/19] Travis CI file update. --- .travis.yml | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/.travis.yml b/.travis.yml index 308c0bf..3232c2d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -20,17 +20,13 @@ before_script: script: - set -o pipefail - xcodebuild -version - -# Build Framework in Debug and Run Tests if specified -- if [ $RUN_TESTS == "YES" ]; then - travis_retry xcodebuild -workspace "$WORKSPACE" -scheme "$SCHEME" -destination "$DESTINATION" -configuration Debug ONLY_ACTIVE_ARCH=NO ENABLE_TESTABILITY=YES test; -else - travis_retry xcodebuild -workspace "$WORKSPACE" -scheme "$SCHEME" -destination "$DESTINATION" -configuration Debug ONLY_ACTIVE_ARCH=NO build; -fi - -# Build Framework in Release and Run Tests if specified -- if [ $RUN_TESTS == "YES" ]; then - travis_retry xcodebuild -workspace "$WORKSPACE" -scheme "$SCHEME" -destination "$DESTINATION" -configuration Release ONLY_ACTIVE_ARCH=NO ENABLE_TESTABILITY=YES test; -else - travis_retry xcodebuild -workspace "$WORKSPACE" -scheme "$SCHEME" -destination "$DESTINATION" -configuration Release ONLY_ACTIVE_ARCH=NO build; -fi +- if [ $RUN_TESTS == "YES" ]; then travis_retry xcodebuild -workspace "$WORKSPACE" + -scheme "$SCHEME" -destination "$DESTINATION" -configuration Debug ONLY_ACTIVE_ARCH=NO + ENABLE_TESTABILITY=YES test; else travis_retry xcodebuild -workspace "$WORKSPACE" + -scheme "$SCHEME" -destination "$DESTINATION" -configuration Debug ONLY_ACTIVE_ARCH=NO + build; fi +- if [ $RUN_TESTS == "YES" ]; then travis_retry xcodebuild -workspace "$WORKSPACE" + -scheme "$SCHEME" -destination "$DESTINATION" -configuration Release ONLY_ACTIVE_ARCH=NO + ENABLE_TESTABILITY=YES test; else travis_retry xcodebuild -workspace "$WORKSPACE" + -scheme "$SCHEME" -destination "$DESTINATION" -configuration Release ONLY_ACTIVE_ARCH=NO + build; fi From 1255fce3fd0e6f15582870bb01d08a12eb938749 Mon Sep 17 00:00:00 2001 From: Artur Grigor Date: Mon, 22 May 2017 08:18:11 +0300 Subject: [PATCH 11/19] Added Carthage to the .gitignore file. --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 4c8c443..c178925 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,4 @@ profile *.moved-aside DerivedData .idea/ +Carthage From d614cfc98b98b5c57c03a5f4c2f8a14f2abfe1b5 Mon Sep 17 00:00:00 2001 From: Artur Grigor Date: Tue, 23 May 2017 08:45:42 +0300 Subject: [PATCH 12/19] Added the CocoaPods config back. --- .gitignore | 1 + Podfile | 13 +++++++++++++ Podfile.lock | 19 +++++++++++++++++++ 3 files changed, 33 insertions(+) create mode 100644 Podfile create mode 100644 Podfile.lock diff --git a/.gitignore b/.gitignore index c178925..608aaf7 100644 --- a/.gitignore +++ b/.gitignore @@ -16,3 +16,4 @@ profile DerivedData .idea/ Carthage +Pods diff --git a/Podfile b/Podfile new file mode 100644 index 0000000..0b5102d --- /dev/null +++ b/Podfile @@ -0,0 +1,13 @@ +abstract_target 'Tests' do + pod 'TransitionKit', path: '.' + pod 'Kiwi', '~> 2.3.0' + + target 'TransitionKit iOS Tests' do + platform :ios, '6.0' + end + + target 'TransitionKit macOS Tests' do + platform :osx, '10.7' + end +end + diff --git a/Podfile.lock b/Podfile.lock new file mode 100644 index 0000000..0cebc1d --- /dev/null +++ b/Podfile.lock @@ -0,0 +1,19 @@ +PODS: + - Kiwi (2.3.1) + - TransitionKit (2.2.3) + +DEPENDENCIES: + - Kiwi (~> 2.3.0) + - TransitionKit (from `.`) + +EXTERNAL SOURCES: + TransitionKit: + :path: "." + +SPEC CHECKSUMS: + Kiwi: f038a6c61f7a9e4d7766bff5717aa3b3fdb75f55 + TransitionKit: 3704132ea748f0ce588b5af6e6d907ceb937762b + +PODFILE CHECKSUM: 54308503ad62dc352d756aca1890e7255bc0f43a + +COCOAPODS: 1.2.1 From dddc3bcdbeab508fefaa23e370a06d2d03b2afff Mon Sep 17 00:00:00 2001 From: Artur Grigor Date: Tue, 23 May 2017 08:55:21 +0300 Subject: [PATCH 13/19] Removed the Gem and Rake files. --- Gemfile | 6 ----- Gemfile.lock | 69 ---------------------------------------------------- Rakefile | 21 ---------------- 3 files changed, 96 deletions(-) delete mode 100644 Gemfile delete mode 100644 Gemfile.lock delete mode 100644 Rakefile diff --git a/Gemfile b/Gemfile deleted file mode 100644 index 7184a25..0000000 --- a/Gemfile +++ /dev/null @@ -1,6 +0,0 @@ -source 'http://rubygems.org' - -gem 'rake', '~> 10.4.2' -gem 'cocoapods', '~> 0.37.2' -gem 'xcpretty', '~> 0.1.10' -gem 'xctasks', '~> 0.6.0' diff --git a/Gemfile.lock b/Gemfile.lock deleted file mode 100644 index 3e8b27c..0000000 --- a/Gemfile.lock +++ /dev/null @@ -1,69 +0,0 @@ -GEM - remote: http://rubygems.org/ - specs: - activesupport (4.2.1) - i18n (~> 0.7) - json (~> 1.7, >= 1.7.7) - minitest (~> 5.1) - thread_safe (~> 0.3, >= 0.3.4) - tzinfo (~> 1.1) - claide (0.8.1) - cocoapods (0.37.2) - activesupport (>= 3.2.15) - claide (~> 0.8.1) - cocoapods-core (= 0.37.2) - cocoapods-downloader (~> 0.9.0) - cocoapods-plugins (~> 0.4.2) - cocoapods-trunk (~> 0.6.1) - cocoapods-try (~> 0.4.5) - colored (~> 1.2) - escape (~> 0.0.4) - molinillo (~> 0.2.3) - nap (~> 0.8) - xcodeproj (~> 0.24.2) - cocoapods-core (0.37.2) - activesupport (>= 3.2.15) - fuzzy_match (~> 2.0.4) - nap (~> 0.8.0) - cocoapods-downloader (0.9.0) - cocoapods-plugins (0.4.2) - nap - cocoapods-trunk (0.6.1) - nap (>= 0.8) - netrc (= 0.7.8) - cocoapods-try (0.4.5) - colored (1.2) - escape (0.0.4) - fuzzy_match (2.0.4) - i18n (0.7.0) - json (1.8.3) - mini_portile (0.6.2) - minitest (5.7.0) - molinillo (0.2.3) - nap (0.8.0) - netrc (0.7.8) - nokogiri (1.6.6.2) - mini_portile (~> 0.6.0) - rake (10.4.2) - thread_safe (0.3.5) - tzinfo (1.2.2) - thread_safe (~> 0.1) - xcodeproj (0.24.2) - activesupport (>= 3) - colored (~> 1.2) - xcpretty (0.1.10) - xctasks (0.6.0) - nokogiri (~> 1.6, >= 1.6.3.1) - rake (~> 10.0, >= 10.0.0) - -PLATFORMS - ruby - -DEPENDENCIES - cocoapods (~> 0.37.2) - rake (~> 10.4.2) - xcpretty (~> 0.1.10) - xctasks (~> 0.6.0) - -BUNDLED WITH - 1.10.3 diff --git a/Rakefile b/Rakefile deleted file mode 100644 index a615f3e..0000000 --- a/Rakefile +++ /dev/null @@ -1,21 +0,0 @@ -require 'rubygems' -require 'bundler' -Bundler.setup -require 'xctasks/test_task' - -XCTasks::TestTask.new(:spec) do |t| - t.workspace = 'TransitionKit.xcworkspace' - t.schemes_dir = 'Specs/Schemes' - t.runner = :xcpretty - t.actions = %w{clean test} - - t.subtask(ios: 'iOS Specs') do |s| - s.sdk = :iphonesimulator - end - - t.subtask(osx: 'OS X Specs') do |s| - s.sdk = :macosx - end -end - -task :default => 'spec' From fcf826e2749fc5c8882b92cbb44db9dd47e4ee5f Mon Sep 17 00:00:00 2001 From: Artur Grigor Date: Tue, 23 May 2017 09:13:23 +0300 Subject: [PATCH 14/19] Ruby files cleanup. --- .ruby-gemset | 1 - .ruby-version | 1 - 2 files changed, 2 deletions(-) delete mode 100644 .ruby-gemset delete mode 100644 .ruby-version diff --git a/.ruby-gemset b/.ruby-gemset deleted file mode 100644 index 9f51370..0000000 --- a/.ruby-gemset +++ /dev/null @@ -1 +0,0 @@ -TransitionKit diff --git a/.ruby-version b/.ruby-version deleted file mode 100644 index eca07e4..0000000 --- a/.ruby-version +++ /dev/null @@ -1 +0,0 @@ -2.1.2 From e558fa1452a04d99d68a34e91138c7b5479f193f Mon Sep 17 00:00:00 2001 From: Artur Grigor Date: Wed, 16 Aug 2017 13:47:54 +0300 Subject: [PATCH 15/19] Deintegrated CocoaPods. Added the Kiwi dependency as a git submodule. Updated the .gitignore file. --- .gitignore | 34 +++- .gitmodules | 3 + Carthage/Checkouts/Kiwi | 1 + Podfile | 13 -- Podfile.lock | 19 -- TransitionKit.xcodeproj/project.pbxproj | 173 +++++++++++------- .../xcshareddata/TransitionKit.xcscmblueprint | 30 +++ 7 files changed, 164 insertions(+), 109 deletions(-) create mode 100644 .gitmodules create mode 160000 Carthage/Checkouts/Kiwi delete mode 100644 Podfile delete mode 100644 Podfile.lock create mode 100644 TransitionKit.xcworkspace/xcshareddata/TransitionKit.xcscmblueprint diff --git a/.gitignore b/.gitignore index 608aaf7..222e8ec 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,13 @@ -# Xcode +# Mac OS X .DS_Store + +# Xcode + +## Build generated build/ +DerivedData + +## Various settings *.pbxuser !default.pbxuser *.mode1v3 @@ -9,11 +16,24 @@ build/ !default.mode2v3 *.perspectivev3 !default.perspectivev3 -!default.xcworkspace xcuserdata -profile + +## Other +*.xccheckout *.moved-aside -DerivedData -.idea/ -Carthage -Pods +*.xcuserstate +*.xcscmblueprint + +## Obj-C/Swift specific +*.hmap +*.ipa + +## Playgrounds +timeline.xctimeline +playground.xcworkspace + +# Swift Package Manager +.build/ + +# Carthage +Carthage/Build diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..aa103b2 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "Carthage/Checkouts/Kiwi"] + path = Carthage/Checkouts/Kiwi + url = https://github.com/kiwi-bdd/Kiwi.git diff --git a/Carthage/Checkouts/Kiwi b/Carthage/Checkouts/Kiwi new file mode 160000 index 0000000..974f958 --- /dev/null +++ b/Carthage/Checkouts/Kiwi @@ -0,0 +1 @@ +Subproject commit 974f95851e290cd588b460a12eecd9a42c21bdc6 diff --git a/Podfile b/Podfile deleted file mode 100644 index 0b5102d..0000000 --- a/Podfile +++ /dev/null @@ -1,13 +0,0 @@ -abstract_target 'Tests' do - pod 'TransitionKit', path: '.' - pod 'Kiwi', '~> 2.3.0' - - target 'TransitionKit iOS Tests' do - platform :ios, '6.0' - end - - target 'TransitionKit macOS Tests' do - platform :osx, '10.7' - end -end - diff --git a/Podfile.lock b/Podfile.lock deleted file mode 100644 index 0cebc1d..0000000 --- a/Podfile.lock +++ /dev/null @@ -1,19 +0,0 @@ -PODS: - - Kiwi (2.3.1) - - TransitionKit (2.2.3) - -DEPENDENCIES: - - Kiwi (~> 2.3.0) - - TransitionKit (from `.`) - -EXTERNAL SOURCES: - TransitionKit: - :path: "." - -SPEC CHECKSUMS: - Kiwi: f038a6c61f7a9e4d7766bff5717aa3b3fdb75f55 - TransitionKit: 3704132ea748f0ce588b5af6e6d907ceb937762b - -PODFILE CHECKSUM: 54308503ad62dc352d756aca1890e7255bc0f43a - -COCOAPODS: 1.2.1 diff --git a/TransitionKit.xcodeproj/project.pbxproj b/TransitionKit.xcodeproj/project.pbxproj index 1a6e295..a195b25 100644 --- a/TransitionKit.xcodeproj/project.pbxproj +++ b/TransitionKit.xcodeproj/project.pbxproj @@ -33,8 +33,8 @@ FE09364F1E8038010092BF67 /* TKStateMachineSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 252C465116F6A57700CF1FEA /* TKStateMachineSpec.m */; }; FE0936501E8038010092BF67 /* TKEventSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 252C465516F6A58700CF1FEA /* TKEventSpec.m */; }; FE0936511E8038010092BF67 /* TKStateSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 252C465916F6A59500CF1FEA /* TKStateSpec.m */; }; - FEF0DB751ECECC42000EE0BA /* Kiwi.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FEF0DB701ECECC33000EE0BA /* Kiwi.framework */; }; - FEF0DB761ECECC44000EE0BA /* Kiwi.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FEF0DB731ECECC33000EE0BA /* Kiwi.framework */; }; + FE22D95A1F44597600FBB6F6 /* Kiwi.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FE22D94E1F44593E00FBB6F6 /* Kiwi.framework */; }; + FE22D95D1F4459D700FBB6F6 /* Kiwi.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FE22D9521F44593E00FBB6F6 /* Kiwi.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -52,6 +52,48 @@ remoteGlobalIDString = FE0936051E80373D0092BF67; remoteInfo = "TransitionKit macOS"; }; + FE22D94D1F44593E00FBB6F6 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FE22D9461F44593E00FBB6F6 /* Kiwi.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = CE87C4231AF194E900310C07; + remoteInfo = "Kiwi-iOS"; + }; + FE22D94F1F44593E00FBB6F6 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FE22D9461F44593E00FBB6F6 /* Kiwi.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = CE87C42D1AF194EA00310C07; + remoteInfo = "KiwiTests-iOS"; + }; + FE22D9511F44593E00FBB6F6 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FE22D9461F44593E00FBB6F6 /* Kiwi.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 4AE02FBD1AEB45EB00556381; + remoteInfo = "Kiwi-OSX"; + }; + FE22D9531F44593E00FBB6F6 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FE22D9461F44593E00FBB6F6 /* Kiwi.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 4AE02FC71AEB45EB00556381; + remoteInfo = "KiwiTests-OSX"; + }; + FE22D9581F44597300FBB6F6 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FE22D9461F44593E00FBB6F6 /* Kiwi.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = CE87C4221AF194E900310C07; + remoteInfo = "Kiwi-iOS"; + }; + FE22D95B1F4459D200FBB6F6 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FE22D9461F44593E00FBB6F6 /* Kiwi.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 4AE02FBC1AEB45EB00556381; + remoteInfo = "Kiwi-OSX"; + }; /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ @@ -81,8 +123,7 @@ FE0936211E8037520092BF67 /* TransitionKit.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = TransitionKit.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; FE09362C1E8037A70092BF67 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; FE0936531E8038120092BF67 /* TransitionKit.podspec */ = {isa = PBXFileReference; lastKnownFileType = text; path = TransitionKit.podspec; sourceTree = ""; }; - FEF0DB701ECECC33000EE0BA /* Kiwi.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Kiwi.framework; sourceTree = ""; }; - FEF0DB731ECECC33000EE0BA /* Kiwi.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Kiwi.framework; sourceTree = ""; }; + FE22D9461F44593E00FBB6F6 /* Kiwi.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Kiwi.xcodeproj; path = Carthage/Checkouts/Kiwi/Kiwi.xcodeproj; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -104,7 +145,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - FEF0DB751ECECC42000EE0BA /* Kiwi.framework in Frameworks */, + FE22D95A1F44597600FBB6F6 /* Kiwi.framework in Frameworks */, FE0936171E80374A0092BF67 /* TransitionKit.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -113,7 +154,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - FEF0DB761ECECC44000EE0BA /* Kiwi.framework in Frameworks */, + FE22D95D1F4459D700FBB6F6 /* Kiwi.framework in Frameworks */, FE0936261E8037520092BF67 /* TransitionKit.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -125,11 +166,11 @@ isa = PBXGroup; children = ( FE0936531E8038120092BF67 /* TransitionKit.podspec */, - FEF0DB6C1ECECC33000EE0BA /* Carthage */, 252C460316F6833D00CF1FEA /* Code */, 252C460816F6835900CF1FEA /* Specs */, 252C45DA16F681D400CF1FEA /* Frameworks */, 252C45D916F681D400CF1FEA /* Products */, + FE22D9461F44593E00FBB6F6 /* Kiwi.xcodeproj */, ); sourceTree = ""; }; @@ -194,37 +235,15 @@ name = "Other Frameworks"; sourceTree = ""; }; - FEF0DB6C1ECECC33000EE0BA /* Carthage */ = { + FE22D9471F44593E00FBB6F6 /* Products */ = { isa = PBXGroup; children = ( - FEF0DB6D1ECECC33000EE0BA /* Build */, + FE22D94E1F44593E00FBB6F6 /* Kiwi.framework */, + FE22D9501F44593E00FBB6F6 /* KiwiTests.xctest */, + FE22D9521F44593E00FBB6F6 /* Kiwi.framework */, + FE22D9541F44593E00FBB6F6 /* KiwiTests.xctest */, ); - path = Carthage; - sourceTree = ""; - }; - FEF0DB6D1ECECC33000EE0BA /* Build */ = { - isa = PBXGroup; - children = ( - FEF0DB6F1ECECC33000EE0BA /* iOS */, - FEF0DB721ECECC33000EE0BA /* Mac */, - ); - path = Build; - sourceTree = ""; - }; - FEF0DB6F1ECECC33000EE0BA /* iOS */ = { - isa = PBXGroup; - children = ( - FEF0DB701ECECC33000EE0BA /* Kiwi.framework */, - ); - path = iOS; - sourceTree = ""; - }; - FEF0DB721ECECC33000EE0BA /* Mac */ = { - isa = PBXGroup; - children = ( - FEF0DB731ECECC33000EE0BA /* Kiwi.framework */, - ); - path = Mac; + name = Products; sourceTree = ""; }; /* End PBXGroup section */ @@ -300,11 +319,11 @@ FE09360E1E80374A0092BF67 /* Sources */, FE09360F1E80374A0092BF67 /* Frameworks */, FE0936101E80374A0092BF67 /* Resources */, - FEF0DB771ECECCA7000EE0BA /* Carthage */, ); buildRules = ( ); dependencies = ( + FE22D9591F44597300FBB6F6 /* PBXTargetDependency */, FE0936191E80374A0092BF67 /* PBXTargetDependency */, ); name = "TransitionKit iOS Tests"; @@ -319,11 +338,11 @@ FE09361D1E8037520092BF67 /* Sources */, FE09361E1E8037520092BF67 /* Frameworks */, FE09361F1E8037520092BF67 /* Resources */, - FEF0DB781ECECCAC000EE0BA /* Carthage */, ); buildRules = ( ); dependencies = ( + FE22D95C1F4459D200FBB6F6 /* PBXTargetDependency */, FE0936281E8037520092BF67 /* PBXTargetDependency */, ); name = "TransitionKit macOS Tests"; @@ -368,6 +387,12 @@ mainGroup = 252C45CF16F681D400CF1FEA; productRefGroup = 252C45D916F681D400CF1FEA /* Products */; projectDirPath = ""; + projectReferences = ( + { + ProductGroup = FE22D9471F44593E00FBB6F6 /* Products */; + ProjectRef = FE22D9461F44593E00FBB6F6 /* Kiwi.xcodeproj */; + }, + ); projectRoot = ""; targets = ( FE0935F81E8037330092BF67 /* TransitionKit iOS */, @@ -378,6 +403,37 @@ }; /* End PBXProject section */ +/* Begin PBXReferenceProxy section */ + FE22D94E1F44593E00FBB6F6 /* Kiwi.framework */ = { + isa = PBXReferenceProxy; + fileType = wrapper.framework; + path = Kiwi.framework; + remoteRef = FE22D94D1F44593E00FBB6F6 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + FE22D9501F44593E00FBB6F6 /* KiwiTests.xctest */ = { + isa = PBXReferenceProxy; + fileType = wrapper.cfbundle; + path = KiwiTests.xctest; + remoteRef = FE22D94F1F44593E00FBB6F6 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + FE22D9521F44593E00FBB6F6 /* Kiwi.framework */ = { + isa = PBXReferenceProxy; + fileType = wrapper.framework; + path = Kiwi.framework; + remoteRef = FE22D9511F44593E00FBB6F6 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + FE22D9541F44593E00FBB6F6 /* KiwiTests.xctest */ = { + isa = PBXReferenceProxy; + fileType = wrapper.cfbundle; + path = KiwiTests.xctest; + remoteRef = FE22D9531F44593E00FBB6F6 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + /* Begin PBXResourcesBuildPhase section */ FE0935F71E8037330092BF67 /* Resources */ = { isa = PBXResourcesBuildPhase; @@ -409,39 +465,6 @@ }; /* End PBXResourcesBuildPhase section */ -/* Begin PBXShellScriptBuildPhase section */ - FEF0DB771ECECCA7000EE0BA /* Carthage */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "$(SRCROOT)/Carthage/Build/iOS/Kiwi.framework", - ); - name = Carthage; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "/usr/local/bin/carthage copy-frameworks"; - }; - FEF0DB781ECECCAC000EE0BA /* Carthage */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "$(SRCROOT)/Carthage/Build/Mac/Kiwi.framework", - ); - name = Carthage; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "/usr/local/bin/carthage copy-frameworks"; - }; -/* End PBXShellScriptBuildPhase section */ - /* Begin PBXSourcesBuildPhase section */ FE0935F41E8037330092BF67 /* Sources */ = { isa = PBXSourcesBuildPhase; @@ -498,6 +521,16 @@ target = FE0936051E80373D0092BF67 /* TransitionKit macOS */; targetProxy = FE0936271E8037520092BF67 /* PBXContainerItemProxy */; }; + FE22D9591F44597300FBB6F6 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Kiwi-iOS"; + targetProxy = FE22D9581F44597300FBB6F6 /* PBXContainerItemProxy */; + }; + FE22D95C1F4459D200FBB6F6 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Kiwi-OSX"; + targetProxy = FE22D95B1F4459D200FBB6F6 /* PBXContainerItemProxy */; + }; /* End PBXTargetDependency section */ /* Begin PBXVariantGroup section */ diff --git a/TransitionKit.xcworkspace/xcshareddata/TransitionKit.xcscmblueprint b/TransitionKit.xcworkspace/xcshareddata/TransitionKit.xcscmblueprint new file mode 100644 index 0000000..027473c --- /dev/null +++ b/TransitionKit.xcworkspace/xcshareddata/TransitionKit.xcscmblueprint @@ -0,0 +1,30 @@ +{ + "DVTSourceControlWorkspaceBlueprintPrimaryRemoteRepositoryKey" : "47A63E07BF2C4AE0426F985EBA351C687092A209", + "DVTSourceControlWorkspaceBlueprintWorkingCopyRepositoryLocationsKey" : { + + }, + "DVTSourceControlWorkspaceBlueprintWorkingCopyStatesKey" : { + "4FD7C20106F5BD91089CFF7BC197AC2E448D173B" : 9223372036854775807, + "47A63E07BF2C4AE0426F985EBA351C687092A209" : 9223372036854775807 + }, + "DVTSourceControlWorkspaceBlueprintIdentifierKey" : "101D6D42-F2C2-4F98-97DE-0A0FE3ADB4F8", + "DVTSourceControlWorkspaceBlueprintWorkingCopyPathsKey" : { + "4FD7C20106F5BD91089CFF7BC197AC2E448D173B" : "TransitionKit\/Carthage\/Checkouts\/Kiwi\/", + "47A63E07BF2C4AE0426F985EBA351C687092A209" : "TransitionKit\/" + }, + "DVTSourceControlWorkspaceBlueprintNameKey" : "TransitionKit", + "DVTSourceControlWorkspaceBlueprintVersion" : 204, + "DVTSourceControlWorkspaceBlueprintRelativePathToProjectKey" : "TransitionKit.xcworkspace", + "DVTSourceControlWorkspaceBlueprintRemoteRepositoriesKey" : [ + { + "DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "https:\/\/github.com\/arturgrigor\/TransitionKit.git", + "DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git", + "DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "47A63E07BF2C4AE0426F985EBA351C687092A209" + }, + { + "DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "https:\/\/github.com\/kiwi-bdd\/Kiwi.git", + "DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git", + "DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "4FD7C20106F5BD91089CFF7BC197AC2E448D173B" + } + ] +} \ No newline at end of file From 0c0ade4fab820d996aea5c5b1b0696b17d3f745d Mon Sep 17 00:00:00 2001 From: Artur Grigor Date: Wed, 16 Aug 2017 13:48:52 +0300 Subject: [PATCH 16/19] Update README.md --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 299f983..82daa9c 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,8 @@ TransitionKit ============= -[![Build Status](https://travis-ci.org/blakewatters/TransitionKit.png?branch=master,development)](https://travis-ci.org/blakewatters/TransitionKit) +[![Build Status](https://travis-ci.org/blakewatters/TransitionKit.png?branch=master,development)](https://travis-ci.org/blakewatters/TransitionKit) +[![Carthage Compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage) ![Pod Version](https://cocoapod-badges.herokuapp.com/v/TransitionKit/badge.png) ![Pod Platform](https://cocoapod-badges.herokuapp.com/p/TransitionKit/badge.png) From f04196078b8cb095e29aedc57213cd515a71120e Mon Sep 17 00:00:00 2001 From: Artur Grigor Date: Wed, 16 Aug 2017 13:51:27 +0300 Subject: [PATCH 17/19] Updated the Travis CI config. --- .travis.yml | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/.travis.yml b/.travis.yml index 3232c2d..fabbd5e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,5 @@ language: objective-c -osx_image: xcode8.1 +osx_image: xcode8.2 env: global: - LC_CTYPE=en_US.UTF-8 @@ -12,14 +12,11 @@ env: - DESTINATION="OS=10.0,name=iPhone 6s Plus" SCHEME="$IOS_FRAMEWORK_SCHEME" RUN_TESTS="YES" - DESTINATION="OS=9.0,name=iPad 2" SCHEME="$IOS_FRAMEWORK_SCHEME" RUN_TESTS="YES" - DESTINATION="arch=x86_64" SCHEME="$MACOS_FRAMEWORK_SCHEME" RUN_TESTS="YES" -before_install: -- brew update -- brew outdated carthage || brew upgrade carthage -before_script: -- carthage bootstrap script: - set -o pipefail +- git submodule update --init - xcodebuild -version + - if [ $RUN_TESTS == "YES" ]; then travis_retry xcodebuild -workspace "$WORKSPACE" -scheme "$SCHEME" -destination "$DESTINATION" -configuration Debug ONLY_ACTIVE_ARCH=NO ENABLE_TESTABILITY=YES test; else travis_retry xcodebuild -workspace "$WORKSPACE" From d26ee43c5bb554d6ec2aa73149ce73126767d88b Mon Sep 17 00:00:00 2001 From: Artur Grigor Date: Wed, 16 Aug 2017 17:16:06 +0300 Subject: [PATCH 18/19] Bumped the podspec version. Fixed the warning about mimimum deployment target. --- TransitionKit.podspec | 2 +- TransitionKit.xcodeproj/project.pbxproj | 20 ++------------------ 2 files changed, 3 insertions(+), 19 deletions(-) diff --git a/TransitionKit.podspec b/TransitionKit.podspec index 46e90cc..25b02f4 100644 --- a/TransitionKit.podspec +++ b/TransitionKit.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'TransitionKit' - s.version = '2.2.3' + s.version = '2.2.4' s.license = 'Apache2' s.summary = 'A block-based State Machine API for Objective-C.' s.homepage = 'https://github.com/blakewatters/TransitionKit' diff --git a/TransitionKit.xcodeproj/project.pbxproj b/TransitionKit.xcodeproj/project.pbxproj index a195b25..60d0ba0 100644 --- a/TransitionKit.xcodeproj/project.pbxproj +++ b/TransitionKit.xcodeproj/project.pbxproj @@ -649,7 +649,7 @@ GCC_WARN_UNUSED_FUNCTION = YES; INFOPLIST_FILE = Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 6.0; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MTL_ENABLE_DEBUG_INFO = YES; PRODUCT_BUNDLE_IDENTIFIER = "org.blakewatters.TransitionKit-iOS"; @@ -691,7 +691,7 @@ GCC_WARN_UNUSED_FUNCTION = YES; INFOPLIST_FILE = Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 6.0; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MTL_ENABLE_DEBUG_INFO = NO; PRODUCT_BUNDLE_IDENTIFIER = "org.blakewatters.TransitionKit-iOS"; @@ -803,10 +803,6 @@ DEBUG_INFORMATION_FORMAT = dwarf; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/iOS", - ); GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; @@ -838,10 +834,6 @@ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/iOS", - ); GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; @@ -873,10 +865,6 @@ DEBUG_INFORMATION_FORMAT = dwarf; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/Mac", - ); GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; @@ -910,10 +898,6 @@ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/Mac", - ); GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; From 44844b1722a2f01634ea8d3c050b73cf6fec0508 Mon Sep 17 00:00:00 2001 From: Artur Grigor Date: Thu, 17 Aug 2017 01:01:40 +0300 Subject: [PATCH 19/19] Build settings update. --- TransitionKit.xcodeproj/project.pbxproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/TransitionKit.xcodeproj/project.pbxproj b/TransitionKit.xcodeproj/project.pbxproj index 60d0ba0..fd6732e 100644 --- a/TransitionKit.xcodeproj/project.pbxproj +++ b/TransitionKit.xcodeproj/project.pbxproj @@ -579,7 +579,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 6.1; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; ONLY_ACTIVE_ARCH = YES; PRODUCT_NAME = TransitionKit; SDKROOT = iphoneos; @@ -612,7 +612,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 6.1; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; PRODUCT_NAME = TransitionKit; SDKROOT = iphoneos; VALIDATE_PRODUCT = YES;