diff --git a/.gitignore b/.gitignore index db5d2b4..ac83d44 100644 --- a/.gitignore +++ b/.gitignore @@ -16,4 +16,4 @@ profile Pods/* Podfile.lock .DS_Store -.bash_profile \ No newline at end of file +.bash_profile diff --git a/Projects/iOS < 6/PSUpdateApp.podspec b/PSUpdateApp.podspec similarity index 80% rename from Projects/iOS < 6/PSUpdateApp.podspec rename to PSUpdateApp.podspec index 96ca7e7..aea3da4 100644 --- a/Projects/iOS < 6/PSUpdateApp.podspec +++ b/PSUpdateApp.podspec @@ -1,16 +1,16 @@ Pod::Spec.new do |s| s.name = 'PSUpdateApp' - s.version = '1.0.9' + s.version = '3.1' s.license = 'MIT' s.summary = 'PSUpdateApp is a simple method to notify users that a new version of your iOS app is available.' s.homepage = 'https://github.com/danielebogo/PSUpdateApp' s.author = { 'Daniele Bogo' => 'daniele@paperstreetsoapdesign.com' } - s.source = { :git => 'https://github.com/danielebogo/PSUpdateApp.git', :tag => '1.0.9' } - s.platform = :ios, '5.0' + s.source = { :git => 'https://github.com/danielebogo/PSUpdateApp.git', :tag => '3.0' } + s.platform = :ios, '8.0' s.requires_arc = true s.source_files = 'PSUpdateApp/*.{h,m}' s.resource = 'PSUpdateApp/Localizations/**' - s.dependency 'AFNetworking','~>1.3.2' -end \ No newline at end of file + s.dependency 'AFNetworking', '~> 3.0' +end diff --git a/Projects/iOS > 6/PSUpdateApp.xcodeproj/project.pbxproj b/PSUpdateApp.xcodeproj/project.pbxproj similarity index 82% rename from Projects/iOS > 6/PSUpdateApp.xcodeproj/project.pbxproj rename to PSUpdateApp.xcodeproj/project.pbxproj index 98f62ee..3f119e9 100644 --- a/Projects/iOS > 6/PSUpdateApp.xcodeproj/project.pbxproj +++ b/PSUpdateApp.xcodeproj/project.pbxproj @@ -7,13 +7,11 @@ objects = { /* Begin PBXBuildFile section */ - 69577A017617474FB6F7BF19 /* libPods.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AE70470A87074640AF630809 /* libPods.a */; }; 9AA29E9A17E3B10A0084EB40 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AA29E9917E3B10A0084EB40 /* Foundation.framework */; }; 9AA29E9C17E3B10A0084EB40 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AA29E9B17E3B10A0084EB40 /* CoreGraphics.framework */; }; 9AA29E9E17E3B10A0084EB40 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AA29E9D17E3B10A0084EB40 /* UIKit.framework */; }; - 9AA29EA417E3B10A0084EB40 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 9AA29EA217E3B10A0084EB40 /* InfoPlist.strings */; }; 9AA29EA617E3B10A0084EB40 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 9AA29EA517E3B10A0084EB40 /* main.m */; }; - 9AA29EAA17E3B10A0084EB40 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 9AA29EA917E3B10A0084EB40 /* AppDelegate.m */; }; + 9AA29EAA17E3B10A0084EB40 /* PSUpdateAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 9AA29EA917E3B10A0084EB40 /* PSUpdateAppDelegate.m */; }; 9AA29EAC17E3B10A0084EB40 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 9AA29EAB17E3B10A0084EB40 /* Images.xcassets */; }; 9AA29EB317E3B10A0084EB40 /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AA29EB217E3B10A0084EB40 /* XCTest.framework */; }; 9AA29EB417E3B10A0084EB40 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AA29E9917E3B10A0084EB40 /* Foundation.framework */; }; @@ -24,7 +22,7 @@ 9AA29EDE17E3B41C0084EB40 /* PSUdateApp.strings in Resources */ = {isa = PBXBuildFile; fileRef = 9AA29ECD17E3B41C0084EB40 /* PSUdateApp.strings */; }; 9AA29EDF17E3B41C0084EB40 /* PSUpdateApp.m in Sources */ = {isa = PBXBuildFile; fileRef = 9AA29EDC17E3B41C0084EB40 /* PSUpdateApp.m */; }; 9AA29EE217E3B5D00084EB40 /* MainViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9AA29EE117E3B5D00084EB40 /* MainViewController.m */; }; - AF30D1FD884149BF9995FCA8 /* libPods-PSUpdateAppTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3015E7F68BBE4ECBBC8AA547 /* libPods-PSUpdateAppTests.a */; }; + EAC4AE366DE141DD5561E011 /* libPods-PSUpdateApp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A649DEEEFE6AF36317C2ED14 /* libPods-PSUpdateApp.a */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -38,9 +36,7 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 09544D8E9FA744C0BCDB0EFC /* Pods.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.xcconfig; path = Pods/Pods.xcconfig; sourceTree = ""; }; - 3015E7F68BBE4ECBBC8AA547 /* libPods-PSUpdateAppTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-PSUpdateAppTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 3139BE0CAFA243CCA16B91DB /* Pods-PSUpdateAppTests.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-PSUpdateAppTests.xcconfig"; path = "Pods/Pods-PSUpdateAppTests.xcconfig"; sourceTree = ""; }; + 828C3093B35D674E0DD11A39 /* Pods-PSUpdateApp.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-PSUpdateApp.debug.xcconfig"; path = "Pods/Target Support Files/Pods-PSUpdateApp/Pods-PSUpdateApp.debug.xcconfig"; sourceTree = ""; }; 9AA29E9617E3B10A0084EB40 /* PSUpdateApp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = PSUpdateApp.app; sourceTree = BUILT_PRODUCTS_DIR; }; 9AA29E9917E3B10A0084EB40 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; 9AA29E9B17E3B10A0084EB40 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; @@ -49,8 +45,8 @@ 9AA29EA317E3B10A0084EB40 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; 9AA29EA517E3B10A0084EB40 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; 9AA29EA717E3B10A0084EB40 /* PSUpdateApp-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "PSUpdateApp-Prefix.pch"; sourceTree = ""; }; - 9AA29EA817E3B10A0084EB40 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; - 9AA29EA917E3B10A0084EB40 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; + 9AA29EA817E3B10A0084EB40 /* PSUpdateAppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PSUpdateAppDelegate.h; sourceTree = ""; }; + 9AA29EA917E3B10A0084EB40 /* PSUpdateAppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PSUpdateAppDelegate.m; sourceTree = ""; }; 9AA29EAB17E3B10A0084EB40 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; 9AA29EB117E3B10A0084EB40 /* PSUpdateAppTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = PSUpdateAppTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 9AA29EB217E3B10A0084EB40 /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; }; @@ -75,7 +71,8 @@ 9AA29EDC17E3B41C0084EB40 /* PSUpdateApp.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PSUpdateApp.m; sourceTree = ""; }; 9AA29EE017E3B5D00084EB40 /* MainViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MainViewController.h; sourceTree = ""; }; 9AA29EE117E3B5D00084EB40 /* MainViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MainViewController.m; sourceTree = ""; }; - AE70470A87074640AF630809 /* libPods.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libPods.a; sourceTree = BUILT_PRODUCTS_DIR; }; + A649DEEEFE6AF36317C2ED14 /* libPods-PSUpdateApp.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-PSUpdateApp.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + C2AADB42471F6F263011BB87 /* Pods-PSUpdateApp.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-PSUpdateApp.release.xcconfig"; path = "Pods/Target Support Files/Pods-PSUpdateApp/Pods-PSUpdateApp.release.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -86,7 +83,7 @@ 9AA29E9C17E3B10A0084EB40 /* CoreGraphics.framework in Frameworks */, 9AA29E9E17E3B10A0084EB40 /* UIKit.framework in Frameworks */, 9AA29E9A17E3B10A0084EB40 /* Foundation.framework in Frameworks */, - 69577A017617474FB6F7BF19 /* libPods.a in Frameworks */, + EAC4AE366DE141DD5561E011 /* libPods-PSUpdateApp.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -97,23 +94,30 @@ 9AA29EB317E3B10A0084EB40 /* XCTest.framework in Frameworks */, 9AA29EB517E3B10A0084EB40 /* UIKit.framework in Frameworks */, 9AA29EB417E3B10A0084EB40 /* Foundation.framework in Frameworks */, - AF30D1FD884149BF9995FCA8 /* libPods-PSUpdateAppTests.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ + 6023A9F83EFCC2CD04F68CA1 /* Pods */ = { + isa = PBXGroup; + children = ( + 828C3093B35D674E0DD11A39 /* Pods-PSUpdateApp.debug.xcconfig */, + C2AADB42471F6F263011BB87 /* Pods-PSUpdateApp.release.xcconfig */, + ); + name = Pods; + sourceTree = ""; + }; 9AA29E8D17E3B10A0084EB40 = { isa = PBXGroup; children = ( - 9AA29EC817E3B41C0084EB40 /* PSUpdateApp_2 */, + 9AA29EC817E3B41C0084EB40 /* PSUpdateApp */, 9AA29E9F17E3B10A0084EB40 /* Example */, 9AA29EB817E3B10A0084EB40 /* PSUpdateAppTests */, 9AA29E9817E3B10A0084EB40 /* Frameworks */, 9AA29E9717E3B10A0084EB40 /* Products */, - 09544D8E9FA744C0BCDB0EFC /* Pods.xcconfig */, - 3139BE0CAFA243CCA16B91DB /* Pods-PSUpdateAppTests.xcconfig */, + 6023A9F83EFCC2CD04F68CA1 /* Pods */, ); sourceTree = ""; }; @@ -133,8 +137,7 @@ 9AA29E9B17E3B10A0084EB40 /* CoreGraphics.framework */, 9AA29E9D17E3B10A0084EB40 /* UIKit.framework */, 9AA29EB217E3B10A0084EB40 /* XCTest.framework */, - AE70470A87074640AF630809 /* libPods.a */, - 3015E7F68BBE4ECBBC8AA547 /* libPods-PSUpdateAppTests.a */, + A649DEEEFE6AF36317C2ED14 /* libPods-PSUpdateApp.a */, ); name = Frameworks; sourceTree = ""; @@ -142,8 +145,8 @@ 9AA29E9F17E3B10A0084EB40 /* Example */ = { isa = PBXGroup; children = ( - 9AA29EA817E3B10A0084EB40 /* AppDelegate.h */, - 9AA29EA917E3B10A0084EB40 /* AppDelegate.m */, + 9AA29EA817E3B10A0084EB40 /* PSUpdateAppDelegate.h */, + 9AA29EA917E3B10A0084EB40 /* PSUpdateAppDelegate.m */, 9AA29EE017E3B5D00084EB40 /* MainViewController.h */, 9AA29EE117E3B5D00084EB40 /* MainViewController.m */, 9AA29EAB17E3B10A0084EB40 /* Images.xcassets */, @@ -182,16 +185,15 @@ name = "Supporting Files"; sourceTree = ""; }; - 9AA29EC817E3B41C0084EB40 /* PSUpdateApp_2 */ = { + 9AA29EC817E3B41C0084EB40 /* PSUpdateApp */ = { isa = PBXGroup; children = ( 9AA29ECA17E3B41C0084EB40 /* Localizations */, 9AA29EDB17E3B41C0084EB40 /* PSUpdateApp.h */, 9AA29EDC17E3B41C0084EB40 /* PSUpdateApp.m */, ); - name = PSUpdateApp_2; - path = ../../PSUpdateApp_2; - sourceTree = ""; + path = PSUpdateApp; + sourceTree = SOURCE_ROOT; }; 9AA29ECA17E3B41C0084EB40 /* Localizations */ = { isa = PBXGroup; @@ -209,11 +211,10 @@ isa = PBXNativeTarget; buildConfigurationList = 9AA29EC217E3B10A0084EB40 /* Build configuration list for PBXNativeTarget "PSUpdateApp" */; buildPhases = ( - 2A24FED18CF1448F8BA5012A /* Check Pods Manifest.lock */, + 3E9CAED5410508D50276D4A7 /* [CP] Check Pods Manifest.lock */, 9AA29E9217E3B10A0084EB40 /* Sources */, 9AA29E9317E3B10A0084EB40 /* Frameworks */, 9AA29E9417E3B10A0084EB40 /* Resources */, - 573B7F85FB414D8DB616B954 /* Copy Pods Resources */, ); buildRules = ( ); @@ -228,11 +229,9 @@ isa = PBXNativeTarget; buildConfigurationList = 9AA29EC517E3B10A0084EB40 /* Build configuration list for PBXNativeTarget "PSUpdateAppTests" */; buildPhases = ( - D1BE38725D8A48869D487D84 /* Check Pods Manifest.lock */, 9AA29EAD17E3B10A0084EB40 /* Sources */, 9AA29EAE17E3B10A0084EB40 /* Frameworks */, 9AA29EAF17E3B10A0084EB40 /* Resources */, - 7CDF2B17975B47C3A958FB32 /* Copy Pods Resources */, ); buildRules = ( ); @@ -287,7 +286,6 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 9AA29EA417E3B10A0084EB40 /* InfoPlist.strings in Resources */, 9AA29EDE17E3B41C0084EB40 /* PSUdateApp.strings in Resources */, 9AA29EDD17E3B41C0084EB40 /* InfoPlist.strings in Resources */, 9AA29EAC17E3B10A0084EB40 /* Images.xcassets in Resources */, @@ -305,64 +303,22 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 2A24FED18CF1448F8BA5012A /* Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "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 cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; - showEnvVarsInLog = 0; - }; - 573B7F85FB414D8DB616B954 /* Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Copy Pods Resources"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Pods-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; - 7CDF2B17975B47C3A958FB32 /* Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Copy Pods Resources"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Pods-PSUpdateAppTests-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; - D1BE38725D8A48869D487D84 /* Check Pods Manifest.lock */ = { + 3E9CAED5410508D50276D4A7 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", ); - name = "Check Pods Manifest.lock"; + name = "[CP] Check Pods Manifest.lock"; outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-PSUpdateApp-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/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# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; /* End PBXShellScriptBuildPhase section */ @@ -372,7 +328,7 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 9AA29EAA17E3B10A0084EB40 /* AppDelegate.m in Sources */, + 9AA29EAA17E3B10A0084EB40 /* PSUpdateAppDelegate.m in Sources */, 9AA29EA617E3B10A0084EB40 /* main.m in Sources */, 9AA29EDF17E3B41C0084EB40 /* PSUpdateApp.m in Sources */, 9AA29EE217E3B5D00084EB40 /* MainViewController.m in Sources */, @@ -478,7 +434,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 7.0; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; }; @@ -511,7 +467,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 7.0; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; SDKROOT = iphoneos; VALIDATE_PRODUCT = YES; }; @@ -519,7 +475,7 @@ }; 9AA29EC317E3B10A0084EB40 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 09544D8E9FA744C0BCDB0EFC /* Pods.xcconfig */; + baseConfigurationReference = 828C3093B35D674E0DD11A39 /* Pods-PSUpdateApp.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; @@ -533,7 +489,7 @@ }; 9AA29EC417E3B10A0084EB40 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 09544D8E9FA744C0BCDB0EFC /* Pods.xcconfig */; + baseConfigurationReference = C2AADB42471F6F263011BB87 /* Pods-PSUpdateApp.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; @@ -547,7 +503,6 @@ }; 9AA29EC617E3B10A0084EB40 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 3139BE0CAFA243CCA16B91DB /* Pods-PSUpdateAppTests.xcconfig */; buildSettings = { ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)"; BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/PSUpdateApp.app/PSUpdateApp"; @@ -571,7 +526,6 @@ }; 9AA29EC717E3B10A0084EB40 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 3139BE0CAFA243CCA16B91DB /* Pods-PSUpdateAppTests.xcconfig */; buildSettings = { ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)"; BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/PSUpdateApp.app/PSUpdateApp"; diff --git a/PSUpdateApp/CWLSynthesizeSingleton.h b/PSUpdateApp/CWLSynthesizeSingleton.h deleted file mode 100644 index 8d51b92..0000000 --- a/PSUpdateApp/CWLSynthesizeSingleton.h +++ /dev/null @@ -1,90 +0,0 @@ -// -// CWLSynthesizeSingleton.h -// CocoaWithLove -// -// Created by Matt Gallagher on 2011/08/23. -// Copyright (c) 2011 Matt Gallagher. All rights reserved. -// -// Permission is given to use this source code file, free of charge, in any -// project, commercial or otherwise, entirely at your risk, with the condition -// that any redistribution (in part or whole) of source code must retain -// this copyright and permission notice. Attribution in compiled projects is -// appreciated but not required. -// - -#import - -#define CWL_DECLARE_SINGLETON_FOR_CLASS_WITH_ACCESSOR(classname, accessorMethodName) \ -+ (classname *)accessorMethodName; - -#if __has_feature(objc_arc) -#define CWL_SYNTHESIZE_SINGLETON_RETAIN_METHODS -#else -#define CWL_SYNTHESIZE_SINGLETON_RETAIN_METHODS \ -- (id)retain \ -{ \ -return self; \ -} \ -\ -- (NSUInteger)retainCount \ -{ \ -return NSUIntegerMax; \ -} \ -\ -- (oneway void)release \ -{ \ -} \ -\ -- (id)autorelease \ -{ \ -return self; \ -} -#endif - -#define CWL_SYNTHESIZE_SINGLETON_FOR_CLASS_WITH_ACCESSOR(classname, accessorMethodName) \ -\ -static classname *accessorMethodName##Instance = nil; \ -\ -+ (classname *)accessorMethodName \ -{ \ -@synchronized(self) \ -{ \ -if (accessorMethodName##Instance == nil) \ -{ \ -accessorMethodName##Instance = [super allocWithZone:NULL]; \ -accessorMethodName##Instance = [accessorMethodName##Instance init]; \ -method_exchangeImplementations(\ -class_getClassMethod([accessorMethodName##Instance class], @selector(accessorMethodName)),\ -class_getClassMethod([accessorMethodName##Instance class], @selector(cwl_lockless_##accessorMethodName)));\ -method_exchangeImplementations(\ -class_getInstanceMethod([accessorMethodName##Instance class], @selector(init)),\ -class_getInstanceMethod([accessorMethodName##Instance class], @selector(cwl_onlyInitOnce)));\ -} \ -} \ -\ -return accessorMethodName##Instance; \ -} \ -\ -+ (classname *)cwl_lockless_##accessorMethodName \ -{ \ -return accessorMethodName##Instance; \ -} \ -\ -+ (id)allocWithZone:(NSZone *)zone \ -{ \ -return [self accessorMethodName]; \ -} \ -\ -- (id)copyWithZone:(NSZone *)zone \ -{ \ -return self; \ -} \ -- (id)cwl_onlyInitOnce \ -{ \ -return self;\ -} \ -\ -CWL_SYNTHESIZE_SINGLETON_RETAIN_METHODS - -#define CWL_DECLARE_SINGLETON_FOR_CLASS(classname) CWL_DECLARE_SINGLETON_FOR_CLASS_WITH_ACCESSOR(classname, shared##classname) -#define CWL_SYNTHESIZE_SINGLETON_FOR_CLASS(classname) CWL_SYNTHESIZE_SINGLETON_FOR_CLASS_WITH_ACCESSOR(classname, shared##classname) diff --git a/PSUpdateApp/Images.xcassets/AppIcon.appiconset/Contents.json b/PSUpdateApp/Images.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..19882d5 --- /dev/null +++ b/PSUpdateApp/Images.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,53 @@ +{ + "images" : [ + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "60x60", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "60x60", + "scale" : "3x" + }, + { + "idiom" : "ios-marketing", + "size" : "1024x1024", + "scale" : "1x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Projects/iOS > 6/PSUpdateApp/Images.xcassets/LaunchImage.launchimage/Contents.json b/PSUpdateApp/Images.xcassets/LaunchImage.launchimage/Contents.json similarity index 100% rename from Projects/iOS > 6/PSUpdateApp/Images.xcassets/LaunchImage.launchimage/Contents.json rename to PSUpdateApp/Images.xcassets/LaunchImage.launchimage/Contents.json diff --git a/Projects/iOS > 6/PSUpdateApp/MainViewController.h b/PSUpdateApp/MainViewController.h similarity index 100% rename from Projects/iOS > 6/PSUpdateApp/MainViewController.h rename to PSUpdateApp/MainViewController.h diff --git a/Projects/iOS > 6/PSUpdateApp/MainViewController.m b/PSUpdateApp/MainViewController.m similarity index 100% rename from Projects/iOS > 6/PSUpdateApp/MainViewController.m rename to PSUpdateApp/MainViewController.m diff --git a/Projects/iOS > 6/PSUpdateApp/PSUpdateApp-Info.plist b/PSUpdateApp/PSUpdateApp-Info.plist similarity index 95% rename from Projects/iOS > 6/PSUpdateApp/PSUpdateApp-Info.plist rename to PSUpdateApp/PSUpdateApp-Info.plist index ed47ffc..7c174ab 100644 --- a/Projects/iOS > 6/PSUpdateApp/PSUpdateApp-Info.plist +++ b/PSUpdateApp/PSUpdateApp-Info.plist @@ -17,11 +17,11 @@ CFBundlePackageType APPL CFBundleShortVersionString - 2.0.5 + 3.0 CFBundleSignature ???? CFBundleVersion - 2.0.5 + 300 LSRequiresIPhoneOS UIRequiredDeviceCapabilities diff --git a/Projects/iOS > 6/PSUpdateApp/PSUpdateApp-Prefix.pch b/PSUpdateApp/PSUpdateApp-Prefix.pch similarity index 100% rename from Projects/iOS > 6/PSUpdateApp/PSUpdateApp-Prefix.pch rename to PSUpdateApp/PSUpdateApp-Prefix.pch diff --git a/PSUpdateApp/PSUpdateApp.h b/PSUpdateApp/PSUpdateApp.h index 07ecf93..b0fafee 100644 --- a/PSUpdateApp/PSUpdateApp.h +++ b/PSUpdateApp/PSUpdateApp.h @@ -7,9 +7,8 @@ // #import -#import "CWLSynthesizeSingleton.h" -typedef void(^PSUpdateAppCompletionBlock)(NSError *error, BOOL success, id JSON); +typedef BOOL(^PSUpdateAppCompletionBlock)(NSError *error, BOOL updateAvailable, BOOL skip, id JSON); typedef enum { DefaultStrategy = 0, @@ -19,16 +18,17 @@ typedef enum { @interface PSUpdateApp : NSObject -CWL_DECLARE_SINGLETON_FOR_CLASS(PSUpdateApp) +@property (nonatomic, strong) NSString *appID, *appStoreLocation, *appName, *route, *updatePageUrl; +@property (nonatomic, strong) NSString *alertTitle, *alertDefaultMessage, *alertForceMessage, *alertRemindMessage; +@property (nonatomic, assign) UpdateStrategy strategy; +@property (nonatomic, assign) NSUInteger daysUntilPrompt; +@property (nonatomic, strong) NSDate *remindDate; -@property (nonatomic) NSString *appID, *appStoreLocation, *appName, *route, *updatePageUrl; -@property (nonatomic) UpdateStrategy strategy; -@property (nonatomic) int daysUntilPrompt; -@property (nonatomic) NSDate *remindDate; ++ (PSUpdateApp *) manager; -+ (id) startWithRoute:(NSString *)route; -+ (id) startWithAppID:(NSString *)appId; -+ (id) startWithAppID:(NSString *)appId store:(NSString *)store; +- (void) startWithRoute:(NSString *)route; +- (void) startWithAppID:(NSString *)appId; +- (void) startWithAppID:(NSString *)appId store:(NSString *)store; - (void) detectAppVersion:(PSUpdateAppCompletionBlock)completionBlock; - (void) setURLAdHoc:(NSString *)url; diff --git a/PSUpdateApp/PSUpdateApp.m b/PSUpdateApp/PSUpdateApp.m index fcf1e8d..58a1244 100644 --- a/PSUpdateApp/PSUpdateApp.m +++ b/PSUpdateApp/PSUpdateApp.m @@ -12,12 +12,49 @@ #endif #import "PSUpdateApp.h" -#import + +#import +#import #define APPLE_URL @"http://itunes.apple.com/lookup?" #define kCurrentAppVersion [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"] +#ifdef DEBUG +#define DebugLog(...) NSLog(__VA_ARGS__) +#else +#define DebugLog(...) { } +#endif + +@interface NSObject (StringValidation) +- (BOOL) isValidObject; +- (BOOL) isValidString; +@end + +@implementation NSObject (ObjectValidation) + +- (BOOL) isValidObject +{ + if ( self && ![self isEqual:[NSNull null]] && [self isKindOfClass:[NSObject class]] ) + return YES; + else + return NO; +} + +- (BOOL) isValidString +{ + if ( [self isValidObject] && [self isKindOfClass:[NSString class]] && ![(NSString *)self isEqualToString:@""] ) + return YES; + else + return NO; +} + +@end + +////////////////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////////////// + @interface PSUpdateApp () { NSString *_newVersion; } @@ -25,37 +62,40 @@ @interface PSUpdateApp () { @implementation PSUpdateApp -CWL_SYNTHESIZE_SINGLETON_FOR_CLASS(PSUpdateApp) ++ (PSUpdateApp *) manager +{ + static PSUpdateApp *sharedInstance = nil; + static dispatch_once_t oncePredicate; + + dispatch_once(&oncePredicate, ^{ + sharedInstance = [[PSUpdateApp alloc] init]; + }); + return sharedInstance; +} -+ (id) startWithRoute:(NSString *)route +- (void) startWithRoute:(NSString *)route { - return [[self alloc] initWithAppID:nil store:nil route:route]; + [self initWithAppID:nil store:nil route:route]; } -+ (id) startWithAppID:(NSString *)appId store:(NSString *)store +- (void) startWithAppID:(NSString *)appId store:(NSString *)store { - return [[self alloc] initWithAppID:appId store:store route:nil]; + [self initWithAppID:appId store:store route:nil]; } -+ (id) startWithAppID:(NSString *)appId +- (void) startWithAppID:(NSString *)appId { - return [[self alloc] initWithAppID:appId store:nil route:nil]; + [self initWithAppID:appId store:nil route:nil]; } -- (id) initWithAppID:(NSString *)appId store:(NSString *)store route:(NSString *)route +- (void) initWithAppID:(NSString *)appId store:(NSString *)store route:(NSString *)route { - self = [super init]; - - if ( self ) { - [self setAppName:[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleDisplayName"]]; - [self setStrategy:DefaultStrategy]; - [self setAppID:appId]; - [self setAppStoreLocation: store ? store : [[NSLocale currentLocale] objectForKey: NSLocaleCountryCode]]; - [self setDaysUntilPrompt:2]; - [self setRoute:route]; - } - - return self; + [self setAppName:[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleDisplayName"]]; + [self setStrategy:DefaultStrategy]; + [self setAppID:appId]; + [self setAppStoreLocation: store ? store : [[NSLocale currentLocale] objectForKey: NSLocaleCountryCode]]; + [self setDaysUntilPrompt:2]; + [self setRoute:route]; } - (void) detectAppVersion:(PSUpdateAppCompletionBlock)completionBlock @@ -63,30 +103,29 @@ - (void) detectAppVersion:(PSUpdateAppCompletionBlock)completionBlock if ( _strategy == RemindStrategy && [self remindDate] != nil && ![self checkConsecutiveDays] ) return; - NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:[self setJsonURL]]]; - [request setHTTPMethod:@"GET"]; - - AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request - success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) { - if ( [self isNewVersion:JSON] ) { - if ( completionBlock && ![self isSkipVersion] ) { - completionBlock(nil, YES, JSON); - } else if ( ![self isSkipVersion] ) { - [self showAlert]; - } else { - if ( completionBlock ) - completionBlock(nil, NO, JSON); - } - } else { - if ( completionBlock ) - completionBlock(nil, NO, JSON); - } - } - failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON) { - if ( completionBlock && ![self isSkipVersion] ) - completionBlock(error, NO, nil); - }]; - [operation start]; + AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; + [manager setResponseSerializer:[AFJSONResponseSerializer serializer]]; + [manager GET:[self setJsonURL] parameters:nil progress:nil + success:^(NSURLSessionTask *task, id responseObject) { + DebugLog(@"JSON response: %@", responseObject); + + if ( [self isNewVersion:responseObject] ) { + BOOL skip = [self isSkipVersion]; + BOOL showAlert = YES; + + if ( completionBlock ) + showAlert = completionBlock(nil, YES, skip, responseObject); + if ( showAlert && !skip ) + [self showAlert]; + } else { + if ( completionBlock ) + completionBlock(nil, NO, NO, responseObject); + } + } + failure:^(NSURLSessionDataTask * _Nullable task, NSError *error) { + if ( completionBlock ) + completionBlock(error, NO, NO, nil); + }]; } - (NSString *) setJsonURL @@ -103,13 +142,12 @@ - (void) setURLAdHoc:(NSString *)url - (BOOL) isNewVersion:(NSDictionary *)dictionary { - if ( [[dictionary objectForKey:@"results"] count] > 0 ) { - _newVersion = [[[dictionary objectForKey:@"results"] objectAtIndex:0] objectForKey:@"version"]; - [self setUpdatePageUrl:[[[dictionary objectForKey:@"results"] objectAtIndex:0] objectForKey:@"trackViewUrl"]]; + if ( [dictionary[@"results"] count] > 0 ) { + _newVersion = dictionary[@"results"][0][@"version"]; + [self setUpdatePageUrl:dictionary[@"results"][0][@"trackViewUrl"]]; - if ([[[dictionary objectForKey:@"results"] objectAtIndex:0] objectForKey:@"type"]) { - [self setStrategy: [[[[dictionary objectForKey:@"results"] objectAtIndex:0] objectForKey:@"type"] isEqualToString:@"mandatory"] ? ForceStrategy : DefaultStrategy]; - } + if ( dictionary[@"results"][0][@"type"] ) + [self setStrategy: [dictionary[@"results"][0][@"type"] isEqualToString:@"mandatory"] ? ForceStrategy : DefaultStrategy]; return [kCurrentAppVersion compare:_newVersion options:NSNumericSearch] == NSOrderedAscending; } @@ -139,12 +177,14 @@ - (void) setRemindDate:(NSDate *)remindDate - (void) showAlert { + NSString *alertTitle = [self.alertTitle isValidString] ? self.alertTitle : PSUdateAppLocalizedStrings(@"alert.success.title"); + switch ( self.strategy ) { case DefaultStrategy: default: { - UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:PSUdateAppLocalizedStrings(@"alert.success.title") - message:[NSString stringWithFormat:PSUdateAppLocalizedStrings(@"alert.success.default.text"), self.appName, _newVersion] + UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:alertTitle + message:[self.alertDefaultMessage isValidString] ? self.alertDefaultMessage : [NSString stringWithFormat:PSUdateAppLocalizedStrings(@"alert.success.default.text"), self.appName, _newVersion] delegate:self cancelButtonTitle:PSUdateAppLocalizedStrings(@"alert.button.skip") otherButtonTitles:PSUdateAppLocalizedStrings(@"alert.button.update"), nil]; @@ -154,8 +194,8 @@ - (void) showAlert case ForceStrategy: { - UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:PSUdateAppLocalizedStrings(@"alert.success.title") - message:[NSString stringWithFormat:PSUdateAppLocalizedStrings(@"alert.success.force.text"), self.appName, _newVersion] + UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:alertTitle + message:[self.alertForceMessage isValidString] ? self.alertForceMessage : [NSString stringWithFormat:PSUdateAppLocalizedStrings(@"alert.success.force.text"), self.appName, _newVersion] delegate:self cancelButtonTitle:PSUdateAppLocalizedStrings(@"alert.button.update") otherButtonTitles:nil, nil]; @@ -165,8 +205,8 @@ - (void) showAlert case RemindStrategy: { - UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:PSUdateAppLocalizedStrings(@"alert.success.title") - message:[NSString stringWithFormat:PSUdateAppLocalizedStrings(@"alert.success.remindme.text"), _appName, _newVersion] + UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:alertTitle + message:[self.alertRemindMessage isValidString] ? self.alertRemindMessage : [NSString stringWithFormat:PSUdateAppLocalizedStrings(@"alert.success.remindme.text"), _appName, _newVersion] delegate:self cancelButtonTitle:PSUdateAppLocalizedStrings(@"alert.button.skip") otherButtonTitles:PSUdateAppLocalizedStrings(@"alert.button.update"), PSUdateAppLocalizedStrings(@"alert.button.remindme"), nil]; @@ -204,11 +244,10 @@ - (void) alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)butt if ( buttonIndex == 0 ) { [[NSUserDefaults standardUserDefaults] setObject:_newVersion forKey:@"skipVersion"]; [[NSUserDefaults standardUserDefaults] synchronize]; - } else if ( buttonIndex == 1 ) { + } else if ( buttonIndex == 1 ) [[UIApplication sharedApplication] openURL:[NSURL URLWithString:self.updatePageUrl]]; - } else { + else [self setRemindDate:[NSDate date]]; - } } break; @@ -219,17 +258,17 @@ - (void) alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)butt - (BOOL) checkConsecutiveDays { - NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; + NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian]; NSDate *today = [NSDate date]; NSDate *dateToRound = [[self remindDate] earlierDate:today]; - NSDateComponents * dateComponents = [gregorian components:NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit + NSDateComponents * dateComponents = [gregorian components:NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay fromDate:dateToRound]; NSDate *roundedDate = [gregorian dateFromComponents:dateComponents]; NSDate *otherDate = (dateToRound == [self remindDate]) ? today : [self remindDate] ; - NSInteger diff = abs([roundedDate timeIntervalSinceDate:otherDate]); + NSInteger diff = (NSInteger)fabs([roundedDate timeIntervalSinceDate:otherDate]); NSInteger daysDifference = floor(diff/(24 * 60 * 60)); return daysDifference >= _daysUntilPrompt; diff --git a/Projects/iOS > 6/PSUpdateApp/AppDelegate.h b/PSUpdateApp/PSUpdateAppDelegate.h similarity index 64% rename from Projects/iOS > 6/PSUpdateApp/AppDelegate.h rename to PSUpdateApp/PSUpdateAppDelegate.h index 3f18fdd..beec25d 100644 --- a/Projects/iOS > 6/PSUpdateApp/AppDelegate.h +++ b/PSUpdateApp/PSUpdateAppDelegate.h @@ -1,5 +1,5 @@ // -// AppDelegate.h +// PSUpdateAppDelegate.h // PSUpdateApp // // Created by iBo on 9/13/13. @@ -8,8 +8,8 @@ #import -@interface AppDelegate : UIResponder +@interface PSUpdateAppDelegate : UIResponder @property (strong, nonatomic) UIWindow *window; -@end \ No newline at end of file +@end diff --git a/Projects/iOS > 6/PSUpdateApp/AppDelegate.m b/PSUpdateApp/PSUpdateAppDelegate.m similarity index 98% rename from Projects/iOS > 6/PSUpdateApp/AppDelegate.m rename to PSUpdateApp/PSUpdateAppDelegate.m index f2f01af..ee4c8a2 100644 --- a/Projects/iOS > 6/PSUpdateApp/AppDelegate.m +++ b/PSUpdateApp/PSUpdateAppDelegate.m @@ -1,19 +1,19 @@ // -// AppDelegate.m +// PSUpdateAppDelegate.m // PSUpdateApp // // Created by iBo on 9/13/13. // Copyright (c) 2013 iBo. All rights reserved. // -#import "AppDelegate.h" +#import "PSUpdateAppDelegate.h" #import "PSUpdateApp.h" #import "MainViewController.h" #define FAKE_ROUTE @"http://paperstreetsoapdesign.com/development/updateapp/fake_2.json" -@implementation AppDelegate +@implementation PSUpdateAppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { diff --git a/Projects/fake.json b/PSUpdateApp/Resources/fake.json similarity index 100% rename from Projects/fake.json rename to PSUpdateApp/Resources/fake.json diff --git a/Projects/update.html b/PSUpdateApp/Resources/update.html similarity index 100% rename from Projects/update.html rename to PSUpdateApp/Resources/update.html diff --git a/Projects/iOS > 6/PSUpdateApp/main.m b/PSUpdateApp/main.m similarity index 80% rename from Projects/iOS > 6/PSUpdateApp/main.m rename to PSUpdateApp/main.m index bf7e826..a64d5bc 100644 --- a/Projects/iOS > 6/PSUpdateApp/main.m +++ b/PSUpdateApp/main.m @@ -8,11 +8,11 @@ #import -#import "AppDelegate.h" +#import "PSUpdateAppDelegate.h" int main(int argc, char * argv[]) { @autoreleasepool { - return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); + return UIApplicationMain(argc, argv, nil, NSStringFromClass([PSUpdateAppDelegate class])); } } diff --git a/Projects/iOS < 6/PSUpdateAppTests/PSUpdateAppTests-Info.plist b/PSUpdateAppTests/PSUpdateAppTests-Info.plist similarity index 100% rename from Projects/iOS < 6/PSUpdateAppTests/PSUpdateAppTests-Info.plist rename to PSUpdateAppTests/PSUpdateAppTests-Info.plist diff --git a/Projects/iOS > 6/PSUpdateAppTests/PSUpdateAppTests.m b/PSUpdateAppTests/PSUpdateAppTests.m similarity index 100% rename from Projects/iOS > 6/PSUpdateAppTests/PSUpdateAppTests.m rename to PSUpdateAppTests/PSUpdateAppTests.m diff --git a/PSUpdateApp_2/Localizations/ar.lproj/InfoPlist.strings b/PSUpdateAppTests/en.lproj/InfoPlist.strings similarity index 100% rename from PSUpdateApp_2/Localizations/ar.lproj/InfoPlist.strings rename to PSUpdateAppTests/en.lproj/InfoPlist.strings diff --git a/PSUpdateApp_2/Localizations/ar.lproj/PSUdateApp.strings b/PSUpdateApp_2/Localizations/ar.lproj/PSUdateApp.strings deleted file mode 100644 index d6c7596..0000000 --- a/PSUpdateApp_2/Localizations/ar.lproj/PSUdateApp.strings +++ /dev/null @@ -1,17 +0,0 @@ -/* - Localizable.strings - PSUpdateApp - - Created by Ehab Abdou on 09/04/13. - Copyright (c) 2013 D-Still. All rights reserved. -*/ - -"alert.success.title" = "تحديث متوفر"; - -"alert.success.default.text" = "تحديث جديد متوفر من تطبيق %@. هل تريد الترقية إلى النسخة %@ الآن؟"; -"alert.success.force.text" = "تحديث جديد متوفر من تطبيق %@. أرجو الترقية إلى النسخة %@."; -"alert.success.remindme.text" = "تحديث جديد متوفر من تطبيق %@. هل تريد الترقية إلى النسخة %@؟ الترقية الآن أو ذكرني لاحقاً."; - -"alert.button.update" = "االترقية الآن"; -"alert.button.skip" = "تخطي هذه النسخة"; -"alert.button.remindme" = "ذكرني لاحقاً"; \ No newline at end of file diff --git a/PSUpdateApp_2/Localizations/en.lproj/InfoPlist.strings b/PSUpdateApp_2/Localizations/en.lproj/InfoPlist.strings deleted file mode 100644 index 477b28f..0000000 --- a/PSUpdateApp_2/Localizations/en.lproj/InfoPlist.strings +++ /dev/null @@ -1,2 +0,0 @@ -/* Localized versions of Info.plist keys */ - diff --git a/PSUpdateApp_2/Localizations/en.lproj/PSUdateApp.strings b/PSUpdateApp_2/Localizations/en.lproj/PSUdateApp.strings deleted file mode 100644 index 4bcd31d..0000000 --- a/PSUpdateApp_2/Localizations/en.lproj/PSUdateApp.strings +++ /dev/null @@ -1,17 +0,0 @@ -/* - Localizable.strings - PSUpdateApp - - Created by iBo on 18/02/13. - Copyright (c) 2013 D-Still. All rights reserved. -*/ - -"alert.success.title" = "Update Available"; - -"alert.success.default.text" = "A new version of %@ is available. Do you want to update to version %@ now?"; -"alert.success.force.text" = "A new version of %@ is available. Please update to version %@ to continue."; -"alert.success.remindme.text" = "A new version of %@ is available. Do you want to update to version %@? Update now or remind me later"; - -"alert.button.update" = "Update"; -"alert.button.skip" = "Skip this version"; -"alert.button.remindme" = "Not now. Remind me"; \ No newline at end of file diff --git a/PSUpdateApp_2/Localizations/es.lproj/InfoPlist.strings b/PSUpdateApp_2/Localizations/es.lproj/InfoPlist.strings deleted file mode 100644 index 477b28f..0000000 --- a/PSUpdateApp_2/Localizations/es.lproj/InfoPlist.strings +++ /dev/null @@ -1,2 +0,0 @@ -/* Localized versions of Info.plist keys */ - diff --git a/PSUpdateApp_2/Localizations/es.lproj/PSUdateApp.strings b/PSUpdateApp_2/Localizations/es.lproj/PSUdateApp.strings deleted file mode 100644 index c4a7b9d..0000000 --- a/PSUpdateApp_2/Localizations/es.lproj/PSUdateApp.strings +++ /dev/null @@ -1,17 +0,0 @@ -/* - Localizable.strings - PSUpdateApp - - Created by iBo on 18/02/13. - Copyright (c) 2013 D-Still. All rights reserved. -*/ - -"alert.success.title" = "Actualización disponible"; - -"alert.success.default.text" = "Hay una nueva versión de %@. ¿Desea actualizar a la versión %@ ahora?"; -"alert.success.force.text" = "Hay una nueva versión de %@. Actualizar a la versión %@ para continuar."; -"alert.success.remindme.text" = "Hay una nueva versión de %@. ¿Desea actualizar a la versión %@? Actualizar ahora o me recuerdan más tarde."; - -"alert.button.update" = "Actualizar"; -"alert.button.skip" = "Omita esta versión"; -"alert.button.remindme" = "Ahora no. Recuérdame"; \ No newline at end of file diff --git a/PSUpdateApp_2/Localizations/it.lproj/InfoPlist.strings b/PSUpdateApp_2/Localizations/it.lproj/InfoPlist.strings deleted file mode 100644 index 477b28f..0000000 --- a/PSUpdateApp_2/Localizations/it.lproj/InfoPlist.strings +++ /dev/null @@ -1,2 +0,0 @@ -/* Localized versions of Info.plist keys */ - diff --git a/PSUpdateApp_2/Localizations/it.lproj/PSUdateApp.strings b/PSUpdateApp_2/Localizations/it.lproj/PSUdateApp.strings deleted file mode 100644 index b26ee1c..0000000 --- a/PSUpdateApp_2/Localizations/it.lproj/PSUdateApp.strings +++ /dev/null @@ -1,17 +0,0 @@ -/* - Localizable.strings - PSUpdateApp - - Created by iBo on 18/02/13. - Copyright (c) 2013 D-Still. All rights reserved. -*/ - -"alert.success.title" = "Aggiornamento disponibile"; - -"alert.success.default.text" = "È disponibile una nuova versione di %@. Vuoi aggiornare alla versione %@ adesso?"; -"alert.success.force.text" = "È disponibile una nuova versione di %@. Aggiorna alla versione %@ per continuare."; -"alert.success.remindme.text" = "È disponibile una nuova versione di %@. Vuoi aggiornare alla versione %@? Aggiorna ora o ricordamelo in seguito."; - -"alert.button.update" = "Aggiorna"; -"alert.button.skip" = "Salta la versione"; -"alert.button.remindme" = "Non adesso. Ricordamelo"; \ No newline at end of file diff --git a/PSUpdateApp_2/Localizations/ko.lproj/InfoPlist.strings b/PSUpdateApp_2/Localizations/ko.lproj/InfoPlist.strings deleted file mode 100644 index 477b28f..0000000 --- a/PSUpdateApp_2/Localizations/ko.lproj/InfoPlist.strings +++ /dev/null @@ -1,2 +0,0 @@ -/* Localized versions of Info.plist keys */ - diff --git a/PSUpdateApp_2/Localizations/ko.lproj/PSUdateApp.strings b/PSUpdateApp_2/Localizations/ko.lproj/PSUdateApp.strings deleted file mode 100644 index b8ac3e2..0000000 --- a/PSUpdateApp_2/Localizations/ko.lproj/PSUdateApp.strings +++ /dev/null @@ -1,17 +0,0 @@ -/* - Localizable.strings - PSUpdateApp - - Created by iBo on 18/02/13. - Copyright (c) 2013 D-Still. All rights reserved. - */ - -"alert.success.title" = "업데이트 안내"; - -"alert.success.default.text" = "%@ %@가 등록되었습니다. 지금 업데이트 하세요."; -"alert.success.force.text" = "%@ %@가 등록되었습니다. 지금 업데이트 하세요"; -"alert.success.remindme.text" = "%@ %@가 등록되었습니다. 지금 업데이트 하세요."; - -"alert.button.update" = "업데이트"; -"alert.button.skip" = "이 버전 안 함"; -"alert.button.remindme" = "나중에 알림"; diff --git a/PSUpdateApp_2/Localizations/ru.lproj/InfoPlist.strings b/PSUpdateApp_2/Localizations/ru.lproj/InfoPlist.strings deleted file mode 100644 index 477b28f..0000000 --- a/PSUpdateApp_2/Localizations/ru.lproj/InfoPlist.strings +++ /dev/null @@ -1,2 +0,0 @@ -/* Localized versions of Info.plist keys */ - diff --git a/PSUpdateApp_2/Localizations/ru.lproj/PSUdateApp.strings b/PSUpdateApp_2/Localizations/ru.lproj/PSUdateApp.strings deleted file mode 100644 index 2c19f20..0000000 --- a/PSUpdateApp_2/Localizations/ru.lproj/PSUdateApp.strings +++ /dev/null @@ -1,17 +0,0 @@ -/* - Localizable.strings - PSUpdateApp - - Created by iBo on 18/02/13. - Copyright (c) 2013 D-Still. All rights reserved. -*/ - -"alert.success.title" = "Доступно обновление"; - -"alert.success.default.text" = "Доступна новая версия %@. Вы хотите обновить сейчас до версии %@?"; -"alert.success.force.text" = "Доступна новая версия %@. Чтобы продолжить, пожалуйста, обновите до версии %@."; -"alert.success.remindme.text" = "Доступна новая версия %@. Вы хотите обновить до версии %@? Обновите сейчас или позже."; - -"alert.button.update" = "Обновить"; -"alert.button.skip" = "Пропустить"; -"alert.button.remindme" = "Не сейчас"; diff --git a/PSUpdateApp_2/Localizations/zh-Hans.lproj/InfoPlist.strings b/PSUpdateApp_2/Localizations/zh-Hans.lproj/InfoPlist.strings deleted file mode 100644 index 477b28f..0000000 --- a/PSUpdateApp_2/Localizations/zh-Hans.lproj/InfoPlist.strings +++ /dev/null @@ -1,2 +0,0 @@ -/* Localized versions of Info.plist keys */ - diff --git a/PSUpdateApp_2/Localizations/zh-Hans.lproj/PSUdateApp.strings b/PSUpdateApp_2/Localizations/zh-Hans.lproj/PSUdateApp.strings deleted file mode 100644 index 8736c91..0000000 --- a/PSUpdateApp_2/Localizations/zh-Hans.lproj/PSUdateApp.strings +++ /dev/null @@ -1,17 +0,0 @@ -/* - Localizable.strings - PSUpdateApp - - Created by iBo on 18/02/13. - Copyright (c) 2013 D-Still. All rights reserved. -*/ - -"alert.success.title" = "有可用的新版本"; - -"alert.success.default.text" = "有可用的新版本 %@。 你想现在升级到最新版吗?"; -"alert.success.force.text" = "有可用的新版本 %@。 请升级到最新版。"; -"alert.success.remindme.text" = "有可用的新版本 %@。 你想现在升级到最新版吗?现在马上升级还是稍后再提醒?"; - -"alert.button.update" = "马上升级"; -"alert.button.skip" = "跳过此次更新"; -"alert.button.remindme" = "稍后再提醒我"; \ No newline at end of file diff --git a/PSUpdateApp_2/PSUpdateApp.h b/PSUpdateApp_2/PSUpdateApp.h deleted file mode 100644 index b0fafee..0000000 --- a/PSUpdateApp_2/PSUpdateApp.h +++ /dev/null @@ -1,36 +0,0 @@ -// -// PSUpdateApp.h -// PSUpdateApp -// -// Created by iBo on 18/02/13. -// Copyright (c) 2013 D-Still. All rights reserved. -// - -#import - -typedef BOOL(^PSUpdateAppCompletionBlock)(NSError *error, BOOL updateAvailable, BOOL skip, id JSON); - -typedef enum { - DefaultStrategy = 0, - ForceStrategy, - RemindStrategy -} UpdateStrategy; - -@interface PSUpdateApp : NSObject - -@property (nonatomic, strong) NSString *appID, *appStoreLocation, *appName, *route, *updatePageUrl; -@property (nonatomic, strong) NSString *alertTitle, *alertDefaultMessage, *alertForceMessage, *alertRemindMessage; -@property (nonatomic, assign) UpdateStrategy strategy; -@property (nonatomic, assign) NSUInteger daysUntilPrompt; -@property (nonatomic, strong) NSDate *remindDate; - -+ (PSUpdateApp *) manager; - -- (void) startWithRoute:(NSString *)route; -- (void) startWithAppID:(NSString *)appId; -- (void) startWithAppID:(NSString *)appId store:(NSString *)store; - -- (void) detectAppVersion:(PSUpdateAppCompletionBlock)completionBlock; -- (void) setURLAdHoc:(NSString *)url; - -@end \ No newline at end of file diff --git a/PSUpdateApp_2/PSUpdateApp.m b/PSUpdateApp_2/PSUpdateApp.m deleted file mode 100644 index 0f9587c..0000000 --- a/PSUpdateApp_2/PSUpdateApp.m +++ /dev/null @@ -1,277 +0,0 @@ -// -// PSUpdateApp.m -// PSUpdateApp -// -// Created by iBo on 18/02/13. -// Copyright (c) 2013 D-Still. All rights reserved. -// - -#ifndef PSUdateAppLocalizedStrings -#define PSUdateAppLocalizedStrings(key) \ -NSLocalizedStringFromTable(key, @"PSUdateApp", nil) -#endif - -#import "PSUpdateApp.h" - -#import -#import - -#define APPLE_URL @"http://itunes.apple.com/lookup?" - -#define kCurrentAppVersion [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"] - -#ifdef DEBUG -#define DebugLog(...) NSLog(__VA_ARGS__) -#else -#define DebugLog(...) { } -#endif - -@interface NSObject (StringValidation) -- (BOOL) isValidObject; -- (BOOL) isValidString; -@end - -@implementation NSObject (ObjectValidation) - -- (BOOL) isValidObject -{ - if ( self && ![self isEqual:[NSNull null]] && [self isKindOfClass:[NSObject class]] ) - return YES; - else - return NO; -} - -- (BOOL) isValidString -{ - if ( [self isValidObject] && [self isKindOfClass:[NSString class]] && ![(NSString *)self isEqualToString:@""] ) - return YES; - else - return NO; -} - -@end - -////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////// - -@interface PSUpdateApp () { - NSString *_newVersion; -} -@end - -@implementation PSUpdateApp - -+ (PSUpdateApp *) manager -{ - static PSUpdateApp *sharedInstance = nil; - static dispatch_once_t oncePredicate; - - dispatch_once(&oncePredicate, ^{ - sharedInstance = [[PSUpdateApp alloc] init]; - }); - return sharedInstance; -} - -- (void) startWithRoute:(NSString *)route -{ - [self initWithAppID:nil store:nil route:route]; -} - -- (void) startWithAppID:(NSString *)appId store:(NSString *)store -{ - [self initWithAppID:appId store:store route:nil]; -} - -- (void) startWithAppID:(NSString *)appId -{ - [self initWithAppID:appId store:nil route:nil]; -} - -- (void) initWithAppID:(NSString *)appId store:(NSString *)store route:(NSString *)route -{ - [self setAppName:[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleDisplayName"]]; - [self setStrategy:DefaultStrategy]; - [self setAppID:appId]; - [self setAppStoreLocation: store ? store : [[NSLocale currentLocale] objectForKey: NSLocaleCountryCode]]; - [self setDaysUntilPrompt:2]; - [self setRoute:route]; -} - -- (void) detectAppVersion:(PSUpdateAppCompletionBlock)completionBlock -{ - if ( _strategy == RemindStrategy && [self remindDate] != nil && ![self checkConsecutiveDays] ) - return; - - AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; - [manager setResponseSerializer:[AFJSONResponseSerializer serializer]]; - [manager GET:[self setJsonURL] parameters:nil - success:^(AFHTTPRequestOperation *operation, id responseObject) { - DebugLog(@"JSON response: %@", responseObject); - - if ( [self isNewVersion:responseObject] ) { - BOOL skip = [self isSkipVersion]; - BOOL showAlert = YES; - - if ( completionBlock ) - showAlert = completionBlock(nil, YES, skip, responseObject); - if ( showAlert && !skip ) - [self showAlert]; - } else { - if ( completionBlock ) - completionBlock(nil, NO, NO, responseObject); - } - } - failure:^(AFHTTPRequestOperation *operation, NSError *error) { - if ( completionBlock ) - completionBlock(error, NO, NO, nil); - }]; -} - -- (NSString *) setJsonURL -{ - return self.route ? self.route : [NSString stringWithFormat:@"%@id=%@&country=%@", APPLE_URL, self.appID, self.appStoreLocation]; -} - -- (void) setURLAdHoc:(NSString *)url -{ - [self setRoute:[NSString stringWithFormat:url, self.appStoreLocation]]; -} - -#pragma mark - Check version - -- (BOOL) isNewVersion:(NSDictionary *)dictionary -{ - if ( [dictionary[@"results"] count] > 0 ) { - _newVersion = dictionary[@"results"][0][@"version"]; - [self setUpdatePageUrl:dictionary[@"results"][0][@"trackViewUrl"]]; - - if ( dictionary[@"results"][0][@"type"] ) - [self setStrategy: [dictionary[@"results"][0][@"type"] isEqualToString:@"mandatory"] ? ForceStrategy : DefaultStrategy]; - - return [kCurrentAppVersion compare:_newVersion options:NSNumericSearch] == NSOrderedAscending; - } - - return NO; -} - -- (BOOL) isSkipVersion -{ - return [[[NSUserDefaults standardUserDefaults] objectForKey:@"skipVersion"] isEqualToString:_newVersion]; -} - -#pragma mark - remindDate getter / setter - -- (NSDate *) remindDate -{ - return [[NSUserDefaults standardUserDefaults] objectForKey:@"remindDate"]; -} - -- (void) setRemindDate:(NSDate *)remindDate -{ - [[NSUserDefaults standardUserDefaults] setObject:[NSDate date] forKey:@"remindDate"]; - [[NSUserDefaults standardUserDefaults] synchronize]; -} - -#pragma mark - Show alert - -- (void) showAlert -{ - NSString *alertTitle = [self.alertTitle isValidString] ? self.alertTitle : PSUdateAppLocalizedStrings(@"alert.success.title"); - - switch ( self.strategy ) { - case DefaultStrategy: - default: - { - UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:alertTitle - message:[self.alertDefaultMessage isValidString] ? self.alertDefaultMessage : [NSString stringWithFormat:PSUdateAppLocalizedStrings(@"alert.success.default.text"), self.appName, _newVersion] - delegate:self - cancelButtonTitle:PSUdateAppLocalizedStrings(@"alert.button.skip") - otherButtonTitles:PSUdateAppLocalizedStrings(@"alert.button.update"), nil]; - [alertView show]; - } - break; - - case ForceStrategy: - { - UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:alertTitle - message:[self.alertForceMessage isValidString] ? self.alertForceMessage : [NSString stringWithFormat:PSUdateAppLocalizedStrings(@"alert.success.force.text"), self.appName, _newVersion] - delegate:self - cancelButtonTitle:PSUdateAppLocalizedStrings(@"alert.button.update") - otherButtonTitles:nil, nil]; - [alertView show]; - } - break; - - case RemindStrategy: - { - UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:alertTitle - message:[self.alertRemindMessage isValidString] ? self.alertRemindMessage : [NSString stringWithFormat:PSUdateAppLocalizedStrings(@"alert.success.remindme.text"), _appName, _newVersion] - delegate:self - cancelButtonTitle:PSUdateAppLocalizedStrings(@"alert.button.skip") - otherButtonTitles:PSUdateAppLocalizedStrings(@"alert.button.update"), PSUdateAppLocalizedStrings(@"alert.button.remindme"), nil]; - [alertView show]; - } - break; - } -} - - -#pragma mark - UIAlertViewDelegate Methods - -- (void) alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex -{ - switch ( self.strategy ) { - case DefaultStrategy: - default: - { - if ( buttonIndex == 0 ) { - [[NSUserDefaults standardUserDefaults] setObject:_newVersion forKey:@"skipVersion"]; - [[NSUserDefaults standardUserDefaults] synchronize]; - } else { - [[UIApplication sharedApplication] openURL:[NSURL URLWithString:self.updatePageUrl]]; - } - } - - break; - - case ForceStrategy: - [[UIApplication sharedApplication] openURL:[NSURL URLWithString:self.updatePageUrl]]; - break; - - case RemindStrategy: - { - if ( buttonIndex == 0 ) { - [[NSUserDefaults standardUserDefaults] setObject:_newVersion forKey:@"skipVersion"]; - [[NSUserDefaults standardUserDefaults] synchronize]; - } else if ( buttonIndex == 1 ) - [[UIApplication sharedApplication] openURL:[NSURL URLWithString:self.updatePageUrl]]; - else - [self setRemindDate:[NSDate date]]; - } - - break; - } -} - -#pragma mark - Check if have passed - -- (BOOL) checkConsecutiveDays -{ - NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; - - NSDate *today = [NSDate date]; - - NSDate *dateToRound = [[self remindDate] earlierDate:today]; - NSDateComponents * dateComponents = [gregorian components:NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit - fromDate:dateToRound]; - - NSDate *roundedDate = [gregorian dateFromComponents:dateComponents]; - NSDate *otherDate = (dateToRound == [self remindDate]) ? today : [self remindDate] ; - NSInteger diff = abs([roundedDate timeIntervalSinceDate:otherDate]); - NSInteger daysDifference = floor(diff/(24 * 60 * 60)); - - return daysDifference >= _daysUntilPrompt; -} - -@end diff --git a/Podfile b/Podfile new file mode 100644 index 0000000..c28f470 --- /dev/null +++ b/Podfile @@ -0,0 +1,5 @@ +platform :ios, '8.0' + +target "PSUpdateApp" do + pod 'AFNetworking', '~> 3.0' +end diff --git a/Projects/.gitignore b/Projects/.gitignore deleted file mode 100644 index 3d6df18..0000000 --- a/Projects/.gitignore +++ /dev/null @@ -1,20 +0,0 @@ -# Xcode -.DS_Store -build/ -*.pbxuser -!default.pbxuser -*.mode1v3 -!default.mode1v3 -*.mode2v3 -!default.mode2v3 -*.perspectivev3 -!default.perspectivev3 -*.xcworkspace -!default.xcworkspace -xcuserdata -profile -*.moved-aside -DerivedData -.idea/ -Pods/* -Podfile.lock \ No newline at end of file diff --git a/Projects/iOS < 6/.gitignore b/Projects/iOS < 6/.gitignore deleted file mode 100644 index db5d2b4..0000000 --- a/Projects/iOS < 6/.gitignore +++ /dev/null @@ -1,19 +0,0 @@ -# Xcode -build/* -*.pbxuser -!default.pbxuser -*.mode1v3 -!default.mode1v3 -*.mode2v3 -!default.mode2v3 -*.perspectivev3 -!default.perspectivev3 -*.xcworkspace -!default.xcworkspace -xcuserdata -profile -*.moved-aside -Pods/* -Podfile.lock -.DS_Store -.bash_profile \ No newline at end of file diff --git a/Projects/iOS < 6/PSUpdateApp.xcodeproj/project.pbxproj b/Projects/iOS < 6/PSUpdateApp.xcodeproj/project.pbxproj deleted file mode 100644 index 71421c7..0000000 --- a/Projects/iOS < 6/PSUpdateApp.xcodeproj/project.pbxproj +++ /dev/null @@ -1,578 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 03DB4AB7EC1E4519B78E23B6 /* libPods-PSUpdateAppTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4F666679D6D54465B91878A9 /* libPods-PSUpdateAppTests.a */; }; - 1056B26C16D3F7E90061FCF0 /* SenTestingKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1056B26B16D3F7E80061FCF0 /* SenTestingKit.framework */; }; - 1056B26D16D3F7E90061FCF0 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 10A2FCD916D29862008C1FDB /* UIKit.framework */; }; - 1056B26E16D3F7E90061FCF0 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 10A2FCDB16D29862008C1FDB /* Foundation.framework */; }; - 1056B27416D3F7E90061FCF0 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 1056B27216D3F7E90061FCF0 /* InfoPlist.strings */; }; - 1056B27D16D3FD200061FCF0 /* PSUpdateSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 1056B27C16D3FD200061FCF0 /* PSUpdateSpec.m */; }; - 10A2FCDA16D29862008C1FDB /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 10A2FCD916D29862008C1FDB /* UIKit.framework */; }; - 10A2FCDC16D29862008C1FDB /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 10A2FCDB16D29862008C1FDB /* Foundation.framework */; }; - 10A2FCDE16D29862008C1FDB /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 10A2FCDD16D29862008C1FDB /* CoreGraphics.framework */; }; - 10A2FCE416D29862008C1FDB /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 10A2FCE216D29862008C1FDB /* InfoPlist.strings */; }; - 10A2FCE616D29862008C1FDB /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 10A2FCE516D29862008C1FDB /* main.m */; }; - 10A2FCEA16D29862008C1FDB /* PSAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 10A2FCE916D29862008C1FDB /* PSAppDelegate.m */; }; - 10A2FCEC16D29862008C1FDB /* Default.png in Resources */ = {isa = PBXBuildFile; fileRef = 10A2FCEB16D29862008C1FDB /* Default.png */; }; - 10A2FCEE16D29862008C1FDB /* Default@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 10A2FCED16D29862008C1FDB /* Default@2x.png */; }; - 10A2FCF016D29862008C1FDB /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 10A2FCEF16D29862008C1FDB /* Default-568h@2x.png */; }; - 10A2FCF816D298F5008C1FDB /* MainViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 10A2FCF716D298F5008C1FDB /* MainViewController.m */; }; - 10A2FCFC16D29BC3008C1FDB /* PSUpdateApp.m in Sources */ = {isa = PBXBuildFile; fileRef = 10A2FCFB16D29BC3008C1FDB /* PSUpdateApp.m */; }; - 10E51F7F16D2D32700520862 /* PSUdateApp.strings in Resources */ = {isa = PBXBuildFile; fileRef = 10E51F8116D2D32700520862 /* PSUdateApp.strings */; }; - 889403B7834C44408D1C9A54 /* libPods.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 05FF8E79789742E59BD4A585 /* libPods.a */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - 1056B28016D42E190061FCF0 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 10A2FCCE16D29862008C1FDB /* Project object */; - proxyType = 1; - remoteGlobalIDString = 10A2FCD516D29862008C1FDB; - remoteInfo = PSUpdateApp; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - 05FF8E79789742E59BD4A585 /* libPods.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libPods.a; sourceTree = BUILT_PRODUCTS_DIR; }; - 1056B26A16D3F7E80061FCF0 /* PSUpdateAppTests.octest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = PSUpdateAppTests.octest; sourceTree = BUILT_PRODUCTS_DIR; }; - 1056B26B16D3F7E80061FCF0 /* SenTestingKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SenTestingKit.framework; path = Library/Frameworks/SenTestingKit.framework; sourceTree = DEVELOPER_DIR; }; - 1056B27116D3F7E90061FCF0 /* PSUpdateAppTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "PSUpdateAppTests-Info.plist"; sourceTree = ""; }; - 1056B27316D3F7E90061FCF0 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; - 1056B27816D3F7E90061FCF0 /* PSUpdateAppTests-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "PSUpdateAppTests-Prefix.pch"; sourceTree = ""; }; - 1056B27C16D3FD200061FCF0 /* PSUpdateSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PSUpdateSpec.m; sourceTree = ""; }; - 106B179816D56F29005AE3DB /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/PSUdateApp.strings; sourceTree = ""; }; - 106B179916D56F29005AE3DB /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/InfoPlist.strings; sourceTree = ""; }; - 106B179A16D56F29005AE3DB /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/InfoPlist.strings; sourceTree = ""; }; - 106B179B16D571FB005AE3DB /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/PSUdateApp.strings; sourceTree = ""; }; - 106B179C16D571FB005AE3DB /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/InfoPlist.strings; sourceTree = ""; }; - 106B179D16D571FB005AE3DB /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/InfoPlist.strings; sourceTree = ""; }; - 10A2FCD616D29862008C1FDB /* PSUpdateApp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = PSUpdateApp.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 10A2FCD916D29862008C1FDB /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; - 10A2FCDB16D29862008C1FDB /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; - 10A2FCDD16D29862008C1FDB /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; - 10A2FCE116D29862008C1FDB /* PSUpdateApp-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "PSUpdateApp-Info.plist"; sourceTree = ""; }; - 10A2FCE316D29862008C1FDB /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; - 10A2FCE516D29862008C1FDB /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; - 10A2FCE716D29862008C1FDB /* PSUpdateApp-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "PSUpdateApp-Prefix.pch"; sourceTree = ""; }; - 10A2FCE816D29862008C1FDB /* PSAppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PSAppDelegate.h; sourceTree = ""; }; - 10A2FCE916D29862008C1FDB /* PSAppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PSAppDelegate.m; sourceTree = ""; }; - 10A2FCEB16D29862008C1FDB /* Default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Default.png; sourceTree = ""; }; - 10A2FCED16D29862008C1FDB /* Default@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default@2x.png"; sourceTree = ""; }; - 10A2FCEF16D29862008C1FDB /* Default-568h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-568h@2x.png"; sourceTree = ""; }; - 10A2FCF616D298F5008C1FDB /* MainViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MainViewController.h; sourceTree = ""; }; - 10A2FCF716D298F5008C1FDB /* MainViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MainViewController.m; sourceTree = ""; }; - 10A2FCFA16D29BC3008C1FDB /* PSUpdateApp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PSUpdateApp.h; path = ../../../PSUpdateApp/PSUpdateApp.h; sourceTree = ""; }; - 10A2FCFB16D29BC3008C1FDB /* PSUpdateApp.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PSUpdateApp.m; path = ../../../PSUpdateApp/PSUpdateApp.m; sourceTree = ""; }; - 10A2FCFD16D29DDE008C1FDB /* CWLSynthesizeSingleton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CWLSynthesizeSingleton.h; path = ../../../PSUpdateApp/CWLSynthesizeSingleton.h; sourceTree = ""; }; - 10E51F8016D2D32700520862 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/PSUdateApp.strings; sourceTree = ""; }; - 4F666679D6D54465B91878A9 /* libPods-PSUpdateAppTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-PSUpdateAppTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 8ACC48EC17939FA100E3C39D /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/PSUdateApp.strings"; sourceTree = ""; }; - 8ACC48ED17939FA200E3C39D /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/InfoPlist.strings"; sourceTree = ""; }; - 8ACC48EE17939FA200E3C39D /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/InfoPlist.strings"; sourceTree = ""; }; - 9A109AEC17A65C900034C4D0 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/PSUdateApp.strings; sourceTree = ""; }; - 9A109AED17A65CA40034C4D0 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/PSUdateApp.strings; sourceTree = ""; }; - 9A109AEE17A65CB30034C4D0 /* ko */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ko; path = ko.lproj/PSUdateApp.strings; sourceTree = ""; }; - 9A109AEF17A65CBC0034C4D0 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/InfoPlist.strings; sourceTree = ""; }; - 9A109AF017A65CC70034C4D0 /* ko */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ko; path = ko.lproj/InfoPlist.strings; sourceTree = ""; }; - 9A109AF117A65CD20034C4D0 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/InfoPlist.strings; sourceTree = ""; }; - DD6B5C985D3E4316A8B7B6D2 /* Pods.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.xcconfig; path = Pods/Pods.xcconfig; sourceTree = SOURCE_ROOT; }; - E9277A6250104A848C749908 /* Pods-PSUpdateAppTests.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-PSUpdateAppTests.xcconfig"; path = "Pods/Pods-PSUpdateAppTests.xcconfig"; sourceTree = SOURCE_ROOT; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 1056B26616D3F7E80061FCF0 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 1056B26C16D3F7E90061FCF0 /* SenTestingKit.framework in Frameworks */, - 1056B26D16D3F7E90061FCF0 /* UIKit.framework in Frameworks */, - 1056B26E16D3F7E90061FCF0 /* Foundation.framework in Frameworks */, - 03DB4AB7EC1E4519B78E23B6 /* libPods-PSUpdateAppTests.a in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 10A2FCD316D29862008C1FDB /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 10A2FCDA16D29862008C1FDB /* UIKit.framework in Frameworks */, - 10A2FCDC16D29862008C1FDB /* Foundation.framework in Frameworks */, - 10A2FCDE16D29862008C1FDB /* CoreGraphics.framework in Frameworks */, - 889403B7834C44408D1C9A54 /* libPods.a in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 1056B26F16D3F7E90061FCF0 /* PSUpdateAppTests */ = { - isa = PBXGroup; - children = ( - 1056B27C16D3FD200061FCF0 /* PSUpdateSpec.m */, - 1056B27016D3F7E90061FCF0 /* Supporting Files */, - ); - path = PSUpdateAppTests; - sourceTree = ""; - }; - 1056B27016D3F7E90061FCF0 /* Supporting Files */ = { - isa = PBXGroup; - children = ( - 1056B27116D3F7E90061FCF0 /* PSUpdateAppTests-Info.plist */, - 1056B27216D3F7E90061FCF0 /* InfoPlist.strings */, - 1056B27816D3F7E90061FCF0 /* PSUpdateAppTests-Prefix.pch */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; - 10A2FCCD16D29862008C1FDB = { - isa = PBXGroup; - children = ( - 10A2FCF916D29B20008C1FDB /* PSUpdateApp */, - 10A2FCDF16D29862008C1FDB /* Example */, - 1056B26F16D3F7E90061FCF0 /* PSUpdateAppTests */, - 10A2FCD816D29862008C1FDB /* Frameworks */, - 10A2FCD716D29862008C1FDB /* Products */, - DD6B5C985D3E4316A8B7B6D2 /* Pods.xcconfig */, - E9277A6250104A848C749908 /* Pods-PSUpdateAppTests.xcconfig */, - ); - sourceTree = ""; - }; - 10A2FCD716D29862008C1FDB /* Products */ = { - isa = PBXGroup; - children = ( - 10A2FCD616D29862008C1FDB /* PSUpdateApp.app */, - 1056B26A16D3F7E80061FCF0 /* PSUpdateAppTests.octest */, - ); - name = Products; - sourceTree = ""; - }; - 10A2FCD816D29862008C1FDB /* Frameworks */ = { - isa = PBXGroup; - children = ( - 10A2FCD916D29862008C1FDB /* UIKit.framework */, - 10A2FCDB16D29862008C1FDB /* Foundation.framework */, - 10A2FCDD16D29862008C1FDB /* CoreGraphics.framework */, - 05FF8E79789742E59BD4A585 /* libPods.a */, - 1056B26B16D3F7E80061FCF0 /* SenTestingKit.framework */, - 4F666679D6D54465B91878A9 /* libPods-PSUpdateAppTests.a */, - ); - name = Frameworks; - sourceTree = ""; - }; - 10A2FCDF16D29862008C1FDB /* Example */ = { - isa = PBXGroup; - children = ( - 10A2FCE816D29862008C1FDB /* PSAppDelegate.h */, - 10A2FCE916D29862008C1FDB /* PSAppDelegate.m */, - 10A2FCF616D298F5008C1FDB /* MainViewController.h */, - 10A2FCF716D298F5008C1FDB /* MainViewController.m */, - 10A2FCE016D29862008C1FDB /* Supporting Files */, - ); - name = Example; - path = PSUpdateApp; - sourceTree = ""; - }; - 10A2FCE016D29862008C1FDB /* Supporting Files */ = { - isa = PBXGroup; - children = ( - 10A2FCE116D29862008C1FDB /* PSUpdateApp-Info.plist */, - 10E51F8116D2D32700520862 /* PSUdateApp.strings */, - 10A2FCE216D29862008C1FDB /* InfoPlist.strings */, - 10A2FCE516D29862008C1FDB /* main.m */, - 10A2FCE716D29862008C1FDB /* PSUpdateApp-Prefix.pch */, - 10A2FCEB16D29862008C1FDB /* Default.png */, - 10A2FCED16D29862008C1FDB /* Default@2x.png */, - 10A2FCEF16D29862008C1FDB /* Default-568h@2x.png */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; - 10A2FCF916D29B20008C1FDB /* PSUpdateApp */ = { - isa = PBXGroup; - children = ( - 10A2FCFD16D29DDE008C1FDB /* CWLSynthesizeSingleton.h */, - 10A2FCFA16D29BC3008C1FDB /* PSUpdateApp.h */, - 10A2FCFB16D29BC3008C1FDB /* PSUpdateApp.m */, - ); - path = PSUpdateApp; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 1056B26916D3F7E80061FCF0 /* PSUpdateAppTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 1056B27B16D3F7E90061FCF0 /* Build configuration list for PBXNativeTarget "PSUpdateAppTests" */; - buildPhases = ( - 1056B26516D3F7E80061FCF0 /* Sources */, - 1056B26616D3F7E80061FCF0 /* Frameworks */, - 1056B26716D3F7E80061FCF0 /* Resources */, - 1056B26816D3F7E80061FCF0 /* ShellScript */, - D02385A547434496A95F7D0B /* Copy Pods Resources */, - ); - buildRules = ( - ); - dependencies = ( - 1056B28116D42E190061FCF0 /* PBXTargetDependency */, - ); - name = PSUpdateAppTests; - productName = PSUpdateAppTests; - productReference = 1056B26A16D3F7E80061FCF0 /* PSUpdateAppTests.octest */; - productType = "com.apple.product-type.bundle"; - }; - 10A2FCD516D29862008C1FDB /* PSUpdateApp */ = { - isa = PBXNativeTarget; - buildConfigurationList = 10A2FCF316D29862008C1FDB /* Build configuration list for PBXNativeTarget "PSUpdateApp" */; - buildPhases = ( - 10A2FCD216D29862008C1FDB /* Sources */, - 10A2FCD316D29862008C1FDB /* Frameworks */, - 10A2FCD416D29862008C1FDB /* Resources */, - E1C437EC47BC4FBA84BBF1CF /* Copy Pods Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = PSUpdateApp; - productName = PSUpdateApp; - productReference = 10A2FCD616D29862008C1FDB /* PSUpdateApp.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 10A2FCCE16D29862008C1FDB /* Project object */ = { - isa = PBXProject; - attributes = { - CLASSPREFIX = PS; - LastUpgradeCheck = 0460; - ORGANIZATIONNAME = "D-Still"; - }; - buildConfigurationList = 10A2FCD116D29862008C1FDB /* Build configuration list for PBXProject "PSUpdateApp" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - it, - es, - "zh-Hans", - ru, - ar, - ko, - ); - mainGroup = 10A2FCCD16D29862008C1FDB; - productRefGroup = 10A2FCD716D29862008C1FDB /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 10A2FCD516D29862008C1FDB /* PSUpdateApp */, - 1056B26916D3F7E80061FCF0 /* PSUpdateAppTests */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 1056B26716D3F7E80061FCF0 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 1056B27416D3F7E90061FCF0 /* InfoPlist.strings in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 10A2FCD416D29862008C1FDB /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 10A2FCE416D29862008C1FDB /* InfoPlist.strings in Resources */, - 10A2FCEC16D29862008C1FDB /* Default.png in Resources */, - 10A2FCEE16D29862008C1FDB /* Default@2x.png in Resources */, - 10A2FCF016D29862008C1FDB /* Default-568h@2x.png in Resources */, - 10E51F7F16D2D32700520862 /* PSUdateApp.strings in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 1056B26816D3F7E80061FCF0 /* ShellScript */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "# Run the unit tests in this test bundle.\n\"${SYSTEM_DEVELOPER_DIR}/Tools/RunUnitTests\"\n"; - }; - D02385A547434496A95F7D0B /* Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Copy Pods Resources"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Pods-PSUpdateAppTests-resources.sh\"\n"; - }; - E1C437EC47BC4FBA84BBF1CF /* Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Copy Pods Resources"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Pods-resources.sh\"\n"; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 1056B26516D3F7E80061FCF0 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 1056B27D16D3FD200061FCF0 /* PSUpdateSpec.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 10A2FCD216D29862008C1FDB /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 10A2FCE616D29862008C1FDB /* main.m in Sources */, - 10A2FCEA16D29862008C1FDB /* PSAppDelegate.m in Sources */, - 10A2FCF816D298F5008C1FDB /* MainViewController.m in Sources */, - 10A2FCFC16D29BC3008C1FDB /* PSUpdateApp.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - 1056B28116D42E190061FCF0 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 10A2FCD516D29862008C1FDB /* PSUpdateApp */; - targetProxy = 1056B28016D42E190061FCF0 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin PBXVariantGroup section */ - 1056B27216D3F7E90061FCF0 /* InfoPlist.strings */ = { - isa = PBXVariantGroup; - children = ( - 1056B27316D3F7E90061FCF0 /* en */, - 106B179A16D56F29005AE3DB /* it */, - 106B179D16D571FB005AE3DB /* es */, - 8ACC48EE17939FA200E3C39D /* zh-Hans */, - ); - name = InfoPlist.strings; - sourceTree = ""; - }; - 10A2FCE216D29862008C1FDB /* InfoPlist.strings */ = { - isa = PBXVariantGroup; - children = ( - 10A2FCE316D29862008C1FDB /* en */, - 106B179916D56F29005AE3DB /* it */, - 106B179C16D571FB005AE3DB /* es */, - 8ACC48ED17939FA200E3C39D /* zh-Hans */, - 9A109AEF17A65CBC0034C4D0 /* ar */, - 9A109AF017A65CC70034C4D0 /* ko */, - 9A109AF117A65CD20034C4D0 /* ru */, - ); - name = InfoPlist.strings; - path = ../../../PSUpdateApp/Localizations; - sourceTree = ""; - }; - 10E51F8116D2D32700520862 /* PSUdateApp.strings */ = { - isa = PBXVariantGroup; - children = ( - 10E51F8016D2D32700520862 /* en */, - 106B179816D56F29005AE3DB /* it */, - 106B179B16D571FB005AE3DB /* es */, - 8ACC48EC17939FA100E3C39D /* zh-Hans */, - 9A109AEC17A65C900034C4D0 /* ru */, - 9A109AED17A65CA40034C4D0 /* ar */, - 9A109AEE17A65CB30034C4D0 /* ko */, - ); - name = PSUdateApp.strings; - path = ../../../PSUpdateApp/Localizations; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 1056B27916D3F7E90061FCF0 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = E9277A6250104A848C749908 /* Pods-PSUpdateAppTests.xcconfig */; - buildSettings = { - BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/PSUpdateApp.app/PSUpdateApp"; - FRAMEWORK_SEARCH_PATHS = ( - "\"$(SDKROOT)/Developer/Library/Frameworks\"", - "\"$(DEVELOPER_LIBRARY_DIR)/Frameworks\"", - ); - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "PSUpdateAppTests/PSUpdateAppTests-Prefix.pch"; - INFOPLIST_FILE = "PSUpdateAppTests/PSUpdateAppTests-Info.plist"; - PRODUCT_NAME = "$(TARGET_NAME)"; - TEST_HOST = "$(BUNDLE_LOADER)"; - WRAPPER_EXTENSION = octest; - }; - name = Debug; - }; - 1056B27A16D3F7E90061FCF0 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = E9277A6250104A848C749908 /* Pods-PSUpdateAppTests.xcconfig */; - buildSettings = { - BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/PSUpdateApp.app/PSUpdateApp"; - FRAMEWORK_SEARCH_PATHS = ( - "\"$(SDKROOT)/Developer/Library/Frameworks\"", - "\"$(DEVELOPER_LIBRARY_DIR)/Frameworks\"", - ); - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "PSUpdateAppTests/PSUpdateAppTests-Prefix.pch"; - INFOPLIST_FILE = "PSUpdateAppTests/PSUpdateAppTests-Info.plist"; - PRODUCT_NAME = "$(TARGET_NAME)"; - TEST_HOST = "$(BUNDLE_LOADER)"; - WRAPPER_EXTENSION = octest; - }; - name = Release; - }; - 10A2FCF116D29862008C1FDB /* 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; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - 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 = 5.0; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - }; - name = Debug; - }; - 10A2FCF216D29862008C1FDB /* 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; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - 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 = 5.0; - OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1"; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 10A2FCF416D29862008C1FDB /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = DD6B5C985D3E4316A8B7B6D2 /* Pods.xcconfig */; - buildSettings = { - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "PSUpdateApp/PSUpdateApp-Prefix.pch"; - INFOPLIST_FILE = "PSUpdateApp/PSUpdateApp-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 5.0; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos6.1; - VALID_ARCHS = "armv7 armv7s"; - WRAPPER_EXTENSION = app; - }; - name = Debug; - }; - 10A2FCF516D29862008C1FDB /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = DD6B5C985D3E4316A8B7B6D2 /* Pods.xcconfig */; - buildSettings = { - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "PSUpdateApp/PSUpdateApp-Prefix.pch"; - INFOPLIST_FILE = "PSUpdateApp/PSUpdateApp-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 5.0; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos6.1; - VALID_ARCHS = "armv7 armv7s"; - WRAPPER_EXTENSION = app; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 1056B27B16D3F7E90061FCF0 /* Build configuration list for PBXNativeTarget "PSUpdateAppTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1056B27916D3F7E90061FCF0 /* Debug */, - 1056B27A16D3F7E90061FCF0 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 10A2FCD116D29862008C1FDB /* Build configuration list for PBXProject "PSUpdateApp" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 10A2FCF116D29862008C1FDB /* Debug */, - 10A2FCF216D29862008C1FDB /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 10A2FCF316D29862008C1FDB /* Build configuration list for PBXNativeTarget "PSUpdateApp" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 10A2FCF416D29862008C1FDB /* Debug */, - 10A2FCF516D29862008C1FDB /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 10A2FCCE16D29862008C1FDB /* Project object */; -} diff --git a/Projects/iOS < 6/PSUpdateApp/Default-568h@2x.png b/Projects/iOS < 6/PSUpdateApp/Default-568h@2x.png deleted file mode 100644 index 0891b7a..0000000 Binary files a/Projects/iOS < 6/PSUpdateApp/Default-568h@2x.png and /dev/null differ diff --git a/Projects/iOS < 6/PSUpdateApp/Default.png b/Projects/iOS < 6/PSUpdateApp/Default.png deleted file mode 100644 index 4c8ca6f..0000000 Binary files a/Projects/iOS < 6/PSUpdateApp/Default.png and /dev/null differ diff --git a/Projects/iOS < 6/PSUpdateApp/Default@2x.png b/Projects/iOS < 6/PSUpdateApp/Default@2x.png deleted file mode 100644 index 35b84cf..0000000 Binary files a/Projects/iOS < 6/PSUpdateApp/Default@2x.png and /dev/null differ diff --git a/Projects/iOS < 6/PSUpdateApp/MainViewController.h b/Projects/iOS < 6/PSUpdateApp/MainViewController.h deleted file mode 100644 index 7ffe78b..0000000 --- a/Projects/iOS < 6/PSUpdateApp/MainViewController.h +++ /dev/null @@ -1,13 +0,0 @@ -// -// MainViewController.h -// PSUpdateApp -// -// Created by iBo on 18/02/13. -// Copyright (c) 2013 D-Still. All rights reserved. -// - -#import - -@interface MainViewController : UIViewController - -@end diff --git a/Projects/iOS < 6/PSUpdateApp/MainViewController.m b/Projects/iOS < 6/PSUpdateApp/MainViewController.m deleted file mode 100644 index 6b6330e..0000000 --- a/Projects/iOS < 6/PSUpdateApp/MainViewController.m +++ /dev/null @@ -1,38 +0,0 @@ -// -// MainViewController.m -// PSUpdateApp -// -// Created by iBo on 18/02/13. -// Copyright (c) 2013 D-Still. All rights reserved. -// - -#import "MainViewController.h" - -@interface MainViewController () - -@end - -@implementation MainViewController - -- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil -{ - self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; - if (self) { - // Custom initialization - } - return self; -} - -- (void)viewDidLoad -{ - [super viewDidLoad]; - // Do any additional setup after loading the view. -} - -- (void)didReceiveMemoryWarning -{ - [super didReceiveMemoryWarning]; - // Dispose of any resources that can be recreated. -} - -@end diff --git a/Projects/iOS < 6/PSUpdateApp/PSAppDelegate.h b/Projects/iOS < 6/PSUpdateApp/PSAppDelegate.h deleted file mode 100644 index cbfc379..0000000 --- a/Projects/iOS < 6/PSUpdateApp/PSAppDelegate.h +++ /dev/null @@ -1,15 +0,0 @@ -// -// PSAppDelegate.h -// PSUpdateApp -// -// Created by iBo on 18/02/13. -// Copyright (c) 2013 D-Still. All rights reserved. -// - -#import - -@interface PSAppDelegate : UIResponder - -@property (strong, nonatomic) UIWindow *window; - -@end \ No newline at end of file diff --git a/Projects/iOS < 6/PSUpdateApp/PSAppDelegate.m b/Projects/iOS < 6/PSUpdateApp/PSAppDelegate.m deleted file mode 100644 index 5c317f3..0000000 --- a/Projects/iOS < 6/PSUpdateApp/PSAppDelegate.m +++ /dev/null @@ -1,97 +0,0 @@ -// -// PSAppDelegate.m -// PSUpdateApp -// -// Created by iBo on 18/02/13. -// Copyright (c) 2013 D-Still. All rights reserved. -// - -#import "PSAppDelegate.h" -#import "MainViewController.h" - -#define FAKE_ROUTE @"http://paperstreetsoapdesign.com/development/updateapp/fake.json" - -@implementation PSAppDelegate - -- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions -{ - self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; - // Override point for customization after application launch. - self.window.backgroundColor = [UIColor whiteColor]; - self.window.rootViewController = [[MainViewController alloc] init]; - [self.window makeKeyAndVisible]; - -//--- DEFAULT MODE -// Start in default mode with your appID. - [PSUpdateApp startWithAppID:@"529119648"]; - - -//--- CUSTOM LOCATION MODE -// Start with your appID and with the store location. The default mode set the store location by the device location. -// More information about the store code here: http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 -// [PSUpdateApp startWithAppID:@"529119648" store:@"US"]; - -//--- CUSTOM URL MODE -// You can start with a custom url, if you want to detect the version about a ad hoc distribution app. -// [PSUpdateApp startWithRoute:FAKE_ROUTE]; - -//--- ALERT STRATEGIES -// The strategies change the Alert buttons rappresentation -// The Default Strategy has 2 buttons: "Skip this version" and "Update" -// You can set your strategy with: -// DefaultStrategy -> default mode -// ForceStrategy -> force the update. The alert has only the update button -// RemindStrategy -> Add the remind me button. -// -// You can set the strategy with: -// [[PSUpdateApp sharedPSUpdateApp] setStrategy:RemindStrategy]; -// -// With RemindStrategy the alert will appear after 2 days (2 is the default value) from the remind action. -// If you want you can set the days until promt with: -// [[PSUpdateApp sharedPSUpdateApp] setDaysUntilPrompt:10]; - - - -// For more information read the documentation here: https://github.com/danielebogo/PSUpdateApp - - return YES; -} - -- (void)applicationWillResignActive:(UIApplication *)application -{ - // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. - // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. -} - -- (void)applicationDidEnterBackground:(UIApplication *)application -{ - // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. - // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. -} - -- (void)applicationWillEnterForeground:(UIApplication *)application -{ - // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background. -} - -- (void)applicationDidBecomeActive:(UIApplication *)application -{ - // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. - -//--- DETECT VERSION -// Start to detect the version. In this case the block is nil, and the component use the default alert - [[PSUpdateApp sharedPSUpdateApp] detectAppVersion:nil]; - -//--- DETECT VERSION WITH BLOCK -// You can use the completion block to implement you custom alert and actions -// [[PSUpdateApp sharedPSUpdateApp] detectAppVersion:^(NSError *error, BOOL success, id JSON) { -// NSLog(@"UPDATE: %@", JSON); -// }]; -} - -- (void)applicationWillTerminate:(UIApplication *)application -{ - // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. -} - -@end diff --git a/Projects/iOS < 6/PSUpdateApp/PSUpdateApp-Info.plist b/Projects/iOS < 6/PSUpdateApp/PSUpdateApp-Info.plist deleted file mode 100644 index 1556df7..0000000 --- a/Projects/iOS < 6/PSUpdateApp/PSUpdateApp-Info.plist +++ /dev/null @@ -1,36 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleDisplayName - ${PRODUCT_NAME} - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIdentifier - com.d-still.${PRODUCT_NAME:rfc1034identifier} - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0.9 - CFBundleSignature - ???? - CFBundleVersion - 1.0.9 - LSRequiresIPhoneOS - - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - - - diff --git a/Projects/iOS < 6/PSUpdateApp/PSUpdateApp-Prefix.pch b/Projects/iOS < 6/PSUpdateApp/PSUpdateApp-Prefix.pch deleted file mode 100644 index e811b4a..0000000 --- a/Projects/iOS < 6/PSUpdateApp/PSUpdateApp-Prefix.pch +++ /dev/null @@ -1,15 +0,0 @@ -// -// Prefix header for all source files of the 'PSUpdateApp' target in the 'PSUpdateApp' project -// - -#import - -#ifndef __IPHONE_3_0 -#warning "This project uses features only available in iOS SDK 3.0 and later." -#endif - -#ifdef __OBJC__ - #import - #import - #import "PSUpdateApp.h" -#endif diff --git a/Projects/iOS < 6/PSUpdateApp/main.m b/Projects/iOS < 6/PSUpdateApp/main.m deleted file mode 100644 index f6d35c1..0000000 --- a/Projects/iOS < 6/PSUpdateApp/main.m +++ /dev/null @@ -1,18 +0,0 @@ -// -// main.m -// PSUpdateApp -// -// Created by iBo on 18/02/13. -// Copyright (c) 2013 D-Still. All rights reserved. -// - -#import - -#import "PSAppDelegate.h" - -int main(int argc, char *argv[]) -{ - @autoreleasepool { - return UIApplicationMain(argc, argv, nil, NSStringFromClass([PSAppDelegate class])); - } -} diff --git a/Projects/iOS < 6/PSUpdateAppTests/PSUpdateAppTests-Prefix.pch b/Projects/iOS < 6/PSUpdateAppTests/PSUpdateAppTests-Prefix.pch deleted file mode 100644 index 3a564ab..0000000 --- a/Projects/iOS < 6/PSUpdateAppTests/PSUpdateAppTests-Prefix.pch +++ /dev/null @@ -1,8 +0,0 @@ -// -// Prefix header for all source files of the 'PSUpdateAppTests' target in the 'PSUpdateAppTests' project -// - -#ifdef __OBJC__ - #import - #import -#endif diff --git a/Projects/iOS < 6/PSUpdateAppTests/PSUpdateAppTests.h b/Projects/iOS < 6/PSUpdateAppTests/PSUpdateAppTests.h deleted file mode 100644 index d15db12..0000000 --- a/Projects/iOS < 6/PSUpdateAppTests/PSUpdateAppTests.h +++ /dev/null @@ -1,13 +0,0 @@ -// -// PSUpdateAppTests.h -// PSUpdateAppTests -// -// Created by iBo on 19/02/13. -// Copyright (c) 2013 D-Still. All rights reserved. -// - -#import - -@interface PSUpdateAppTests : SenTestCase - -@end diff --git a/Projects/iOS < 6/PSUpdateAppTests/PSUpdateAppTests.m b/Projects/iOS < 6/PSUpdateAppTests/PSUpdateAppTests.m deleted file mode 100644 index 520af4d..0000000 --- a/Projects/iOS < 6/PSUpdateAppTests/PSUpdateAppTests.m +++ /dev/null @@ -1,32 +0,0 @@ -// -// PSUpdateAppTests.m -// PSUpdateAppTests -// -// Created by iBo on 19/02/13. -// Copyright (c) 2013 D-Still. All rights reserved. -// - -#import "PSUpdateAppTests.h" - -@implementation PSUpdateAppTests - -- (void)setUp -{ - [super setUp]; - - // Set-up code here. -} - -- (void)tearDown -{ - // Tear-down code here. - - [super tearDown]; -} - -- (void)testExample -{ -// STFail(@"Unit tests are not implemented yet in PSUpdateAppTests"); -} - -@end diff --git a/Projects/iOS < 6/PSUpdateAppTests/PSUpdateSpec.m b/Projects/iOS < 6/PSUpdateAppTests/PSUpdateSpec.m deleted file mode 100644 index 3a78039..0000000 --- a/Projects/iOS < 6/PSUpdateAppTests/PSUpdateSpec.m +++ /dev/null @@ -1,60 +0,0 @@ -#import "Kiwi.h" -#import "PSUpdateApp.h" - -SPEC_BEGIN(PSUpdateSpec) - -describe(@"PSUpdateApp start:", ^{ - it(@"create PSUpdate object", ^{ - [theValue([PSUpdateApp startWithAppID:@"529119648"]) shouldNotBeNil]; - }); - - it(@"detect the version without block", ^{ - [[PSUpdateApp sharedPSUpdateApp] detectAppVersion:nil]; - }); - - context(@"PSUpdateApp Asynchronous Testing", ^{ - __block BOOL fetchedData; - __block NSError *blockError; - - it(@"new version exist with block", ^{ - - [[PSUpdateApp sharedPSUpdateApp] detectAppVersion:^(NSError *error, BOOL success, id JSON) { - fetchedData = success; - }]; - - [[expectFutureValue(theValue(fetchedData)) shouldEventually] beYes]; - }); - - it(@"new version doesn't exist with block", ^{ - - [[PSUpdateApp sharedPSUpdateApp] detectAppVersion:^(NSError *error, BOOL success, id JSON) { - blockError = error; - }]; - - [[expectFutureValue(blockError) shouldEventually] beNil]; - }); - - }); -}); - -describe(@"PSUpdateApp start:", ^{ - it(@"create PSUpdate object with fake ID", ^{ - [theValue([PSUpdateApp startWithAppID:@"5291196489"]) shouldNotBeNil]; - }); - - context(@"PSUpdateApp Asynchronous Testing", ^{ - __block BOOL fetchedData; - - it(@"new version doesn't exist with block", ^{ - - [[PSUpdateApp sharedPSUpdateApp] detectAppVersion:^(NSError *error, BOOL success, id JSON) { - fetchedData = success; - }]; - - [[expectFutureValue(theValue(fetchedData)) shouldEventually] beNo]; - }); - - }); -}); - -SPEC_END \ No newline at end of file diff --git a/Projects/iOS < 6/PSUpdateAppTests/ar.lproj/InfoPlist.strings b/Projects/iOS < 6/PSUpdateAppTests/ar.lproj/InfoPlist.strings deleted file mode 100644 index 477b28f..0000000 --- a/Projects/iOS < 6/PSUpdateAppTests/ar.lproj/InfoPlist.strings +++ /dev/null @@ -1,2 +0,0 @@ -/* Localized versions of Info.plist keys */ - diff --git a/Projects/iOS < 6/PSUpdateAppTests/en.lproj/InfoPlist.strings b/Projects/iOS < 6/PSUpdateAppTests/en.lproj/InfoPlist.strings deleted file mode 100644 index 477b28f..0000000 --- a/Projects/iOS < 6/PSUpdateAppTests/en.lproj/InfoPlist.strings +++ /dev/null @@ -1,2 +0,0 @@ -/* Localized versions of Info.plist keys */ - diff --git a/Projects/iOS < 6/PSUpdateAppTests/es.lproj/InfoPlist.strings b/Projects/iOS < 6/PSUpdateAppTests/es.lproj/InfoPlist.strings deleted file mode 100644 index 477b28f..0000000 --- a/Projects/iOS < 6/PSUpdateAppTests/es.lproj/InfoPlist.strings +++ /dev/null @@ -1,2 +0,0 @@ -/* Localized versions of Info.plist keys */ - diff --git a/Projects/iOS < 6/PSUpdateAppTests/it.lproj/InfoPlist.strings b/Projects/iOS < 6/PSUpdateAppTests/it.lproj/InfoPlist.strings deleted file mode 100644 index 477b28f..0000000 --- a/Projects/iOS < 6/PSUpdateAppTests/it.lproj/InfoPlist.strings +++ /dev/null @@ -1,2 +0,0 @@ -/* Localized versions of Info.plist keys */ - diff --git a/Projects/iOS < 6/PSUpdateAppTests/zh-Hans.lproj/InfoPlist.strings b/Projects/iOS < 6/PSUpdateAppTests/zh-Hans.lproj/InfoPlist.strings deleted file mode 100644 index 477b28f..0000000 --- a/Projects/iOS < 6/PSUpdateAppTests/zh-Hans.lproj/InfoPlist.strings +++ /dev/null @@ -1,2 +0,0 @@ -/* Localized versions of Info.plist keys */ - diff --git a/Projects/iOS < 6/Podfile b/Projects/iOS < 6/Podfile deleted file mode 100644 index 6bbc068..0000000 --- a/Projects/iOS < 6/Podfile +++ /dev/null @@ -1,6 +0,0 @@ -platform :ios, :deployment_target => '5.0' -pod 'AFNetworking', '1.3.2' - -target :PSUpdateAppTests, :exclusive => true do - pod 'Kiwi', '2.2.1' -end \ No newline at end of file diff --git a/Projects/iOS > 6/PSUpdateApp.podspec b/Projects/iOS > 6/PSUpdateApp.podspec deleted file mode 100644 index bd6bcca..0000000 --- a/Projects/iOS > 6/PSUpdateApp.podspec +++ /dev/null @@ -1,16 +0,0 @@ -Pod::Spec.new do |s| - s.name = 'PSUpdateApp' - s.version = '2.0.5' - s.license = 'MIT' - s.summary = 'PSUpdateApp is a simple method to notify users that a new version of your iOS app is available.' - s.homepage = 'https://github.com/danielebogo/PSUpdateApp' - s.author = { 'Daniele Bogo' => 'daniele@paperstreetsoapdesign.com' } - s.source = { :git => 'https://github.com/danielebogo/PSUpdateApp.git', :tag => '2.0.5' } - s.platform = :ios, '6.0' - s.requires_arc = true - - s.source_files = 'PSUpdateApp_2/*.{h,m}' - s.resource = 'PSUpdateApp_2/Localizations/**' - - s.dependency 'AFNetworking', '~> 2.2' -end \ No newline at end of file diff --git a/Projects/iOS > 6/PSUpdateApp/Images.xcassets/AppIcon.appiconset/Contents.json b/Projects/iOS > 6/PSUpdateApp/Images.xcassets/AppIcon.appiconset/Contents.json deleted file mode 100644 index a396706..0000000 --- a/Projects/iOS > 6/PSUpdateApp/Images.xcassets/AppIcon.appiconset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "idiom" : "iphone", - "size" : "29x29", - "scale" : "2x" - }, - { - "idiom" : "iphone", - "size" : "40x40", - "scale" : "2x" - }, - { - "idiom" : "iphone", - "size" : "60x60", - "scale" : "2x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/Projects/iOS > 6/PSUpdateApp/en.lproj/InfoPlist.strings b/Projects/iOS > 6/PSUpdateApp/en.lproj/InfoPlist.strings deleted file mode 100644 index 477b28f..0000000 --- a/Projects/iOS > 6/PSUpdateApp/en.lproj/InfoPlist.strings +++ /dev/null @@ -1,2 +0,0 @@ -/* Localized versions of Info.plist keys */ - diff --git a/Projects/iOS > 6/PSUpdateAppTests/PSUpdateAppTests-Info.plist b/Projects/iOS > 6/PSUpdateAppTests/PSUpdateAppTests-Info.plist deleted file mode 100644 index 1752da3..0000000 --- a/Projects/iOS > 6/PSUpdateAppTests/PSUpdateAppTests-Info.plist +++ /dev/null @@ -1,22 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIdentifier - com.pssd.${PRODUCT_NAME:rfc1034identifier} - CFBundleInfoDictionaryVersion - 6.0 - CFBundlePackageType - BNDL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - - diff --git a/Projects/iOS > 6/PSUpdateAppTests/en.lproj/InfoPlist.strings b/Projects/iOS > 6/PSUpdateAppTests/en.lproj/InfoPlist.strings deleted file mode 100644 index 477b28f..0000000 --- a/Projects/iOS > 6/PSUpdateAppTests/en.lproj/InfoPlist.strings +++ /dev/null @@ -1,2 +0,0 @@ -/* Localized versions of Info.plist keys */ - diff --git a/Projects/iOS > 6/Podfile b/Projects/iOS > 6/Podfile deleted file mode 100644 index ceb068d..0000000 --- a/Projects/iOS > 6/Podfile +++ /dev/null @@ -1,6 +0,0 @@ -platform :ios, :deployment_target => '7.0' -pod 'AFNetworking', '~> 2.2' - -target :PSUpdateAppTests, :exclusive => true do - pod 'Kiwi', '2.2.3' -end \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/AFNetworking/AFNetworking/AFHTTPRequestOperation.h b/Projects/iOS > 6/Pods/AFNetworking/AFNetworking/AFHTTPRequestOperation.h deleted file mode 100644 index 58f5b04..0000000 --- a/Projects/iOS > 6/Pods/AFNetworking/AFNetworking/AFHTTPRequestOperation.h +++ /dev/null @@ -1,68 +0,0 @@ -// AFHTTPRequestOperation.h -// -// Copyright (c) 2013 AFNetworking (http://afnetworking.com) -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -#import -#import "AFURLConnectionOperation.h" -#import "AFURLResponseSerialization.h" - -/** - `AFHTTPRequestOperation` is a subclass of `AFURLConnectionOperation` for requests using the HTTP or HTTPS protocols. It encapsulates the concept of acceptable status codes and content types, which determine the success or failure of a request. - */ -@interface AFHTTPRequestOperation : AFURLConnectionOperation - -///------------------------------------------------ -/// @name Getting HTTP URL Connection Information -///------------------------------------------------ - -/** - The last HTTP response received by the operation's connection. - */ -@property (readonly, nonatomic, strong) NSHTTPURLResponse *response; - -/** - Responses sent from the server in data tasks created with `dataTaskWithRequest:success:failure:` and run using the `GET` / `POST` / et al. convenience methods are automatically validated and serialized by the response serializer. By default, this property is set to an AFHTTPResoinse serializer, which uses the raw data as its response object. The serializer validates the status code to be in the `2XX` range, denoting success. If the response serializer generates an error in `-responseObjectForResponse:data:error:`, the `failure` callback of the session task or request operation will be executed; otherwise, the `success` callback will be executed. - - @warning `responseSerializer` must not be `nil`. Setting a response serializer will clear out any cached value - */ -@property (nonatomic, strong) AFHTTPResponseSerializer * responseSerializer; - -/** - An object constructed by the `responseSerializer` from the response and response data. Returns `nil` unless the operation `isFinished`, has a `response`, and has `responseData` with non-zero content length. If an error occurs during serialization, `nil` will be returned, and the `error` property will be populated with the serialization error. - */ -@property (readonly, nonatomic, strong) id responseObject; - -///----------------------------------------------------------- -/// @name Setting Completion Block Success / Failure Callbacks -///----------------------------------------------------------- - -/** - Sets the `completionBlock` property with a block that executes either the specified success or failure block, depending on the state of the request on completion. If `error` returns a value, which can be caused by an unacceptable status code or content type, then `failure` is executed. Otherwise, `success` is executed. - - This method should be overridden in subclasses in order to specify the response object passed into the success block. - - @param success The block to be executed on the completion of a successful request. This block has no return value and takes two arguments: the receiver operation and the object constructed from the response data of the request. - @param failure The block to be executed on the completion of an unsuccessful request. This block has no return value and takes two arguments: the receiver operation and the error that occurred during the request. - */ -- (void)setCompletionBlockWithSuccess:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success - failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure; - -@end diff --git a/Projects/iOS > 6/Pods/AFNetworking/AFNetworking/AFHTTPRequestOperation.m b/Projects/iOS > 6/Pods/AFNetworking/AFNetworking/AFHTTPRequestOperation.m deleted file mode 100644 index 1cd96d9..0000000 --- a/Projects/iOS > 6/Pods/AFNetworking/AFNetworking/AFHTTPRequestOperation.m +++ /dev/null @@ -1,198 +0,0 @@ -// AFHTTPRequestOperation.m -// -// Copyright (c) 2013 AFNetworking (http://afnetworking.com) -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -#import "AFHTTPRequestOperation.h" - -static dispatch_queue_t http_request_operation_processing_queue() { - static dispatch_queue_t af_http_request_operation_processing_queue; - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - af_http_request_operation_processing_queue = dispatch_queue_create("com.alamofire.networking.http-request.processing", DISPATCH_QUEUE_CONCURRENT); - }); - - return af_http_request_operation_processing_queue; -} - -static dispatch_group_t http_request_operation_completion_group() { - static dispatch_group_t af_http_request_operation_completion_group; - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - af_http_request_operation_completion_group = dispatch_group_create(); - }); - - return af_http_request_operation_completion_group; -} - -#pragma mark - - -@interface AFHTTPRequestOperation () -@property (readwrite, nonatomic, strong) NSURLRequest *request; -@property (readwrite, nonatomic, strong) NSHTTPURLResponse *response; -@property (readwrite, nonatomic, strong) id responseObject; -@property (readwrite, nonatomic, strong) NSError *responseSerializationError; -@property (readwrite, nonatomic, strong) NSRecursiveLock *lock; -@end - -@implementation AFHTTPRequestOperation -@dynamic lock; - -- (instancetype)initWithRequest:(NSURLRequest *)urlRequest { - self = [super initWithRequest:urlRequest]; - if (!self) { - return nil; - } - - self.responseSerializer = [AFHTTPResponseSerializer serializer]; - - return self; -} - -- (void)setResponseSerializer:(AFHTTPResponseSerializer *)responseSerializer { - NSParameterAssert(responseSerializer); - - [self.lock lock]; - _responseSerializer = responseSerializer; - self.responseObject = nil; - self.responseSerializationError = nil; - [self.lock unlock]; -} - -- (id)responseObject { - [self.lock lock]; - if (!_responseObject && [self isFinished] && !self.error) { - NSError *error = nil; - self.responseObject = [self.responseSerializer responseObjectForResponse:self.response data:self.responseData error:&error]; - if (error) { - self.responseSerializationError = error; - } - } - [self.lock unlock]; - - return _responseObject; -} - -- (NSError *)error { - if (_responseSerializationError) { - return _responseSerializationError; - } else { - return [super error]; - } -} - -#pragma mark - AFHTTPRequestOperation - -- (void)setCompletionBlockWithSuccess:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success - failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure -{ - // completionBlock is manually nilled out in AFURLConnectionOperation to break the retain cycle. -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Warc-retain-cycles" -#pragma clang diagnostic ignored "-Wgnu" - self.completionBlock = ^{ - if (self.completionGroup) { - dispatch_group_enter(self.completionGroup); - } - - dispatch_async(http_request_operation_processing_queue(), ^{ - if (self.error) { - if (failure) { - dispatch_group_async(self.completionGroup ?: http_request_operation_completion_group(), self.completionQueue ?: dispatch_get_main_queue(), ^{ - failure(self, self.error); - }); - } - } else { - id responseObject = self.responseObject; - if (self.error) { - if (failure) { - dispatch_group_async(self.completionGroup ?: http_request_operation_completion_group(), self.completionQueue ?: dispatch_get_main_queue(), ^{ - failure(self, self.error); - }); - } - } else { - if (success) { - dispatch_group_async(self.completionGroup ?: http_request_operation_completion_group(), self.completionQueue ?: dispatch_get_main_queue(), ^{ - success(self, responseObject); - }); - } - } - } - - if (self.completionGroup) { - dispatch_group_leave(self.completionGroup); - } - }); - }; -#pragma clang diagnostic pop -} - -#pragma mark - AFURLRequestOperation - -- (void)pause { - int64_t offset = 0; - if ([self.outputStream propertyForKey:NSStreamFileCurrentOffsetKey]) { - offset = [(NSNumber *)[self.outputStream propertyForKey:NSStreamFileCurrentOffsetKey] longLongValue]; - } else { - offset = [(NSData *)[self.outputStream propertyForKey:NSStreamDataWrittenToMemoryStreamKey] length]; - } - - NSMutableURLRequest *mutableURLRequest = [self.request mutableCopy]; - if ([self.response respondsToSelector:@selector(allHeaderFields)] && [[self.response allHeaderFields] valueForKey:@"ETag"]) { - [mutableURLRequest setValue:[[self.response allHeaderFields] valueForKey:@"ETag"] forHTTPHeaderField:@"If-Range"]; - } - [mutableURLRequest setValue:[NSString stringWithFormat:@"bytes=%llu-", offset] forHTTPHeaderField:@"Range"]; - self.request = mutableURLRequest; - - [super pause]; -} - -#pragma mark - NSCoding - -- (id)initWithCoder:(NSCoder *)decoder { - self = [super initWithCoder:decoder]; - if (!self) { - return nil; - } - - self.responseSerializer = [decoder decodeObjectForKey:NSStringFromSelector(@selector(responseSerializer))]; - - return self; -} - -- (void)encodeWithCoder:(NSCoder *)coder { - [super encodeWithCoder:coder]; - - [coder encodeObject:self.responseSerializer forKey:NSStringFromSelector(@selector(responseSerializer))]; -} - -#pragma mark - NSCopying - -- (id)copyWithZone:(NSZone *)zone { - AFHTTPRequestOperation *operation = [[[self class] allocWithZone:zone] initWithRequest:self.request]; - - operation.responseSerializer = [self.responseSerializer copyWithZone:zone]; - operation.completionQueue = self.completionQueue; - operation.completionGroup = self.completionGroup; - - return operation; -} - -@end diff --git a/Projects/iOS > 6/Pods/AFNetworking/AFNetworking/AFHTTPRequestOperationManager.h b/Projects/iOS > 6/Pods/AFNetworking/AFNetworking/AFHTTPRequestOperationManager.h deleted file mode 100644 index 75d8017..0000000 --- a/Projects/iOS > 6/Pods/AFNetworking/AFNetworking/AFHTTPRequestOperationManager.h +++ /dev/null @@ -1,294 +0,0 @@ -// AFHTTPRequestOperationManager.h -// -// Copyright (c) 2013 AFNetworking (http://afnetworking.com) -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -#import -#import -#import - -#if __IPHONE_OS_VERSION_MIN_REQUIRED -#import -#else -#import -#endif - -#import "AFHTTPRequestOperation.h" -#import "AFURLResponseSerialization.h" -#import "AFURLRequestSerialization.h" -#import "AFSecurityPolicy.h" -#import "AFNetworkReachabilityManager.h" - -/** - `AFHTTPRequestOperationManager` encapsulates the common patterns of communicating with a web application over HTTP, including request creation, response serialization, network reachability monitoring, and security, as well as request operation management. - - ## Subclassing Notes - - Developers targeting iOS 7 or Mac OS X 10.9 or later that deal extensively with a web service are encouraged to subclass `AFHTTPSessionManager`, providing a class method that returns a shared singleton object on which authentication and other configuration can be shared across the application. - - For developers targeting iOS 6 or Mac OS X 10.8 or earlier, `AFHTTPRequestOperationManager` may be used to similar effect. - - ## Methods to Override - - To change the behavior of all request operation construction for an `AFHTTPRequestOperationManager` subclass, override `HTTPRequestOperationWithRequest:success:failure`. - - ## Serialization - - Requests created by an HTTP client will contain default headers and encode parameters according to the `requestSerializer` property, which is an object conforming to ``. - - Responses received from the server are automatically validated and serialized by the `responseSerializers` property, which is an object conforming to `` - - ## URL Construction Using Relative Paths - - For HTTP convenience methods, the request serializer constructs URLs from the path relative to the `-baseURL`, using `NSURL +URLWithString:relativeToURL:`, when provided. If `baseURL` is `nil`, `path` needs to resolve to a valid `NSURL` object using `NSURL +URLWithString:`. - - Below are a few examples of how `baseURL` and relative paths interact: - - NSURL *baseURL = [NSURL URLWithString:@"http://example.com/v1/"]; - [NSURL URLWithString:@"foo" relativeToURL:baseURL]; // http://example.com/v1/foo - [NSURL URLWithString:@"foo?bar=baz" relativeToURL:baseURL]; // http://example.com/v1/foo?bar=baz - [NSURL URLWithString:@"/foo" relativeToURL:baseURL]; // http://example.com/foo - [NSURL URLWithString:@"foo/" relativeToURL:baseURL]; // http://example.com/v1/foo - [NSURL URLWithString:@"/foo/" relativeToURL:baseURL]; // http://example.com/foo/ - [NSURL URLWithString:@"http://example2.com/" relativeToURL:baseURL]; // http://example2.com/ - - Also important to note is that a trailing slash will be added to any `baseURL` without one. This would otherwise cause unexpected behavior when constructing URLs using paths without a leading slash. - - ## Network Reachability Monitoring - - Network reachability status and change monitoring is available through the `reachabilityManager` property. Applications may choose to monitor network reachability conditions in order to prevent or suspend any outbound requests. See `AFNetworkReachabilityManager` for more details. - - ## NSCoding & NSCopying Caveats - - `AFHTTPRequestOperationManager` conforms to the `NSCoding` and `NSCopying` protocols, allowing operations to be archived to disk, and copied in memory, respectively. There are a few minor caveats to keep in mind, however: - - - Archives and copies of HTTP clients will be initialized with an empty operation queue. - - NSCoding cannot serialize / deserialize block properties, so an archive of an HTTP client will not include any reachability callback block that may be set. - */ -@interface AFHTTPRequestOperationManager : NSObject - -/** - The URL used to monitor reachability, and construct requests from relative paths in methods like `requestWithMethod:URLString:parameters:`, and the `GET` / `POST` / et al. convenience methods. - */ -@property (readonly, nonatomic, strong) NSURL *baseURL; - -/** - Requests created with `requestWithMethod:URLString:parameters:` & `multipartFormRequestWithMethod:URLString:parameters:constructingBodyWithBlock:` are constructed with a set of default headers using a parameter serialization specified by this property. By default, this is set to an instance of `AFHTTPRequestSerializer`, which serializes query string parameters for `GET`, `HEAD`, and `DELETE` requests, or otherwise URL-form-encodes HTTP message bodies. - - @warning `requestSerializer` must not be `nil`. - */ -@property (nonatomic, strong) AFHTTPRequestSerializer * requestSerializer; - -/** - Responses sent from the server in data tasks created with `dataTaskWithRequest:success:failure:` and run using the `GET` / `POST` / et al. convenience methods are automatically validated and serialized by the response serializer. By default, this property is set to a JSON serializer, which serializes data from responses with a `application/json` MIME type, and falls back to the raw data object. The serializer validates the status code to be in the `2XX` range, denoting success. If the response serializer generates an error in `-responseObjectForResponse:data:error:`, the `failure` callback of the session task or request operation will be executed; otherwise, the `success` callback will be executed. - - @warning `responseSerializer` must not be `nil`. - */ -@property (nonatomic, strong) AFHTTPResponseSerializer * responseSerializer; - -/** - The operation queue on which request operations are scheduled and run. - */ -@property (nonatomic, strong) NSOperationQueue *operationQueue; - -///------------------------------- -/// @name Managing URL Credentials -///------------------------------- - -/** - Whether request operations should consult the credential storage for authenticating the connection. `YES` by default. - - @see AFURLConnectionOperation -shouldUseCredentialStorage - */ -@property (nonatomic, assign) BOOL shouldUseCredentialStorage; - -/** - The credential used by request operations for authentication challenges. - - @see AFURLConnectionOperation -credential - */ -@property (nonatomic, strong) NSURLCredential *credential; - -///------------------------------- -/// @name Managing Security Policy -///------------------------------- - -/** - The security policy used by created request operations to evaluate server trust for secure connections. `AFHTTPRequestOperationManager` uses the `defaultPolicy` unless otherwise specified. - */ -@property (nonatomic, strong) AFSecurityPolicy *securityPolicy; - -///------------------------------------ -/// @name Managing Network Reachability -///------------------------------------ - -/** - The network reachability manager. `AFHTTPRequestOperationManager` uses the `sharedManager` by default. - */ -@property (readonly, nonatomic, strong) AFNetworkReachabilityManager *reachabilityManager; - -///--------------------------------------------- -/// @name Creating and Initializing HTTP Clients -///--------------------------------------------- - -/** - Creates and returns an `AFHTTPRequestOperationManager` object. - */ -+ (instancetype)manager; - -/** - Initializes an `AFHTTPRequestOperationManager` object with the specified base URL. - - This is the designated initializer. - - @param url The base URL for the HTTP client. - - @return The newly-initialized HTTP client - */ -- (instancetype)initWithBaseURL:(NSURL *)url; - -///--------------------------------------- -/// @name Managing HTTP Request Operations -///--------------------------------------- - -/** - Creates an `AFHTTPRequestOperation`, setting the operation's request serializer and response serializers to those of the HTTP client. - - @param request The request object to be loaded asynchronously during execution of the operation. - @param success A block object to be executed when the request operation finishes successfully. This block has no return value and takes two arguments: the created request operation and the object created from the response data of request. - @param failure A block object to be executed when the request operation finishes unsuccessfully, or that finishes successfully, but encountered an error while parsing the response data. This block has no return value and takes two arguments:, the created request operation and the `NSError` object describing the network or parsing error that occurred. - */ -- (AFHTTPRequestOperation *)HTTPRequestOperationWithRequest:(NSURLRequest *)request - success:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success - failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure; - -///--------------------------- -/// @name Making HTTP Requests -///--------------------------- - -/** - Creates and runs an `AFHTTPRequestOperation` with a `GET` request. - - @param URLString The URL string used to create the request URL. - @param parameters The parameters to be encoded according to the client request serializer. - @param success A block object to be executed when the request operation finishes successfully. This block has no return value and takes two arguments: the request operation, and the response object created by the client response serializer. - @param failure A block object to be executed when the request operation finishes unsuccessfully, or that finishes successfully, but encountered an error while parsing the response data. This block has no return value and takes a two arguments: the request operation and the error describing the network or parsing error that occurred. - - @see -HTTPRequestOperationWithRequest:success:failure: - */ -- (AFHTTPRequestOperation *)GET:(NSString *)URLString - parameters:(NSDictionary *)parameters - success:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success - failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure; - -/** - Creates and runs an `AFHTTPRequestOperation` with a `HEAD` request. - - @param URLString The URL string used to create the request URL. - @param parameters The parameters to be encoded according to the client request serializer. - @param success A block object to be executed when the request operation finishes successfully. This block has no return value and takes a single arguments: the request operation. - @param failure A block object to be executed when the request operation finishes unsuccessfully, or that finishes successfully, but encountered an error while parsing the response data. This block has no return value and takes a two arguments: the request operation and the error describing the network or parsing error that occurred. - - @see -HTTPRequestOperationWithRequest:success:failure: - */ -- (AFHTTPRequestOperation *)HEAD:(NSString *)URLString - parameters:(NSDictionary *)parameters - success:(void (^)(AFHTTPRequestOperation *operation))success - failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure; - -/** - Creates and runs an `AFHTTPRequestOperation` with a `POST` request. - - @param URLString The URL string used to create the request URL. - @param parameters The parameters to be encoded according to the client request serializer. - @param success A block object to be executed when the request operation finishes successfully. This block has no return value and takes two arguments: the request operation, and the response object created by the client response serializer. - @param failure A block object to be executed when the request operation finishes unsuccessfully, or that finishes successfully, but encountered an error while parsing the response data. This block has no return value and takes a two arguments: the request operation and the error describing the network or parsing error that occurred. - - @see -HTTPRequestOperationWithRequest:success:failure: - */ -- (AFHTTPRequestOperation *)POST:(NSString *)URLString - parameters:(NSDictionary *)parameters - success:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success - failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure; - -/** - Creates and runs an `AFHTTPRequestOperation` with a multipart `POST` request. - - @param URLString The URL string used to create the request URL. - @param parameters The parameters to be encoded according to the client request serializer. - @param block A block that takes a single argument and appends data to the HTTP body. The block argument is an object adopting the `AFMultipartFormData` protocol. - @param success A block object to be executed when the request operation finishes successfully. This block has no return value and takes two arguments: the request operation, and the response object created by the client response serializer. - @param failure A block object to be executed when the request operation finishes unsuccessfully, or that finishes successfully, but encountered an error while parsing the response data. This block has no return value and takes a two arguments: the request operation and the error describing the network or parsing error that occurred. - - @see -HTTPRequestOperationWithRequest:success:failure: - */ -- (AFHTTPRequestOperation *)POST:(NSString *)URLString - parameters:(NSDictionary *)parameters - constructingBodyWithBlock:(void (^)(id formData))block - success:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success - failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure; - -/** - Creates and runs an `AFHTTPRequestOperation` with a `PUT` request. - - @param URLString The URL string used to create the request URL. - @param parameters The parameters to be encoded according to the client request serializer. - @param success A block object to be executed when the request operation finishes successfully. This block has no return value and takes two arguments: the request operation, and the response object created by the client response serializer. - @param failure A block object to be executed when the request operation finishes unsuccessfully, or that finishes successfully, but encountered an error while parsing the response data. This block has no return value and takes a two arguments: the request operation and the error describing the network or parsing error that occurred. - - @see -HTTPRequestOperationWithRequest:success:failure: - */ -- (AFHTTPRequestOperation *)PUT:(NSString *)URLString - parameters:(NSDictionary *)parameters - success:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success - failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure; - -/** - Creates and runs an `AFHTTPRequestOperation` with a `PATCH` request. - - @param URLString The URL string used to create the request URL. - @param parameters The parameters to be encoded according to the client request serializer. - @param success A block object to be executed when the request operation finishes successfully. This block has no return value and takes two arguments: the request operation, and the response object created by the client response serializer. - @param failure A block object to be executed when the request operation finishes unsuccessfully, or that finishes successfully, but encountered an error while parsing the response data. This block has no return value and takes a two arguments: the request operation and the error describing the network or parsing error that occurred. - - @see -HTTPRequestOperationWithRequest:success:failure: - */ -- (AFHTTPRequestOperation *)PATCH:(NSString *)URLString - parameters:(NSDictionary *)parameters - success:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success - failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure; - -/** - Creates and runs an `AFHTTPRequestOperation` with a `DELETE` request. - - @param URLString The URL string used to create the request URL. - @param parameters The parameters to be encoded according to the client request serializer. - @param success A block object to be executed when the request operation finishes successfully. This block has no return value and takes two arguments: the request operation, and the response object created by the client response serializer. - @param failure A block object to be executed when the request operation finishes unsuccessfully, or that finishes successfully, but encountered an error while parsing the response data. This block has no return value and takes a two arguments: the request operation and the error describing the network or parsing error that occurred. - - @see -HTTPRequestOperationWithRequest:success:failure: - */ -- (AFHTTPRequestOperation *)DELETE:(NSString *)URLString - parameters:(NSDictionary *)parameters - success:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success - failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure; - -@end - diff --git a/Projects/iOS > 6/Pods/AFNetworking/AFNetworking/AFHTTPRequestOperationManager.m b/Projects/iOS > 6/Pods/AFNetworking/AFNetworking/AFHTTPRequestOperationManager.m deleted file mode 100644 index 9a8fd09..0000000 --- a/Projects/iOS > 6/Pods/AFNetworking/AFNetworking/AFHTTPRequestOperationManager.m +++ /dev/null @@ -1,239 +0,0 @@ -// AFHTTPRequestOperationManager.m -// -// Copyright (c) 2013 AFNetworking (http://afnetworking.com) -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -#import - -#import "AFHTTPRequestOperationManager.h" -#import "AFHTTPRequestOperation.h" - -#import -#import - -#if defined(__IPHONE_OS_VERSION_MIN_REQUIRED) -#import -#endif - -@interface AFHTTPRequestOperationManager () -@property (readwrite, nonatomic, strong) NSURL *baseURL; -@property (readwrite, nonatomic, strong) AFNetworkReachabilityManager *reachabilityManager; -@end - -@implementation AFHTTPRequestOperationManager - -+ (instancetype)manager { - return [[[self class] alloc] initWithBaseURL:nil]; -} - -- (instancetype)initWithBaseURL:(NSURL *)url { - self = [super init]; - if (!self) { - return nil; - } - - // Ensure terminal slash for baseURL path, so that NSURL +URLWithString:relativeToURL: works as expected - if ([[url path] length] > 0 && ![[url absoluteString] hasSuffix:@"/"]) { - url = [url URLByAppendingPathComponent:@""]; - } - - self.baseURL = url; - - self.requestSerializer = [AFHTTPRequestSerializer serializer]; - self.responseSerializer = [AFJSONResponseSerializer serializer]; - - self.securityPolicy = [AFSecurityPolicy defaultPolicy]; - - if (self.baseURL.host) { - self.reachabilityManager = [AFNetworkReachabilityManager managerForDomain:self.baseURL.host]; - } else { - self.reachabilityManager = [AFNetworkReachabilityManager sharedManager]; - } - - [self.reachabilityManager startMonitoring]; - - self.operationQueue = [[NSOperationQueue alloc] init]; - - return self; -} - -- (NSString *)description { - return [NSString stringWithFormat:@"<%@: %p, baseURL: %@, operationQueue: %@>", NSStringFromClass([self class]), self, [self.baseURL absoluteString], self.operationQueue]; -} - -#pragma mark - - -#ifdef _SYSTEMCONFIGURATION_H -#endif - -- (void)setRequestSerializer:(AFHTTPRequestSerializer *)requestSerializer { - NSParameterAssert(requestSerializer); - - _requestSerializer = requestSerializer; -} - -- (void)setResponseSerializer:(AFHTTPResponseSerializer *)responseSerializer { - NSParameterAssert(responseSerializer); - - _responseSerializer = responseSerializer; -} - -#pragma mark - - -- (AFHTTPRequestOperation *)HTTPRequestOperationWithRequest:(NSURLRequest *)request - success:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success - failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure -{ - AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request]; - operation.responseSerializer = self.responseSerializer; - operation.shouldUseCredentialStorage = self.shouldUseCredentialStorage; - operation.credential = self.credential; - operation.securityPolicy = self.securityPolicy; - - [operation setCompletionBlockWithSuccess:success failure:failure]; - - return operation; -} - -#pragma mark - - -- (AFHTTPRequestOperation *)GET:(NSString *)URLString - parameters:(NSDictionary *)parameters - success:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success - failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure -{ - NSMutableURLRequest *request = [self.requestSerializer requestWithMethod:@"GET" URLString:[[NSURL URLWithString:URLString relativeToURL:self.baseURL] absoluteString] parameters:parameters]; - AFHTTPRequestOperation *operation = [self HTTPRequestOperationWithRequest:request success:success failure:failure]; - [self.operationQueue addOperation:operation]; - - return operation; -} - -- (AFHTTPRequestOperation *)HEAD:(NSString *)URLString - parameters:(NSDictionary *)parameters - success:(void (^)(AFHTTPRequestOperation *operation))success - failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure -{ - NSMutableURLRequest *request = [self.requestSerializer requestWithMethod:@"HEAD" URLString:[[NSURL URLWithString:URLString relativeToURL:self.baseURL] absoluteString] parameters:parameters]; - AFHTTPRequestOperation *operation = [self HTTPRequestOperationWithRequest:request success:^(AFHTTPRequestOperation *requestOperation, __unused id responseObject) { - if (success) { - success(requestOperation); - } - } failure:failure]; - [self.operationQueue addOperation:operation]; - - return operation; -} - -- (AFHTTPRequestOperation *)POST:(NSString *)URLString - parameters:(NSDictionary *)parameters - success:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success - failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure -{ - NSMutableURLRequest *request = [self.requestSerializer requestWithMethod:@"POST" URLString:[[NSURL URLWithString:URLString relativeToURL:self.baseURL] absoluteString] parameters:parameters]; - AFHTTPRequestOperation *operation = [self HTTPRequestOperationWithRequest:request success:success failure:failure]; - [self.operationQueue addOperation:operation]; - - return operation; -} - -- (AFHTTPRequestOperation *)POST:(NSString *)URLString - parameters:(NSDictionary *)parameters - constructingBodyWithBlock:(void (^)(id formData))block - success:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success - failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure -{ - NSMutableURLRequest *request = [self.requestSerializer multipartFormRequestWithMethod:@"POST" URLString:[[NSURL URLWithString:URLString relativeToURL:self.baseURL] absoluteString] parameters:parameters constructingBodyWithBlock:block]; - AFHTTPRequestOperation *operation = [self HTTPRequestOperationWithRequest:request success:success failure:failure]; - [self.operationQueue addOperation:operation]; - - return operation; -} - -- (AFHTTPRequestOperation *)PUT:(NSString *)URLString - parameters:(NSDictionary *)parameters - success:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success - failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure -{ - NSMutableURLRequest *request = [self.requestSerializer requestWithMethod:@"PUT" URLString:[[NSURL URLWithString:URLString relativeToURL:self.baseURL] absoluteString] parameters:parameters]; - AFHTTPRequestOperation *operation = [self HTTPRequestOperationWithRequest:request success:success failure:failure]; - [self.operationQueue addOperation:operation]; - - return operation; -} - -- (AFHTTPRequestOperation *)PATCH:(NSString *)URLString - parameters:(NSDictionary *)parameters - success:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success - failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure -{ - NSMutableURLRequest *request = [self.requestSerializer requestWithMethod:@"PATCH" URLString:[[NSURL URLWithString:URLString relativeToURL:self.baseURL] absoluteString] parameters:parameters]; - AFHTTPRequestOperation *operation = [self HTTPRequestOperationWithRequest:request success:success failure:failure]; - [self.operationQueue addOperation:operation]; - - return operation; -} - -- (AFHTTPRequestOperation *)DELETE:(NSString *)URLString - parameters:(NSDictionary *)parameters - success:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success - failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure -{ - NSMutableURLRequest *request = [self.requestSerializer requestWithMethod:@"DELETE" URLString:[[NSURL URLWithString:URLString relativeToURL:self.baseURL] absoluteString] parameters:parameters]; - AFHTTPRequestOperation *operation = [self HTTPRequestOperationWithRequest:request success:success failure:failure]; - [self.operationQueue addOperation:operation]; - - return operation; -} - -#pragma mark - NSCoding - -- (id)initWithCoder:(NSCoder *)decoder { - NSURL *baseURL = [decoder decodeObjectForKey:NSStringFromSelector(@selector(baseURL))]; - - self = [self initWithBaseURL:baseURL]; - if (!self) { - return nil; - } - - self.requestSerializer = [decoder decodeObjectForKey:NSStringFromSelector(@selector(requestSerializer))]; - self.responseSerializer = [decoder decodeObjectForKey:NSStringFromSelector(@selector(responseSerializer))]; - - return self; -} - -- (void)encodeWithCoder:(NSCoder *)coder { - [coder encodeObject:self.baseURL forKey:NSStringFromSelector(@selector(baseURL))]; - [coder encodeObject:self.requestSerializer forKey:NSStringFromSelector(@selector(requestSerializer))]; - [coder encodeObject:self.responseSerializer forKey:NSStringFromSelector(@selector(responseSerializer))]; -} - -#pragma mark - NSCopying - -- (id)copyWithZone:(NSZone *)zone { - AFHTTPRequestOperationManager *HTTPClient = [[[self class] allocWithZone:zone] initWithBaseURL:self.baseURL]; - - HTTPClient.requestSerializer = [self.requestSerializer copyWithZone:zone]; - HTTPClient.responseSerializer = [self.responseSerializer copyWithZone:zone]; - - return HTTPClient; -} - -@end diff --git a/Projects/iOS > 6/Pods/AFNetworking/AFNetworking/AFHTTPSessionManager.h b/Projects/iOS > 6/Pods/AFNetworking/AFNetworking/AFHTTPSessionManager.h deleted file mode 100644 index b15e0ac..0000000 --- a/Projects/iOS > 6/Pods/AFNetworking/AFNetworking/AFHTTPSessionManager.h +++ /dev/null @@ -1,238 +0,0 @@ -// AFHTTPSessionManager.h -// -// Copyright (c) 2013 AFNetworking (http://afnetworking.com) -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -#import -#import -#import - -#if __IPHONE_OS_VERSION_MIN_REQUIRED -#import -#else -#import -#endif - -#import "AFURLSessionManager.h" - -/** - `AFHTTPSessionManager` is a subclass of `AFURLSessionManager` with convenience methods for making HTTP requests. When a `baseURL` is provided, requests made with the `GET` / `POST` / et al. convenience methods can be made with relative paths; network reachability is also scoped to the host of the base URL as well. - - ## Subclassing Notes - - Developers targeting iOS 7 or Mac OS X 10.9 or later that deal extensively with a web service are encouraged to subclass `AFHTTPSessionManager`, providing a class method that returns a shared singleton object on which authentication and other configuration can be shared across the application. - - For developers targeting iOS 6 or Mac OS X 10.8 or earlier, `AFHTTPRequestOperationManager` may be used to similar effect. - - ## Methods to Override - - To change the behavior of all data task operation construction, which is also used in the `GET` / `POST` / et al. convenience methods, override `dataTaskWithRequest:completionHandler:`. - - ## Serialization - - Requests created by an HTTP client will contain default headers and encode parameters according to the `requestSerializer` property, which is an object conforming to ``. - - Responses received from the server are automatically validated and serialized by the `responseSerializers` property, which is an object conforming to `` - - ## URL Construction Using Relative Paths - - For HTTP convenience methods, the request serializer constructs URLs from the path relative to the `-baseURL`, using `NSURL +URLWithString:relativeToURL:`, when provided. If `baseURL` is `nil`, `path` needs to resolve to a valid `NSURL` object using `NSURL +URLWithString:`. - - Below are a few examples of how `baseURL` and relative paths interact: - - NSURL *baseURL = [NSURL URLWithString:@"http://example.com/v1/"]; - [NSURL URLWithString:@"foo" relativeToURL:baseURL]; // http://example.com/v1/foo - [NSURL URLWithString:@"foo?bar=baz" relativeToURL:baseURL]; // http://example.com/v1/foo?bar=baz - [NSURL URLWithString:@"/foo" relativeToURL:baseURL]; // http://example.com/foo - [NSURL URLWithString:@"foo/" relativeToURL:baseURL]; // http://example.com/v1/foo - [NSURL URLWithString:@"/foo/" relativeToURL:baseURL]; // http://example.com/foo/ - [NSURL URLWithString:@"http://example2.com/" relativeToURL:baseURL]; // http://example2.com/ - - Also important to note is that a trailing slash will be added to any `baseURL` without one. This would otherwise cause unexpected behavior when constructing URLs using paths without a leading slash. - */ - -#if (defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && __IPHONE_OS_VERSION_MAX_ALLOWED >= 70000) || (defined(__MAC_OS_X_VERSION_MAX_ALLOWED) && __MAC_OS_X_VERSION_MAX_ALLOWED >= 1090) - -@interface AFHTTPSessionManager : AFURLSessionManager - -/** - The URL used to monitor reachability, and construct requests from relative paths in methods like `requestWithMethod:URLString:parameters:`, and the `GET` / `POST` / et al. convenience methods. - */ -@property (readonly, nonatomic, strong) NSURL *baseURL; - -/** - Requests created with `requestWithMethod:URLString:parameters:` & `multipartFormRequestWithMethod:URLString:parameters:constructingBodyWithBlock:` are constructed with a set of default headers using a parameter serialization specified by this property. By default, this is set to an instance of `AFHTTPRequestSerializer`, which serializes query string parameters for `GET`, `HEAD`, and `DELETE` requests, or otherwise URL-form-encodes HTTP message bodies. - - @warning `requestSerializer` must not be `nil`. - */ -@property (nonatomic, strong) AFHTTPRequestSerializer * requestSerializer; - -/** - Responses sent from the server in data tasks created with `dataTaskWithRequest:success:failure:` and run using the `GET` / `POST` / et al. convenience methods are automatically validated and serialized by the response serializer. By default, this property is set to an instance of `AFJSONResponseSerializer`. - - @warning `responseSerializer` must not be `nil`. - */ -@property (nonatomic, strong) AFHTTPResponseSerializer * responseSerializer; - -///--------------------- -/// @name Initialization -///--------------------- - -/** - Creates and returns an `AFHTTPSessionManager` object. - */ -+ (instancetype)manager; - -/** - Initializes an `AFHTTPSessionManager` object with the specified base URL. - - @param url The base URL for the HTTP client. - - @return The newly-initialized HTTP client - */ -- (instancetype)initWithBaseURL:(NSURL *)url; - -/** - Initializes an `AFHTTPSessionManager` object with the specified base URL. - - This is the designated initializer. - - @param url The base URL for the HTTP client. - @param configuration The configuration used to create the managed session. - - @return The newly-initialized HTTP client - */ -- (instancetype)initWithBaseURL:(NSURL *)url - sessionConfiguration:(NSURLSessionConfiguration *)configuration; - -///--------------------------- -/// @name Making HTTP Requests -///--------------------------- - -/** - Creates and runs an `NSURLSessionDataTask` with a `GET` request. - - @param URLString The URL string used to create the request URL. - @param parameters The parameters to be encoded according to the client request serializer. - @param success A block object to be executed when the task finishes successfully. This block has no return value and takes two arguments: the data task, and the response object created by the client response serializer. - @param failure A block object to be executed when the task finishes unsuccessfully, or that finishes successfully, but encountered an error while parsing the response data. This block has no return value and takes a two arguments: the data task and the error describing the network or parsing error that occurred. - - @see -dataTaskWithRequest:completionHandler: - */ -- (NSURLSessionDataTask *)GET:(NSString *)URLString - parameters:(NSDictionary *)parameters - success:(void (^)(NSURLSessionDataTask *task, id responseObject))success - failure:(void (^)(NSURLSessionDataTask *task, NSError *error))failure; - -/** - Creates and runs an `NSURLSessionDataTask` with a `HEAD` request. - - @param URLString The URL string used to create the request URL. - @param parameters The parameters to be encoded according to the client request serializer. - @param success A block object to be executed when the task finishes successfully. This block has no return value and takes a single arguments: the data task. - @param failure A block object to be executed when the task finishes unsuccessfully, or that finishes successfully, but encountered an error while parsing the response data. This block has no return value and takes a two arguments: the data task and the error describing the network or parsing error that occurred. - - @see -dataTaskWithRequest:completionHandler: - */ -- (NSURLSessionDataTask *)HEAD:(NSString *)URLString - parameters:(NSDictionary *)parameters - success:(void (^)(NSURLSessionDataTask *task))success - failure:(void (^)(NSURLSessionDataTask *task, NSError *error))failure; - -/** - Creates and runs an `NSURLSessionDataTask` with a `POST` request. - - @param URLString The URL string used to create the request URL. - @param parameters The parameters to be encoded according to the client request serializer. - @param success A block object to be executed when the task finishes successfully. This block has no return value and takes two arguments: the data task, and the response object created by the client response serializer. - @param failure A block object to be executed when the task finishes unsuccessfully, or that finishes successfully, but encountered an error while parsing the response data. This block has no return value and takes a two arguments: the data task and the error describing the network or parsing error that occurred. - - @see -dataTaskWithRequest:completionHandler: - */ -- (NSURLSessionDataTask *)POST:(NSString *)URLString - parameters:(NSDictionary *)parameters - success:(void (^)(NSURLSessionDataTask *task, id responseObject))success - failure:(void (^)(NSURLSessionDataTask *task, NSError *error))failure; - -/** - Creates and runs an `NSURLSessionDataTask` with a multipart `POST` request. - - @param URLString The URL string used to create the request URL. - @param parameters The parameters to be encoded according to the client request serializer. - @param block A block that takes a single argument and appends data to the HTTP body. The block argument is an object adopting the `AFMultipartFormData` protocol. - @param success A block object to be executed when the task finishes successfully. This block has no return value and takes two arguments: the data task, and the response object created by the client response serializer. - @param failure A block object to be executed when the task finishes unsuccessfully, or that finishes successfully, but encountered an error while parsing the response data. This block has no return value and takes a two arguments: the data task and the error describing the network or parsing error that occurred. - - @see -dataTaskWithRequest:completionHandler: - */ -- (NSURLSessionDataTask *)POST:(NSString *)URLString - parameters:(NSDictionary *)parameters - constructingBodyWithBlock:(void (^)(id formData))block - success:(void (^)(NSURLSessionDataTask *task, id responseObject))success - failure:(void (^)(NSURLSessionDataTask *task, NSError *error))failure; - -/** - Creates and runs an `NSURLSessionDataTask` with a `PUT` request. - - @param URLString The URL string used to create the request URL. - @param parameters The parameters to be encoded according to the client request serializer. - @param success A block object to be executed when the task finishes successfully. This block has no return value and takes two arguments: the data task, and the response object created by the client response serializer. - @param failure A block object to be executed when the task finishes unsuccessfully, or that finishes successfully, but encountered an error while parsing the response data. This block has no return value and takes a two arguments: the data task and the error describing the network or parsing error that occurred. - - @see -dataTaskWithRequest:completionHandler: - */ -- (NSURLSessionDataTask *)PUT:(NSString *)URLString - parameters:(NSDictionary *)parameters - success:(void (^)(NSURLSessionDataTask *task, id responseObject))success - failure:(void (^)(NSURLSessionDataTask *task, NSError *error))failure; - -/** - Creates and runs an `NSURLSessionDataTask` with a `PATCH` request. - - @param URLString The URL string used to create the request URL. - @param parameters The parameters to be encoded according to the client request serializer. - @param success A block object to be executed when the task finishes successfully. This block has no return value and takes two arguments: the data task, and the response object created by the client response serializer. - @param failure A block object to be executed when the task finishes unsuccessfully, or that finishes successfully, but encountered an error while parsing the response data. This block has no return value and takes a two arguments: the data task and the error describing the network or parsing error that occurred. - - @see -dataTaskWithRequest:completionHandler: - */ -- (NSURLSessionDataTask *)PATCH:(NSString *)URLString - parameters:(NSDictionary *)parameters - success:(void (^)(NSURLSessionDataTask *task, id responseObject))success - failure:(void (^)(NSURLSessionDataTask *task, NSError *error))failure; - -/** - Creates and runs an `NSURLSessionDataTask` with a `DELETE` request. - - @param URLString The URL string used to create the request URL. - @param parameters The parameters to be encoded according to the client request serializer. - @param success A block object to be executed when the task finishes successfully. This block has no return value and takes two arguments: the data task, and the response object created by the client response serializer. - @param failure A block object to be executed when the task finishes unsuccessfully, or that finishes successfully, but encountered an error while parsing the response data. This block has no return value and takes a two arguments: the data task and the error describing the network or parsing error that occurred. - - @see -dataTaskWithRequest:completionHandler: - */ -- (NSURLSessionDataTask *)DELETE:(NSString *)URLString - parameters:(NSDictionary *)parameters - success:(void (^)(NSURLSessionDataTask *task, id responseObject))success - failure:(void (^)(NSURLSessionDataTask *task, NSError *error))failure; - -@end - -#endif diff --git a/Projects/iOS > 6/Pods/AFNetworking/AFNetworking/AFHTTPSessionManager.m b/Projects/iOS > 6/Pods/AFNetworking/AFNetworking/AFHTTPSessionManager.m deleted file mode 100644 index dda232f..0000000 --- a/Projects/iOS > 6/Pods/AFNetworking/AFNetworking/AFHTTPSessionManager.m +++ /dev/null @@ -1,325 +0,0 @@ -// AFHTTPSessionManager.m -// -// Copyright (c) 2013 AFNetworking (http://afnetworking.com) -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -#import "AFHTTPSessionManager.h" - -#if (defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && __IPHONE_OS_VERSION_MAX_ALLOWED >= 70000) || (defined(__MAC_OS_X_VERSION_MAX_ALLOWED) && __MAC_OS_X_VERSION_MAX_ALLOWED >= 1090) - -#import "AFHTTPRequestOperation.h" - -#import -#import - -#ifdef _SYSTEMCONFIGURATION_H -#import -#import -#import -#import -#import -#endif - -#if defined(__IPHONE_OS_VERSION_MIN_REQUIRED) -#import -#endif - -@interface AFHTTPSessionManager () -@property (readwrite, nonatomic, strong) NSURL *baseURL; -@property (readwrite, nonatomic, strong) AFNetworkReachabilityManager *reachabilityManager; -@end - -@implementation AFHTTPSessionManager - -+ (instancetype)manager { - return [[[self class] alloc] initWithBaseURL:nil]; -} - -- (instancetype)init { - return [self initWithBaseURL:nil]; -} - -- (instancetype)initWithBaseURL:(NSURL *)url { - return [self initWithBaseURL:url sessionConfiguration:nil]; -} - -- (instancetype)initWithSessionConfiguration:(NSURLSessionConfiguration *)configuration { - return [self initWithBaseURL:nil sessionConfiguration:configuration]; -} - -- (instancetype)initWithBaseURL:(NSURL *)url - sessionConfiguration:(NSURLSessionConfiguration *)configuration -{ - self = [super initWithSessionConfiguration:configuration]; - if (!self) { - return nil; - } - - // Ensure terminal slash for baseURL path, so that NSURL +URLWithString:relativeToURL: works as expected - if ([[url path] length] > 0 && ![[url absoluteString] hasSuffix:@"/"]) { - url = [url URLByAppendingPathComponent:@""]; - } - - self.baseURL = url; - - self.requestSerializer = [AFHTTPRequestSerializer serializer]; - self.responseSerializer = [AFJSONResponseSerializer serializer]; - - if (self.baseURL.host) { - self.reachabilityManager = [AFNetworkReachabilityManager managerForDomain:self.baseURL.host]; - } else { - self.reachabilityManager = [AFNetworkReachabilityManager sharedManager]; - } - - return self; -} - -- (NSString *)description { - return [NSString stringWithFormat:@"<%@: %p, baseURL: %@, session: %@, operationQueue: %@>", NSStringFromClass([self class]), self, [self.baseURL absoluteString], self.session, self.operationQueue]; -} - -#pragma mark - - -#ifdef _SYSTEMCONFIGURATION_H -#endif - -- (void)setRequestSerializer:(AFHTTPRequestSerializer *)requestSerializer { - NSParameterAssert(requestSerializer); - - _requestSerializer = requestSerializer; -} - -- (void)setResponseSerializer:(AFHTTPResponseSerializer *)responseSerializer { - NSParameterAssert(responseSerializer); - - [super setResponseSerializer:responseSerializer]; -} - -#pragma mark - - -- (NSURLSessionDataTask *)GET:(NSString *)URLString - parameters:(NSDictionary *)parameters - success:(void (^)(NSURLSessionDataTask *task, id responseObject))success - failure:(void (^)(NSURLSessionDataTask *task, NSError *error))failure -{ - NSMutableURLRequest *request = [self.requestSerializer requestWithMethod:@"GET" URLString:[[NSURL URLWithString:URLString relativeToURL:self.baseURL] absoluteString] parameters:parameters]; - - __block NSURLSessionDataTask *task = [self dataTaskWithRequest:request completionHandler:^(NSURLResponse * __unused response, id responseObject, NSError *error) { - if (error) { - if (failure) { - failure(task, error); - } - } else { - if (success) { - success(task, responseObject); - } - } - }]; - - [task resume]; - - return task; -} - -- (NSURLSessionDataTask *)HEAD:(NSString *)URLString - parameters:(NSDictionary *)parameters - success:(void (^)(NSURLSessionDataTask *task))success - failure:(void (^)(NSURLSessionDataTask *task, NSError *error))failure -{ - NSMutableURLRequest *request = [self.requestSerializer requestWithMethod:@"HEAD" URLString:[[NSURL URLWithString:URLString relativeToURL:self.baseURL] absoluteString] parameters:parameters]; - - __block NSURLSessionDataTask *task = [self dataTaskWithRequest:request completionHandler:^(NSURLResponse * __unused response, id __unused responseObject, NSError *error) { - if (error) { - if (failure) { - failure(task, error); - } - } else { - if (success) { - success(task); - } - } - }]; - - [task resume]; - - return task; -} - -- (NSURLSessionDataTask *)POST:(NSString *)URLString - parameters:(NSDictionary *)parameters - success:(void (^)(NSURLSessionDataTask *task, id responseObject))success - failure:(void (^)(NSURLSessionDataTask *task, NSError *error))failure -{ - NSMutableURLRequest *request = [self.requestSerializer requestWithMethod:@"POST" URLString:[[NSURL URLWithString:URLString relativeToURL:self.baseURL] absoluteString] parameters:parameters]; - - __block NSURLSessionDataTask *task = [self dataTaskWithRequest:request completionHandler:^(NSURLResponse * __unused response, id responseObject, NSError *error) { - if (error) { - if (failure) { - failure(task, error); - } - } else { - if (success) { - success(task, responseObject); - } - } - }]; - - [task resume]; - - return task; -} - -- (NSURLSessionDataTask *)POST:(NSString *)URLString - parameters:(NSDictionary *)parameters - constructingBodyWithBlock:(void (^)(id formData))block - success:(void (^)(NSURLSessionDataTask *task, id responseObject))success - failure:(void (^)(NSURLSessionDataTask *task, NSError *error))failure -{ - NSMutableURLRequest *request = [self.requestSerializer multipartFormRequestWithMethod:@"POST" URLString:[[NSURL URLWithString:URLString relativeToURL:self.baseURL] absoluteString] parameters:parameters constructingBodyWithBlock:block]; - - __block NSURLSessionDataTask *task = [self dataTaskWithRequest:request completionHandler:^(NSURLResponse * __unused response, id responseObject, NSError *error) { - if (error) { - if (failure) { - failure(task, error); - } - } else { - if (success) { - success(task, responseObject); - } - } - }]; - - [task resume]; - - return task; -} - -- (NSURLSessionDataTask *)PUT:(NSString *)URLString - parameters:(NSDictionary *)parameters - success:(void (^)(NSURLSessionDataTask *task, id responseObject))success - failure:(void (^)(NSURLSessionDataTask *task, NSError *error))failure -{ - NSMutableURLRequest *request = [self.requestSerializer requestWithMethod:@"PUT" URLString:[[NSURL URLWithString:URLString relativeToURL:self.baseURL] absoluteString] parameters:parameters]; - - __block NSURLSessionDataTask *task = [self dataTaskWithRequest:request completionHandler:^(NSURLResponse * __unused response, id responseObject, NSError *error) { - if (error) { - if (failure) { - failure(task, error); - } - } else { - if (success) { - success(task, responseObject); - } - } - }]; - - [task resume]; - - return task; -} - -- (NSURLSessionDataTask *)PATCH:(NSString *)URLString - parameters:(NSDictionary *)parameters - success:(void (^)(NSURLSessionDataTask *task, id responseObject))success - failure:(void (^)(NSURLSessionDataTask *task, NSError *error))failure -{ - NSMutableURLRequest *request = [self.requestSerializer requestWithMethod:@"PATCH" URLString:[[NSURL URLWithString:URLString relativeToURL:self.baseURL] absoluteString] parameters:parameters]; - - __block NSURLSessionDataTask *task = [self dataTaskWithRequest:request completionHandler:^(NSURLResponse * __unused response, id responseObject, NSError *error) { - if (error) { - if (failure) { - failure(task, error); - } - } else { - if (success) { - success(task, responseObject); - } - } - }]; - - [task resume]; - - return task; -} - -- (NSURLSessionDataTask *)DELETE:(NSString *)URLString - parameters:(NSDictionary *)parameters - success:(void (^)(NSURLSessionDataTask *task, id responseObject))success - failure:(void (^)(NSURLSessionDataTask *task, NSError *error))failure -{ - NSMutableURLRequest *request = [self.requestSerializer requestWithMethod:@"DELETE" URLString:[[NSURL URLWithString:URLString relativeToURL:self.baseURL] absoluteString] parameters:parameters]; - - __block NSURLSessionDataTask *task = [self dataTaskWithRequest:request completionHandler:^(NSURLResponse * __unused response, id responseObject, NSError *error) { - if (error) { - if (failure) { - failure(task, error); - } - } else { - if (success) { - success(task, responseObject); - } - } - }]; - - [task resume]; - - return task; -} - -#pragma mark - NSCoding - -- (id)initWithCoder:(NSCoder *)decoder { - NSURL *baseURL = [decoder decodeObjectForKey:NSStringFromSelector(@selector(baseURL))]; - NSURLSessionConfiguration *configuration = [decoder decodeObjectForKey:@"sessionConfiguration"]; - - self = [self initWithBaseURL:baseURL sessionConfiguration:configuration]; - if (!self) { - return nil; - } - - self.requestSerializer = [decoder decodeObjectForKey:NSStringFromSelector(@selector(requestSerializer))]; - self.responseSerializer = [decoder decodeObjectForKey:NSStringFromSelector(@selector(responseSerializer))]; - - return self; -} - -- (void)encodeWithCoder:(NSCoder *)coder { - [super encodeWithCoder:coder]; - - [coder encodeObject:self.baseURL forKey:NSStringFromSelector(@selector(baseURL))]; - [coder encodeObject:self.session.configuration forKey:@"sessionConfiguration"]; - [coder encodeObject:self.requestSerializer forKey:NSStringFromSelector(@selector(requestSerializer))]; - [coder encodeObject:self.responseSerializer forKey:NSStringFromSelector(@selector(responseSerializer))]; -} - -#pragma mark - NSCopying - -- (id)copyWithZone:(NSZone *)zone { - AFHTTPSessionManager *HTTPClient = [[[self class] allocWithZone:zone] initWithBaseURL:self.baseURL sessionConfiguration:self.session.configuration]; - - HTTPClient.requestSerializer = [self.requestSerializer copyWithZone:zone]; - HTTPClient.responseSerializer = [self.responseSerializer copyWithZone:zone]; - - return HTTPClient; -} - -@end - -#endif diff --git a/Projects/iOS > 6/Pods/AFNetworking/AFNetworking/AFNetworkReachabilityManager.h b/Projects/iOS > 6/Pods/AFNetworking/AFNetworking/AFNetworkReachabilityManager.h deleted file mode 100644 index c17e1a3..0000000 --- a/Projects/iOS > 6/Pods/AFNetworking/AFNetworking/AFNetworkReachabilityManager.h +++ /dev/null @@ -1,195 +0,0 @@ -// AFNetworkReachabilityManager.h -// -// Copyright (c) 2013 AFNetworking (http://afnetworking.com) -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -#import -#import - -#import -#import -#import -#import -#import - -typedef NS_ENUM(NSInteger, AFNetworkReachabilityStatus) { - AFNetworkReachabilityStatusUnknown = -1, - AFNetworkReachabilityStatusNotReachable = 0, - AFNetworkReachabilityStatusReachableViaWWAN = 1, - AFNetworkReachabilityStatusReachableViaWiFi = 2, -}; - -/** - `AFNetworkReachabilityManager` monitors the reachability of domains, and addresses for both WWAN and WiFi network interfaces. - - See Apple's Reachability Sample Code (https://developer.apple.com/library/ios/samplecode/reachability/) - */ -@interface AFNetworkReachabilityManager : NSObject - -/** - The current network reachability status. - */ -@property (readonly, nonatomic, assign) AFNetworkReachabilityStatus networkReachabilityStatus; - -/** - Whether or not the network is currently reachable. - */ -@property (readonly, nonatomic, assign, getter = isReachable) BOOL reachable; - -/** - Whether or not the network is currently reachable via WWAN. - */ -@property (readonly, nonatomic, assign, getter = isReachableViaWWAN) BOOL reachableViaWWAN; - -/** - Whether or not the network is currently reachable via WiFi. - */ -@property (readonly, nonatomic, assign, getter = isReachableViaWiFi) BOOL reachableViaWiFi; - -///--------------------- -/// @name Initialization -///--------------------- - -/** - Returns the shared network reachability manager. - */ -+ (instancetype)sharedManager; - -/** - Creates and returns a network reachability manager for the specified domain. - - @param domain The domain used to evaluate network reachability. - - @return An initialized network reachability manager, actively monitoring the specified domain. - */ -+ (instancetype)managerForDomain:(NSString *)domain; - -/** - Creates and returns a network reachability manager for the socket address. - - @param address The socket address used to evaluate network reachability. - - @return An initialized network reachability manager, actively monitoring the specified socket address. - */ -+ (instancetype)managerForAddress:(const struct sockaddr_in *)address; - -/** - Initializes an instance of a network reachability manager from the specified reachability object. - - @param reachability The reachability object to monitor. - - @return An initialized network reachability manager, actively monitoring the specified reachability. - */ -- (instancetype)initWithReachability:(SCNetworkReachabilityRef)reachability; - -///-------------------------------------------------- -/// @name Starting & Stopping Reachability Monitoring -///-------------------------------------------------- - -/** - Starts monitoring for changes in network reachability status. - */ -- (void)startMonitoring; - -/** - Stops monitoring for changes in network reachability status. - */ -- (void)stopMonitoring; - -///------------------------------------------------- -/// @name Getting Localized Reachability Description -///------------------------------------------------- - -/** - Returns a localized string representation of the current network reachability status. - */ -- (NSString *)localizedNetworkReachabilityStatusString; - -///--------------------------------------------------- -/// @name Setting Network Reachability Change Callback -///--------------------------------------------------- - -/** - Sets a callback to be executed when the network availability of the `baseURL` host changes. - - @param block A block object to be executed when the network availability of the `baseURL` host changes.. This block has no return value and takes a single argument which represents the various reachability states from the device to the `baseURL`. - */ -- (void)setReachabilityStatusChangeBlock:(void (^)(AFNetworkReachabilityStatus status))block; - -@end - -///---------------- -/// @name Constants -///---------------- - -/** - ## Network Reachability - - The following constants are provided by `AFNetworkReachabilityManager` as possible network reachability statuses. - - enum { - AFNetworkReachabilityStatusUnknown, - AFNetworkReachabilityStatusNotReachable, - AFNetworkReachabilityStatusReachableViaWWAN, - AFNetworkReachabilityStatusReachableViaWiFi, - } - - `AFNetworkReachabilityStatusUnknown` - The `baseURL` host reachability is not known. - - `AFNetworkReachabilityStatusNotReachable` - The `baseURL` host cannot be reached. - - `AFNetworkReachabilityStatusReachableViaWWAN` - The `baseURL` host can be reached via a cellular connection, such as EDGE or GPRS. - - `AFNetworkReachabilityStatusReachableViaWiFi` - The `baseURL` host can be reached via a Wi-Fi connection. - - ### Keys for Notification UserInfo Dictionary - - Strings that are used as keys in a `userInfo` dictionary in a network reachability status change notification. - - `AFNetworkingReachabilityNotificationStatusItem` - A key in the userInfo dictionary in a `AFNetworkingReachabilityDidChangeNotification` notification. - The corresponding value is an `NSNumber` object representing the `AFNetworkReachabilityStatus` value for the current reachability status. - */ - -///-------------------- -/// @name Notifications -///-------------------- - -/** - Posted when network reachability changes. - This notification assigns no notification object. The `userInfo` dictionary contains an `NSNumber` object under the `AFNetworkingReachabilityNotificationStatusItem` key, representing the `AFNetworkReachabilityStatus` value for the current network reachability. - - @warning In order for network reachability to be monitored, include the `SystemConfiguration` framework in the active target's "Link Binary With Library" build phase, and add `#import ` to the header prefix of the project (`Prefix.pch`). - */ -extern NSString * const AFNetworkingReachabilityDidChangeNotification; -extern NSString * const AFNetworkingReachabilityNotificationStatusItem; - -///-------------------- -/// @name Functions -///-------------------- - -/** - Returns a localized string representation of an `AFNetworkReachabilityStatus` value. - */ -extern NSString * AFStringFromNetworkReachabilityStatus(AFNetworkReachabilityStatus status); diff --git a/Projects/iOS > 6/Pods/AFNetworking/AFNetworking/AFNetworkReachabilityManager.m b/Projects/iOS > 6/Pods/AFNetworking/AFNetworking/AFNetworkReachabilityManager.m deleted file mode 100644 index fcd83bb..0000000 --- a/Projects/iOS > 6/Pods/AFNetworking/AFNetworking/AFNetworkReachabilityManager.m +++ /dev/null @@ -1,222 +0,0 @@ -// AFNetworkReachabilityManager.m -// -// Copyright (c) 2013 AFNetworking (http://afnetworking.com) -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -#import "AFNetworkReachabilityManager.h" - -NSString * const AFNetworkingReachabilityDidChangeNotification = @"com.alamofire.networking.reachability.change"; -NSString * const AFNetworkingReachabilityNotificationStatusItem = @"AFNetworkingReachabilityNotificationStatusItem"; - -typedef void (^AFNetworkReachabilityStatusBlock)(AFNetworkReachabilityStatus status); - -NSString * AFStringFromNetworkReachabilityStatus(AFNetworkReachabilityStatus status) { - switch (status) { - case AFNetworkReachabilityStatusNotReachable: - return NSLocalizedStringFromTable(@"Not Reachable", @"AFNetworking", nil); - case AFNetworkReachabilityStatusReachableViaWWAN: - return NSLocalizedStringFromTable(@"Reachable via WWAN", @"AFNetworking", nil); - case AFNetworkReachabilityStatusReachableViaWiFi: - return NSLocalizedStringFromTable(@"Reachable via WiFi", @"AFNetworking", nil); - case AFNetworkReachabilityStatusUnknown: - default: - return NSLocalizedStringFromTable(@"Unknown", @"AFNetworking", nil); - } -} - -static AFNetworkReachabilityStatus AFNetworkReachabilityStatusForFlags(SCNetworkReachabilityFlags flags) { - BOOL isReachable = ((flags & kSCNetworkReachabilityFlagsReachable) != 0); - BOOL needsConnection = ((flags & kSCNetworkReachabilityFlagsConnectionRequired) != 0); - BOOL canConnectionAutomatically = (((flags & kSCNetworkReachabilityFlagsConnectionOnDemand ) != 0) || ((flags & kSCNetworkReachabilityFlagsConnectionOnTraffic) != 0)); - BOOL canConnectWithoutUserInteraction = (canConnectionAutomatically && (flags & kSCNetworkReachabilityFlagsInterventionRequired) == 0); - BOOL isNetworkReachable = (isReachable && (!needsConnection || canConnectWithoutUserInteraction)); - - AFNetworkReachabilityStatus status = AFNetworkReachabilityStatusUnknown; - if (isNetworkReachable == NO) { - status = AFNetworkReachabilityStatusNotReachable; - } -#if TARGET_OS_IPHONE - else if ((flags & kSCNetworkReachabilityFlagsIsWWAN) != 0) { - status = AFNetworkReachabilityStatusReachableViaWWAN; - } -#endif - else { - status = AFNetworkReachabilityStatusReachableViaWiFi; - } - - return status; -} - -static void AFNetworkReachabilityCallback(SCNetworkReachabilityRef __unused target, SCNetworkReachabilityFlags flags, void *info) { - AFNetworkReachabilityStatus status = AFNetworkReachabilityStatusForFlags(flags); - AFNetworkReachabilityStatusBlock block = (__bridge AFNetworkReachabilityStatusBlock)info; - if (block) { - block(status); - } - - - dispatch_async(dispatch_get_main_queue(), ^{ - NSNotificationCenter *notificationCenter = [NSNotificationCenter defaultCenter]; - [notificationCenter postNotificationName:AFNetworkingReachabilityDidChangeNotification object:nil userInfo:@{ AFNetworkingReachabilityNotificationStatusItem: @(status) }]; - }); -} - -static const void * AFNetworkReachabilityRetainCallback(const void *info) { - return Block_copy(info); -} - -static void AFNetworkReachabilityReleaseCallback(const void *info) { - if (info) { - Block_release(info); - } -} - -@interface AFNetworkReachabilityManager () -@property (readwrite, nonatomic, assign) SCNetworkReachabilityRef networkReachability; -@property (readwrite, nonatomic, assign) AFNetworkReachabilityStatus networkReachabilityStatus; -@property (readwrite, nonatomic, copy) AFNetworkReachabilityStatusBlock networkReachabilityStatusBlock; -@end - -@implementation AFNetworkReachabilityManager - -+ (instancetype)sharedManager { - static AFNetworkReachabilityManager *_sharedManager = nil; - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - struct sockaddr_in address; - bzero(&address, sizeof(address)); - address.sin_len = sizeof(address); - address.sin_family = AF_INET; - - _sharedManager = [self managerForAddress:&address]; - }); - - return _sharedManager; -} - -+ (instancetype)managerForDomain:(NSString *)domain { - SCNetworkReachabilityRef reachability = SCNetworkReachabilityCreateWithName(kCFAllocatorDefault, [domain UTF8String]); - - return [[self alloc] initWithReachability:reachability]; -} - -+ (instancetype)managerForAddress:(const struct sockaddr_in *)address { - SCNetworkReachabilityRef reachability = SCNetworkReachabilityCreateWithAddress(kCFAllocatorDefault, (const struct sockaddr *)address); - - return [[self alloc] initWithReachability:reachability]; -} - -- (instancetype)initWithReachability:(SCNetworkReachabilityRef)reachability { - self = [super init]; - if (!self) { - return nil; - } - - self.networkReachability = reachability; - - self.networkReachabilityStatus = AFNetworkReachabilityStatusUnknown; - - return self; -} - -- (void)dealloc { - [self stopMonitoring]; - - CFRelease(_networkReachability); - _networkReachability = NULL; -} - -#pragma mark - - -- (BOOL)isReachable { - return [self isReachableViaWWAN] || [self isReachableViaWiFi]; -} - -- (BOOL)isReachableViaWWAN { - return self.networkReachabilityStatus == AFNetworkReachabilityStatusReachableViaWWAN; -} - -- (BOOL)isReachableViaWiFi { - return self.networkReachabilityStatus == AFNetworkReachabilityStatusReachableViaWiFi; -} - -#pragma mark - - -- (void)startMonitoring { - [self stopMonitoring]; - - if (!self.networkReachability) { - return; - } - - __weak __typeof(self)weakSelf = self; - AFNetworkReachabilityStatusBlock callback = ^(AFNetworkReachabilityStatus status) { - __strong __typeof(weakSelf)strongSelf = weakSelf; - - strongSelf.networkReachabilityStatus = status; - if (strongSelf.networkReachabilityStatusBlock) { - strongSelf.networkReachabilityStatusBlock(status); - } - }; - - SCNetworkReachabilityContext context = {0, (__bridge void *)callback, AFNetworkReachabilityRetainCallback, AFNetworkReachabilityReleaseCallback, NULL}; - SCNetworkReachabilitySetCallback(self.networkReachability, AFNetworkReachabilityCallback, &context); - - SCNetworkReachabilityFlags flags; - SCNetworkReachabilityGetFlags(self.networkReachability, &flags); - dispatch_async(dispatch_get_main_queue(), ^{ - AFNetworkReachabilityStatus status = AFNetworkReachabilityStatusForFlags(flags); - callback(status); - }); - - SCNetworkReachabilityScheduleWithRunLoop(self.networkReachability, CFRunLoopGetMain(), kCFRunLoopCommonModes); -} - -- (void)stopMonitoring { - if (!self.networkReachability) { - return; - } - - SCNetworkReachabilityUnscheduleFromRunLoop(self.networkReachability, CFRunLoopGetMain(), kCFRunLoopCommonModes); -} - -#pragma mark - - -- (NSString *)localizedNetworkReachabilityStatusString { - return AFStringFromNetworkReachabilityStatus(self.networkReachabilityStatus); -} - -#pragma mark - - -- (void)setReachabilityStatusChangeBlock:(void (^)(AFNetworkReachabilityStatus status))block { - self.networkReachabilityStatusBlock = block; -} - -#pragma mark - NSKeyValueObserving - -+ (NSSet *)keyPathsForValuesAffectingValueForKey:(NSString *)key { - if ([key isEqualToString:@"reachable"] || [key isEqualToString:@"reachableViaWWAN"] || [key isEqualToString:@"reachableViaWiFi"]) { - return [NSSet setWithObject:@"networkReachabilityStatus"]; - } - - return [super keyPathsForValuesAffectingValueForKey:key]; -} - -@end diff --git a/Projects/iOS > 6/Pods/AFNetworking/AFNetworking/AFSecurityPolicy.h b/Projects/iOS > 6/Pods/AFNetworking/AFNetworking/AFSecurityPolicy.h deleted file mode 100644 index d36bc02..0000000 --- a/Projects/iOS > 6/Pods/AFNetworking/AFNetworking/AFSecurityPolicy.h +++ /dev/null @@ -1,118 +0,0 @@ -// AFSecurity.h -// -// Copyright (c) 2013 AFNetworking (http://afnetworking.com) -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -#import -#import - -typedef NS_ENUM(NSUInteger, AFSSLPinningMode) { - AFSSLPinningModeNone, - AFSSLPinningModePublicKey, - AFSSLPinningModeCertificate, -}; - -/** - `AFSecurityPolicy` evaluates server trust against pinned X.509 certificates and public keys over secure connections. - - Adding pinned SSL certificates to your app helps prevent man-in-the-middle attacks and other vulnerabilities. Applications dealing with sensitive customer data or financial information are strongly encouraged to route all communication over an HTTPS connection with SSL pinning configured and enabled. - */ -@interface AFSecurityPolicy : NSObject - -/** - The criteria by which server trust should be evaluated against the pinned SSL certificates. Defaults to `AFSSLPinningModeNone`. - */ -@property (nonatomic, assign) AFSSLPinningMode SSLPinningMode; - -/** - The certificates used to evaluate server trust according to the SSL pinning mode. By default, this property is set to any (`.cer`) certificates included in the app bundle. - */ -@property (nonatomic, strong) NSArray *pinnedCertificates; - -/** - Whether or not to trust servers with an invalid or expired SSL certificates. Defaults to `NO`. - */ -@property (nonatomic, assign) BOOL allowInvalidCertificates; - -///----------------------------------------- -/// @name Getting Specific Security Policies -///----------------------------------------- - -/** - Returns the shared default security policy, which does not accept invalid certificates, and does not validate against pinned certificates or public keys. - - @return The default security policy. - */ -+ (instancetype)defaultPolicy; - -///--------------------- -/// @name Initialization -///--------------------- - -/** - Creates and returns a security policy with the specified pinning mode. - - @param pinningMode The SSL pinning mode. - - @return A new security policy. - */ -+ (instancetype)policyWithPinningMode:(AFSSLPinningMode)pinningMode; - -///------------------------------ -/// @name Evaluating Server Trust -///------------------------------ - -/** - Whether or not the specified server trust should be accepted, based on the security policy. - - This method should be used when responding to an authentication challenge from a server. - - @param serverTrust The X.509 certificate trust of the server. - - @return Whether or not to trust the server. - */ -- (BOOL)evaluateServerTrust:(SecTrustRef)serverTrust; - -@end - -///---------------- -/// @name Constants -///---------------- - -/** - ## SSL Pinning Modes - - The following constants are provided by `AFSSLPinningMode` as possible SSL pinning modes. - - enum { - AFSSLPinningModeNone, - AFSSLPinningModePublicKey, - AFSSLPinningModeCertificate, - } - - `AFSSLPinningModeNone` - Do not validate servers against pinned certificates. - - `AFSSLPinningModePublicKey` - Validate host certificates against public keys of pinned certificates. - - `AFSSLPinningModeCertificate` - Validate host certificates against pinned certificates. -*/ diff --git a/Projects/iOS > 6/Pods/AFNetworking/AFNetworking/AFSecurityPolicy.m b/Projects/iOS > 6/Pods/AFNetworking/AFNetworking/AFSecurityPolicy.m deleted file mode 100644 index 14d23b9..0000000 --- a/Projects/iOS > 6/Pods/AFNetworking/AFNetworking/AFSecurityPolicy.m +++ /dev/null @@ -1,235 +0,0 @@ -// AFSecurity.m -// -// Copyright (c) 2013 AFNetworking (http://afnetworking.com) -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -#import "AFSecurityPolicy.h" - -#if !defined(__IPHONE_OS_VERSION_MIN_REQUIRED) -static NSData * AFSecKeyGetData(SecKeyRef key) { - CFDataRef data = NULL; - -#if defined(NS_BLOCK_ASSERTIONS) - SecItemExport(key, kSecFormatUnknown, kSecItemPemArmour, NULL, &data); -#else - OSStatus status = SecItemExport(key, kSecFormatUnknown, kSecItemPemArmour, NULL, &data); - NSCAssert(status == errSecSuccess, @"SecItemExport error: %ld", (long int)status); -#endif - - NSCParameterAssert(data); - - return (__bridge_transfer NSData *)data; -} -#endif - -static BOOL AFSecKeyIsEqualToKey(SecKeyRef key1, SecKeyRef key2) { -#if defined(__IPHONE_OS_VERSION_MIN_REQUIRED) - return [(__bridge id)key1 isEqual:(__bridge id)key2]; -#else - return [AFSecKeyGetData(key1) isEqual:AFSecKeyGetData(key2)]; -#endif -} - -static id AFPublicKeyForCertificate(NSData *certificate) { - SecCertificateRef allowedCertificate = SecCertificateCreateWithData(NULL, (__bridge CFDataRef)certificate); - NSCParameterAssert(allowedCertificate); - - SecCertificateRef allowedCertificates[] = {allowedCertificate}; - CFArrayRef tempCertificates = CFArrayCreate(NULL, (const void **)allowedCertificates, 1, NULL); - - SecPolicyRef policy = SecPolicyCreateBasicX509(); - SecTrustRef allowedTrust = NULL; -#if defined(NS_BLOCK_ASSERTIONS) - SecTrustCreateWithCertificates(tempCertificates, policy, &allowedTrust); -#else - OSStatus status = SecTrustCreateWithCertificates(tempCertificates, policy, &allowedTrust); - NSCAssert(status == errSecSuccess, @"SecTrustCreateWithCertificates error: %ld", (long int)status); -#endif - - SecTrustResultType result = 0; - -#if defined(NS_BLOCK_ASSERTIONS) - SecTrustEvaluate(allowedTrust, &result); -#else - status = SecTrustEvaluate(allowedTrust, &result); - NSCAssert(status == errSecSuccess, @"SecTrustEvaluate error: %ld", (long int)status); -#endif - - SecKeyRef allowedPublicKey = SecTrustCopyPublicKey(allowedTrust); - NSCParameterAssert(allowedPublicKey); - - CFRelease(allowedTrust); - CFRelease(policy); - CFRelease(tempCertificates); - CFRelease(allowedCertificate); - - return (__bridge_transfer id)allowedPublicKey; -} - -static BOOL AFServerTrustIsValid(SecTrustRef serverTrust) { - SecTrustResultType result = 0; - -#if defined(NS_BLOCK_ASSERTIONS) - SecTrustEvaluate(serverTrust, &result); -#else - OSStatus status = SecTrustEvaluate(serverTrust, &result); - NSCAssert(status == errSecSuccess, @"SecTrustEvaluate error: %ld", (long int)status); -#endif - - return (result == kSecTrustResultUnspecified || result == kSecTrustResultProceed); -} - -static NSArray * AFCertificateTrustChainForServerTrust(SecTrustRef serverTrust) { - CFIndex certificateCount = SecTrustGetCertificateCount(serverTrust); - NSMutableArray *trustChain = [NSMutableArray arrayWithCapacity:(NSUInteger)certificateCount]; - - for (CFIndex i = 0; i < certificateCount; i++) { - SecCertificateRef certificate = SecTrustGetCertificateAtIndex(serverTrust, i); - [trustChain addObject:(__bridge_transfer NSData *)SecCertificateCopyData(certificate)]; - } - - return [NSArray arrayWithArray:trustChain]; -} - -static NSArray * AFPublicKeyTrustChainForServerTrust(SecTrustRef serverTrust) { - SecPolicyRef policy = SecPolicyCreateBasicX509(); - CFIndex certificateCount = SecTrustGetCertificateCount(serverTrust); - NSMutableArray *trustChain = [NSMutableArray arrayWithCapacity:(NSUInteger)certificateCount]; - for (CFIndex i = 0; i < certificateCount; i++) { - SecCertificateRef certificate = SecTrustGetCertificateAtIndex(serverTrust, i); - - SecCertificateRef someCertificates[] = {certificate}; - CFArrayRef certificates = CFArrayCreate(NULL, (const void **)someCertificates, 1, NULL); - - SecTrustRef trust = NULL; - - OSStatus status = SecTrustCreateWithCertificates(certificates, policy, &trust); - NSCAssert(status == errSecSuccess, @"SecTrustCreateWithCertificates error: %ld", (long int)status); - - SecTrustResultType result; - status = SecTrustEvaluate(trust, &result); - NSCAssert(status == errSecSuccess, @"SecTrustEvaluate error: %ld", (long int)status); - - [trustChain addObject:(__bridge_transfer id)SecTrustCopyPublicKey(trust)]; - - CFRelease(trust); - CFRelease(certificates); - } - CFRelease(policy); - - return [NSArray arrayWithArray:trustChain]; -} - -#pragma mark - - -@interface AFSecurityPolicy() -@property (readwrite, nonatomic, strong) NSArray *pinnedPublicKeys; -@end - -@implementation AFSecurityPolicy - -+ (NSArray *)defaultPinnedCertificates { - static NSArray *_defaultPinnedCertificates = nil; - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - NSBundle *bundle = [NSBundle bundleForClass:[self class]]; - NSArray *paths = [bundle pathsForResourcesOfType:@"cer" inDirectory:@"."]; - - NSMutableArray *certificates = [NSMutableArray arrayWithCapacity:[paths count]]; - for (NSString *path in paths) { - NSData *certificateData = [NSData dataWithContentsOfFile:path]; - [certificates addObject:certificateData]; - } - - _defaultPinnedCertificates = [[NSArray alloc] initWithArray:certificates]; - }); - - return _defaultPinnedCertificates; -} - -+ (instancetype)defaultPolicy { - AFSecurityPolicy *securityPolicy = [[self alloc] init]; - securityPolicy.SSLPinningMode = AFSSLPinningModeNone; - - return securityPolicy; -} - -+ (instancetype)policyWithPinningMode:(AFSSLPinningMode)pinningMode { - AFSecurityPolicy *securityPolicy = [[self alloc] init]; - securityPolicy.SSLPinningMode = pinningMode; - [securityPolicy setPinnedCertificates:[self defaultPinnedCertificates]]; - - return securityPolicy; -} - -#pragma mark - - -- (void)setPinnedCertificates:(NSArray *)pinnedCertificates { - _pinnedCertificates = pinnedCertificates; - - if (self.pinnedCertificates) { - NSMutableArray *mutablePinnedPublicKeys = [NSMutableArray arrayWithCapacity:[self.pinnedCertificates count]]; - for (NSData *certificate in self.pinnedCertificates) { - [mutablePinnedPublicKeys addObject:AFPublicKeyForCertificate(certificate)]; - } - self.pinnedPublicKeys = [NSArray arrayWithArray:mutablePinnedPublicKeys]; - } else { - self.pinnedPublicKeys = nil; - } -} - -#pragma mark - - -- (BOOL)evaluateServerTrust:(SecTrustRef)serverTrust { - switch (self.SSLPinningMode) { - case AFSSLPinningModeNone: - return (self.allowInvalidCertificates || AFServerTrustIsValid(serverTrust)); - case AFSSLPinningModeCertificate: { - for (NSData *trustChainCertificate in AFCertificateTrustChainForServerTrust(serverTrust)) { - if ([self.pinnedCertificates containsObject:trustChainCertificate]) { - return YES; - } - } - } - break; - case AFSSLPinningModePublicKey: { - for (id trustChainPublicKey in AFPublicKeyTrustChainForServerTrust(serverTrust)) { - for (id pinnedPublicKey in self.pinnedPublicKeys) { - if (AFSecKeyIsEqualToKey((__bridge SecKeyRef)trustChainPublicKey, (__bridge SecKeyRef)pinnedPublicKey)) { - return YES; - } - } - } - } - break; - default: - break; - } - - return NO; -} - -#pragma mark - NSKeyValueObserving - -+ (NSSet *)keyPathsForValuesAffectingPinnedPublicKeys { - return [NSSet setWithObject:@"pinnedCertificates"]; -} - -@end diff --git a/Projects/iOS > 6/Pods/AFNetworking/AFNetworking/AFURLConnectionOperation.h b/Projects/iOS > 6/Pods/AFNetworking/AFNetworking/AFURLConnectionOperation.h deleted file mode 100644 index e34d746..0000000 --- a/Projects/iOS > 6/Pods/AFNetworking/AFNetworking/AFURLConnectionOperation.h +++ /dev/null @@ -1,376 +0,0 @@ -// AFURLConnectionOperation.h -// -// Copyright (c) 2013 AFNetworking (http://afnetworking.com) -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -#import - -#import -#import "AFSecurityPolicy.h" - -/** - `AFURLConnectionOperation` is a subclass of `NSOperation` that implements `NSURLConnection` delegate methods. - - ## Subclassing Notes - - This is the base class of all network request operations. You may wish to create your own subclass in order to implement additional `NSURLConnection` delegate methods (see "`NSURLConnection` Delegate Methods" below), or to provide additional properties and/or class constructors. - - If you are creating a subclass that communicates over the HTTP or HTTPS protocols, you may want to consider subclassing `AFHTTPRequestOperation` instead, as it supports specifying acceptable content types or status codes. - - ## NSURLConnection Delegate Methods - - `AFURLConnectionOperation` implements the following `NSURLConnection` delegate methods: - - - `connection:didReceiveResponse:` - - `connection:didReceiveData:` - - `connectionDidFinishLoading:` - - `connection:didFailWithError:` - - `connection:didSendBodyData:totalBytesWritten:totalBytesExpectedToWrite:` - - `connection:willCacheResponse:` - - `connectionShouldUseCredentialStorage:` - - `connection:needNewBodyStream:` - - `connection:willSendRequestForAuthenticationChallenge:` - - If any of these methods are overridden in a subclass, they _must_ call the `super` implementation first. - - ## Callbacks and Completion Blocks - - The built-in `completionBlock` provided by `NSOperation` allows for custom behavior to be executed after the request finishes. It is a common pattern for class constructors in subclasses to take callback block parameters, and execute them conditionally in the body of its `completionBlock`. Make sure to handle cancelled operations appropriately when setting a `completionBlock` (i.e. returning early before parsing response data). See the implementation of any of the `AFHTTPRequestOperation` subclasses for an example of this. - - Subclasses are strongly discouraged from overriding `setCompletionBlock:`, as `AFURLConnectionOperation`'s implementation includes a workaround to mitigate retain cycles, and what Apple rather ominously refers to as ["The Deallocation Problem"](http://developer.apple.com/library/ios/#technotes/tn2109/). - - ## SSL Pinning - - Relying on the CA trust model to validate SSL certificates exposes your app to security vulnerabilities, such as man-in-the-middle attacks. For applications that connect to known servers, SSL certificate pinning provides an increased level of security, by checking server certificate validity against those specified in the app bundle. - - SSL with certificate pinning is strongly recommended for any application that transmits sensitive information to an external webservice. - - Connections will be validated on all matching certificates with a `.cer` extension in the bundle root. - - ## NSCoding & NSCopying Conformance - - `AFURLConnectionOperation` conforms to the `NSCoding` and `NSCopying` protocols, allowing operations to be archived to disk, and copied in memory, respectively. However, because of the intrinsic limitations of capturing the exact state of an operation at a particular moment, there are some important caveats to keep in mind: - - ### NSCoding Caveats - - - Encoded operations do not include any block or stream properties. Be sure to set `completionBlock`, `outputStream`, and any callback blocks as necessary when using `-initWithCoder:` or `NSKeyedUnarchiver`. - - Operations are paused on `encodeWithCoder:`. If the operation was encoded while paused or still executing, its archived state will return `YES` for `isReady`. Otherwise, the state of an operation when encoding will remain unchanged. - - ### NSCopying Caveats - - - `-copy` and `-copyWithZone:` return a new operation with the `NSURLRequest` of the original. So rather than an exact copy of the operation at that particular instant, the copying mechanism returns a completely new instance, which can be useful for retrying operations. - - A copy of an operation will not include the `outputStream` of the original. - - Operation copies do not include `completionBlock`, as it often strongly captures a reference to `self`, which would otherwise have the unintuitive side-effect of pointing to the _original_ operation when copied. - */ - -@interface AFURLConnectionOperation : NSOperation - -///------------------------------- -/// @name Accessing Run Loop Modes -///------------------------------- - -/** - The run loop modes in which the operation will run on the network thread. By default, this is a single-member set containing `NSRunLoopCommonModes`. - */ -@property (nonatomic, strong) NSSet *runLoopModes; - -///----------------------------------------- -/// @name Getting URL Connection Information -///----------------------------------------- - -/** - The request used by the operation's connection. - */ -@property (readonly, nonatomic, strong) NSURLRequest *request; - -/** - The last response received by the operation's connection. - */ -@property (readonly, nonatomic, strong) NSURLResponse *response; - -/** - The error, if any, that occurred in the lifecycle of the request. - */ -@property (readonly, nonatomic, strong) NSError *error; - -///---------------------------- -/// @name Getting Response Data -///---------------------------- - -/** - The data received during the request. - */ -@property (readonly, nonatomic, strong) NSData *responseData; - -/** - The string representation of the response data. - */ -@property (readonly, nonatomic, copy) NSString *responseString; - -/** - The string encoding of the response. - - If the response does not specify a valid string encoding, `responseStringEncoding` will return `NSUTF8StringEncoding`. - */ -@property (readonly, nonatomic, assign) NSStringEncoding responseStringEncoding; - -///------------------------------- -/// @name Managing URL Credentials -///------------------------------- - -/** - Whether the URL connection should consult the credential storage for authenticating the connection. `YES` by default. - - This is the value that is returned in the `NSURLConnectionDelegate` method `-connectionShouldUseCredentialStorage:`. - */ -@property (nonatomic, assign) BOOL shouldUseCredentialStorage; - -/** - The credential used for authentication challenges in `-connection:didReceiveAuthenticationChallenge:`. - - This will be overridden by any shared credentials that exist for the username or password of the request URL, if present. - */ -@property (nonatomic, strong) NSURLCredential *credential; - -///------------------------------- -/// @name Managing Security Policy -///------------------------------- - -/** - The security policy used to evaluate server trust for secure connections. - */ -@property (nonatomic, strong) AFSecurityPolicy *securityPolicy; - -///------------------------ -/// @name Accessing Streams -///------------------------ - -/** - The input stream used to read data to be sent during the request. - - This property acts as a proxy to the `HTTPBodyStream` property of `request`. - */ -@property (nonatomic, strong) NSInputStream *inputStream; - -/** - The output stream that is used to write data received until the request is finished. - - By default, data is accumulated into a buffer that is stored into `responseData` upon completion of the request. When `outputStream` is set, the data will not be accumulated into an internal buffer, and as a result, the `responseData` property of the completed request will be `nil`. The output stream will be scheduled in the network thread runloop upon being set. - */ -@property (nonatomic, strong) NSOutputStream *outputStream; - -///--------------------------------- -/// @name Managing Callback Queues -///--------------------------------- - -/** - The dispatch queue for `completionBlock`. If `NULL` (default), the main queue is used. - */ -@property (nonatomic, strong) dispatch_queue_t completionQueue; - -/** - The dispatch group for `completionBlock`. If `NULL` (default), a private dispatch group is used. - */ -@property (nonatomic, strong) dispatch_group_t completionGroup; - -///--------------------------------------------- -/// @name Managing Request Operation Information -///--------------------------------------------- - -/** - The user info dictionary for the receiver. - */ -@property (nonatomic, strong) NSDictionary *userInfo; - -///------------------------------------------------------ -/// @name Initializing an AFURLConnectionOperation Object -///------------------------------------------------------ - -/** - Initializes and returns a newly allocated operation object with a url connection configured with the specified url request. - - This is the designated initializer. - - @param urlRequest The request object to be used by the operation connection. - */ -- (instancetype)initWithRequest:(NSURLRequest *)urlRequest; - -///---------------------------------- -/// @name Pausing / Resuming Requests -///---------------------------------- - -/** - Pauses the execution of the request operation. - - A paused operation returns `NO` for `-isReady`, `-isExecuting`, and `-isFinished`. As such, it will remain in an `NSOperationQueue` until it is either cancelled or resumed. Pausing a finished, cancelled, or paused operation has no effect. - */ -- (void)pause; - -/** - Whether the request operation is currently paused. - - @return `YES` if the operation is currently paused, otherwise `NO`. - */ -- (BOOL)isPaused; - -/** - Resumes the execution of the paused request operation. - - Pause/Resume behavior varies depending on the underlying implementation for the operation class. In its base implementation, resuming a paused requests restarts the original request. However, since HTTP defines a specification for how to request a specific content range, `AFHTTPRequestOperation` will resume downloading the request from where it left off, instead of restarting the original request. - */ -- (void)resume; - -///---------------------------------------------- -/// @name Configuring Backgrounding Task Behavior -///---------------------------------------------- - -/** - Specifies that the operation should continue execution after the app has entered the background, and the expiration handler for that background task. - - @param handler A handler to be called shortly before the application’s remaining background time reaches 0. The handler is wrapped in a block that cancels the operation, and cleans up and marks the end of execution, unlike the `handler` parameter in `UIApplication -beginBackgroundTaskWithExpirationHandler:`, which expects this to be done in the handler itself. The handler is called synchronously on the main thread, thus blocking the application’s suspension momentarily while the application is notified. - */ -#if defined(__IPHONE_OS_VERSION_MIN_REQUIRED) -- (void)setShouldExecuteAsBackgroundTaskWithExpirationHandler:(void (^)(void))handler; -#endif - -///--------------------------------- -/// @name Setting Progress Callbacks -///--------------------------------- - -/** - Sets a callback to be called when an undetermined number of bytes have been uploaded to the server. - - @param block A block object to be called when an undetermined number of bytes have been uploaded to the server. This block has no return value and takes three arguments: the number of bytes written since the last time the upload progress block was called, the total bytes written, and the total bytes expected to be written during the request, as initially determined by the length of the HTTP body. This block may be called multiple times, and will execute on the main thread. - */ -- (void)setUploadProgressBlock:(void (^)(NSUInteger bytesWritten, long long totalBytesWritten, long long totalBytesExpectedToWrite))block; - -/** - Sets a callback to be called when an undetermined number of bytes have been downloaded from the server. - - @param block A block object to be called when an undetermined number of bytes have been downloaded from the server. This block has no return value and takes three arguments: the number of bytes read since the last time the download progress block was called, the total bytes read, and the total bytes expected to be read during the request, as initially determined by the expected content size of the `NSHTTPURLResponse` object. This block may be called multiple times, and will execute on the main thread. - */ -- (void)setDownloadProgressBlock:(void (^)(NSUInteger bytesRead, long long totalBytesRead, long long totalBytesExpectedToRead))block; - -///------------------------------------------------- -/// @name Setting NSURLConnection Delegate Callbacks -///------------------------------------------------- - -/** - Sets a block to be executed when the connection will authenticate a challenge in order to download its request, as handled by the `NSURLConnectionDelegate` method `connection:willSendRequestForAuthenticationChallenge:`. - - @param block A block object to be executed when the connection will authenticate a challenge in order to download its request. The block has no return type and takes two arguments: the URL connection object, and the challenge that must be authenticated. This block must invoke one of the challenge-responder methods (NSURLAuthenticationChallengeSender protocol). - - If `allowsInvalidSSLCertificate` is set to YES, `connection:willSendRequestForAuthenticationChallenge:` will attempt to have the challenge sender use credentials with invalid SSL certificates. - */ -- (void)setWillSendRequestForAuthenticationChallengeBlock:(void (^)(NSURLConnection *connection, NSURLAuthenticationChallenge *challenge))block; - -/** - Sets a block to be executed when the server redirects the request from one URL to another URL, or when the request URL changed by the `NSURLProtocol` subclass handling the request in order to standardize its format, as handled by the `NSURLConnectionDelegate` method `connection:willSendRequest:redirectResponse:`. - - @param block A block object to be executed when the request URL was changed. The block returns an `NSURLRequest` object, the URL request to redirect, and takes three arguments: the URL connection object, the the proposed redirected request, and the URL response that caused the redirect. - */ -- (void)setRedirectResponseBlock:(NSURLRequest * (^)(NSURLConnection *connection, NSURLRequest *request, NSURLResponse *redirectResponse))block; - - -/** - Sets a block to be executed to modify the response a connection will cache, if any, as handled by the `NSURLConnectionDelegate` method `connection:willCacheResponse:`. - - @param block A block object to be executed to determine what response a connection will cache, if any. The block returns an `NSCachedURLResponse` object, the cached response to store in memory or `nil` to prevent the response from being cached, and takes two arguments: the URL connection object, and the cached response provided for the request. - */ -- (void)setCacheResponseBlock:(NSCachedURLResponse * (^)(NSURLConnection *connection, NSCachedURLResponse *cachedResponse))block; - -/// - -/** - - */ -+ (NSArray *)batchOfRequestOperations:(NSArray *)operations - progressBlock:(void (^)(NSUInteger numberOfFinishedOperations, NSUInteger totalNumberOfOperations))progressBlock - completionBlock:(void (^)(NSArray *operations))completionBlock; - -@end - -///---------------- -/// @name Constants -///---------------- - -/** - ## SSL Pinning Options - - The following constants are provided by `AFURLConnectionOperation` as possible SSL Pinning options. - - enum { - AFSSLPinningModeNone, - AFSSLPinningModePublicKey, - AFSSLPinningModeCertificate, - } - - `AFSSLPinningModeNone` - Do not pin SSL connections - - `AFSSLPinningModePublicKey` - Pin SSL connections to certificate public key (SPKI). - - `AFSSLPinningModeCertificate` - Pin SSL connections to exact certificate. This may cause problems when your certificate expires and needs re-issuance. - - ## User info dictionary keys - - These keys may exist in the user info dictionary, in addition to those defined for NSError. - - - `NSString * const AFNetworkingOperationFailingURLRequestErrorKey` - - `NSString * const AFNetworkingOperationFailingURLResponseErrorKey` - - ### Constants - - `AFNetworkingOperationFailingURLRequestErrorKey` - The corresponding value is an `NSURLRequest` containing the request of the operation associated with an error. This key is only present in the `AFNetworkingErrorDomain`. - - `AFNetworkingOperationFailingURLResponseErrorKey` - The corresponding value is an `NSURLResponse` containing the response of the operation associated with an error. This key is only present in the `AFNetworkingErrorDomain`. - - ## Error Domains - - The following error domain is predefined. - - - `NSString * const AFNetworkingErrorDomain` - - ### Constants - - `AFNetworkingErrorDomain` - AFNetworking errors. Error codes for `AFNetworkingErrorDomain` correspond to codes in `NSURLErrorDomain`. - */ -extern NSString * const AFNetworkingErrorDomain; -extern NSString * const AFNetworkingOperationFailingURLRequestErrorKey; -extern NSString * const AFNetworkingOperationFailingURLResponseErrorKey; - -///-------------------- -/// @name Notifications -///-------------------- - -/** - Posted when an operation begins executing. - */ -extern NSString * const AFNetworkingOperationDidStartNotification; - -/** - Posted when an operation finishes. - */ -extern NSString * const AFNetworkingOperationDidFinishNotification; diff --git a/Projects/iOS > 6/Pods/AFNetworking/AFNetworking/AFURLConnectionOperation.m b/Projects/iOS > 6/Pods/AFNetworking/AFNetworking/AFURLConnectionOperation.m deleted file mode 100644 index ea6f110..0000000 --- a/Projects/iOS > 6/Pods/AFNetworking/AFNetworking/AFURLConnectionOperation.m +++ /dev/null @@ -1,737 +0,0 @@ -// AFURLConnectionOperation.m -// -// Copyright (c) 2013 AFNetworking (http://afnetworking.com) -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -#import "AFURLConnectionOperation.h" - -#if defined(__IPHONE_OS_VERSION_MIN_REQUIRED) -#import -#endif - -#if !__has_feature(objc_arc) -#error AFNetworking must be built with ARC. -// You can turn on ARC for only AFNetworking files by adding -fobjc-arc to the build phase for each of its files. -#endif - -typedef NS_ENUM(NSInteger, AFOperationState) { - AFOperationPausedState = -1, - AFOperationReadyState = 1, - AFOperationExecutingState = 2, - AFOperationFinishedState = 3, -}; - -#if defined(__IPHONE_OS_VERSION_MIN_REQUIRED) -typedef UIBackgroundTaskIdentifier AFBackgroundTaskIdentifier; -#else -typedef id AFBackgroundTaskIdentifier; -#endif - -static dispatch_group_t url_request_operation_completion_group() { - static dispatch_group_t af_url_request_operation_completion_group; - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - af_url_request_operation_completion_group = dispatch_group_create(); - }); - - return af_url_request_operation_completion_group; -} - -static NSString * const kAFNetworkingLockName = @"com.alamofire.networking.operation.lock"; - -NSString * const AFNetworkingErrorDomain = @"AFNetworkingErrorDomain"; -NSString * const AFNetworkingOperationFailingURLRequestErrorKey = @"AFNetworkingOperationFailingURLRequestErrorKey"; -NSString * const AFNetworkingOperationFailingURLResponseErrorKey = @"AFNetworkingOperationFailingURLResponseErrorKey"; - -NSString * const AFNetworkingOperationDidStartNotification = @"com.alamofire.networking.operation.start"; -NSString * const AFNetworkingOperationDidFinishNotification = @"com.alamofire.networking.operation.finish"; - -typedef void (^AFURLConnectionOperationProgressBlock)(NSUInteger bytes, long long totalBytes, long long totalBytesExpected); -typedef void (^AFURLConnectionOperationAuthenticationChallengeBlock)(NSURLConnection *connection, NSURLAuthenticationChallenge *challenge); -typedef NSCachedURLResponse * (^AFURLConnectionOperationCacheResponseBlock)(NSURLConnection *connection, NSCachedURLResponse *cachedResponse); -typedef NSURLRequest * (^AFURLConnectionOperationRedirectResponseBlock)(NSURLConnection *connection, NSURLRequest *request, NSURLResponse *redirectResponse); - -static inline NSString * AFKeyPathFromOperationState(AFOperationState state) { - switch (state) { - case AFOperationReadyState: - return @"isReady"; - case AFOperationExecutingState: - return @"isExecuting"; - case AFOperationFinishedState: - return @"isFinished"; - case AFOperationPausedState: - return @"isPaused"; - default: - return @"state"; - } -} - -static inline BOOL AFStateTransitionIsValid(AFOperationState fromState, AFOperationState toState, BOOL isCancelled) { - switch (fromState) { - case AFOperationReadyState: - switch (toState) { - case AFOperationPausedState: - case AFOperationExecutingState: - return YES; - case AFOperationFinishedState: - return isCancelled; - default: - return NO; - } - case AFOperationExecutingState: - switch (toState) { - case AFOperationPausedState: - case AFOperationFinishedState: - return YES; - default: - return NO; - } - case AFOperationFinishedState: - return NO; - case AFOperationPausedState: - return toState == AFOperationReadyState; - default: - return YES; - } -} - -@interface AFURLConnectionOperation () -@property (readwrite, nonatomic, assign) AFOperationState state; -@property (readwrite, nonatomic, assign, getter = isCancelled) BOOL cancelled; -@property (readwrite, nonatomic, strong) NSRecursiveLock *lock; -@property (readwrite, nonatomic, strong) NSURLConnection *connection; -@property (readwrite, nonatomic, strong) NSURLRequest *request; -@property (readwrite, nonatomic, strong) NSURLResponse *response; -@property (readwrite, nonatomic, strong) NSError *error; -@property (readwrite, nonatomic, strong) NSData *responseData; -@property (readwrite, nonatomic, copy) NSString *responseString; -@property (readwrite, nonatomic, assign) NSStringEncoding responseStringEncoding; -@property (readwrite, nonatomic, assign) long long totalBytesRead; -@property (readwrite, nonatomic, assign) AFBackgroundTaskIdentifier backgroundTaskIdentifier; -@property (readwrite, nonatomic, copy) AFURLConnectionOperationProgressBlock uploadProgress; -@property (readwrite, nonatomic, copy) AFURLConnectionOperationProgressBlock downloadProgress; -@property (readwrite, nonatomic, copy) AFURLConnectionOperationAuthenticationChallengeBlock authenticationChallenge; -@property (readwrite, nonatomic, copy) AFURLConnectionOperationCacheResponseBlock cacheResponse; -@property (readwrite, nonatomic, copy) AFURLConnectionOperationRedirectResponseBlock redirectResponse; - -- (void)operationDidStart; -- (void)finish; -- (void)cancelConnection; -@end - -@implementation AFURLConnectionOperation -@synthesize outputStream = _outputStream; - -+ (void)networkRequestThreadEntryPoint:(id)__unused object { - @autoreleasepool { - [[NSThread currentThread] setName:@"AFNetworking"]; - - NSRunLoop *runLoop = [NSRunLoop currentRunLoop]; - [runLoop addPort:[NSMachPort port] forMode:NSDefaultRunLoopMode]; - [runLoop run]; - } -} - -+ (NSThread *)networkRequestThread { - static NSThread *_networkRequestThread = nil; - static dispatch_once_t oncePredicate; - dispatch_once(&oncePredicate, ^{ - _networkRequestThread = [[NSThread alloc] initWithTarget:self selector:@selector(networkRequestThreadEntryPoint:) object:nil]; - [_networkRequestThread start]; - }); - - return _networkRequestThread; -} - -- (instancetype)initWithRequest:(NSURLRequest *)urlRequest { - NSParameterAssert(urlRequest); - - self = [super init]; - if (!self) { - return nil; - } - - self.lock = [[NSRecursiveLock alloc] init]; - self.lock.name = kAFNetworkingLockName; - - self.runLoopModes = [NSSet setWithObject:NSRunLoopCommonModes]; - - self.request = urlRequest; - - self.shouldUseCredentialStorage = YES; - - self.state = AFOperationReadyState; - - self.securityPolicy = [AFSecurityPolicy defaultPolicy]; - - return self; -} - -- (void)dealloc { - if (_outputStream) { - [_outputStream close]; - _outputStream = nil; - } - -#if defined(__IPHONE_OS_VERSION_MIN_REQUIRED) - if (_backgroundTaskIdentifier) { - [[UIApplication sharedApplication] endBackgroundTask:_backgroundTaskIdentifier]; - _backgroundTaskIdentifier = UIBackgroundTaskInvalid; - } -#endif -} - -- (NSString *)description { - return [NSString stringWithFormat:@"<%@: %p, state: %@, cancelled: %@ request: %@, response: %@>", NSStringFromClass([self class]), self, AFKeyPathFromOperationState(self.state), ([self isCancelled] ? @"YES" : @"NO"), self.request, self.response]; -} - -- (void)setCompletionBlock:(void (^)(void))block { - [self.lock lock]; - if (!block) { - [super setCompletionBlock:nil]; - } else { - __weak __typeof(self)weakSelf = self; - [super setCompletionBlock:^ { - __strong __typeof(weakSelf)strongSelf = weakSelf; - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wgnu" - dispatch_group_t group = strongSelf.completionGroup ?: url_request_operation_completion_group(); - dispatch_queue_t queue = strongSelf.completionQueue ?: dispatch_get_main_queue(); -#pragma clang diagnostic pop - - dispatch_group_async(group, queue, ^{ - block(); - }); - - dispatch_group_notify(group, queue, ^{ - [strongSelf setCompletionBlock:nil]; - }); - }]; - } - [self.lock unlock]; -} - -- (NSInputStream *)inputStream { - return self.request.HTTPBodyStream; -} - -- (void)setInputStream:(NSInputStream *)inputStream { - NSMutableURLRequest *mutableRequest = [self.request mutableCopy]; - mutableRequest.HTTPBodyStream = inputStream; - self.request = mutableRequest; -} - -- (NSOutputStream *)outputStream { - if (!_outputStream) { - self.outputStream = [NSOutputStream outputStreamToMemory]; - } - - return _outputStream; -} - -- (void)setOutputStream:(NSOutputStream *)outputStream { - [self.lock lock]; - if (outputStream != _outputStream) { - if (_outputStream) { - [_outputStream close]; - } - _outputStream = outputStream; - } - [self.lock unlock]; -} - -#if defined(__IPHONE_OS_VERSION_MIN_REQUIRED) -- (void)setShouldExecuteAsBackgroundTaskWithExpirationHandler:(void (^)(void))handler { - [self.lock lock]; - if (!self.backgroundTaskIdentifier) { - UIApplication *application = [UIApplication sharedApplication]; - __weak __typeof(self)weakSelf = self; - self.backgroundTaskIdentifier = [application beginBackgroundTaskWithExpirationHandler:^{ - __strong __typeof(weakSelf)strongSelf = weakSelf; - - if (handler) { - handler(); - } - - if (strongSelf) { - [strongSelf cancel]; - - [application endBackgroundTask:strongSelf.backgroundTaskIdentifier]; - strongSelf.backgroundTaskIdentifier = UIBackgroundTaskInvalid; - } - }]; - } - [self.lock unlock]; -} -#endif - -- (void)setUploadProgressBlock:(void (^)(NSUInteger bytesWritten, long long totalBytesWritten, long long totalBytesExpectedToWrite))block { - self.uploadProgress = block; -} - -- (void)setDownloadProgressBlock:(void (^)(NSUInteger bytesRead, long long totalBytesRead, long long totalBytesExpectedToRead))block { - self.downloadProgress = block; -} - -- (void)setWillSendRequestForAuthenticationChallengeBlock:(void (^)(NSURLConnection *connection, NSURLAuthenticationChallenge *challenge))block { - self.authenticationChallenge = block; -} - -- (void)setCacheResponseBlock:(NSCachedURLResponse * (^)(NSURLConnection *connection, NSCachedURLResponse *cachedResponse))block { - self.cacheResponse = block; -} - -- (void)setRedirectResponseBlock:(NSURLRequest * (^)(NSURLConnection *connection, NSURLRequest *request, NSURLResponse *redirectResponse))block { - self.redirectResponse = block; -} - -- (void)setState:(AFOperationState)state { - if (!AFStateTransitionIsValid(self.state, state, [self isCancelled])) { - return; - } - - [self.lock lock]; - NSString *oldStateKey = AFKeyPathFromOperationState(self.state); - NSString *newStateKey = AFKeyPathFromOperationState(state); - - [self willChangeValueForKey:newStateKey]; - [self willChangeValueForKey:oldStateKey]; - _state = state; - [self didChangeValueForKey:oldStateKey]; - [self didChangeValueForKey:newStateKey]; - [self.lock unlock]; -} - -- (NSString *)responseString { - [self.lock lock]; - if (!_responseString && self.response && self.responseData) { - self.responseString = [[NSString alloc] initWithData:self.responseData encoding:self.responseStringEncoding]; - } - [self.lock unlock]; - - return _responseString; -} - -- (NSStringEncoding)responseStringEncoding { - [self.lock lock]; - if (!_responseStringEncoding && self.response) { - NSStringEncoding stringEncoding = NSUTF8StringEncoding; - if (self.response.textEncodingName) { - CFStringEncoding IANAEncoding = CFStringConvertIANACharSetNameToEncoding((__bridge CFStringRef)self.response.textEncodingName); - if (IANAEncoding != kCFStringEncodingInvalidId) { - stringEncoding = CFStringConvertEncodingToNSStringEncoding(IANAEncoding); - } - } - - self.responseStringEncoding = stringEncoding; - } - [self.lock unlock]; - - return _responseStringEncoding; -} - -- (void)pause { - if ([self isPaused] || [self isFinished] || [self isCancelled]) { - return; - } - - [self.lock lock]; - - if ([self isExecuting]) { - [self performSelector:@selector(operationDidPause) onThread:[[self class] networkRequestThread] withObject:nil waitUntilDone:NO modes:[self.runLoopModes allObjects]]; - - dispatch_async(dispatch_get_main_queue(), ^{ - NSNotificationCenter *notificationCenter = [NSNotificationCenter defaultCenter]; - [notificationCenter postNotificationName:AFNetworkingOperationDidFinishNotification object:self]; - }); - } - - self.state = AFOperationPausedState; - - [self.lock unlock]; -} - -- (void)operationDidPause { - [self.lock lock]; - [self.connection cancel]; - [self.lock unlock]; -} - -- (BOOL)isPaused { - return self.state == AFOperationPausedState; -} - -- (void)resume { - if (![self isPaused]) { - return; - } - - [self.lock lock]; - self.state = AFOperationReadyState; - - [self start]; - [self.lock unlock]; -} - -#pragma mark - NSOperation - -- (BOOL)isReady { - return self.state == AFOperationReadyState && [super isReady]; -} - -- (BOOL)isExecuting { - return self.state == AFOperationExecutingState; -} - -- (BOOL)isFinished { - return self.state == AFOperationFinishedState; -} - -- (BOOL)isConcurrent { - return YES; -} - -- (void)start { - [self.lock lock]; - if ([self isReady]) { - self.state = AFOperationExecutingState; - - [self performSelector:@selector(operationDidStart) onThread:[[self class] networkRequestThread] withObject:nil waitUntilDone:NO modes:[self.runLoopModes allObjects]]; - } - [self.lock unlock]; -} - -- (void)operationDidStart { - [self.lock lock]; - if (![self isCancelled]) { - self.connection = [[NSURLConnection alloc] initWithRequest:self.request delegate:self startImmediately:NO]; - - NSRunLoop *runLoop = [NSRunLoop currentRunLoop]; - for (NSString *runLoopMode in self.runLoopModes) { - [self.connection scheduleInRunLoop:runLoop forMode:runLoopMode]; - [self.outputStream scheduleInRunLoop:runLoop forMode:runLoopMode]; - } - - [self.connection start]; - } - [self.lock unlock]; - - dispatch_async(dispatch_get_main_queue(), ^{ - [[NSNotificationCenter defaultCenter] postNotificationName:AFNetworkingOperationDidStartNotification object:self]; - }); -} - -- (void)finish { - self.state = AFOperationFinishedState; - - dispatch_async(dispatch_get_main_queue(), ^{ - [[NSNotificationCenter defaultCenter] postNotificationName:AFNetworkingOperationDidFinishNotification object:self]; - }); -} - -- (void)cancel { - [self.lock lock]; - if (![self isFinished] && ![self isCancelled]) { - [self willChangeValueForKey:@"isCancelled"]; - _cancelled = YES; - [super cancel]; - [self didChangeValueForKey:@"isCancelled"]; - - // Cancel the connection on the thread it runs on to prevent race conditions - [self performSelector:@selector(cancelConnection) onThread:[[self class] networkRequestThread] withObject:nil waitUntilDone:NO modes:[self.runLoopModes allObjects]]; - } - [self.lock unlock]; -} - -- (void)cancelConnection { - NSDictionary *userInfo = nil; - if ([self.request URL]) { - userInfo = [NSDictionary dictionaryWithObject:[self.request URL] forKey:NSURLErrorFailingURLErrorKey]; - } - NSError *error = [NSError errorWithDomain:NSURLErrorDomain code:NSURLErrorCancelled userInfo:userInfo]; - - if (![self isFinished]) { - if (self.connection) { - [self.connection cancel]; - [self performSelector:@selector(connection:didFailWithError:) withObject:self.connection withObject:error]; - } else { - // Accomodate race condition where `self.connection` has not yet been set before cancellation - self.error = error; - [self finish]; - } - } -} - -#pragma mark - - -+ (NSArray *)batchOfRequestOperations:(NSArray *)operations - progressBlock:(void (^)(NSUInteger numberOfFinishedOperations, NSUInteger totalNumberOfOperations))progressBlock - completionBlock:(void (^)(NSArray *operations))completionBlock -{ - if (!operations || [operations count] == 0) { - return @[[NSBlockOperation blockOperationWithBlock:^{ - if (completionBlock) { - completionBlock(@[]); - } - }]]; - } - - __block dispatch_group_t group = dispatch_group_create(); - NSBlockOperation *batchedOperation = [NSBlockOperation blockOperationWithBlock:^{ - dispatch_group_notify(group, dispatch_get_main_queue(), ^{ - if (completionBlock) { - completionBlock(operations); - } - }); - }]; - - for (AFURLConnectionOperation *operation in operations) { - operation.completionGroup = group; - void (^originalCompletionBlock)(void) = [operation.completionBlock copy]; - __weak __typeof(operation)weakOperation = operation; - operation.completionBlock = ^{ - __strong __typeof(weakOperation)strongOperation = weakOperation; -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wgnu" - dispatch_queue_t queue = strongOperation.completionQueue ?: dispatch_get_main_queue(); -#pragma clang diagnostic pop - dispatch_group_async(group, queue, ^{ - if (originalCompletionBlock) { - originalCompletionBlock(); - } - - NSUInteger numberOfFinishedOperations = [[operations indexesOfObjectsPassingTest:^BOOL(id op, NSUInteger __unused idx, BOOL __unused *stop) { - return [op isFinished]; - }] count]; - - if (progressBlock) { - progressBlock(numberOfFinishedOperations, [operations count]); - } - - dispatch_group_leave(group); - }); - }; - - dispatch_group_enter(group); - [batchedOperation addDependency:operation]; - } - - return [operations arrayByAddingObject:batchedOperation]; -} - -#pragma mark - NSURLConnectionDelegate - -- (void)connection:(NSURLConnection *)connection -willSendRequestForAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge -{ - if (self.authenticationChallenge) { - self.authenticationChallenge(connection, challenge); - return; - } - - if ([challenge.protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust]) { - if ([self.securityPolicy evaluateServerTrust:challenge.protectionSpace.serverTrust]) { - NSURLCredential *credential = [NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust]; - [[challenge sender] useCredential:credential forAuthenticationChallenge:challenge]; - } else { - [[challenge sender] cancelAuthenticationChallenge:challenge]; - } - } else { - if ([challenge previousFailureCount] == 0) { - if (self.credential) { - [[challenge sender] useCredential:self.credential forAuthenticationChallenge:challenge]; - } else { - [[challenge sender] continueWithoutCredentialForAuthenticationChallenge:challenge]; - } - } else { - [[challenge sender] continueWithoutCredentialForAuthenticationChallenge:challenge]; - } - } -} - -- (BOOL)connectionShouldUseCredentialStorage:(NSURLConnection __unused *)connection { - return self.shouldUseCredentialStorage; -} - -- (NSURLRequest *)connection:(NSURLConnection *)connection - willSendRequest:(NSURLRequest *)request - redirectResponse:(NSURLResponse *)redirectResponse -{ - if (self.redirectResponse) { - return self.redirectResponse(connection, request, redirectResponse); - } else { - return request; - } -} - -- (void)connection:(NSURLConnection __unused *)connection - didSendBodyData:(NSInteger)bytesWritten - totalBytesWritten:(NSInteger)totalBytesWritten -totalBytesExpectedToWrite:(NSInteger)totalBytesExpectedToWrite -{ - if (self.uploadProgress) { - dispatch_async(dispatch_get_main_queue(), ^{ - self.uploadProgress((NSUInteger)bytesWritten, totalBytesWritten, totalBytesExpectedToWrite); - }); - } -} - -- (void)connection:(NSURLConnection __unused *)connection -didReceiveResponse:(NSURLResponse *)response -{ - self.response = response; - - [self.outputStream open]; -} - -- (void)connection:(NSURLConnection __unused *)connection - didReceiveData:(NSData *)data -{ - NSUInteger length = [data length]; - while (YES) { - NSInteger totalNumberOfBytesWritten = 0; - if ([self.outputStream hasSpaceAvailable]) { - const uint8_t *dataBuffer = (uint8_t *)[data bytes]; - - NSInteger numberOfBytesWritten = 0; - while (totalNumberOfBytesWritten < (NSInteger)length) { - numberOfBytesWritten = [self.outputStream write:&dataBuffer[(NSUInteger)totalNumberOfBytesWritten] maxLength:(length - (NSUInteger)totalNumberOfBytesWritten)]; - if (numberOfBytesWritten == -1) { - break; - } - - totalNumberOfBytesWritten += numberOfBytesWritten; - } - - break; - } - - if (self.outputStream.streamError) { - [self.connection cancel]; - [self performSelector:@selector(connection:didFailWithError:) withObject:self.connection withObject:self.outputStream.streamError]; - return; - } - } - - dispatch_async(dispatch_get_main_queue(), ^{ - self.totalBytesRead += length; - - if (self.downloadProgress) { - self.downloadProgress(length, self.totalBytesRead, self.response.expectedContentLength); - } - }); -} - -- (void)connectionDidFinishLoading:(NSURLConnection __unused *)connection { - self.responseData = [self.outputStream propertyForKey:NSStreamDataWrittenToMemoryStreamKey]; - - [self.outputStream close]; - - [self finish]; - - self.connection = nil; -} - -- (void)connection:(NSURLConnection __unused *)connection - didFailWithError:(NSError *)error -{ - self.error = error; - - [self.outputStream close]; - - [self finish]; - - self.connection = nil; -} - -- (NSCachedURLResponse *)connection:(NSURLConnection *)connection - willCacheResponse:(NSCachedURLResponse *)cachedResponse -{ - if (self.cacheResponse) { - return self.cacheResponse(connection, cachedResponse); - } else { - if ([self isCancelled]) { - return nil; - } - - return cachedResponse; - } -} - -#pragma mark - NSCoding - -- (id)initWithCoder:(NSCoder *)decoder { - NSURLRequest *request = [decoder decodeObjectForKey:NSStringFromSelector(@selector(request))]; - - self = [self initWithRequest:request]; - if (!self) { - return nil; - } - - self.state = (AFOperationState)[decoder decodeIntegerForKey:NSStringFromSelector(@selector(state))]; - self.cancelled = [decoder decodeBoolForKey:NSStringFromSelector(@selector(isCancelled))]; - self.response = [decoder decodeObjectForKey:NSStringFromSelector(@selector(response))]; - self.error = [decoder decodeObjectForKey:NSStringFromSelector(@selector(error))]; - self.responseData = [decoder decodeObjectForKey:NSStringFromSelector(@selector(responseData))]; - self.totalBytesRead = [decoder decodeInt64ForKey:NSStringFromSelector(@selector(totalBytesRead))]; - - return self; -} - -- (void)encodeWithCoder:(NSCoder *)coder { - [self pause]; - - [coder encodeObject:self.request forKey:NSStringFromSelector(@selector(request))]; - - switch (self.state) { - case AFOperationExecutingState: - case AFOperationPausedState: - [coder encodeInteger:AFOperationReadyState forKey:NSStringFromSelector(@selector(state))]; - break; - default: - [coder encodeInteger:self.state forKey:NSStringFromSelector(@selector(state))]; - break; - } - - [coder encodeBool:[self isCancelled] forKey:NSStringFromSelector(@selector(isCancelled))]; - [coder encodeObject:self.response forKey:NSStringFromSelector(@selector(response))]; - [coder encodeObject:self.error forKey:NSStringFromSelector(@selector(error))]; - [coder encodeObject:self.responseData forKey:NSStringFromSelector(@selector(responseData))]; - [coder encodeInt64:self.totalBytesRead forKey:NSStringFromSelector(@selector(totalBytesRead))]; -} - -#pragma mark - NSCopying - -- (id)copyWithZone:(NSZone *)zone { - AFURLConnectionOperation *operation = [(AFURLConnectionOperation *)[[self class] allocWithZone:zone] initWithRequest:self.request]; - - operation.uploadProgress = self.uploadProgress; - operation.downloadProgress = self.downloadProgress; - operation.authenticationChallenge = self.authenticationChallenge; - operation.cacheResponse = self.cacheResponse; - operation.redirectResponse = self.redirectResponse; - operation.completionQueue = self.completionQueue; - operation.completionGroup = self.completionGroup; - - return operation; -} - -@end diff --git a/Projects/iOS > 6/Pods/AFNetworking/AFNetworking/AFURLRequestSerialization.h b/Projects/iOS > 6/Pods/AFNetworking/AFNetworking/AFURLRequestSerialization.h deleted file mode 100644 index f6d6e7b..0000000 --- a/Projects/iOS > 6/Pods/AFNetworking/AFNetworking/AFURLRequestSerialization.h +++ /dev/null @@ -1,345 +0,0 @@ -// AFSerialization.h -// -// Copyright (c) 2013 AFNetworking (http://afnetworking.com) -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -#import -#if defined(__IPHONE_OS_VERSION_MIN_REQUIRED) -#import -#endif - -/** - The `AFURLRequestSerialization` protocol is adopted by an object that encodes parameters for a specified HTTP requests. Request serializers may encode parameters as query strings, HTTP bodies, setting the appropriate HTTP header fields as necessary. - - For example, a JSON request serializer may set the HTTP body of the request to a JSON representation, and set the `Content-Type` HTTP header field value to `application/json`. - */ -@protocol AFURLRequestSerialization - -/** - Returns a request with the specified parameters encoded into a copy of the original request. - - @param request The original request. - @param parameters The parameters to be encoded. - @param error The error that occurred while attempting to encode the request parameters. - - @return A serialized request. - */ -- (NSURLRequest *)requestBySerializingRequest:(NSURLRequest *)request - withParameters:(NSDictionary *)parameters - error:(NSError *__autoreleasing *)error; - -@end - -#pragma mark - - -/** - - */ -typedef NS_ENUM(NSUInteger, AFHTTPRequestQueryStringSerializationStyle) { - AFHTTPRequestQueryStringDefaultStyle = 0, -}; - -@protocol AFMultipartFormData; - -/** - `AFHTTPRequestSerializer` conforms to the `AFURLRequestSerialization` & `AFURLResponseSerialization` protocols, offering a concrete base implementation of query string / URL form-encoded parameter serialization and default request headers, as well as response status code and content type validation. - - Any request or response serializer dealing with HTTP is encouraged to subclass `AFHTTPRequestSerializer` in order to ensure consistent default behavior. - */ -@interface AFHTTPRequestSerializer : NSObject - -/** - The string encoding used to serialize parameters. - */ -@property (nonatomic, assign) NSStringEncoding stringEncoding; - -///--------------------------------------- -/// @name Configuring HTTP Request Headers -///--------------------------------------- - -/** - Default HTTP header field values to be applied to serialized requests. - */ -@property (readonly, nonatomic, strong) NSDictionary *HTTPRequestHeaders; - -/** - Creates and returns a serializer with default configuration. - */ -+ (instancetype)serializer; - -/** - Sets the value for the HTTP headers set in request objects made by the HTTP client. If `nil`, removes the existing value for that header. - - @param field The HTTP header to set a default value for - @param value The value set as default for the specified header, or `nil` - */ -- (void)setValue:(NSString *)value forHTTPHeaderField:(NSString *)field; - -/** - Sets the "Authorization" HTTP header set in request objects made by the HTTP client to a basic authentication value with Base64-encoded username and password. This overwrites any existing value for this header. - - @param username The HTTP basic auth username - @param password The HTTP basic auth password - */ -- (void)setAuthorizationHeaderFieldWithUsername:(NSString *)username - password:(NSString *)password; - -/** - Sets the "Authorization" HTTP header set in request objects made by the HTTP client to a token-based authentication value, such as an OAuth access token. This overwrites any existing value for this header. - - @param token The authentication token - */ -- (void)setAuthorizationHeaderFieldWithToken:(NSString *)token; - - -/** - Clears any existing value for the "Authorization" HTTP header. - */ -- (void)clearAuthorizationHeader; - -///------------------------------------------------------- -/// @name Configuring Query String Parameter Serialization -///------------------------------------------------------- - -/** - HTTP methods for which serialized requests will encode parameters as a query string. `GET`, `HEAD`, and `DELETE` by default. - */ -@property (nonatomic, strong) NSSet *HTTPMethodsEncodingParametersInURI; - -/** - Set the method of query string serialization according to one of the pre-defined styles. - - @param style The serialization style. - - @see AFHTTPRequestQueryStringSerializationStyle - */ -- (void)setQueryStringSerializationWithStyle:(AFHTTPRequestQueryStringSerializationStyle)style; - -/** - Set the a custom method of query string serialization according to the specified block. - - @param block A block that defines a process of encoding parameters into a query string. This block returns the query string and takes three arguments: the request, the parameters to encode, and the error that occurred when attempting to encode parameters for the given request. - */ -- (void)setQueryStringSerializationWithBlock:(NSString * (^)(NSURLRequest *request, NSDictionary *parameters, NSError *__autoreleasing *error))block; - -///------------------------------- -/// @name Creating Request Objects -///------------------------------- - -/** - Creates an `NSMutableURLRequest` object with the specified HTTP method and URL string. - - If the HTTP method is `GET`, `HEAD`, or `DELETE`, the parameters will be used to construct a url-encoded query string that is appended to the request's URL. Otherwise, the parameters will be encoded according to the value of the `parameterEncoding` property, and set as the request body. - - @param method The HTTP method for the request, such as `GET`, `POST`, `PUT`, or `DELETE`. This parameter must not be `nil`. - @param URLString The URL string used to create the request URL. - @param parameters The parameters to be either set as a query string for `GET` requests, or the request HTTP body. - - @return An `NSMutableURLRequest` object. - */ -- (NSMutableURLRequest *)requestWithMethod:(NSString *)method - URLString:(NSString *)URLString - parameters:(NSDictionary *)parameters; - -/** - Creates an `NSMutableURLRequest` object with the specified HTTP method and URLString, and constructs a `multipart/form-data` HTTP body, using the specified parameters and multipart form data block. See http://www.w3.org/TR/html4/interact/forms.html#h-17.13.4.2 - - Multipart form requests are automatically streamed, reading files directly from disk along with in-memory data in a single HTTP body. The resulting `NSMutableURLRequest` object has an `HTTPBodyStream` property, so refrain from setting `HTTPBodyStream` or `HTTPBody` on this request object, as it will clear out the multipart form body stream. - - @param method The HTTP method for the request. This parameter must not be `GET` or `HEAD`, or `nil`. - @param URLString The URL string used to create the request URL. - @param parameters The parameters to be encoded and set in the request HTTP body. - @param block A block that takes a single argument and appends data to the HTTP body. The block argument is an object adopting the `AFMultipartFormData` protocol. - - @return An `NSMutableURLRequest` object - */ -- (NSMutableURLRequest *)multipartFormRequestWithMethod:(NSString *)method - URLString:(NSString *)URLString - parameters:(NSDictionary *)parameters - constructingBodyWithBlock:(void (^)(id formData))block; - -@end - -#pragma mark - - -extern NSUInteger const kAFUploadStream3GSuggestedPacketSize; -extern NSTimeInterval const kAFUploadStream3GSuggestedDelay; - -/** - The `AFMultipartFormData` protocol defines the methods supported by the parameter in the block argument of `AFHTTPRequestSerializer -multipartFormRequestWithMethod:URLString:parameters:constructingBodyWithBlock:`. - */ -@protocol AFMultipartFormData - -/** - Appends the HTTP header `Content-Disposition: file; filename=#{generated filename}; name=#{name}"` and `Content-Type: #{generated mimeType}`, followed by the encoded file data and the multipart form boundary. - - The filename and MIME type for this data in the form will be automatically generated, using the last path component of the `fileURL` and system associated MIME type for the `fileURL` extension, respectively. - - @param fileURL The URL corresponding to the file whose content will be appended to the form. This parameter must not be `nil`. - @param name The name to be associated with the specified data. This parameter must not be `nil`. - @param error If an error occurs, upon return contains an `NSError` object that describes the problem. - - @return `YES` if the file data was successfully appended, otherwise `NO`. - */ -- (BOOL)appendPartWithFileURL:(NSURL *)fileURL - name:(NSString *)name - error:(NSError * __autoreleasing *)error; - -/** - Appends the HTTP header `Content-Disposition: file; filename=#{filename}; name=#{name}"` and `Content-Type: #{mimeType}`, followed by the encoded file data and the multipart form boundary. - - @param fileURL The URL corresponding to the file whose content will be appended to the form. This parameter must not be `nil`. - @param name The name to be associated with the specified data. This parameter must not be `nil`. - @param fileName The file name to be used in the `Content-Disposition` header. This parameter must not be `nil`. - @param mimeType The declared MIME type of the file data. This parameter must not be `nil`. - @param error If an error occurs, upon return contains an `NSError` object that describes the problem. - - @return `YES` if the file data was successfully appended otherwise `NO`. - */ -- (BOOL)appendPartWithFileURL:(NSURL *)fileURL - name:(NSString *)name - fileName:(NSString *)fileName - mimeType:(NSString *)mimeType - error:(NSError * __autoreleasing *)error; - -/** - Appends the HTTP header `Content-Disposition: file; filename=#{filename}; name=#{name}"` and `Content-Type: #{mimeType}`, followed by the data from the input stream and the multipart form boundary. - - @param inputStream The input stream to be appended to the form data - @param name The name to be associated with the specified input stream. This parameter must not be `nil`. - @param fileName The filename to be associated with the specified input stream. This parameter must not be `nil`. - @param length The length of the specified input stream in bytes. - @param mimeType The MIME type of the specified data. (For example, the MIME type for a JPEG image is image/jpeg.) For a list of valid MIME types, see http://www.iana.org/assignments/media-types/. This parameter must not be `nil`. - */ -- (void)appendPartWithInputStream:(NSInputStream *)inputStream - name:(NSString *)name - fileName:(NSString *)fileName - length:(int64_t)length - mimeType:(NSString *)mimeType; - -/** - Appends the HTTP header `Content-Disposition: file; filename=#{filename}; name=#{name}"` and `Content-Type: #{mimeType}`, followed by the encoded file data and the multipart form boundary. - - @param data The data to be encoded and appended to the form data. - @param name The name to be associated with the specified data. This parameter must not be `nil`. - @param fileName The filename to be associated with the specified data. This parameter must not be `nil`. - @param mimeType The MIME type of the specified data. (For example, the MIME type for a JPEG image is image/jpeg.) For a list of valid MIME types, see http://www.iana.org/assignments/media-types/. This parameter must not be `nil`. - */ -- (void)appendPartWithFileData:(NSData *)data - name:(NSString *)name - fileName:(NSString *)fileName - mimeType:(NSString *)mimeType; - -/** - Appends the HTTP headers `Content-Disposition: form-data; name=#{name}"`, followed by the encoded data and the multipart form boundary. - - @param data The data to be encoded and appended to the form data. - @param name The name to be associated with the specified data. This parameter must not be `nil`. - */ - -- (void)appendPartWithFormData:(NSData *)data - name:(NSString *)name; - - -/** - Appends HTTP headers, followed by the encoded data and the multipart form boundary. - - @param headers The HTTP headers to be appended to the form data. - @param body The data to be encoded and appended to the form data. - */ -- (void)appendPartWithHeaders:(NSDictionary *)headers - body:(NSData *)body; - -/** - Throttles request bandwidth by limiting the packet size and adding a delay for each chunk read from the upload stream. - - When uploading over a 3G or EDGE connection, requests may fail with "request body stream exhausted". Setting a maximum packet size and delay according to the recommended values (`kAFUploadStream3GSuggestedPacketSize` and `kAFUploadStream3GSuggestedDelay`) lowers the risk of the input stream exceeding its allocated bandwidth. Unfortunately, there is no definite way to distinguish between a 3G, EDGE, or LTE connection over `NSURLConnection`. As such, it is not recommended that you throttle bandwidth based solely on network reachability. Instead, you should consider checking for the "request body stream exhausted" in a failure block, and then retrying the request with throttled bandwidth. - - @param numberOfBytes Maximum packet size, in number of bytes. The default packet size for an input stream is 16kb. - @param delay Duration of delay each time a packet is read. By default, no delay is set. - */ -- (void)throttleBandwidthWithPacketSize:(NSUInteger)numberOfBytes - delay:(NSTimeInterval)delay; - -@end - -///---------------- -/// @name Constants -///---------------- - -/** - ## Throttling Bandwidth for HTTP Request Input Streams - - @see -throttleBandwidthWithPacketSize:delay: - - `kAFUploadStream3GSuggestedPacketSize` - Maximum packet size, in number of bytes. Equal to 16kb. - - `kAFUploadStream3GSuggestedDelay` - Duration of delay each time a packet is read. Equal to 0.2 seconds. - */ - -#pragma mark - - -@interface AFJSONRequestSerializer : AFHTTPRequestSerializer - -/** - The property list format. Possible values are described in "NSPropertyListFormat". - */ -@property (nonatomic, assign) NSPropertyListFormat format; - -/** - Options for writing the request JSON data from Foundation objects. For possible values, see the `NSJSONSerialization` documentation section "NSJSONWritingOptions". `0` by default. - */ -@property (nonatomic, assign) NSJSONWritingOptions writingOptions; - -/** - Creates and returns a JSON serializer with specified reading and writing options. - - @param writingOptions The specified JSON writing options. - */ -+ (instancetype)serializerWithWritingOptions:(NSJSONWritingOptions)writingOptions; - -@end - -@interface AFPropertyListRequestSerializer : AFHTTPRequestSerializer - -/** - The property list format. Possible values are described in "NSPropertyListFormat". - */ -@property (nonatomic, assign) NSPropertyListFormat format; - -/** - @warning The `writeOptions` property is currently unused. - */ -@property (nonatomic, assign) NSPropertyListWriteOptions writeOptions; - -/** - Creates and returns a property list serializer with a specified format, read options, and write options. - - @param format The property list format. - @param writeOptions The property list write options. - - @warning The `writeOptions` property is currently unused. - */ -+ (instancetype)serializerWithFormat:(NSPropertyListFormat)format - writeOptions:(NSPropertyListWriteOptions)writeOptions; - -@end diff --git a/Projects/iOS > 6/Pods/AFNetworking/AFNetworking/AFURLRequestSerialization.m b/Projects/iOS > 6/Pods/AFNetworking/AFNetworking/AFURLRequestSerialization.m deleted file mode 100644 index 41d54dd..0000000 --- a/Projects/iOS > 6/Pods/AFNetworking/AFNetworking/AFURLRequestSerialization.m +++ /dev/null @@ -1,1135 +0,0 @@ -// AFSerialization.h -// -// Copyright (c) 2013 AFNetworking (http://afnetworking.com) -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -#import "AFURLRequestSerialization.h" - -extern NSString * const AFNetworkingErrorDomain; - -typedef NSString * (^AFQueryStringSerializationBlock)(NSURLRequest *request, NSDictionary *parameters, NSError *__autoreleasing *error); - -static NSString * AFBase64EncodedStringFromString(NSString *string) { - NSData *data = [NSData dataWithBytes:[string UTF8String] length:[string lengthOfBytesUsingEncoding:NSUTF8StringEncoding]]; - NSUInteger length = [data length]; - NSMutableData *mutableData = [NSMutableData dataWithLength:((length + 2) / 3) * 4]; - - uint8_t *input = (uint8_t *)[data bytes]; - uint8_t *output = (uint8_t *)[mutableData mutableBytes]; - - for (NSUInteger i = 0; i < length; i += 3) { - NSUInteger value = 0; - for (NSUInteger j = i; j < (i + 3); j++) { - value <<= 8; - if (j < length) { - value |= (0xFF & input[j]); - } - } - - static uint8_t const kAFBase64EncodingTable[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; - - NSUInteger idx = (i / 3) * 4; - output[idx + 0] = kAFBase64EncodingTable[(value >> 18) & 0x3F]; - output[idx + 1] = kAFBase64EncodingTable[(value >> 12) & 0x3F]; - output[idx + 2] = (i + 1) < length ? kAFBase64EncodingTable[(value >> 6) & 0x3F] : '='; - output[idx + 3] = (i + 2) < length ? kAFBase64EncodingTable[(value >> 0) & 0x3F] : '='; - } - - return [[NSString alloc] initWithData:mutableData encoding:NSASCIIStringEncoding]; -} - -static NSString * const kAFCharactersToBeEscapedInQueryString = @":/?&=;+!@#$()',*"; - -static NSString * AFPercentEscapedQueryStringKeyFromStringWithEncoding(NSString *string, NSStringEncoding encoding) { - static NSString * const kAFCharactersToLeaveUnescapedInQueryStringPairKey = @"[]."; - - return (__bridge_transfer NSString *)CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (__bridge CFStringRef)string, (__bridge CFStringRef)kAFCharactersToLeaveUnescapedInQueryStringPairKey, (__bridge CFStringRef)kAFCharactersToBeEscapedInQueryString, CFStringConvertNSStringEncodingToEncoding(encoding)); -} - -static NSString * AFPercentEscapedQueryStringValueFromStringWithEncoding(NSString *string, NSStringEncoding encoding) { - return (__bridge_transfer NSString *)CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (__bridge CFStringRef)string, NULL, (__bridge CFStringRef)kAFCharactersToBeEscapedInQueryString, CFStringConvertNSStringEncodingToEncoding(encoding)); -} - -#pragma mark - - -@interface AFQueryStringPair : NSObject -@property (readwrite, nonatomic, strong) id field; -@property (readwrite, nonatomic, strong) id value; - -- (id)initWithField:(id)field value:(id)value; - -- (NSString *)URLEncodedStringValueWithEncoding:(NSStringEncoding)stringEncoding; -@end - -@implementation AFQueryStringPair - -- (id)initWithField:(id)field value:(id)value { - self = [super init]; - if (!self) { - return nil; - } - - self.field = field; - self.value = value; - - return self; -} - -- (NSString *)URLEncodedStringValueWithEncoding:(NSStringEncoding)stringEncoding { - if (!self.value || [self.value isEqual:[NSNull null]]) { - return AFPercentEscapedQueryStringKeyFromStringWithEncoding([self.field description], stringEncoding); - } else { - return [NSString stringWithFormat:@"%@=%@", AFPercentEscapedQueryStringKeyFromStringWithEncoding([self.field description], stringEncoding), AFPercentEscapedQueryStringValueFromStringWithEncoding([self.value description], stringEncoding)]; - } -} - -@end - -#pragma mark - - -extern NSArray * AFQueryStringPairsFromDictionary(NSDictionary *dictionary); -extern NSArray * AFQueryStringPairsFromKeyAndValue(NSString *key, id value); - -static NSString * AFQueryStringFromParametersWithEncoding(NSDictionary *parameters, NSStringEncoding stringEncoding) { - NSMutableArray *mutablePairs = [NSMutableArray array]; - for (AFQueryStringPair *pair in AFQueryStringPairsFromDictionary(parameters)) { - [mutablePairs addObject:[pair URLEncodedStringValueWithEncoding:stringEncoding]]; - } - - return [mutablePairs componentsJoinedByString:@"&"]; -} - -NSArray * AFQueryStringPairsFromDictionary(NSDictionary *dictionary) { - return AFQueryStringPairsFromKeyAndValue(nil, dictionary); -} - -NSArray * AFQueryStringPairsFromKeyAndValue(NSString *key, id value) { - NSMutableArray *mutableQueryStringComponents = [NSMutableArray array]; - - if ([value isKindOfClass:[NSDictionary class]]) { - NSDictionary *dictionary = value; - // Sort dictionary keys to ensure consistent ordering in query string, which is important when deserializing potentially ambiguous sequences, such as an array of dictionaries - NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"description" ascending:YES selector:@selector(caseInsensitiveCompare:)]; - for (id nestedKey in [dictionary.allKeys sortedArrayUsingDescriptors:@[ sortDescriptor ]]) { - id nestedValue = [dictionary objectForKey:nestedKey]; - if (nestedValue) { - [mutableQueryStringComponents addObjectsFromArray:AFQueryStringPairsFromKeyAndValue((key ? [NSString stringWithFormat:@"%@[%@]", key, nestedKey] : nestedKey), nestedValue)]; - } - } - } else if ([value isKindOfClass:[NSArray class]]) { - NSArray *array = value; - for (id nestedValue in array) { - [mutableQueryStringComponents addObjectsFromArray:AFQueryStringPairsFromKeyAndValue([NSString stringWithFormat:@"%@[]", key], nestedValue)]; - } - } else if ([value isKindOfClass:[NSSet class]]) { - NSSet *set = value; - for (id obj in set) { - [mutableQueryStringComponents addObjectsFromArray:AFQueryStringPairsFromKeyAndValue(key, obj)]; - } - } else { - [mutableQueryStringComponents addObject:[[AFQueryStringPair alloc] initWithField:key value:value]]; - } - - return mutableQueryStringComponents; -} - -#pragma mark - - -@interface AFStreamingMultipartFormData : NSObject -- (instancetype)initWithURLRequest:(NSMutableURLRequest *)urlRequest - stringEncoding:(NSStringEncoding)encoding; - -- (NSMutableURLRequest *)requestByFinalizingMultipartFormData; -@end - -#pragma mark - - -@interface AFHTTPRequestSerializer () -@property (readwrite, nonatomic, strong) NSMutableDictionary *mutableHTTPRequestHeaders; -@property (readwrite, nonatomic, assign) AFHTTPRequestQueryStringSerializationStyle queryStringSerializationStyle; -@property (readwrite, nonatomic, copy) AFQueryStringSerializationBlock queryStringSerialization; -@end - -@implementation AFHTTPRequestSerializer - -+ (instancetype)serializer { - return [[self alloc] init]; -} - -- (instancetype)init { - self = [super init]; - if (!self) { - return nil; - } - - self.stringEncoding = NSUTF8StringEncoding; - - self.mutableHTTPRequestHeaders = [NSMutableDictionary dictionary]; - - // Accept-Language HTTP Header; see http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.4 - NSMutableArray *acceptLanguagesComponents = [NSMutableArray array]; - [[NSLocale preferredLanguages] enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { - float q = 1.0f - (idx * 0.1f); - [acceptLanguagesComponents addObject:[NSString stringWithFormat:@"%@;q=%0.1g", obj, q]]; - *stop = q <= 0.5f; - }]; - [self setValue:[acceptLanguagesComponents componentsJoinedByString:@", "] forHTTPHeaderField:@"Accept-Language"]; - - NSString *userAgent = nil; -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wgnu" -#if defined(__IPHONE_OS_VERSION_MIN_REQUIRED) - // User-Agent Header; see http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.43 - userAgent = [NSString stringWithFormat:@"%@/%@ (%@; iOS %@; Scale/%0.2f)", [[[NSBundle mainBundle] infoDictionary] objectForKey:(__bridge NSString *)kCFBundleExecutableKey] ?: [[[NSBundle mainBundle] infoDictionary] objectForKey:(__bridge NSString *)kCFBundleIdentifierKey], (__bridge id)CFBundleGetValueForInfoDictionaryKey(CFBundleGetMainBundle(), kCFBundleVersionKey) ?: [[[NSBundle mainBundle] infoDictionary] objectForKey:(__bridge NSString *)kCFBundleVersionKey], [[UIDevice currentDevice] model], [[UIDevice currentDevice] systemVersion], ([[UIScreen mainScreen] respondsToSelector:@selector(scale)] ? [[UIScreen mainScreen] scale] : 1.0f)]; -#elif defined(__MAC_OS_X_VERSION_MIN_REQUIRED) - userAgent = [NSString stringWithFormat:@"%@/%@ (Mac OS X %@)", [[[NSBundle mainBundle] infoDictionary] objectForKey:(__bridge NSString *)kCFBundleExecutableKey] ?: [[[NSBundle mainBundle] infoDictionary] objectForKey:(__bridge NSString *)kCFBundleIdentifierKey], [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"] ?: [[[NSBundle mainBundle] infoDictionary] objectForKey:(__bridge NSString *)kCFBundleVersionKey], [[NSProcessInfo processInfo] operatingSystemVersionString]]; -#endif -#pragma clang diagnostic pop - if (userAgent) { - if (![userAgent canBeConvertedToEncoding:NSASCIIStringEncoding]) { - NSMutableString *mutableUserAgent = [userAgent mutableCopy]; - CFStringTransform((__bridge CFMutableStringRef)(mutableUserAgent), NULL, (__bridge CFStringRef)@"Any-Latin; Latin-ASCII; [:^ASCII:] Remove", false); - userAgent = mutableUserAgent; - } - [self setValue:userAgent forHTTPHeaderField:@"User-Agent"]; - } - - // HTTP Method Definitions; see http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html - self.HTTPMethodsEncodingParametersInURI = [NSSet setWithObjects:@"GET", @"HEAD", @"DELETE", nil]; - - return self; -} - -#pragma mark - - -- (NSDictionary *)HTTPRequestHeaders { - return [NSDictionary dictionaryWithDictionary:self.mutableHTTPRequestHeaders]; -} - -- (void)setValue:(NSString *)value forHTTPHeaderField:(NSString *)field { - [self.mutableHTTPRequestHeaders setValue:value forKey:field]; -} - -- (void)setAuthorizationHeaderFieldWithUsername:(NSString *)username password:(NSString *)password { - NSString *basicAuthCredentials = [NSString stringWithFormat:@"%@:%@", username, password]; - [self setValue:[NSString stringWithFormat:@"Basic %@", AFBase64EncodedStringFromString(basicAuthCredentials)] forHTTPHeaderField:@"Authorization"]; -} - -- (void)setAuthorizationHeaderFieldWithToken:(NSString *)token { - [self setValue:[NSString stringWithFormat:@"Token token=\"%@\"", token] forHTTPHeaderField:@"Authorization"]; -} - -- (void)clearAuthorizationHeader { - [self.mutableHTTPRequestHeaders removeObjectForKey:@"Authorization"]; -} - -#pragma mark - - -- (void)setQueryStringSerializationWithStyle:(AFHTTPRequestQueryStringSerializationStyle)style { - self.queryStringSerializationStyle = style; - self.queryStringSerialization = nil; -} - -- (void)setQueryStringSerializationWithBlock:(NSString *(^)(NSURLRequest *, NSDictionary *, NSError *__autoreleasing *))block { - self.queryStringSerialization = block; -} - -#pragma mark - - -- (NSMutableURLRequest *)requestWithMethod:(NSString *)method - URLString:(NSString *)URLString - parameters:(NSDictionary *)parameters -{ - NSParameterAssert(method); - NSParameterAssert(URLString); - - NSURL *url = [NSURL URLWithString:URLString]; - - NSParameterAssert(url); - - NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:url]; - [request setHTTPMethod:method]; - - request = [[self requestBySerializingRequest:request withParameters:parameters error:nil] mutableCopy]; - - return request; -} - -- (NSMutableURLRequest *)multipartFormRequestWithMethod:(NSString *)method - URLString:(NSString *)URLString - parameters:(NSDictionary *)parameters - constructingBodyWithBlock:(void (^)(id formData))block -{ - NSParameterAssert(method); - NSParameterAssert(![method isEqualToString:@"GET"] && ![method isEqualToString:@"HEAD"]); - - NSMutableURLRequest *request = [self requestWithMethod:method URLString:URLString parameters:nil]; - - __block AFStreamingMultipartFormData *formData = [[AFStreamingMultipartFormData alloc] initWithURLRequest:request stringEncoding:NSUTF8StringEncoding]; - - if (parameters) { - for (AFQueryStringPair *pair in AFQueryStringPairsFromDictionary(parameters)) { - NSData *data = nil; - if ([pair.value isKindOfClass:[NSData class]]) { - data = pair.value; - } else if ([pair.value isEqual:[NSNull null]]) { - data = [NSData data]; - } else { - data = [[pair.value description] dataUsingEncoding:self.stringEncoding]; - } - - if (data) { - [formData appendPartWithFormData:data name:[pair.field description]]; - } - } - } - - if (block) { - block(formData); - } - - return [formData requestByFinalizingMultipartFormData]; -} - -#pragma mark - AFURLRequestSerialization - -- (NSURLRequest *)requestBySerializingRequest:(NSURLRequest *)request - withParameters:(NSDictionary *)parameters - error:(NSError *__autoreleasing *)error -{ - NSParameterAssert(request); - - NSMutableURLRequest *mutableRequest = [request mutableCopy]; - - [self.HTTPRequestHeaders enumerateKeysAndObjectsUsingBlock:^(id field, id value, BOOL * __unused stop) { - if (![request valueForHTTPHeaderField:field]) { - [mutableRequest setValue:value forHTTPHeaderField:field]; - } - }]; - - if (!parameters) { - return mutableRequest; - } - - NSString *query = nil; - if (self.queryStringSerialization) { - query = self.queryStringSerialization(request, parameters, error); - } else { - switch (self.queryStringSerializationStyle) { - case AFHTTPRequestQueryStringDefaultStyle: - query = AFQueryStringFromParametersWithEncoding(parameters, self.stringEncoding); - break; - default: - break; - } - } - - if ([self.HTTPMethodsEncodingParametersInURI containsObject:[[request HTTPMethod] uppercaseString]]) { - mutableRequest.URL = [NSURL URLWithString:[[mutableRequest.URL absoluteString] stringByAppendingFormat:mutableRequest.URL.query ? @"&%@" : @"?%@", query]]; - } else { - NSString *charset = (__bridge NSString *)CFStringConvertEncodingToIANACharSetName(CFStringConvertNSStringEncodingToEncoding(self.stringEncoding)); - [mutableRequest setValue:[NSString stringWithFormat:@"application/x-www-form-urlencoded; charset=%@", charset] forHTTPHeaderField:@"Content-Type"]; - [mutableRequest setHTTPBody:[query dataUsingEncoding:self.stringEncoding]]; - } - - return mutableRequest; -} - -#pragma mark - NSCoding - -- (id)initWithCoder:(NSCoder *)decoder { - self = [self init]; - if (!self) { - return nil; - } - - self.mutableHTTPRequestHeaders = [decoder decodeObjectForKey:NSStringFromSelector(@selector(mutableHTTPRequestHeaders))]; - self.queryStringSerializationStyle = (AFHTTPRequestQueryStringSerializationStyle)[decoder decodeIntegerForKey:NSStringFromSelector(@selector(queryStringSerializationStyle))]; - - return self; -} - -- (void)encodeWithCoder:(NSCoder *)coder { - [coder encodeObject:self.mutableHTTPRequestHeaders forKey:NSStringFromSelector(@selector(mutableHTTPRequestHeaders))]; - [coder encodeInteger:self.queryStringSerializationStyle forKey:NSStringFromSelector(@selector(queryStringSerializationStyle))]; -} - -#pragma mark - NSCopying - -- (id)copyWithZone:(NSZone *)zone { - AFHTTPRequestSerializer *serializer = [[[self class] allocWithZone:zone] init]; - serializer.mutableHTTPRequestHeaders = [self.mutableHTTPRequestHeaders mutableCopyWithZone:zone]; - serializer.queryStringSerializationStyle = self.queryStringSerializationStyle; - serializer.queryStringSerialization = self.queryStringSerialization; - - return serializer; -} - -@end - -#pragma mark - - -static NSString * const kAFMultipartFormBoundary = @"Boundary+0xAbCdEfGbOuNdArY"; - -static NSString * const kAFMultipartFormCRLF = @"\r\n"; - -static NSInteger const kAFStreamToStreamBufferSize = 1024 * 1024; //1 meg default - -static inline NSString * AFMultipartFormInitialBoundary() { - return [NSString stringWithFormat:@"--%@%@", kAFMultipartFormBoundary, kAFMultipartFormCRLF]; -} - -static inline NSString * AFMultipartFormEncapsulationBoundary() { - return [NSString stringWithFormat:@"%@--%@%@", kAFMultipartFormCRLF, kAFMultipartFormBoundary, kAFMultipartFormCRLF]; -} - -static inline NSString * AFMultipartFormFinalBoundary() { - return [NSString stringWithFormat:@"%@--%@--%@", kAFMultipartFormCRLF, kAFMultipartFormBoundary, kAFMultipartFormCRLF]; -} - -static inline NSString * AFContentTypeForPathExtension(NSString *extension) { -#ifdef __UTTYPE__ - NSString *UTI = (__bridge_transfer NSString *)UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, (__bridge CFStringRef)extension, NULL); - NSString *contentType = (__bridge_transfer NSString *)UTTypeCopyPreferredTagWithClass((__bridge CFStringRef)UTI, kUTTagClassMIMEType); - if (!contentType) { - return @"application/octet-stream"; - } else { - return contentType; - } -#else - return @"application/octet-stream"; -#endif -} - -NSUInteger const kAFUploadStream3GSuggestedPacketSize = 1024 * 16; -NSTimeInterval const kAFUploadStream3GSuggestedDelay = 0.2; - -@interface AFHTTPBodyPart : NSObject -@property (nonatomic, assign) NSStringEncoding stringEncoding; -@property (nonatomic, strong) NSDictionary *headers; -@property (nonatomic, strong) id body; -@property (nonatomic, assign) unsigned long long bodyContentLength; -@property (nonatomic, strong) NSInputStream *inputStream; - -@property (nonatomic, assign) BOOL hasInitialBoundary; -@property (nonatomic, assign) BOOL hasFinalBoundary; - -@property (nonatomic, readonly, getter = hasBytesAvailable) BOOL bytesAvailable; -@property (nonatomic, readonly) unsigned long long contentLength; - -- (NSInteger)read:(uint8_t *)buffer - maxLength:(NSUInteger)length; -@end - -@interface AFMultipartBodyStream : NSInputStream -@property (nonatomic, assign) NSUInteger numberOfBytesInPacket; -@property (nonatomic, assign) NSTimeInterval delay; -@property (nonatomic, strong) NSInputStream *inputStream; -@property (nonatomic, readonly) unsigned long long contentLength; -@property (nonatomic, readonly, getter = isEmpty) BOOL empty; - -- (id)initWithStringEncoding:(NSStringEncoding)encoding; -- (void)setInitialAndFinalBoundaries; -- (void)appendHTTPBodyPart:(AFHTTPBodyPart *)bodyPart; -@end - -#pragma mark - - -@interface AFStreamingMultipartFormData () -@property (readwrite, nonatomic, copy) NSMutableURLRequest *request; -@property (readwrite, nonatomic, strong) AFMultipartBodyStream *bodyStream; -@property (readwrite, nonatomic, assign) NSStringEncoding stringEncoding; -@end - -@implementation AFStreamingMultipartFormData - -- (id)initWithURLRequest:(NSMutableURLRequest *)urlRequest - stringEncoding:(NSStringEncoding)encoding -{ - self = [super init]; - if (!self) { - return nil; - } - - self.request = urlRequest; - self.stringEncoding = encoding; - self.bodyStream = [[AFMultipartBodyStream alloc] initWithStringEncoding:encoding]; - - return self; -} - -- (BOOL)appendPartWithFileURL:(NSURL *)fileURL - name:(NSString *)name - error:(NSError * __autoreleasing *)error -{ - NSParameterAssert(fileURL); - NSParameterAssert(name); - - NSString *fileName = [fileURL lastPathComponent]; - NSString *mimeType = AFContentTypeForPathExtension([fileURL pathExtension]); - - return [self appendPartWithFileURL:fileURL name:name fileName:fileName mimeType:mimeType error:error]; -} - -- (BOOL)appendPartWithFileURL:(NSURL *)fileURL - name:(NSString *)name - fileName:(NSString *)fileName - mimeType:(NSString *)mimeType - error:(NSError * __autoreleasing *)error -{ - NSParameterAssert(fileURL); - NSParameterAssert(name); - NSParameterAssert(fileName); - NSParameterAssert(mimeType); - - if (![fileURL isFileURL]) { - NSDictionary *userInfo = [NSDictionary dictionaryWithObject:NSLocalizedStringFromTable(@"Expected URL to be a file URL", @"AFNetworking", nil) forKey:NSLocalizedFailureReasonErrorKey]; - if (error != NULL) { - *error = [[NSError alloc] initWithDomain:AFNetworkingErrorDomain code:NSURLErrorBadURL userInfo:userInfo]; - } - - return NO; - } else if ([fileURL checkResourceIsReachableAndReturnError:error] == NO) { - NSDictionary *userInfo = [NSDictionary dictionaryWithObject:NSLocalizedStringFromTable(@"File URL not reachable.", @"AFNetworking", nil) forKey:NSLocalizedFailureReasonErrorKey]; - if (error != NULL) { - *error = [[NSError alloc] initWithDomain:AFNetworkingErrorDomain code:NSURLErrorBadURL userInfo:userInfo]; - } - - return NO; - } - - NSMutableDictionary *mutableHeaders = [NSMutableDictionary dictionary]; - [mutableHeaders setValue:[NSString stringWithFormat:@"form-data; name=\"%@\"; filename=\"%@\"", name, fileName] forKey:@"Content-Disposition"]; - [mutableHeaders setValue:mimeType forKey:@"Content-Type"]; - - AFHTTPBodyPart *bodyPart = [[AFHTTPBodyPart alloc] init]; - bodyPart.stringEncoding = self.stringEncoding; - bodyPart.headers = mutableHeaders; - bodyPart.body = fileURL; - - NSDictionary *fileAttributes = [[NSFileManager defaultManager] attributesOfItemAtPath:[fileURL path] error:nil]; - bodyPart.bodyContentLength = [[fileAttributes objectForKey:NSFileSize] unsignedLongLongValue]; - - [self.bodyStream appendHTTPBodyPart:bodyPart]; - - return YES; -} - - -- (void)appendPartWithInputStream:(NSInputStream *)inputStream - name:(NSString *)name - fileName:(NSString *)fileName - length:(int64_t)length - mimeType:(NSString *)mimeType -{ - NSParameterAssert(name); - NSParameterAssert(fileName); - NSParameterAssert(mimeType); - - NSMutableDictionary *mutableHeaders = [NSMutableDictionary dictionary]; - [mutableHeaders setValue:[NSString stringWithFormat:@"form-data; name=\"%@\"; filename=\"%@\"", name, fileName] forKey:@"Content-Disposition"]; - [mutableHeaders setValue:mimeType forKey:@"Content-Type"]; - - - AFHTTPBodyPart *bodyPart = [[AFHTTPBodyPart alloc] init]; - bodyPart.stringEncoding = self.stringEncoding; - bodyPart.headers = mutableHeaders; - bodyPart.body = inputStream; - - bodyPart.bodyContentLength = length; - - [self.bodyStream appendHTTPBodyPart:bodyPart]; -} - -- (void)appendPartWithFileData:(NSData *)data - name:(NSString *)name - fileName:(NSString *)fileName - mimeType:(NSString *)mimeType -{ - NSParameterAssert(name); - NSParameterAssert(fileName); - NSParameterAssert(mimeType); - - NSMutableDictionary *mutableHeaders = [NSMutableDictionary dictionary]; - [mutableHeaders setValue:[NSString stringWithFormat:@"form-data; name=\"%@\"; filename=\"%@\"", name, fileName] forKey:@"Content-Disposition"]; - [mutableHeaders setValue:mimeType forKey:@"Content-Type"]; - - [self appendPartWithHeaders:mutableHeaders body:data]; -} - -- (void)appendPartWithFormData:(NSData *)data - name:(NSString *)name -{ - NSParameterAssert(name); - - NSMutableDictionary *mutableHeaders = [NSMutableDictionary dictionary]; - [mutableHeaders setValue:[NSString stringWithFormat:@"form-data; name=\"%@\"", name] forKey:@"Content-Disposition"]; - - [self appendPartWithHeaders:mutableHeaders body:data]; -} - -- (void)appendPartWithHeaders:(NSDictionary *)headers - body:(NSData *)body -{ - NSParameterAssert(body); - - AFHTTPBodyPart *bodyPart = [[AFHTTPBodyPart alloc] init]; - bodyPart.stringEncoding = self.stringEncoding; - bodyPart.headers = headers; - bodyPart.bodyContentLength = [body length]; - bodyPart.body = body; - - [self.bodyStream appendHTTPBodyPart:bodyPart]; -} - -- (void)throttleBandwidthWithPacketSize:(NSUInteger)numberOfBytes - delay:(NSTimeInterval)delay -{ - self.bodyStream.numberOfBytesInPacket = numberOfBytes; - self.bodyStream.delay = delay; -} - -- (NSMutableURLRequest *)requestByFinalizingMultipartFormData { - if ([self.bodyStream isEmpty]) { - return self.request; - } - - // Reset the initial and final boundaries to ensure correct Content-Length - [self.bodyStream setInitialAndFinalBoundaries]; - [self.request setHTTPBodyStream:self.bodyStream]; - - [self.request setValue:[NSString stringWithFormat:@"multipart/form-data; boundary=%@", kAFMultipartFormBoundary] forHTTPHeaderField:@"Content-Type"]; - [self.request setValue:[NSString stringWithFormat:@"%llu", [self.bodyStream contentLength]] forHTTPHeaderField:@"Content-Length"]; - - return self.request; -} - -@end - -#pragma mark - - -@interface AFMultipartBodyStream () -@property (nonatomic, assign) NSStreamStatus streamStatus; -@property (nonatomic, strong) NSError *streamError; -@property (nonatomic, assign) NSStringEncoding stringEncoding; -@property (nonatomic, strong) NSMutableArray *HTTPBodyParts; -@property (nonatomic, strong) NSEnumerator *HTTPBodyPartEnumerator; -@property (nonatomic, strong) AFHTTPBodyPart *currentHTTPBodyPart; -@property (nonatomic, strong) NSOutputStream *outputStream; -@property (nonatomic, strong) NSMutableData *buffer; -@end - -@implementation AFMultipartBodyStream - -- (id)initWithStringEncoding:(NSStringEncoding)encoding { - self = [super init]; - if (!self) { - return nil; - } - - self.stringEncoding = encoding; - self.HTTPBodyParts = [NSMutableArray array]; - self.numberOfBytesInPacket = NSIntegerMax; - - return self; -} - -- (void)setInitialAndFinalBoundaries { - if ([self.HTTPBodyParts count] > 0) { - for (AFHTTPBodyPart *bodyPart in self.HTTPBodyParts) { - bodyPart.hasInitialBoundary = NO; - bodyPart.hasFinalBoundary = NO; - } - - [[self.HTTPBodyParts objectAtIndex:0] setHasInitialBoundary:YES]; - [[self.HTTPBodyParts lastObject] setHasFinalBoundary:YES]; - } -} - -- (void)appendHTTPBodyPart:(AFHTTPBodyPart *)bodyPart { - [self.HTTPBodyParts addObject:bodyPart]; -} - -- (BOOL)isEmpty { - return [self.HTTPBodyParts count] == 0; -} - -#pragma mark - NSInputStream - -- (NSInteger)read:(uint8_t *)buffer - maxLength:(NSUInteger)length -{ - if ([self streamStatus] == NSStreamStatusClosed) { - return 0; - } - - NSInteger totalNumberOfBytesRead = 0; - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wgnu" - while ((NSUInteger)totalNumberOfBytesRead < MIN(length, self.numberOfBytesInPacket)) { - if (!self.currentHTTPBodyPart || ![self.currentHTTPBodyPart hasBytesAvailable]) { - if (!(self.currentHTTPBodyPart = [self.HTTPBodyPartEnumerator nextObject])) { - break; - } - } else { - NSUInteger maxLength = length - (NSUInteger)totalNumberOfBytesRead; - NSInteger numberOfBytesRead = [self.currentHTTPBodyPart read:&buffer[totalNumberOfBytesRead] maxLength:maxLength]; - if (numberOfBytesRead == -1) { - self.streamError = self.currentHTTPBodyPart.inputStream.streamError; - break; - } else { - totalNumberOfBytesRead += numberOfBytesRead; - - if (self.delay > 0.0f) { - [NSThread sleepForTimeInterval:self.delay]; - } - } - } - } -#pragma clang diagnostic pop - - return totalNumberOfBytesRead; -} - -- (BOOL)getBuffer:(__unused uint8_t **)buffer - length:(__unused NSUInteger *)len -{ - return NO; -} - -- (BOOL)hasBytesAvailable { - return [self streamStatus] == NSStreamStatusOpen; -} - -#pragma mark - NSStream - -- (void)open { - if (self.streamStatus == NSStreamStatusOpen) { - return; - } - - self.streamStatus = NSStreamStatusOpen; - - [self setInitialAndFinalBoundaries]; - self.HTTPBodyPartEnumerator = [self.HTTPBodyParts objectEnumerator]; -} - -- (void)close { - self.streamStatus = NSStreamStatusClosed; -} - -- (id)propertyForKey:(__unused NSString *)key { - return nil; -} - -- (BOOL)setProperty:(__unused id)property - forKey:(__unused NSString *)key -{ - return NO; -} - -- (void)scheduleInRunLoop:(__unused NSRunLoop *)aRunLoop - forMode:(__unused NSString *)mode -{} - -- (void)removeFromRunLoop:(__unused NSRunLoop *)aRunLoop - forMode:(__unused NSString *)mode -{} - -- (unsigned long long)contentLength { - unsigned long long length = 0; - for (AFHTTPBodyPart *bodyPart in self.HTTPBodyParts) { - length += [bodyPart contentLength]; - } - - return length; -} - -#pragma mark - Undocumented CFReadStream Bridged Methods - -- (void)_scheduleInCFRunLoop:(__unused CFRunLoopRef)aRunLoop - forMode:(__unused CFStringRef)aMode -{} - -- (void)_unscheduleFromCFRunLoop:(__unused CFRunLoopRef)aRunLoop - forMode:(__unused CFStringRef)aMode -{} - -- (BOOL)_setCFClientFlags:(__unused CFOptionFlags)inFlags - callback:(__unused CFReadStreamClientCallBack)inCallback - context:(__unused CFStreamClientContext *)inContext { - return NO; -} - -#pragma mark - NSCopying - --(id)copyWithZone:(NSZone *)zone { - AFMultipartBodyStream *bodyStreamCopy = [[[self class] allocWithZone:zone] initWithStringEncoding:self.stringEncoding]; - - for (AFHTTPBodyPart *bodyPart in self.HTTPBodyParts) { - [bodyStreamCopy appendHTTPBodyPart:[bodyPart copy]]; - } - - [bodyStreamCopy setInitialAndFinalBoundaries]; - - return bodyStreamCopy; -} - -@end - -#pragma mark - - -typedef enum { - AFEncapsulationBoundaryPhase = 1, - AFHeaderPhase = 2, - AFBodyPhase = 3, - AFFinalBoundaryPhase = 4, -} AFHTTPBodyPartReadPhase; - -@interface AFHTTPBodyPart () { - AFHTTPBodyPartReadPhase _phase; - NSInputStream *_inputStream; - unsigned long long _phaseReadOffset; -} - -- (BOOL)transitionToNextPhase; -- (NSInteger)readData:(NSData *)data - intoBuffer:(uint8_t *)buffer - maxLength:(NSUInteger)length; -@end - -@implementation AFHTTPBodyPart - -- (id)init { - self = [super init]; - if (!self) { - return nil; - } - - [self transitionToNextPhase]; - - return self; -} - -- (void)dealloc { - if (_inputStream) { - [_inputStream close]; - _inputStream = nil; - } -} - -- (NSInputStream *)inputStream { - if (!_inputStream) { - if ([self.body isKindOfClass:[NSData class]]) { - _inputStream = [NSInputStream inputStreamWithData:self.body]; - } else if ([self.body isKindOfClass:[NSURL class]]) { - _inputStream = [NSInputStream inputStreamWithURL:self.body]; - } else if ([self.body isKindOfClass:[NSInputStream class]]) { - _inputStream = self.body; - } - } - - return _inputStream; -} - -- (NSString *)stringForHeaders { - NSMutableString *headerString = [NSMutableString string]; - for (NSString *field in [self.headers allKeys]) { - [headerString appendString:[NSString stringWithFormat:@"%@: %@%@", field, [self.headers valueForKey:field], kAFMultipartFormCRLF]]; - } - [headerString appendString:kAFMultipartFormCRLF]; - - return [NSString stringWithString:headerString]; -} - -- (unsigned long long)contentLength { - unsigned long long length = 0; - - NSData *encapsulationBoundaryData = [([self hasInitialBoundary] ? AFMultipartFormInitialBoundary() : AFMultipartFormEncapsulationBoundary()) dataUsingEncoding:self.stringEncoding]; - length += [encapsulationBoundaryData length]; - - NSData *headersData = [[self stringForHeaders] dataUsingEncoding:self.stringEncoding]; - length += [headersData length]; - - length += _bodyContentLength; - - NSData *closingBoundaryData = ([self hasFinalBoundary] ? [AFMultipartFormFinalBoundary() dataUsingEncoding:self.stringEncoding] : [NSData data]); - length += [closingBoundaryData length]; - - return length; -} - -- (BOOL)hasBytesAvailable { - // Allows `read:maxLength:` to be called again if `AFMultipartFormFinalBoundary` doesn't fit into the available buffer - if (_phase == AFFinalBoundaryPhase) { - return YES; - } - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wcovered-switch-default" - switch (self.inputStream.streamStatus) { - case NSStreamStatusNotOpen: - case NSStreamStatusOpening: - case NSStreamStatusOpen: - case NSStreamStatusReading: - case NSStreamStatusWriting: - return YES; - case NSStreamStatusAtEnd: - case NSStreamStatusClosed: - case NSStreamStatusError: - default: - return NO; - } -#pragma clang diagnostic pop -} - -- (NSInteger)read:(uint8_t *)buffer - maxLength:(NSUInteger)length -{ - NSInteger totalNumberOfBytesRead = 0; - - if (_phase == AFEncapsulationBoundaryPhase) { - NSData *encapsulationBoundaryData = [([self hasInitialBoundary] ? AFMultipartFormInitialBoundary() : AFMultipartFormEncapsulationBoundary()) dataUsingEncoding:self.stringEncoding]; - totalNumberOfBytesRead += [self readData:encapsulationBoundaryData intoBuffer:&buffer[totalNumberOfBytesRead] maxLength:(length - (NSUInteger)totalNumberOfBytesRead)]; - } - - if (_phase == AFHeaderPhase) { - NSData *headersData = [[self stringForHeaders] dataUsingEncoding:self.stringEncoding]; - totalNumberOfBytesRead += [self readData:headersData intoBuffer:&buffer[totalNumberOfBytesRead] maxLength:(length - (NSUInteger)totalNumberOfBytesRead)]; - } - - if (_phase == AFBodyPhase) { - NSInteger numberOfBytesRead = 0; - - numberOfBytesRead = [self.inputStream read:&buffer[totalNumberOfBytesRead] maxLength:(length - (NSUInteger)totalNumberOfBytesRead)]; - if (numberOfBytesRead == -1) { - return -1; - } else { - totalNumberOfBytesRead += numberOfBytesRead; - - if ([self.inputStream streamStatus] >= NSStreamStatusAtEnd) { - [self transitionToNextPhase]; - } - } - } - - if (_phase == AFFinalBoundaryPhase) { - NSData *closingBoundaryData = ([self hasFinalBoundary] ? [AFMultipartFormFinalBoundary() dataUsingEncoding:self.stringEncoding] : [NSData data]); - totalNumberOfBytesRead += [self readData:closingBoundaryData intoBuffer:&buffer[totalNumberOfBytesRead] maxLength:(length - (NSUInteger)totalNumberOfBytesRead)]; - } - - return totalNumberOfBytesRead; -} - -- (NSInteger)readData:(NSData *)data - intoBuffer:(uint8_t *)buffer - maxLength:(NSUInteger)length -{ -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wgnu" - NSRange range = NSMakeRange((NSUInteger)_phaseReadOffset, MIN([data length] - ((NSUInteger)_phaseReadOffset), length)); - [data getBytes:buffer range:range]; -#pragma clang diagnostic pop - - _phaseReadOffset += range.length; - - if (((NSUInteger)_phaseReadOffset) >= [data length]) { - [self transitionToNextPhase]; - } - - return (NSInteger)range.length; -} - -- (BOOL)transitionToNextPhase { - if (![[NSThread currentThread] isMainThread]) { - [self performSelectorOnMainThread:@selector(transitionToNextPhase) withObject:nil waitUntilDone:YES]; - return YES; - } - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wcovered-switch-default" - switch (_phase) { - case AFEncapsulationBoundaryPhase: - _phase = AFHeaderPhase; - break; - case AFHeaderPhase: - [self.inputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSRunLoopCommonModes]; - [self.inputStream open]; - _phase = AFBodyPhase; - break; - case AFBodyPhase: - [self.inputStream close]; - _phase = AFFinalBoundaryPhase; - break; - case AFFinalBoundaryPhase: - default: - _phase = AFEncapsulationBoundaryPhase; - break; - } - _phaseReadOffset = 0; -#pragma clang diagnostic pop - - return YES; -} - -#pragma mark - NSCopying - -- (id)copyWithZone:(NSZone *)zone { - AFHTTPBodyPart *bodyPart = [[[self class] allocWithZone:zone] init]; - - bodyPart.stringEncoding = self.stringEncoding; - bodyPart.headers = self.headers; - bodyPart.bodyContentLength = self.bodyContentLength; - bodyPart.body = self.body; - - return bodyPart; -} - -@end - -#pragma mark - - -@implementation AFJSONRequestSerializer - -+ (instancetype)serializer { - return [self serializerWithWritingOptions:0]; -} - -+ (instancetype)serializerWithWritingOptions:(NSJSONWritingOptions)writingOptions -{ - AFJSONRequestSerializer *serializer = [[self alloc] init]; - serializer.writingOptions = writingOptions; - - return serializer; -} - -#pragma mark - AFURLRequestSerialization - -- (NSURLRequest *)requestBySerializingRequest:(NSURLRequest *)request - withParameters:(NSDictionary *)parameters - error:(NSError *__autoreleasing *)error -{ - NSParameterAssert(request); - - if ([self.HTTPMethodsEncodingParametersInURI containsObject:[[request HTTPMethod] uppercaseString]]) { - return [super requestBySerializingRequest:request withParameters:parameters error:error]; - } - - NSMutableURLRequest *mutableRequest = [request mutableCopy]; - - [self.HTTPRequestHeaders enumerateKeysAndObjectsUsingBlock:^(id field, id value, BOOL * __unused stop) { - if (![request valueForHTTPHeaderField:field]) { - [mutableRequest setValue:value forHTTPHeaderField:field]; - } - }]; - - if (!parameters) { - return mutableRequest; - } - - NSString *charset = (__bridge NSString *)CFStringConvertEncodingToIANACharSetName(CFStringConvertNSStringEncodingToEncoding(NSUTF8StringEncoding)); - - [mutableRequest setValue:[NSString stringWithFormat:@"application/json; charset=%@", charset] forHTTPHeaderField:@"Content-Type"]; - [mutableRequest setHTTPBody:[NSJSONSerialization dataWithJSONObject:parameters options:self.writingOptions error:error]]; - - return mutableRequest; -} - -@end - -#pragma mark - - -@implementation AFPropertyListRequestSerializer - -+ (instancetype)serializer { - return [self serializerWithFormat:NSPropertyListXMLFormat_v1_0 writeOptions:0]; -} - -+ (instancetype)serializerWithFormat:(NSPropertyListFormat)format - writeOptions:(NSPropertyListWriteOptions)writeOptions -{ - AFPropertyListRequestSerializer *serializer = [[self alloc] init]; - serializer.format = format; - serializer.writeOptions = writeOptions; - - return serializer; -} - -#pragma mark - AFURLRequestSerializer - -- (NSURLRequest *)requestBySerializingRequest:(NSURLRequest *)request - withParameters:(NSDictionary *)parameters - error:(NSError *__autoreleasing *)error -{ - NSParameterAssert(request); - - if ([self.HTTPMethodsEncodingParametersInURI containsObject:[[request HTTPMethod] uppercaseString]]) { - return [super requestBySerializingRequest:request withParameters:parameters error:error]; - } - - NSMutableURLRequest *mutableRequest = [request mutableCopy]; - - [self.HTTPRequestHeaders enumerateKeysAndObjectsUsingBlock:^(id field, id value, BOOL * __unused stop) { - if (![request valueForHTTPHeaderField:field]) { - [mutableRequest setValue:value forHTTPHeaderField:field]; - } - }]; - - NSString *charset = (__bridge NSString *)CFStringConvertEncodingToIANACharSetName(CFStringConvertNSStringEncodingToEncoding(NSUTF8StringEncoding)); - - [mutableRequest setValue:[NSString stringWithFormat:@"application/x-plist; charset=%@", charset] forHTTPHeaderField:@"Content-Type"]; - [mutableRequest setHTTPBody:[NSPropertyListSerialization dataWithPropertyList:parameters format:self.format options:self.writeOptions error:error]]; - - return mutableRequest; -} - -#pragma mark - NSCoding - -- (id)initWithCoder:(NSCoder *)decoder { - self = [super initWithCoder:decoder]; - if (!self) { - return nil; - } - - self.format = (NSPropertyListFormat)[decoder decodeIntegerForKey:NSStringFromSelector(@selector(format))]; - self.writeOptions = [decoder decodeIntegerForKey:NSStringFromSelector(@selector(writeOptions))]; - - return self; -} - -- (void)encodeWithCoder:(NSCoder *)coder { - [super encodeWithCoder:coder]; - - [coder encodeInteger:self.format forKey:NSStringFromSelector(@selector(format))]; - [coder encodeInteger:(NSInteger)self.writeOptions forKey:NSStringFromSelector(@selector(writeOptions))]; -} - -#pragma mark - NSCopying - -- (id)copyWithZone:(NSZone *)zone { - AFPropertyListRequestSerializer *serializer = [[[self class] allocWithZone:zone] init]; - serializer.format = self.format; - serializer.writeOptions = self.writeOptions; - - return serializer; -} - -@end diff --git a/Projects/iOS > 6/Pods/AFNetworking/AFNetworking/AFURLResponseSerialization.h b/Projects/iOS > 6/Pods/AFNetworking/AFNetworking/AFURLResponseSerialization.h deleted file mode 100644 index 392c3cd..0000000 --- a/Projects/iOS > 6/Pods/AFNetworking/AFNetworking/AFURLResponseSerialization.h +++ /dev/null @@ -1,257 +0,0 @@ -// AFSerialization.h -// -// Copyright (c) 2013 AFNetworking (http://afnetworking.com) -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -#import -#import - -/** - The `AFURLResponseSerialization` protocol is adopted by an object that decodes data into a more useful object representation, according to details in the server response. Response serializers may additionally perform validation on the incoming response and data. - - For example, a JSON response serializer may check for an acceptable status code (`2XX` range) and content type (`application/json`), decoding a valid JSON response into an object. - */ -@protocol AFURLResponseSerialization - -/** - The response object decoded from the data associated with a specified response. - - @param response The response to be processed. - @param data The response data to be decoded. - @param error The error that occurred while attempting to decode the response data. - - @return The object decoded from the specified response data. - */ -- (id)responseObjectForResponse:(NSURLResponse *)response - data:(NSData *)data - error:(NSError *__autoreleasing *)error; - -@end - -#pragma mark - - -/** - `AFHTTPResponseSerializer` conforms to the `AFURLRequestSerialization` & `AFURLResponseSerialization` protocols, offering a concrete base implementation of query string / URL form-encoded parameter serialization and default request headers, as well as response status code and content type validation. - - Any request or response serializer dealing with HTTP is encouraged to subclass `AFHTTPResponseSerializer` in order to ensure consistent default behavior. - */ -@interface AFHTTPResponseSerializer : NSObject - -/** - The string encoding used to serialize parameters. - */ -@property (nonatomic, assign) NSStringEncoding stringEncoding; - -/** - Creates and returns a serializer with default configuration. - */ -+ (instancetype)serializer; - -///----------------------------------------- -/// @name Configuring Response Serialization -///----------------------------------------- - -/** - The acceptable HTTP status codes for responses. When non-`nil`, responses with status codes not contained by the set will result in an error during validation. - - See http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html - */ -@property (nonatomic, strong) NSIndexSet *acceptableStatusCodes; - -/** - The acceptable MIME types for responses. When non-`nil`, responses with a `Content-Type` with MIME types that do not intersect with the set will result in an error during validation. - */ -@property (nonatomic, strong) NSSet *acceptableContentTypes; - -/** - Validates the specified response and data. - - In its base implementation, this method checks for an acceptable status code and content type. Subclasses may wish to add other domain-specific checks. - - @param response The response to be validated. - @param data The data associated with the response. - @param error The error that occurred while attempting to validate the response. - - @return `YES` if the response is valid, otherwise `NO`. - */ -- (BOOL)validateResponse:(NSHTTPURLResponse *)response - data:(NSData *)data - error:(NSError *__autoreleasing *)error; - -@end - -#pragma mark - - - -/** - `AFJSONResponseSerializer` is a subclass of `AFHTTPResponseSerializer` that validates and decodes JSON responses. - - By default, `AFJSONResponseSerializer` accepts the following MIME types, which includes the official standard, `application/json`, as well as other commonly-used types: - - - `application/json` - - `text/json` - - `text/javascript` - */ -@interface AFJSONResponseSerializer : AFHTTPResponseSerializer - -/** - Options for reading the response JSON data and creating the Foundation objects. For possible values, see the `NSJSONSerialization` documentation section "NSJSONReadingOptions". `0` by default. - */ -@property (nonatomic, assign) NSJSONReadingOptions readingOptions; - -/** - Creates and returns a JSON serializer with specified reading and writing options. - - @param readingOptions The specified JSON reading options. - */ -+ (instancetype)serializerWithReadingOptions:(NSJSONReadingOptions)readingOptions; - -@end - -#pragma mark - - -/** - `AFXMLParserSerializer` is a subclass of `AFHTTPResponseSerializer` that validates and decodes XML responses as an `NSXMLParser` objects. - - By default, `AFXMLParserSerializer` accepts the following MIME types, which includes the official standard, `application/xml`, as well as other commonly-used types: - - - `application/xml` - - `text/xml` - */ -@interface AFXMLParserResponseSerializer : AFHTTPResponseSerializer - -@end - -#pragma mark - - -#ifdef __MAC_OS_X_VERSION_MIN_REQUIRED - -/** - `AFXMLDocumentSerializer` is a subclass of `AFHTTPResponseSerializer` that validates and decodes XML responses as an `NSXMLDocument` objects. - - By default, `AFXMLDocumentSerializer` accepts the following MIME types, which includes the official standard, `application/xml`, as well as other commonly-used types: - - - `application/xml` - - `text/xml` - */ -@interface AFXMLDocumentResponseSerializer : AFHTTPResponseSerializer - -/** - Input and output options specifically intended for `NSXMLDocument` objects. For possible values, see the `NSJSONSerialization` documentation section "NSJSONReadingOptions". `0` by default. - */ -@property (nonatomic, assign) NSUInteger options; - -/** - Creates and returns an XML document serializer with the specified options. - - @param mask The XML document options. - */ -+ (instancetype)serializerWithXMLDocumentOptions:(NSUInteger)mask; - -@end - -#endif - -#pragma mark - - -/** - `AFPropertyListSerializer` is a subclass of `AFHTTPResponseSerializer` that validates and decodes XML responses as an `NSXMLDocument` objects. - - By default, `AFPropertyListSerializer` accepts the following MIME types: - - - `application/x-plist` - */ -@interface AFPropertyListResponseSerializer : AFHTTPResponseSerializer - -/** - The property list format. Possible values are described in "NSPropertyListFormat". - */ -@property (nonatomic, assign) NSPropertyListFormat format; - -/** - The property list reading options. Possible values are described in "NSPropertyListMutabilityOptions." - */ -@property (nonatomic, assign) NSPropertyListReadOptions readOptions; - -/** - Creates and returns a property list serializer with a specified format, read options, and write options. - - @param format The property list format. - @param readOptions The property list reading options. - */ -+ (instancetype)serializerWithFormat:(NSPropertyListFormat)format - readOptions:(NSPropertyListReadOptions)readOptions; - -@end - -#pragma mark - - -/** - `AFImageSerializer` is a subclass of `AFHTTPResponseSerializer` that validates and decodes image responses. - - By default, `AFImageSerializer` accepts the following MIME types, which correspond to the image formats supported by UIImage or NSImage: - - - `image/tiff` - - `image/jpeg` - - `image/gif` - - `image/png` - - `image/ico` - - `image/x-icon` - - `image/bmp` - - `image/x-bmp` - - `image/x-xbitmap` - - `image/x-win-bitmap` - */ -@interface AFImageResponseSerializer : AFHTTPResponseSerializer - -#if defined(__IPHONE_OS_VERSION_MIN_REQUIRED) -/** - The scale factor used when interpreting the image data to construct `responseImage`. Specifying a scale factor of 1.0 results in an image whose size matches the pixel-based dimensions of the image. Applying a different scale factor changes the size of the image as reported by the size property. This is set to the value of scale of the main screen by default, which automatically scales images for retina displays, for instance. - */ -@property (nonatomic, assign) CGFloat imageScale; - -/** - Whether to automatically inflate response image data for compressed formats (such as PNG or JPEG). Enabling this can significantly improve drawing performance on iOS when used with `setCompletionBlockWithSuccess:failure:`, as it allows a bitmap representation to be constructed in the background rather than on the main thread. `YES` by default. - */ -@property (nonatomic, assign) BOOL automaticallyInflatesResponseImage; -#endif - -@end - -#pragma mark - - -/** - `AFCompoundSerializer` is a subclass of `AFHTTPResponseSerializer` that delegates the response serialization to the first `AFHTTPResponseSerializer` object that returns `YES` to `validateResponse:data:error:`, falling back on the default behavior of `AFHTTPResponseSerializer`. This is useful for supporting multiple potential types and structures of server responses with a single serializer. - */ -@interface AFCompoundResponseSerializer : AFHTTPResponseSerializer - -/** - The component response serializers. - */ -@property (readonly, nonatomic, strong) NSArray *responseSerializers; - -/** - Creates and returns a compound serializer comprised of the specified response serializers. - - @warning Each response serializer specified must be a subclass of `AFHTTPResponseSerializer`, and response to `-validateResponse:data:error:`. - */ -+ (instancetype)compoundSerializerWithResponseSerializers:(NSArray *)responseSerializers; - -@end diff --git a/Projects/iOS > 6/Pods/AFNetworking/AFNetworking/AFURLResponseSerialization.m b/Projects/iOS > 6/Pods/AFNetworking/AFNetworking/AFURLResponseSerialization.m deleted file mode 100644 index f9fb95b..0000000 --- a/Projects/iOS > 6/Pods/AFNetworking/AFNetworking/AFURLResponseSerialization.m +++ /dev/null @@ -1,691 +0,0 @@ -// AFSerialization.h -// -// Copyright (c) 2013 AFNetworking (http://afnetworking.com) -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -#import "AFURLResponseSerialization.h" - -extern NSString * const AFNetworkingErrorDomain; -extern NSString * const AFNetworkingOperationFailingURLResponseErrorKey; - -#if defined(__IPHONE_OS_VERSION_MIN_REQUIRED) -#import -#elif defined(__MAC_OS_X_VERSION_MIN_REQUIRED) -#import -#endif - -@implementation AFHTTPResponseSerializer - -+ (instancetype)serializer { - return [[self alloc] init]; -} - -- (instancetype)init { - self = [super init]; - if (!self) { - return nil; - } - - self.stringEncoding = NSUTF8StringEncoding; - - self.acceptableStatusCodes = [NSIndexSet indexSetWithIndexesInRange:NSMakeRange(200, 100)]; - self.acceptableContentTypes = nil; - - return self; -} - -#pragma mark - - -- (BOOL)validateResponse:(NSHTTPURLResponse *)response - data:(NSData *)data - error:(NSError *__autoreleasing *)error -{ - if (response && [response isKindOfClass:[NSHTTPURLResponse class]]) { - if (self.acceptableStatusCodes && ![self.acceptableStatusCodes containsIndex:(NSUInteger)response.statusCode]) { - NSDictionary *userInfo = @{ - NSLocalizedDescriptionKey: [NSString stringWithFormat:NSLocalizedStringFromTable(@"Request failed: %@ (%d)", @"AFNetworking", nil), [NSHTTPURLResponse localizedStringForStatusCode:response.statusCode], response.statusCode], - NSURLErrorFailingURLErrorKey:[response URL], - AFNetworkingOperationFailingURLResponseErrorKey: response - }; - if (error) { - *error = [[NSError alloc] initWithDomain:AFNetworkingErrorDomain code:NSURLErrorBadServerResponse userInfo:userInfo]; - } - - return NO; - } else if (self.acceptableContentTypes && ![self.acceptableContentTypes containsObject:[response MIMEType]]) { - // Don't invalidate content type if there is no content - if ([data length] > 0) { - NSDictionary *userInfo = @{ - NSLocalizedDescriptionKey: [NSString stringWithFormat:NSLocalizedStringFromTable(@"Request failed: unacceptable content-type: %@", @"AFNetworking", nil), [response MIMEType]], - NSURLErrorFailingURLErrorKey:[response URL], - AFNetworkingOperationFailingURLResponseErrorKey: response - }; - if (error) { - *error = [[NSError alloc] initWithDomain:AFNetworkingErrorDomain code:NSURLErrorCannotDecodeContentData userInfo:userInfo]; - } - - return NO; - } - } - } - - return YES; -} - -#pragma mark - AFURLResponseSerialization - -- (id)responseObjectForResponse:(NSURLResponse *)response - data:(NSData *)data - error:(NSError *__autoreleasing *)error -{ - [self validateResponse:(NSHTTPURLResponse *)response data:data error:error]; - - return data; -} - -#pragma mark - NSCoding - -- (id)initWithCoder:(NSCoder *)decoder { - self = [self init]; - if (!self) { - return nil; - } - - self.acceptableStatusCodes = [decoder decodeObjectForKey:NSStringFromSelector(@selector(acceptableStatusCodes))]; - self.acceptableContentTypes = [decoder decodeObjectForKey:NSStringFromSelector(@selector(acceptableContentTypes))]; - - return self; -} - -- (void)encodeWithCoder:(NSCoder *)coder { - [coder encodeObject:self.acceptableStatusCodes forKey:NSStringFromSelector(@selector(acceptableStatusCodes))]; - [coder encodeObject:self.acceptableContentTypes forKey:NSStringFromSelector(@selector(acceptableContentTypes))]; -} - -#pragma mark - NSCopying - -- (id)copyWithZone:(NSZone *)zone { - AFHTTPResponseSerializer *serializer = [[[self class] allocWithZone:zone] init]; - serializer.acceptableStatusCodes = [self.acceptableStatusCodes copyWithZone:zone]; - serializer.acceptableContentTypes = [self.acceptableContentTypes copyWithZone:zone]; - - return serializer; -} - -@end - -#pragma mark - - -@implementation AFJSONResponseSerializer - -+ (instancetype)serializer { - return [self serializerWithReadingOptions:0]; -} - -+ (instancetype)serializerWithReadingOptions:(NSJSONReadingOptions)readingOptions { - AFJSONResponseSerializer *serializer = [[self alloc] init]; - serializer.readingOptions = readingOptions; - - return serializer; -} - -- (instancetype)init { - self = [super init]; - if (!self) { - return nil; - } - - self.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript", nil]; - - return self; -} - -#pragma mark - AFURLRequestSerialization - -- (id)responseObjectForResponse:(NSURLResponse *)response - data:(NSData *)data - error:(NSError *__autoreleasing *)error -{ - if (![self validateResponse:(NSHTTPURLResponse *)response data:data error:error]) { - if ([(NSError *)(*error) code] == NSURLErrorCannotDecodeContentData) { - return nil; - } - } - - // Workaround for behavior of Rails to return a single space for `head :ok` (a workaround for a bug in Safari), which is not interpreted as valid input by NSJSONSerialization. - // See https://github.com/rails/rails/issues/1742 - NSStringEncoding stringEncoding = self.stringEncoding; - if (response.textEncodingName) { - CFStringEncoding encoding = CFStringConvertIANACharSetNameToEncoding((CFStringRef)response.textEncodingName); - if (encoding != kCFStringEncodingInvalidId) { - stringEncoding = CFStringConvertEncodingToNSStringEncoding(encoding); - } - } - - NSString *responseString = [[NSString alloc] initWithData:data encoding:stringEncoding]; - if (responseString && ![responseString isEqualToString:@" "]) { - // Workaround for a bug in NSJSONSerialization when Unicode character escape codes are used instead of the actual character - // See http://stackoverflow.com/a/12843465/157142 - data = [responseString dataUsingEncoding:NSUTF8StringEncoding]; - - if (data) { - if ([data length] > 0) { - return [NSJSONSerialization JSONObjectWithData:data options:self.readingOptions error:error]; - } else { - return nil; - } - } else { - NSMutableDictionary *userInfo = [NSMutableDictionary dictionary]; - [userInfo setValue:NSLocalizedStringFromTable(@"Data failed decoding as a UTF-8 string", nil, @"AFNetworking") forKey:NSLocalizedDescriptionKey]; - [userInfo setValue:[NSString stringWithFormat:NSLocalizedStringFromTable(@"Could not decode string: %@", nil, @"AFNetworking"), responseString] forKey:NSLocalizedFailureReasonErrorKey]; - if (error) { - *error = [[NSError alloc] initWithDomain:AFNetworkingErrorDomain code:NSURLErrorCannotDecodeContentData userInfo:userInfo]; - } - } - } - - return nil; -} - -#pragma mark - NSCoding - -- (id)initWithCoder:(NSCoder *)decoder { - self = [super initWithCoder:decoder]; - if (!self) { - return nil; - } - - self.readingOptions = [decoder decodeIntegerForKey:NSStringFromSelector(@selector(readingOptions))]; - - return self; -} - -- (void)encodeWithCoder:(NSCoder *)coder { - [super encodeWithCoder:coder]; - - [coder encodeInteger:self.readingOptions forKey:NSStringFromSelector(@selector(readingOptions))]; -} - -#pragma mark - NSCopying - -- (id)copyWithZone:(NSZone *)zone { - AFJSONResponseSerializer *serializer = [[[self class] allocWithZone:zone] init]; - serializer.readingOptions = self.readingOptions; - - return serializer; -} - -@end - -#pragma mark - - -@implementation AFXMLParserResponseSerializer - -+ (instancetype)serializer { - AFXMLParserResponseSerializer *serializer = [[self alloc] init]; - - return serializer; -} - -- (instancetype)init { - self = [super init]; - if (!self) { - return nil; - } - - self.acceptableContentTypes = [[NSSet alloc] initWithObjects:@"application/xml", @"text/xml", nil]; - - return self; -} - -#pragma mark - AFURLResponseSerialization - -- (id)responseObjectForResponse:(NSHTTPURLResponse *)response - data:(NSData *)data - error:(NSError *__autoreleasing *)error -{ - if (![self validateResponse:(NSHTTPURLResponse *)response data:data error:error]) { - if ([(NSError *)(*error) code] == NSURLErrorCannotDecodeContentData) { - return nil; - } - } - - return [[NSXMLParser alloc] initWithData:data]; -} - -@end - -#pragma mark - - -#ifdef __MAC_OS_X_VERSION_MIN_REQUIRED - -@implementation AFXMLDocumentResponseSerializer - -+ (instancetype)serializer { - return [self serializerWithXMLDocumentOptions:0]; -} - -+ (instancetype)serializerWithXMLDocumentOptions:(NSUInteger)mask { - AFXMLDocumentResponseSerializer *serializer = [[self alloc] init]; - serializer.options = mask; - - return serializer; -} - -- (instancetype)init { - self = [super init]; - if (!self) { - return nil; - } - - self.acceptableContentTypes = [[NSSet alloc] initWithObjects:@"application/xml", @"text/xml", nil]; - - return self; -} - -#pragma mark - AFURLResponseSerialization - -- (id)responseObjectForResponse:(NSURLResponse *)response - data:(NSData *)data - error:(NSError *__autoreleasing *)error -{ - if (![self validateResponse:(NSHTTPURLResponse *)response data:data error:error]) { - if ([(NSError *)(*error) code] == NSURLErrorCannotDecodeContentData) { - return nil; - } - } - - return [[NSXMLDocument alloc] initWithData:data options:self.options error:error]; -} - -#pragma mark - NSCoding - -- (id)initWithCoder:(NSCoder *)decoder { - self = [super initWithCoder:decoder]; - if (!self) { - return nil; - } - - self.options = [decoder decodeIntegerForKey:NSStringFromSelector(@selector(options))]; - - return self; -} - -- (void)encodeWithCoder:(NSCoder *)coder { - [super encodeWithCoder:coder]; - - [coder encodeInteger:self.options forKey:NSStringFromSelector(@selector(options))]; -} - -#pragma mark - NSCopying - -- (id)copyWithZone:(NSZone *)zone { - AFXMLDocumentResponseSerializer *serializer = [[[self class] allocWithZone:zone] init]; - serializer.options = self.options; - - return serializer; -} - -@end - -#endif - -#pragma mark - - -@implementation AFPropertyListResponseSerializer - -+ (instancetype)serializer { - return [self serializerWithFormat:NSPropertyListXMLFormat_v1_0 readOptions:0]; -} - -+ (instancetype)serializerWithFormat:(NSPropertyListFormat)format - readOptions:(NSPropertyListReadOptions)readOptions -{ - AFPropertyListResponseSerializer *serializer = [[self alloc] init]; - serializer.format = format; - serializer.readOptions = readOptions; - - return serializer; -} - -- (instancetype)init { - self = [super init]; - if (!self) { - return nil; - } - - self.acceptableContentTypes = [[NSSet alloc] initWithObjects:@"application/x-plist", nil]; - - return self; -} - -+ (NSSet *)acceptablePathExtensions { - static NSSet * _acceptablePathExtension = nil; - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - _acceptablePathExtension = [[NSSet alloc] initWithObjects:@"plist", nil]; - }); - - return _acceptablePathExtension; -} - -#pragma mark - AFURLResponseSerialization - -- (id)responseObjectForResponse:(NSURLResponse *)response - data:(NSData *)data - error:(NSError *__autoreleasing *)error -{ - if (![self validateResponse:(NSHTTPURLResponse *)response data:data error:error]) { - if ([(NSError *)(*error) code] == NSURLErrorCannotDecodeContentData) { - return nil; - } - } - - return [NSPropertyListSerialization propertyListWithData:data options:self.readOptions format:NULL error:error]; -} - -#pragma mark - NSCoding - -- (id)initWithCoder:(NSCoder *)decoder { - self = [super initWithCoder:decoder]; - if (!self) { - return nil; - } - - self.format = (NSPropertyListFormat)[decoder decodeIntegerForKey:NSStringFromSelector(@selector(format))]; - self.readOptions = [decoder decodeIntegerForKey:NSStringFromSelector(@selector(readOptions))]; - - return self; -} - -- (void)encodeWithCoder:(NSCoder *)coder { - [super encodeWithCoder:coder]; - - [coder encodeInteger:self.format forKey:NSStringFromSelector(@selector(format))]; - [coder encodeInteger:(NSInteger)self.readOptions forKey:NSStringFromSelector(@selector(readOptions))]; -} - -#pragma mark - NSCopying - -- (id)copyWithZone:(NSZone *)zone { - AFPropertyListResponseSerializer *serializer = [[[self class] allocWithZone:zone] init]; - serializer.format = self.format; - serializer.readOptions = self.readOptions; - - return serializer; -} - -@end - -#pragma mark - - -#if defined(__IPHONE_OS_VERSION_MIN_REQUIRED) -#import - -static UIImage * AFImageWithDataAtScale(NSData *data, CGFloat scale) { - UIImage *image = [[UIImage alloc] initWithData:data]; - - return [[UIImage alloc] initWithCGImage:[image CGImage] scale:scale orientation:image.imageOrientation]; -} - -static UIImage * AFInflatedImageFromResponseWithDataAtScale(NSHTTPURLResponse *response, NSData *data, CGFloat scale) { - if (!data || [data length] == 0) { - return nil; - } - - CGImageRef imageRef = nil; - CGDataProviderRef dataProvider = CGDataProviderCreateWithCFData((__bridge CFDataRef)data); - - if ([response.MIMEType isEqualToString:@"image/png"]) { - imageRef = CGImageCreateWithPNGDataProvider(dataProvider, NULL, true, kCGRenderingIntentDefault); - } else if ([response.MIMEType isEqualToString:@"image/jpeg"]) { - imageRef = CGImageCreateWithJPEGDataProvider(dataProvider, NULL, true, kCGRenderingIntentDefault); - } - - UIImage *image = AFImageWithDataAtScale(data, scale); - if (!imageRef) { - if (image.images) { - CGDataProviderRelease(dataProvider); - - return image; - } - - imageRef = CGImageCreateCopy([image CGImage]); - } - - CGDataProviderRelease(dataProvider); - - if (!imageRef) { - return nil; - } - - size_t width = CGImageGetWidth(imageRef); - size_t height = CGImageGetHeight(imageRef); - - if (width * height > 1024 * 1024) { - CGImageRelease(imageRef); - - return AFImageWithDataAtScale(data, scale); - } - - size_t bitsPerComponent = CGImageGetBitsPerComponent(imageRef); - size_t bytesPerRow = 0; // CGImageGetBytesPerRow() calculates incorrectly in iOS 5.0, so defer to CGBitmapContextCreate() - CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); - CGBitmapInfo bitmapInfo = CGImageGetBitmapInfo(imageRef); - - if (CGColorSpaceGetNumberOfComponents(colorSpace) == 3) { - uint32_t alpha = (bitmapInfo & kCGBitmapAlphaInfoMask); - if (alpha == kCGImageAlphaNone) { - bitmapInfo &= ~kCGBitmapAlphaInfoMask; - bitmapInfo |= kCGImageAlphaNoneSkipFirst; - } else if (!(alpha == kCGImageAlphaNoneSkipFirst || alpha == kCGImageAlphaNoneSkipLast)) { - bitmapInfo &= ~kCGBitmapAlphaInfoMask; - bitmapInfo |= kCGImageAlphaPremultipliedFirst; - } - } - - CGContextRef context = CGBitmapContextCreate(NULL, width, height, bitsPerComponent, bytesPerRow, colorSpace, bitmapInfo); - - CGColorSpaceRelease(colorSpace); - - if (!context) { - CGImageRelease(imageRef); - - return AFImageWithDataAtScale(data, scale); - } - - CGRect rect = CGRectMake(0.0f, 0.0f, width, height); - CGContextDrawImage(context, rect, imageRef); - CGImageRef inflatedImageRef = CGBitmapContextCreateImage(context); - CGContextRelease(context); - - UIImage *inflatedImage = [[UIImage alloc] initWithCGImage:inflatedImageRef scale:scale orientation:image.imageOrientation]; - CGImageRelease(inflatedImageRef); - CGImageRelease(imageRef); - - return inflatedImage; -} -#endif - - -@implementation AFImageResponseSerializer - -- (instancetype)init { - self = [super init]; - if (!self) { - return nil; - } - - self.acceptableContentTypes = [[NSSet alloc] initWithObjects:@"image/tiff", @"image/jpeg", @"image/gif", @"image/png", @"image/ico", @"image/x-icon", @"image/bmp", @"image/x-bmp", @"image/x-xbitmap", @"image/x-win-bitmap", nil]; - -#if defined(__IPHONE_OS_VERSION_MIN_REQUIRED) - self.imageScale = [[UIScreen mainScreen] scale]; - self.automaticallyInflatesResponseImage = YES; -#endif - - return self; -} - -+ (NSSet *)acceptablePathExtensions { - static NSSet * _acceptablePathExtension = nil; - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - _acceptablePathExtension = [[NSSet alloc] initWithObjects:@"tif", @"tiff", @"jpg", @"jpeg", @"gif", @"png", @"ico", @"bmp", @"cur", nil]; - }); - - return _acceptablePathExtension; -} - -#pragma mark - AFURLResponseSerializer - -- (id)responseObjectForResponse:(NSURLResponse *)response - data:(NSData *)data - error:(NSError *__autoreleasing *)error -{ - if (![self validateResponse:(NSHTTPURLResponse *)response data:data error:error]) { - if ([(NSError *)(*error) code] == NSURLErrorCannotDecodeContentData) { - return nil; - } - } - -#if defined(__IPHONE_OS_VERSION_MIN_REQUIRED) - if (self.automaticallyInflatesResponseImage) { - return AFInflatedImageFromResponseWithDataAtScale((NSHTTPURLResponse *)response, data, self.imageScale); - } else { - return AFImageWithDataAtScale(data, self.imageScale); - } -#elif defined(__MAC_OS_X_VERSION_MIN_REQUIRED) - // Ensure that the image is set to it's correct pixel width and height - NSBitmapImageRep *bitimage = [[NSBitmapImageRep alloc] initWithData:data]; - NSImage *image = [[NSImage alloc] initWithSize:NSMakeSize([bitimage pixelsWide], [bitimage pixelsHigh])]; - [image addRepresentation:bitimage]; - - return image; -#endif - - return nil; -} - -#pragma mark - NSCoding - -- (id)initWithCoder:(NSCoder *)decoder { - self = [super initWithCoder:decoder]; - if (!self) { - return nil; - } - -#if defined(__IPHONE_OS_VERSION_MIN_REQUIRED) - self.imageScale = [decoder decodeFloatForKey:NSStringFromSelector(@selector(imageScale))]; - self.automaticallyInflatesResponseImage = [decoder decodeBoolForKey:NSStringFromSelector(@selector(automaticallyInflatesResponseImage))]; -#endif - - return self; -} - -- (void)encodeWithCoder:(NSCoder *)coder { - [super encodeWithCoder:coder]; - -#if defined(__IPHONE_OS_VERSION_MIN_REQUIRED) - [coder encodeFloat:self.imageScale forKey:NSStringFromSelector(@selector(imageScale))]; - [coder encodeBool:self.automaticallyInflatesResponseImage forKey:NSStringFromSelector(@selector(automaticallyInflatesResponseImage))]; -#endif -} - -#pragma mark - NSCopying - -- (id)copyWithZone:(NSZone *)zone { - AFImageResponseSerializer *serializer = [[[self class] allocWithZone:zone] init]; - -#if defined(__IPHONE_OS_VERSION_MIN_REQUIRED) - serializer.imageScale = self.imageScale; - serializer.automaticallyInflatesResponseImage = self.automaticallyInflatesResponseImage; -#endif - - return serializer; -} - -@end - -#pragma mark - - -@interface AFCompoundResponseSerializer () -@property (readwrite, nonatomic, strong) NSArray *responseSerializers; -@end - -@implementation AFCompoundResponseSerializer - -+ (instancetype)compoundSerializerWithResponseSerializers:(NSArray *)responseSerializers { - AFCompoundResponseSerializer *serializer = [[self alloc] init]; - serializer.responseSerializers = responseSerializers; - - return serializer; -} - -#pragma mark - AFURLResponseSerialization - -- (id)responseObjectForResponse:(NSURLResponse *)response - data:(NSData *)data - error:(NSError *__autoreleasing *)error -{ - for (id serializer in self.responseSerializers) { - if (![serializer isKindOfClass:[AFHTTPResponseSerializer class]]) { - continue; - } - - NSError *serializerError = nil; - id responseObject = [serializer responseObjectForResponse:response data:data error:&serializerError]; - if (responseObject) { - *error = serializerError; - return responseObject; - } - } - - return [super responseObjectForResponse:response data:data error:error]; -} - -#pragma mark - NSCoding - -- (id)initWithCoder:(NSCoder *)decoder { - self = [super initWithCoder:decoder]; - if (!self) { - return nil; - } - - self.responseSerializers = [decoder decodeObjectForKey:NSStringFromSelector(@selector(responseSerializers))]; - - return self; -} - -- (void)encodeWithCoder:(NSCoder *)coder { - [super encodeWithCoder:coder]; - - [coder encodeObject:self.responseSerializers forKey:NSStringFromSelector(@selector(responseSerializers))]; -} - -#pragma mark - NSCopying - -- (id)copyWithZone:(NSZone *)zone { - AFCompoundResponseSerializer *serializer = [[[self class] allocWithZone:zone] init]; - serializer.responseSerializers = self.responseSerializers; - - return serializer; -} - -@end diff --git a/Projects/iOS > 6/Pods/AFNetworking/AFNetworking/AFURLSessionManager.h b/Projects/iOS > 6/Pods/AFNetworking/AFNetworking/AFURLSessionManager.h deleted file mode 100644 index bff9640..0000000 --- a/Projects/iOS > 6/Pods/AFNetworking/AFNetworking/AFURLSessionManager.h +++ /dev/null @@ -1,434 +0,0 @@ -// AFURLSessionManager.h -// -// Copyright (c) 2013 AFNetworking (http://afnetworking.com) -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -#import - -#import "AFURLResponseSerialization.h" -#import "AFURLRequestSerialization.h" -#import "AFSecurityPolicy.h" -#import "AFNetworkReachabilityManager.h" - -/** - `AFURLSessionManager` creates and manages an `NSURLSession` object based on a specified `NSURLSessionConfiguration` object, which conforms to ``, ``, ``, and ``. - - ## Subclassing Notes - - This is the base class for `AFHTTPSessionManager`, which adds functionality specific to making HTTP requests. If you are looking to extend `AFURLSessionManager` specifically for HTTP, consider subclassing `AFHTTPSessionManager` instead. - - ## NSURLSession & NSURLSessionTask Delegate Methods - - `AFURLSessionManager` implements the following delegate methods: - - ### `NSURLSessionDelegate` - - - `URLSession:didBecomeInvalidWithError:` - - `URLSession:didReceiveChallenge:completionHandler:` - - ### `NSURLSessionTaskDelegate` - - - `URLSession:willPerformHTTPRedirection:newRequest:completionHandler:` - - `URLSession:task:didReceiveChallenge:completionHandler:` - - `URLSession:task:didSendBodyData:totalBytesSent:totalBytesExpectedToSend:` - - `URLSession:task:didCompleteWithError:` - - ### `NSURLSessionDataDelegate` - - - `URLSession:dataTask:didReceiveResponse:completionHandler:` - - `URLSession:dataTask:didBecomeDownloadTask:` - - `URLSession:dataTask:didReceiveData:` - - `URLSession:dataTask:willCacheResponse:completionHandler:` - - `URLSessionDidFinishEventsForBackgroundURLSession:` - - ### `NSURLSessionDownloadDelegate` - - - `URLSession:downloadTask:didFinishDownloadingToURL:` - - `URLSession:downloadTask:didWriteData:totalBytesWritten:totalBytesWritten:totalBytesExpectedToWrite:` - - `URLSession:downloadTask:didResumeAtOffset:expectedTotalBytes:` - - If any of these methods are overridden in a subclass, they _must_ call the `super` implementation first. - - ## Network Reachability Monitoring - - Network reachability status and change monitoring is available through the `reachabilityManager` property. Applications may choose to monitor network reachability conditions in order to prevent or suspend any outbound requests. See `AFNetworkReachabilityManager` for more details. - - ## NSCoding Caveats - - - Encoded managers do not include any block properties. Be sure to set delegate callback blocks when using `-initWithCoder:` or `NSKeyedUnarchiver`. - - ## NSCopying Caveats - - - `-copy` and `-copyWithZone:` return a new manager with a new `NSURLSession` created from the configuration of the original. - - Operation copies do not include any delegate callback blocks, as they often strongly captures a reference to `self`, which would otherwise have the unintuitive side-effect of pointing to the _original_ session manager when copied. - */ - -#if (defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && __IPHONE_OS_VERSION_MAX_ALLOWED >= 70000) || (defined(__MAC_OS_X_VERSION_MAX_ALLOWED) && __MAC_OS_X_VERSION_MAX_ALLOWED >= 1090) - -@interface AFURLSessionManager : NSObject - -/** - The managed session. - */ -@property (readonly, nonatomic, strong) NSURLSession *session; - -/** - The operation queue on which delegate callbacks are run. - */ -@property (readonly, nonatomic, strong) NSOperationQueue *operationQueue; - -/** - Responses sent from the server in data tasks created with `dataTaskWithRequest:success:failure:` and run using the `GET` / `POST` / et al. convenience methods are automatically validated and serialized by the response serializer. By default, this property is set to an instance of `AFJSONResponseSerializer`. - - @warning `responseSerializer` must not be `nil`. - */ -@property (nonatomic, strong) id responseSerializer; - -///------------------------------- -/// @name Managing Security Policy -///------------------------------- - -/** - The security policy used by created request operations to evaluate server trust for secure connections. `AFURLSessionManager` uses the `defaultPolicy` unless otherwise specified. - */ -@property (nonatomic, strong) AFSecurityPolicy *securityPolicy; - -///-------------------------------------- -/// @name Monitoring Network Reachability -///-------------------------------------- - -/** - The network reachability manager. `AFURLSessionManager` uses the `sharedManager` by default. - */ -@property (readonly, nonatomic, strong) AFNetworkReachabilityManager *reachabilityManager; - -///---------------------------- -/// @name Getting Session Tasks -///---------------------------- - -/** - The data, upload, and download tasks currently run by the managed session. - */ -@property (readonly, nonatomic, strong) NSArray *tasks; - -/** - The data tasks currently run by the managed session. - */ -@property (readonly, nonatomic, strong) NSArray *dataTasks; - -/** - The upload tasks currently run by the managed session. - */ -@property (readonly, nonatomic, strong) NSArray *uploadTasks; - -/** - The download tasks currently run by the managed session. - */ -@property (readonly, nonatomic, strong) NSArray *downloadTasks; - -///--------------------------------- -/// @name Managing Callback Queues -///--------------------------------- - -/** - The dispatch queue for `completionBlock`. If `NULL` (default), the main queue is used. - */ -@property (nonatomic, strong) dispatch_queue_t completionQueue; - -/** - The dispatch group for `completionBlock`. If `NULL` (default), a private dispatch group is used. - */ -@property (nonatomic, strong) dispatch_group_t completionGroup; - -///--------------------- -/// @name Initialization -///--------------------- - -/** - Creates and returns a manager for a session created with the specified configuration. This is the designated initializer. - - @param configuration The configuration used to create the managed session. - - @return A manager for a newly-created session. - */ -- (instancetype)initWithSessionConfiguration:(NSURLSessionConfiguration *)configuration; - -/** - Invalidates the managed session, optionally canceling pending tasks. - - @param cancelPendingTasks Whether or not to cancel pending tasks. - */ -- (void)invalidateSessionCancelingTasks:(BOOL)cancelPendingTasks; - -///------------------------- -/// @name Running Data Tasks -///------------------------- - -/** - Creates an `NSURLSessionDataTask` with the specified request. - - @param request The HTTP request for the request. - @param completionHandler A block object to be executed when the task finishes. This block has no return value and takes three arguments: the server response, the response object created by that serializer, and the error that occurred, if any. - */ -- (NSURLSessionDataTask *)dataTaskWithRequest:(NSURLRequest *)request - completionHandler:(void (^)(NSURLResponse *response, id responseObject, NSError *error))completionHandler; - -///--------------------------- -/// @name Running Upload Tasks -///--------------------------- - -/** - Creates an `NSURLSessionUploadTask` with the specified request for a local file. - - @param request The HTTP request for the request. - @param fileURL A URL to the local file to be uploaded. - @param progress A progress object monitoring the current upload progress. - @param completionHandler A block object to be executed when the task finishes. This block has no return value and takes three arguments: the server response, the response object created by that serializer, and the error that occurred, if any. - */ -- (NSURLSessionUploadTask *)uploadTaskWithRequest:(NSURLRequest *)request - fromFile:(NSURL *)fileURL - progress:(NSProgress * __autoreleasing *)progress - completionHandler:(void (^)(NSURLResponse *response, id responseObject, NSError *error))completionHandler; - -/** - Creates an `NSURLSessionUploadTask` with the specified request for an HTTP body. - - @param request The HTTP request for the request. - @param bodyData A data object containing the HTTP body to be uploaded. - @param progress A progress object monitoring the current upload progress. - @param completionHandler A block object to be executed when the task finishes. This block has no return value and takes three arguments: the server response, the response object created by that serializer, and the error that occurred, if any. - */ -- (NSURLSessionUploadTask *)uploadTaskWithRequest:(NSURLRequest *)request - fromData:(NSData *)bodyData - progress:(NSProgress * __autoreleasing *)progress - completionHandler:(void (^)(NSURLResponse *response, id responseObject, NSError *error))completionHandler; - -/** - Creates an `NSURLSessionUploadTask` with the specified streaming request. - - @param request The HTTP request for the request. - @param progress A progress object monitoring the current upload progress. - @param completionHandler A block object to be executed when the task finishes. This block has no return value and takes three arguments: the server response, the response object created by that serializer, and the error that occurred, if any. - */ -- (NSURLSessionUploadTask *)uploadTaskWithStreamedRequest:(NSURLRequest *)request - progress:(NSProgress * __autoreleasing *)progress - completionHandler:(void (^)(NSURLResponse *response, id responseObject, NSError *error))completionHandler; - -///----------------------------- -/// @name Running Download Tasks -///----------------------------- - -/** - Creates an `NSURLSessionDownloadTask` with the specified request. - - @param request The HTTP request for the request. - @param progress A progress object monitoring the current download progress. - @param destination A block object to be executed in order to determine the destination of the downloaded file. This block takes two arguments, the target path & the server response, and returns the desired file URL of the resulting download. The temporary file used during the download will be automatically deleted after being moved to the returned URL. - @param completionHandler A block to be executed when a task finishes. This block has no return value and takes three arguments: the server response, the path of the downloaded file, and the error describing the network or parsing error that occurred, if any. - */ -- (NSURLSessionDownloadTask *)downloadTaskWithRequest:(NSURLRequest *)request - progress:(NSProgress * __autoreleasing *)progress - destination:(NSURL * (^)(NSURL *targetPath, NSURLResponse *response))destination - completionHandler:(void (^)(NSURLResponse *response, NSURL *filePath, NSError *error))completionHandler; - -/** - Creates an `NSURLSessionDownloadTask` with the specified resume data. - - @param resumeData The data used to resume downloading. - @param progress A progress object monitoring the current download progress. - @param destination A block object to be executed in order to determine the destination of the downloaded file. This block takes two arguments, the target path & the server response, and returns the desired file URL of the resulting download. The temporary file used during the download will be automatically deleted after being moved to the returned URL. - @param completionHandler A block to be executed when a task finishes. This block has no return value and takes three arguments: the server response, the path of the downloaded file, and the error describing the network or parsing error that occurred, if any. - */ -- (NSURLSessionDownloadTask *)downloadTaskWithResumeData:(NSData *)resumeData - progress:(NSProgress * __autoreleasing *)progress - destination:(NSURL * (^)(NSURL *targetPath, NSURLResponse *response))destination - completionHandler:(void (^)(NSURLResponse *response, NSURL *filePath, NSError *error))completionHandler; - -///----------------------------------------- -/// @name Setting Session Delegate Callbacks -///----------------------------------------- - -/** - Sets a block to be executed when the managed session becomes invalid, as handled by the `NSURLSessionDelegate` method `URLSession:didBecomeInvalidWithError:`. - - @param block A block object to be executed when the managed session becomes invalid. The block has no return value, and takes two arguments: the session, and the error related to the cause of invalidation. - */ -- (void)setSessionDidBecomeInvalidBlock:(void (^)(NSURLSession *session, NSError *error))block; - -/** - Sets a block to be executed when a connection level authentication challenge has occurred, as handled by the `NSURLSessionDelegate` method `URLSession:didReceiveChallenge:completionHandler:`. - - @param block A block object to be executed when a connection level authentication challenge has occurred. The block returns the disposition of the authentication challenge, and takes three arguments: the session, the authentication challenge, and a pointer to the credential that should be used to resolve the challenge. - */ -- (void)setSessionDidReceiveAuthenticationChallengeBlock:(NSURLSessionAuthChallengeDisposition (^)(NSURLSession *session, NSURLAuthenticationChallenge *challenge, NSURLCredential * __autoreleasing *credential))block; - -///-------------------------------------- -/// @name Setting Task Delegate Callbacks -///-------------------------------------- - -/** - Sets a block to be executed when an HTTP request is attempting to perform a redirection to a different URL, as handled by the `NSURLSessionTaskDelegate` method `URLSession:willPerformHTTPRedirection:newRequest:completionHandler:`. - - @param block A block object to be executed when an HTTP request is attempting to perform a redirection to a different URL. The block returns the request to be made for the redirection, and takes four arguments: the session, the task, the redirection response, and the request corresponding to the redirection response. - */ -- (void)setTaskWillPerformHTTPRedirectionBlock:(NSURLRequest * (^)(NSURLSession *session, NSURLSessionTask *task, NSURLResponse *response, NSURLRequest *request))block; - -/** - Sets a block to be executed when a session task has received a request specific authentication challenge, as handled by the `NSURLSessionTaskDelegate` method `URLSession:task:didReceiveChallenge:completionHandler:`. - - @param block A block object to be executed when a session task has received a request specific authentication challenge. The block returns the disposition of the authentication challenge, and takes four arguments: the session, the task, the authentication challenge, and a pointer to the credential that should be used to resolve the challenge. - */ -- (void)setTaskDidReceiveAuthenticationChallengeBlock:(NSURLSessionAuthChallengeDisposition (^)(NSURLSession *session, NSURLSessionTask *task, NSURLAuthenticationChallenge *challenge, NSURLCredential * __autoreleasing *credential))block; - -/** - Sets a block to be executed periodically to track upload progress, as handled by the `NSURLSessionTaskDelegate` method `URLSession:task:didSendBodyData:totalBytesSent:totalBytesExpectedToSend:`. - - @param block A block object to be called when an undetermined number of bytes have been uploaded to the server. This block has no return value and takes five arguments: the session, the task, the number of bytes written since the last time the upload progress block was called, the total bytes written, and the total bytes expected to be written during the request, as initially determined by the length of the HTTP body. This block may be called multiple times, and will execute on the main thread. - */ -- (void)setTaskDidSendBodyDataBlock:(void (^)(NSURLSession *session, NSURLSessionTask *task, int64_t bytesSent, int64_t totalBytesSent, int64_t totalBytesExpectedToSend))block; - -/** - Sets a block to be executed as the last message related to a specific task, as handled by the `NSURLSessionTaskDelegate` method `URLSession:task:didCompleteWithError:`. - - @param block A block object to be executed when a session task is completed. The block has no return value, and takes three arguments: the session, the task, and any error that occurred in the process of executing the task. - */ -- (void)setTaskDidCompleteBlock:(void (^)(NSURLSession *session, NSURLSessionTask *task, NSError *error))block; - -///------------------------------------------- -/// @name Setting Data Task Delegate Callbacks -///------------------------------------------- - -/** - Sets a block to be executed when a data task has received a response, as handled by the `NSURLSessionDataDelegate` method `URLSession:dataTask:didReceiveResponse:completionHandler:`. - - @param block A block object to be executed when a data task has received a response. The block returns the disposition of the session response, and takes three arguments: the session, the data task, and the received response. - */ -- (void)setDataTaskDidReceiveResponseBlock:(NSURLSessionResponseDisposition (^)(NSURLSession *session, NSURLSessionDataTask *dataTask, NSURLResponse *response))block; - -/** - Sets a block to be executed when a data task has become a download task, as handled by the `NSURLSessionDataDelegate` method `URLSession:dataTask:didBecomeDownloadTask:`. - - @param block A block object to be executed when a data task has become a download task. The block has no return value, and takes three arguments: the session, the data task, and the download task it has become. - */ -- (void)setDataTaskDidBecomeDownloadTaskBlock:(void (^)(NSURLSession *session, NSURLSessionDataTask *dataTask, NSURLSessionDownloadTask *downloadTask))block; - -/** - Sets a block to be executed when a data task receives data, as handled by the `NSURLSessionDataDelegate` method `URLSession:dataTask:didReceiveData:`. - - @param block A block object to be called when an undetermined number of bytes have been downloaded from the server. This block has no return value and takes three arguments: the session, the data task, and the data received. This block may be called multiple times, and will execute on the session manager operation queue. - */ -- (void)setDataTaskDidReceiveDataBlock:(void (^)(NSURLSession *session, NSURLSessionDataTask *dataTask, NSData *data))block; - -/** - Sets a block to be executed to determine the caching behavior of a data task, as handled by the `NSURLSessionDataDelegate` method `URLSession:dataTask:willCacheResponse:completionHandler:`. - - @param block A block object to be executed to determine the caching behavior of a data task. The block returns the response to cache, and takes three arguments: the session, the data task, and the proposed cached URL response. - */ -- (void)setDataTaskWillCacheResponseBlock:(NSCachedURLResponse * (^)(NSURLSession *session, NSURLSessionDataTask *dataTask, NSCachedURLResponse *proposedResponse))block; - -/** - Sets a block to be executed once all messages enqueued for a session have been delivered, as handled by the `NSURLSessionDataDelegate` method `URLSessionDidFinishEventsForBackgroundURLSession:`. - - @param block A block object to be executed once all messages enqueued for a session have been delivered. The block has no return value and takes a single argument: the session. - */ -- (void)setDidFinishEventsForBackgroundURLSessionBlock:(void (^)(NSURLSession *session))block; - -///----------------------------------------------- -/// @name Setting Download Task Delegate Callbacks -///----------------------------------------------- - -/** - Sets a block to be executed when a download task has completed a download, as handled by the `NSURLSessionDownloadDelegate` method `URLSession:downloadTask:didFinishDownloadingToURL:`. - - @param block A block object to be executed when a download task has completed. The block returns the URL the download should be moved to, and takes three arguments: the session, the download task, and the temporary location of the downloaded file. If the file manager encounters an error while attempting to move the temporary file to the destination, an `AFURLSessionDownloadTaskDidFailToMoveFileNotification` will be posted, with the download task as its object, and the user info of the error. - */ -- (void)setDownloadTaskDidFinishDownloadingBlock:(NSURL * (^)(NSURLSession *session, NSURLSessionDownloadTask *downloadTask, NSURL *location))block; - -/** - Sets a block to be executed periodically to track download progress, as handled by the `NSURLSessionDownloadDelegate` method `URLSession:downloadTask:didWriteData:totalBytesWritten:totalBytesWritten:totalBytesExpectedToWrite:`. - - @param block A block object to be called when an undetermined number of bytes have been downloaded from the server. This block has no return value and takes five arguments: the session, the download task, the number of bytes read since the last time the download progress block was called, the total bytes read, and the total bytes expected to be read during the request, as initially determined by the expected content size of the `NSHTTPURLResponse` object. This block may be called multiple times, and will execute on the session manager operation queue. - */ -- (void)setDownloadTaskDidWriteDataBlock:(void (^)(NSURLSession *session, NSURLSessionDownloadTask *downloadTask, int64_t bytesWritten, int64_t totalBytesWritten, int64_t totalBytesExpectedToWrite))block; - -/** - Sets a block to be executed when a download task has been resumed, as handled by the `NSURLSessionDownloadDelegate` method `URLSession:downloadTask:didResumeAtOffset:expectedTotalBytes:`. - - @param block A block object to be executed when a download task has been resumed. The block has no return value and takes four arguments: the session, the download task, the file offset of the resumed download, and the total number of bytes expected to be downloaded. - */ -- (void)setDownloadTaskDidResumeBlock:(void (^)(NSURLSession *session, NSURLSessionDownloadTask *downloadTask, int64_t fileOffset, int64_t expectedTotalBytes))block; - -@end - -#endif - -///-------------------- -/// @name Notifications -///-------------------- - -/** - Posted when a task begins executing. - */ -extern NSString * const AFNetworkingTaskDidStartNotification; - -/** - Posted when a task finishes executing. Includes a userInfo dictionary with additional information about the task. - */ -extern NSString * const AFNetworkingTaskDidFinishNotification; - -/** - Posted when a task suspends its execution. - */ -extern NSString * const AFNetworkingTaskDidSuspendNotification; - -/** - Posted when a session is invalidated. - */ -extern NSString * const AFURLSessionDidInvalidateNotification; - -/** - Posted when a session download task encountered an error when moving the temporary download file to a specified destination. - */ -extern NSString * const AFURLSessionDownloadTaskDidFailToMoveFileNotification; - -/** - The raw response data of the task. Included in the userInfo dictionary of the `AFNetworkingTaskDidFinishNotification` if response data exists for the task. - */ -extern NSString * const AFNetworkingTaskDidFinishResponseDataKey; - -/** - The serialized response object of the task. Included in the userInfo dictionary of the `AFNetworkingTaskDidFinishNotification` if the response was serialized. - */ -extern NSString * const AFNetworkingTaskDidFinishSerializedResponseKey; - -/** - The response serializer used to serialize the response. Included in the userInfo dictionary of the `AFNetworkingTaskDidFinishNotification` if the task has an associated response serializer. - */ -extern NSString * const AFNetworkingTaskDidFinishResponseSerializerKey; - -/** - The file path associated with the download task. Included in the userInfo dictionary of the `AFNetworkingTaskDidFinishNotification` if an the response data has been stored directly to disk. - */ -extern NSString * const AFNetworkingTaskDidFinishAssetPathKey; - -/** - Any error associated with the task, or the serialization of the response. Included in the userInfo dictionary of the `AFNetworkingTaskDidFinishNotification` if an error exists. - */ -extern NSString * const AFNetworkingTaskDidFinishErrorKey; diff --git a/Projects/iOS > 6/Pods/AFNetworking/AFNetworking/AFURLSessionManager.m b/Projects/iOS > 6/Pods/AFNetworking/AFNetworking/AFURLSessionManager.m deleted file mode 100644 index a7f2823..0000000 --- a/Projects/iOS > 6/Pods/AFNetworking/AFNetworking/AFURLSessionManager.m +++ /dev/null @@ -1,911 +0,0 @@ -// AFURLSessionManager.m -// -// Copyright (c) 2013 AFNetworking (http://afnetworking.com) -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -#import "AFURLSessionManager.h" - -#if (defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && __IPHONE_OS_VERSION_MAX_ALLOWED >= 70000) || (defined(__MAC_OS_X_VERSION_MAX_ALLOWED) && __MAC_OS_X_VERSION_MAX_ALLOWED >= 1090) - -static dispatch_queue_t url_session_manager_processing_queue() { - static dispatch_queue_t af_url_session_manager_processing_queue; - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - af_url_session_manager_processing_queue = dispatch_queue_create("com.alamofire.networking.session.manager.processing", DISPATCH_QUEUE_CONCURRENT); - }); - - return af_url_session_manager_processing_queue; -} - -static dispatch_group_t url_session_manager_completion_group() { - static dispatch_group_t af_url_session_manager_completion_group; - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - af_url_session_manager_completion_group = dispatch_group_create(); - }); - - return af_url_session_manager_completion_group; -} - -NSString * const AFNetworkingTaskDidStartNotification = @"com.alamofire.networking.task.start"; -NSString * const AFNetworkingTaskDidFinishNotification = @"com.alamofire.networking.task.finish"; -NSString * const AFNetworkingTaskDidFinishResponseDataKey = @"com.alamofire.networking.task.finish.responsedata"; -NSString * const AFNetworkingTaskDidSuspendNotification = @"com.alamofire.networking.task.suspend"; -NSString * const AFURLSessionDidInvalidateNotification = @"com.alamofire.networking.session.invalidate"; -NSString * const AFURLSessionDownloadTaskDidFailToMoveFileNotification = @"com.alamofire.networking.session.download.file-manager-error"; - -NSString * const AFNetworkingTaskDidFinishSerializedResponseKey = @"com.alamofire.networking.task.finish.serializedresponse"; -NSString * const AFNetworkingTaskDidFinishResponseSerializerKey = @"com.alamofire.networking.task.finish.responseserializer"; -NSString * const AFNetworkingTaskDidFinishErrorKey = @"com.alamofire.networking.task.finish.error"; -NSString * const AFNetworkingTaskDidFinishAssetPathKey = @"com.alamofire.networking.task.finish.assetpath"; - -static NSString * const AFURLSessionManagerLockName = @"com.alamofire.networking.session.manager.lock"; - -static void * AFTaskStateChangedContext = &AFTaskStateChangedContext; - -typedef void (^AFURLSessionDidBecomeInvalidBlock)(NSURLSession *session, NSError *error); -typedef NSURLSessionAuthChallengeDisposition (^AFURLSessionDidReceiveAuthenticationChallengeBlock)(NSURLSession *session, NSURLAuthenticationChallenge *challenge, NSURLCredential * __autoreleasing *credential); - -typedef NSURLRequest * (^AFURLSessionTaskWillPerformHTTPRedirectionBlock)(NSURLSession *session, NSURLSessionTask *task, NSURLResponse *response, NSURLRequest *request); -typedef NSURLSessionAuthChallengeDisposition (^AFURLSessionTaskDidReceiveAuthenticationChallengeBlock)(NSURLSession *session, NSURLSessionTask *task, NSURLAuthenticationChallenge *challenge, NSURLCredential * __autoreleasing *credential); - -typedef NSInputStream * (^AFURLSessionTaskNeedNewBodyStreamBlock)(NSURLSession *session, NSURLSessionTask *task); -typedef void (^AFURLSessionTaskDidSendBodyDataBlock)(NSURLSession *session, NSURLSessionTask *task, int64_t bytesSent, int64_t totalBytesSent, int64_t totalBytesExpectedToSend); -typedef void (^AFURLSessionTaskDidCompleteBlock)(NSURLSession *session, NSURLSessionTask *task, NSError *error); - -typedef NSURLSessionResponseDisposition (^AFURLSessionDataTaskDidReceiveResponseBlock)(NSURLSession *session, NSURLSessionDataTask *dataTask, NSURLResponse *response); -typedef void (^AFURLSessionDataTaskDidBecomeDownloadTaskBlock)(NSURLSession *session, NSURLSessionDataTask *dataTask, NSURLSessionDownloadTask *downloadTask); -typedef void (^AFURLSessionDataTaskDidReceiveDataBlock)(NSURLSession *session, NSURLSessionDataTask *dataTask, NSData *data); -typedef NSCachedURLResponse * (^AFURLSessionDataTaskWillCacheResponseBlock)(NSURLSession *session, NSURLSessionDataTask *dataTask, NSCachedURLResponse *proposedResponse); -typedef void (^AFURLSessionDidFinishEventsForBackgroundURLSessionBlock)(NSURLSession *session); - -typedef NSURL * (^AFURLSessionDownloadTaskDidFinishDownloadingBlock)(NSURLSession *session, NSURLSessionDownloadTask *downloadTask, NSURL *location); -typedef void (^AFURLSessionDownloadTaskDidWriteDataBlock)(NSURLSession *session, NSURLSessionDownloadTask *downloadTask, int64_t bytesWritten, int64_t totalBytesWritten, int64_t totalBytesExpectedToWrite); -typedef void (^AFURLSessionDownloadTaskDidResumeBlock)(NSURLSession *session, NSURLSessionDownloadTask *downloadTask, int64_t fileOffset, int64_t expectedTotalBytes); - -typedef void (^AFURLSessionTaskCompletionHandler)(NSURLResponse *response, id responseObject, NSError *error); - -#pragma mark - - -@interface AFURLSessionManagerTaskDelegate : NSObject -@property (nonatomic, weak) AFURLSessionManager *manager; -@property (nonatomic, strong) NSMutableData *mutableData; -@property (nonatomic, strong) NSProgress *uploadProgress; -@property (nonatomic, strong) NSProgress *downloadProgress; -@property (nonatomic, copy) NSURL *downloadFileURL; -@property (nonatomic, copy) AFURLSessionDownloadTaskDidFinishDownloadingBlock downloadTaskDidFinishDownloading; -@property (nonatomic, copy) AFURLSessionTaskCompletionHandler completionHandler; - -+ (instancetype)delegateForManager:(AFURLSessionManager *)manager - completionHandler:(void (^)(NSURLResponse *response, id responseObject, NSError *error))completionHandler; - -@end - -@implementation AFURLSessionManagerTaskDelegate - -+ (instancetype)delegateForManager:(AFURLSessionManager *)manager - completionHandler:(void (^)(NSURLResponse *response, id responseObject, NSError *error))completionHandler -{ - AFURLSessionManagerTaskDelegate *delegate = [[self alloc] init]; - delegate.manager = manager; - delegate.completionHandler = completionHandler; - - return delegate; -} - -- (instancetype)init { - self = [super init]; - if (!self) { - return nil; - } - - self.mutableData = [NSMutableData data]; - - self.uploadProgress = [[NSProgress alloc] initWithParent:nil userInfo:nil]; - self.downloadProgress = [[NSProgress alloc] initWithParent:nil userInfo:nil]; - - return self; -} - -#pragma mark - NSURLSessionTaskDelegate - -- (void)URLSession:(__unused NSURLSession *)session - task:(__unused NSURLSessionTask *)task - didSendBodyData:(__unused int64_t)bytesSent - totalBytesSent:(int64_t)totalBytesSent -totalBytesExpectedToSend:(int64_t)totalBytesExpectedToSend -{ - self.uploadProgress.totalUnitCount = totalBytesExpectedToSend; - self.uploadProgress.completedUnitCount = totalBytesSent; -} - -- (void)URLSession:(__unused NSURLSession *)session - task:(NSURLSessionTask *)task -didCompleteWithError:(NSError *)error -{ -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wgnu" - if (self.completionHandler) { - __strong AFURLSessionManager *manager = self.manager; - - __block id responseObject = nil; - - __block NSMutableDictionary *userInfo = [NSMutableDictionary dictionary]; - userInfo[AFNetworkingTaskDidFinishResponseSerializerKey] = manager.responseSerializer; - - if (self.downloadFileURL) { - userInfo[AFNetworkingTaskDidFinishAssetPathKey] = self.downloadFileURL; - } else if (self.mutableData) { - userInfo[AFNetworkingTaskDidFinishResponseDataKey] = [NSData dataWithData:self.mutableData]; - } - - if (error) { - userInfo[AFNetworkingTaskDidFinishErrorKey] = error; - - dispatch_group_async(manager.completionGroup ?: url_session_manager_completion_group(), manager.completionQueue ?: dispatch_get_main_queue(), ^{ - if (self.completionHandler) { - self.completionHandler(task.response, responseObject, error); - } - - dispatch_async(dispatch_get_main_queue(), ^{ - [[NSNotificationCenter defaultCenter] postNotificationName:AFNetworkingTaskDidFinishNotification object:task userInfo:userInfo]; - }); - }); - } else { - dispatch_async(url_session_manager_processing_queue(), ^{ - NSError *serializationError = nil; - if (self.downloadFileURL) { - responseObject = self.downloadFileURL; - } else { - responseObject = [manager.responseSerializer responseObjectForResponse:task.response data:[NSData dataWithData:self.mutableData] error:&serializationError]; - } - - if (responseObject) { - userInfo[AFNetworkingTaskDidFinishSerializedResponseKey] = responseObject; - } - - if (serializationError) { - userInfo[AFNetworkingTaskDidFinishErrorKey] = serializationError; - } - - dispatch_group_async(manager.completionGroup ?: url_session_manager_completion_group(), manager.completionQueue ?: dispatch_get_main_queue(), ^{ - if (self.completionHandler) { - self.completionHandler(task.response, responseObject, serializationError); - } - - dispatch_async(dispatch_get_main_queue(), ^{ - [[NSNotificationCenter defaultCenter] postNotificationName:AFNetworkingTaskDidFinishNotification object:task userInfo:userInfo]; - }); - }); - }); - } - } -#pragma clang diagnostic pop -} - -#pragma mark - NSURLSessionDataTaskDelegate - -- (void)URLSession:(__unused NSURLSession *)session - dataTask:(__unused NSURLSessionDataTask *)dataTask - didReceiveData:(NSData *)data -{ - [self.mutableData appendData:data]; - - self.downloadProgress.totalUnitCount += [data length]; -} - -#pragma mark - NSURLSessionDownloadTaskDelegate - -- (void)URLSession:(NSURLSession *)session - downloadTask:(NSURLSessionDownloadTask *)downloadTask -didFinishDownloadingToURL:(NSURL *)location -{ - NSError *fileManagerError = nil; - self.downloadFileURL = nil; - - if (self.downloadTaskDidFinishDownloading) { - self.downloadFileURL = self.downloadTaskDidFinishDownloading(session, downloadTask, location); - if (self.downloadFileURL) { - [[NSFileManager defaultManager] moveItemAtURL:location toURL:self.downloadFileURL error:&fileManagerError]; - - if (fileManagerError) { - [[NSNotificationCenter defaultCenter] postNotificationName:AFURLSessionDownloadTaskDidFailToMoveFileNotification object:downloadTask userInfo:fileManagerError.userInfo]; - } - } - } -} - -- (void)URLSession:(__unused NSURLSession *)session - downloadTask:(__unused NSURLSessionDownloadTask *)downloadTask - didWriteData:(__unused int64_t)bytesWritten - totalBytesWritten:(int64_t)totalBytesWritten -totalBytesExpectedToWrite:(int64_t)totalBytesExpectedToWrite -{ - self.downloadProgress.totalUnitCount = totalBytesExpectedToWrite; - self.downloadProgress.completedUnitCount = totalBytesWritten; -} - -- (void)URLSession:(__unused NSURLSession *)session - downloadTask:(__unused NSURLSessionDownloadTask *)downloadTask - didResumeAtOffset:(int64_t)fileOffset -expectedTotalBytes:(int64_t)expectedTotalBytes { - self.downloadProgress.totalUnitCount = expectedTotalBytes; - self.downloadProgress.completedUnitCount = fileOffset; -} - -@end - -#pragma mark - - -@interface AFURLSessionManager () -@property (readwrite, nonatomic, strong) NSURLSessionConfiguration *sessionConfiguration; -@property (readwrite, nonatomic, strong) NSOperationQueue *operationQueue; -@property (readwrite, nonatomic, strong) NSURLSession *session; -@property (readwrite, nonatomic, strong) NSMutableDictionary *mutableTaskDelegatesKeyedByTaskIdentifier; -@property (readwrite, nonatomic, strong) AFNetworkReachabilityManager *reachabilityManager; -@property (readwrite, nonatomic, strong) NSLock *lock; -@property (readwrite, nonatomic, copy) AFURLSessionDidBecomeInvalidBlock sessionDidBecomeInvalid; -@property (readwrite, nonatomic, copy) AFURLSessionDidReceiveAuthenticationChallengeBlock sessionDidReceiveAuthenticationChallenge; -@property (readwrite, nonatomic, copy) AFURLSessionTaskWillPerformHTTPRedirectionBlock taskWillPerformHTTPRedirection; -@property (readwrite, nonatomic, copy) AFURLSessionTaskDidReceiveAuthenticationChallengeBlock taskDidReceiveAuthenticationChallenge; -@property (readwrite, nonatomic, copy) AFURLSessionTaskNeedNewBodyStreamBlock taskNeedNewBodyStream; -@property (readwrite, nonatomic, copy) AFURLSessionTaskDidSendBodyDataBlock taskDidSendBodyData; -@property (readwrite, nonatomic, copy) AFURLSessionTaskDidCompleteBlock taskDidComplete; -@property (readwrite, nonatomic, copy) AFURLSessionDataTaskDidReceiveResponseBlock dataTaskDidReceiveResponse; -@property (readwrite, nonatomic, copy) AFURLSessionDataTaskDidBecomeDownloadTaskBlock dataTaskDidBecomeDownloadTask; -@property (readwrite, nonatomic, copy) AFURLSessionDataTaskDidReceiveDataBlock dataTaskDidReceiveData; -@property (readwrite, nonatomic, copy) AFURLSessionDataTaskWillCacheResponseBlock dataTaskWillCacheResponse; -@property (readwrite, nonatomic, copy) AFURLSessionDidFinishEventsForBackgroundURLSessionBlock didFinishEventsForBackgroundURLSession; -@property (readwrite, nonatomic, copy) AFURLSessionDownloadTaskDidFinishDownloadingBlock downloadTaskDidFinishDownloading; -@property (readwrite, nonatomic, copy) AFURLSessionDownloadTaskDidWriteDataBlock downloadTaskDidWriteData; -@property (readwrite, nonatomic, copy) AFURLSessionDownloadTaskDidResumeBlock downloadTaskDidResume; -@end - -@implementation AFURLSessionManager - -- (instancetype)init { - return [self initWithSessionConfiguration:nil]; -} - -- (instancetype)initWithSessionConfiguration:(NSURLSessionConfiguration *)configuration { - self = [super init]; - if (!self) { - return nil; - } - - if (!configuration) { - configuration = [NSURLSessionConfiguration defaultSessionConfiguration]; - } - - self.operationQueue = [[NSOperationQueue alloc] init]; - self.operationQueue.maxConcurrentOperationCount = NSOperationQueueDefaultMaxConcurrentOperationCount; - - self.responseSerializer = [AFJSONResponseSerializer serializer]; - - self.sessionConfiguration = configuration; - self.session = [NSURLSession sessionWithConfiguration:self.sessionConfiguration delegate:self delegateQueue:self.operationQueue]; - - self.mutableTaskDelegatesKeyedByTaskIdentifier = [[NSMutableDictionary alloc] init]; - - self.reachabilityManager = [AFNetworkReachabilityManager sharedManager]; - [self.reachabilityManager startMonitoring]; - - self.securityPolicy = [AFSecurityPolicy defaultPolicy]; - - self.lock = [[NSLock alloc] init]; - self.lock.name = AFURLSessionManagerLockName; - - return self; -} - -- (NSString *)description { - return [NSString stringWithFormat:@"<%@: %p, session: %@, operationQueue: %@>", NSStringFromClass([self class]), self, self.session, self.operationQueue]; -} - -#pragma mark - - -- (AFURLSessionManagerTaskDelegate *)delegateForTask:(NSURLSessionTask *)task { - NSParameterAssert(task); - - AFURLSessionManagerTaskDelegate *delegate = nil; - [self.lock lock]; - delegate = self.mutableTaskDelegatesKeyedByTaskIdentifier[@(task.taskIdentifier)]; - [self.lock unlock]; - - return delegate; -} - -- (void)setDelegate:(AFURLSessionManagerTaskDelegate *)delegate - forTask:(NSURLSessionTask *)task -{ - NSParameterAssert(task); - - [self.lock lock]; - self.mutableTaskDelegatesKeyedByTaskIdentifier[@(task.taskIdentifier)] = delegate; - [self.lock unlock]; -} - -- (void)removeDelegateForTask:(NSURLSessionTask *)task { - NSParameterAssert(task); - - [self.lock lock]; - [self.mutableTaskDelegatesKeyedByTaskIdentifier removeObjectForKey:@(task.taskIdentifier)]; - [self.lock unlock]; -} - -- (void)removeAllDelegates { - [self.lock lock]; - [self.mutableTaskDelegatesKeyedByTaskIdentifier removeAllObjects]; - [self.lock unlock]; -} - -#pragma mark - - -- (NSArray *)tasksForKeyPath:(NSString *)keyPath { - __block NSArray *tasks = nil; - dispatch_semaphore_t semaphore = dispatch_semaphore_create(0); - [self.session getTasksWithCompletionHandler:^(NSArray *dataTasks, NSArray *uploadTasks, NSArray *downloadTasks) { - if ([keyPath isEqualToString:NSStringFromSelector(@selector(dataTasks))]) { - tasks = dataTasks; - } else if ([keyPath isEqualToString:NSStringFromSelector(@selector(uploadTasks))]) { - tasks = uploadTasks; - } else if ([keyPath isEqualToString:NSStringFromSelector(@selector(downloadTasks))]) { - tasks = downloadTasks; - } else if ([keyPath isEqualToString:NSStringFromSelector(@selector(tasks))]) { - tasks = [@[dataTasks, uploadTasks, downloadTasks] valueForKeyPath:@"@unionOfArrays.self"]; - } - - dispatch_semaphore_signal(semaphore); - }]; - - dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER); - - return tasks; -} - -- (NSArray *)tasks { - return [self tasksForKeyPath:NSStringFromSelector(_cmd)]; -} - -- (NSArray *)dataTasks { - return [self tasksForKeyPath:NSStringFromSelector(_cmd)]; -} - -- (NSArray *)uploadTasks { - return [self tasksForKeyPath:NSStringFromSelector(_cmd)]; -} - -- (NSArray *)downloadTasks { - return [self tasksForKeyPath:NSStringFromSelector(_cmd)]; -} - -#pragma mark - - -- (void)invalidateSessionCancelingTasks:(BOOL)cancelPendingTasks { - if (cancelPendingTasks) { - [self.session invalidateAndCancel]; - } else { - [self.session finishTasksAndInvalidate]; - } -} - -#pragma mark - - -- (void)setResponseSerializer:(id )responseSerializer { - NSParameterAssert(responseSerializer); - - _responseSerializer = responseSerializer; -} - -#pragma mark - - -- (NSURLSessionDataTask *)dataTaskWithRequest:(NSURLRequest *)request - completionHandler:(void (^)(NSURLResponse *response, id responseObject, NSError *error))completionHandler -{ - NSURLSessionDataTask *dataTask = [self.session dataTaskWithRequest:request]; - - AFURLSessionManagerTaskDelegate *delegate = [AFURLSessionManagerTaskDelegate delegateForManager:self completionHandler:completionHandler]; - [self setDelegate:delegate forTask:dataTask]; - - [dataTask addObserver:self forKeyPath:@"state" options:NSKeyValueObservingOptionOld|NSKeyValueObservingOptionNew context:AFTaskStateChangedContext]; - - return dataTask; -} - -#pragma mark - - -- (NSURLSessionUploadTask *)uploadTaskWithRequest:(NSURLRequest *)request - fromFile:(NSURL *)fileURL - progress:(NSProgress * __autoreleasing *)progress - completionHandler:(void (^)(NSURLResponse *response, id responseObject, NSError *error))completionHandler -{ - NSURLSessionUploadTask *uploadTask = [self.session uploadTaskWithRequest:request fromFile:fileURL]; - - return [self uploadTaskWithTask:uploadTask progress:progress completionHandler:completionHandler]; -} - -- (NSURLSessionUploadTask *)uploadTaskWithRequest:(NSURLRequest *)request - fromData:(NSData *)bodyData - progress:(NSProgress * __autoreleasing *)progress - completionHandler:(void (^)(NSURLResponse *response, id responseObject, NSError *error))completionHandler -{ - NSURLSessionUploadTask *uploadTask = [self.session uploadTaskWithRequest:request fromData:bodyData]; - - return [self uploadTaskWithTask:uploadTask progress:progress completionHandler:completionHandler]; -} - -- (NSURLSessionUploadTask *)uploadTaskWithStreamedRequest:(NSURLRequest *)request - progress:(NSProgress * __autoreleasing *)progress - completionHandler:(void (^)(NSURLResponse *response, id responseObject, NSError *error))completionHandler -{ - NSURLSessionUploadTask *uploadTask = [self.session uploadTaskWithStreamedRequest:request]; - - return [self uploadTaskWithTask:uploadTask progress:progress completionHandler:completionHandler]; -} - -- (NSURLSessionUploadTask *)uploadTaskWithTask:(NSURLSessionUploadTask *)uploadTask - progress:(NSProgress * __autoreleasing *)progress - completionHandler:(void (^)(NSURLResponse *response, id responseObject, NSError *error))completionHandler -{ - if (!uploadTask) { - return nil; - } - - AFURLSessionManagerTaskDelegate *delegate = [AFURLSessionManagerTaskDelegate delegateForManager:self completionHandler:completionHandler]; - - delegate.uploadProgress = [NSProgress progressWithTotalUnitCount:uploadTask.countOfBytesExpectedToSend]; - delegate.uploadProgress.pausingHandler = ^{ - [uploadTask suspend]; - }; - delegate.uploadProgress.cancellationHandler = ^{ - [uploadTask cancel]; - }; - - if (progress) { - *progress = delegate.uploadProgress; - } - - [self setDelegate:delegate forTask:uploadTask]; - - [uploadTask addObserver:self forKeyPath:@"state" options:NSKeyValueObservingOptionOld|NSKeyValueObservingOptionNew context:AFTaskStateChangedContext]; - - return uploadTask; -} - -#pragma mark - - -- (NSURLSessionDownloadTask *)downloadTaskWithRequest:(NSURLRequest *)request - progress:(NSProgress * __autoreleasing *)progress - destination:(NSURL * (^)(NSURL *targetPath, NSURLResponse *response))destination - completionHandler:(void (^)(NSURLResponse *response, NSURL *filePath, NSError *error))completionHandler -{ - NSURLSessionDownloadTask *downloadTask = [self.session downloadTaskWithRequest:request]; - - return [self downloadTaskWithTask:downloadTask progress:progress destination:destination completionHandler:completionHandler]; -} - -- (NSURLSessionDownloadTask *)downloadTaskWithResumeData:(NSData *)resumeData - progress:(NSProgress * __autoreleasing *)progress - destination:(NSURL * (^)(NSURL *targetPath, NSURLResponse *response))destination - completionHandler:(void (^)(NSURLResponse *response, NSURL *filePath, NSError *error))completionHandler -{ - NSURLSessionDownloadTask *downloadTask = [self.session downloadTaskWithResumeData:resumeData]; - - return [self downloadTaskWithTask:downloadTask progress:progress destination:destination completionHandler:completionHandler]; -} - -- (NSURLSessionDownloadTask *)downloadTaskWithTask:(NSURLSessionDownloadTask *)downloadTask - progress:(NSProgress * __autoreleasing *)progress - destination:(NSURL * (^)(NSURL *targetPath, NSURLResponse *response))destination - completionHandler:(void (^)(NSURLResponse *response, NSURL *filePath, NSError *error))completionHandler -{ - if (!downloadTask) { - return nil; - } - - AFURLSessionManagerTaskDelegate *delegate = [AFURLSessionManagerTaskDelegate delegateForManager:self completionHandler:completionHandler]; - delegate.downloadTaskDidFinishDownloading = ^NSURL * (NSURLSession * __unused session, NSURLSessionDownloadTask *task, NSURL *location) { - if (destination) { - return destination(location, task.response); - } - - return location; - }; - - if (progress) { - *progress = delegate.downloadProgress; - } - - [self setDelegate:delegate forTask:downloadTask]; - - [downloadTask addObserver:self forKeyPath:@"state" options:NSKeyValueObservingOptionOld|NSKeyValueObservingOptionNew context:AFTaskStateChangedContext]; - - return downloadTask; -} - -#pragma mark - - -- (void)setSessionDidBecomeInvalidBlock:(void (^)(NSURLSession *session, NSError *error))block { - self.sessionDidBecomeInvalid = block; -} - -- (void)setSessionDidReceiveAuthenticationChallengeBlock:(NSURLSessionAuthChallengeDisposition (^)(NSURLSession *session, NSURLAuthenticationChallenge *challenge, NSURLCredential * __autoreleasing *credential))block { - self.sessionDidReceiveAuthenticationChallenge = block; -} - -#pragma mark - - -- (void)setTaskWillPerformHTTPRedirectionBlock:(NSURLRequest * (^)(NSURLSession *session, NSURLSessionTask *task, NSURLResponse *response, NSURLRequest *request))block { - self.taskWillPerformHTTPRedirection = block; -} - -- (void)setTaskDidReceiveAuthenticationChallengeBlock:(NSURLSessionAuthChallengeDisposition (^)(NSURLSession *session, NSURLSessionTask *task, NSURLAuthenticationChallenge *challenge, NSURLCredential * __autoreleasing *credential))block { - self.taskDidReceiveAuthenticationChallenge = block; -} - -- (void)setTaskDidSendBodyDataBlock:(void (^)(NSURLSession *session, NSURLSessionTask *task, int64_t bytesSent, int64_t totalBytesSent, int64_t totalBytesExpectedToSend))block { - self.taskDidSendBodyData = block; -} - -- (void)setTaskDidCompleteBlock:(void (^)(NSURLSession *session, NSURLSessionTask *task, NSError *error))block { - self.taskDidComplete = block; -} - -#pragma mark - - -- (void)setDataTaskDidReceiveResponseBlock:(NSURLSessionResponseDisposition (^)(NSURLSession *session, NSURLSessionDataTask *dataTask, NSURLResponse *response))block { - self.dataTaskDidReceiveResponse = block; -} - -- (void)setDataTaskDidBecomeDownloadTaskBlock:(void (^)(NSURLSession *session, NSURLSessionDataTask *dataTask, NSURLSessionDownloadTask *downloadTask))block { - self.dataTaskDidBecomeDownloadTask = block; -} - -- (void)setDataTaskDidReceiveDataBlock:(void (^)(NSURLSession *session, NSURLSessionDataTask *dataTask, NSData *data))block { - self.dataTaskDidReceiveData = block; -} - -- (void)setDataTaskWillCacheResponseBlock:(NSCachedURLResponse * (^)(NSURLSession *session, NSURLSessionDataTask *dataTask, NSCachedURLResponse *proposedResponse))block { - self.dataTaskWillCacheResponse = block; -} - -- (void)setDidFinishEventsForBackgroundURLSessionBlock:(void (^)(NSURLSession *session))block { - self.didFinishEventsForBackgroundURLSession = block; -} - -#pragma mark - - -- (void)setDownloadTaskDidFinishDownloadingBlock:(NSURL * (^)(NSURLSession *session, NSURLSessionDownloadTask *downloadTask, NSURL *location))block { - self.downloadTaskDidFinishDownloading = block; -} - -- (void)setDownloadTaskDidWriteDataBlock:(void (^)(NSURLSession *session, NSURLSessionDownloadTask *downloadTask, int64_t bytesWritten, int64_t totalBytesWritten, int64_t totalBytesExpectedToWrite))block { - self.downloadTaskDidWriteData = block; -} - -- (void)setDownloadTaskDidResumeBlock:(void (^)(NSURLSession *session, NSURLSessionDownloadTask *downloadTask, int64_t fileOffset, int64_t expectedTotalBytes))block { - self.downloadTaskDidResume = block; -} - -#pragma mark - NSURLSessionDelegate - -- (void)URLSession:(NSURLSession *)session -didBecomeInvalidWithError:(NSError *)error -{ - if (self.sessionDidBecomeInvalid) { - self.sessionDidBecomeInvalid(session, error); - } - - [self removeAllDelegates]; - - [[NSNotificationCenter defaultCenter] postNotificationName:AFURLSessionDidInvalidateNotification object:session]; -} - -- (void)URLSession:(NSURLSession *)session -didReceiveChallenge:(NSURLAuthenticationChallenge *)challenge - completionHandler:(void (^)(NSURLSessionAuthChallengeDisposition disposition, NSURLCredential *credential))completionHandler -{ - NSURLSessionAuthChallengeDisposition disposition = NSURLSessionAuthChallengePerformDefaultHandling; - __block NSURLCredential *credential = nil; - - if (self.sessionDidReceiveAuthenticationChallenge) { - disposition = self.sessionDidReceiveAuthenticationChallenge(session, challenge, &credential); - } else { - if ([challenge.protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust]) { - if ([self.securityPolicy evaluateServerTrust:challenge.protectionSpace.serverTrust]) { - credential = [NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust]; - if (credential) { - disposition = NSURLSessionAuthChallengeUseCredential; - } else { - disposition = NSURLSessionAuthChallengePerformDefaultHandling; - } - } else { - disposition = NSURLSessionAuthChallengeCancelAuthenticationChallenge; - } - } else { - disposition = NSURLSessionAuthChallengePerformDefaultHandling; - } - } - - if (completionHandler) { - completionHandler(disposition, credential); - } -} - -#pragma mark - NSURLSessionTaskDelegate - -- (void)URLSession:(NSURLSession *)session - task:(NSURLSessionTask *)task -willPerformHTTPRedirection:(NSHTTPURLResponse *)response - newRequest:(NSURLRequest *)request - completionHandler:(void (^)(NSURLRequest *))completionHandler -{ - NSURLRequest *redirectRequest = request; - - if (self.taskWillPerformHTTPRedirection) { - redirectRequest = self.taskWillPerformHTTPRedirection(session, task, response, request); - } - - if (completionHandler) { - completionHandler(redirectRequest); - } -} - -- (void)URLSession:(NSURLSession *)session - task:(NSURLSessionTask *)task -didReceiveChallenge:(NSURLAuthenticationChallenge *)challenge - completionHandler:(void (^)(NSURLSessionAuthChallengeDisposition disposition, NSURLCredential *credential))completionHandler -{ - NSURLSessionAuthChallengeDisposition disposition = NSURLSessionAuthChallengePerformDefaultHandling; - __block NSURLCredential *credential = nil; - - if (self.taskDidReceiveAuthenticationChallenge) { - disposition = self.taskDidReceiveAuthenticationChallenge(session, task, challenge, &credential); - } else { - if ([challenge.protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust]) { - if ([self.securityPolicy evaluateServerTrust:challenge.protectionSpace.serverTrust]) { - disposition = NSURLSessionAuthChallengeUseCredential; - credential = [NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust]; - } else { - disposition = NSURLSessionAuthChallengeCancelAuthenticationChallenge; - } - } else { - disposition = NSURLSessionAuthChallengePerformDefaultHandling; - } - } - - if (completionHandler) { - completionHandler(disposition, credential); - } -} - -- (void)URLSession:(NSURLSession *)session - task:(NSURLSessionTask *)task - needNewBodyStream:(void (^)(NSInputStream *bodyStream))completionHandler -{ - NSInputStream *inputStream = nil; - - if (self.taskNeedNewBodyStream) { - inputStream = self.taskNeedNewBodyStream(session, task); - } else if (task.originalRequest.HTTPBodyStream && [task.originalRequest.HTTPBodyStream conformsToProtocol:@protocol(NSCopying)]) { - inputStream = [task.originalRequest.HTTPBodyStream copy]; - } - - if (completionHandler) { - completionHandler(inputStream); - } -} - -- (void)URLSession:(NSURLSession *)session - task:(NSURLSessionTask *)task - didSendBodyData:(int64_t)bytesSent - totalBytesSent:(int64_t)totalBytesSent -totalBytesExpectedToSend:(int64_t)totalBytesExpectedToSend -{ - AFURLSessionManagerTaskDelegate *delegate = [self delegateForTask:task]; - [delegate URLSession:session task:task didSendBodyData:bytesSent totalBytesSent:totalBytesSent totalBytesExpectedToSend:totalBytesExpectedToSend]; - - if (self.taskDidSendBodyData) { - self.taskDidSendBodyData(session, task, bytesSent, totalBytesSent, totalBytesExpectedToSend); - } -} - -- (void)URLSession:(NSURLSession *)session - task:(NSURLSessionTask *)task -didCompleteWithError:(NSError *)error -{ - AFURLSessionManagerTaskDelegate *delegate = [self delegateForTask:task]; - [delegate URLSession:session task:task didCompleteWithError:error]; - - if (self.taskDidComplete) { - self.taskDidComplete(session, task, error); - } - - [self removeDelegateForTask:task]; - - @try { - [task removeObserver:self forKeyPath:@"state" context:AFTaskStateChangedContext]; - } @catch (NSException *exception) {} -} - -#pragma mark - NSURLSessionDataDelegate - -- (void)URLSession:(NSURLSession *)session - dataTask:(NSURLSessionDataTask *)dataTask -didReceiveResponse:(NSURLResponse *)response - completionHandler:(void (^)(NSURLSessionResponseDisposition disposition))completionHandler -{ - NSURLSessionResponseDisposition disposition = NSURLSessionResponseAllow; - - if (self.dataTaskDidReceiveResponse) { - disposition = self.dataTaskDidReceiveResponse(session, dataTask, response); - } - - if (completionHandler) { - completionHandler(disposition); - } -} - -- (void)URLSession:(NSURLSession *)session - dataTask:(NSURLSessionDataTask *)dataTask -didBecomeDownloadTask:(NSURLSessionDownloadTask *)downloadTask -{ - if (self.dataTaskDidBecomeDownloadTask) { - self.dataTaskDidBecomeDownloadTask(session, dataTask, downloadTask); - } -} - -- (void)URLSession:(NSURLSession *)session - dataTask:(NSURLSessionDataTask *)dataTask - didReceiveData:(NSData *)data -{ - AFURLSessionManagerTaskDelegate *delegate = [self delegateForTask:dataTask]; - [delegate URLSession:session dataTask:dataTask didReceiveData:data]; - - if (self.dataTaskDidReceiveData) { - self.dataTaskDidReceiveData(session, dataTask, data); - } -} - -- (void)URLSession:(NSURLSession *)session - dataTask:(NSURLSessionDataTask *)dataTask - willCacheResponse:(NSCachedURLResponse *)proposedResponse - completionHandler:(void (^)(NSCachedURLResponse *cachedResponse))completionHandler -{ - NSCachedURLResponse *cachedResponse = proposedResponse; - - if (self.dataTaskWillCacheResponse) { - cachedResponse = self.dataTaskWillCacheResponse(session, dataTask, proposedResponse); - } - - if (completionHandler) { - completionHandler(cachedResponse); - } -} - -- (void)URLSessionDidFinishEventsForBackgroundURLSession:(NSURLSession *)session { - if (self.didFinishEventsForBackgroundURLSession) { - self.didFinishEventsForBackgroundURLSession(session); - } -} - -#pragma mark - NSURLSessionDownloadDelegate - -- (void)URLSession:(NSURLSession *)session - downloadTask:(NSURLSessionDownloadTask *)downloadTask -didFinishDownloadingToURL:(NSURL *)location -{ - AFURLSessionManagerTaskDelegate *delegate = [self delegateForTask:downloadTask]; - if (delegate) { - [delegate URLSession:session downloadTask:downloadTask didFinishDownloadingToURL:location]; - } else if (self.downloadTaskDidFinishDownloading) { - NSURL *fileURL = self.downloadTaskDidFinishDownloading(session, downloadTask, location); - if (fileURL) { - NSError *error = nil; - [[NSFileManager defaultManager] moveItemAtURL:location toURL:fileURL error:&error]; - if (error) { - [[NSNotificationCenter defaultCenter] postNotificationName:AFURLSessionDownloadTaskDidFailToMoveFileNotification object:downloadTask userInfo:error.userInfo]; - } - } - } -} - -- (void)URLSession:(NSURLSession *)session - downloadTask:(NSURLSessionDownloadTask *)downloadTask - didWriteData:(int64_t)bytesWritten - totalBytesWritten:(int64_t)totalBytesWritten -totalBytesExpectedToWrite:(int64_t)totalBytesExpectedToWrite -{ - AFURLSessionManagerTaskDelegate *delegate = [self delegateForTask:downloadTask]; - [delegate URLSession:session downloadTask:downloadTask didWriteData:bytesWritten totalBytesWritten:totalBytesWritten totalBytesExpectedToWrite:totalBytesExpectedToWrite]; - - if (self.downloadTaskDidWriteData) { - self.downloadTaskDidWriteData(session, downloadTask, bytesWritten, totalBytesWritten, totalBytesExpectedToWrite); - } -} - -- (void)URLSession:(NSURLSession *)session - downloadTask:(NSURLSessionDownloadTask *)downloadTask - didResumeAtOffset:(int64_t)fileOffset -expectedTotalBytes:(int64_t)expectedTotalBytes -{ - if (self.downloadTaskDidResume) { - self.downloadTaskDidResume(session, downloadTask, fileOffset, expectedTotalBytes); - } -} - -#pragma mark - NSKeyValueObserving - -- (void)observeValueForKeyPath:(NSString *)keyPath - ofObject:(id)object - change:(NSDictionary *)change - context:(void *)context -{ - if (context == AFTaskStateChangedContext && [keyPath isEqualToString:@"state"]) { - NSString *notificationName = nil; - switch ([(NSURLSessionTask *)object state]) { - case NSURLSessionTaskStateRunning: - notificationName = AFNetworkingTaskDidStartNotification; - break; - case NSURLSessionTaskStateSuspended: - notificationName = AFNetworkingTaskDidSuspendNotification; - break; - case NSURLSessionTaskStateCompleted: - // AFNetworkingTaskDidFinishNotification posted by task completion handlers - default: - break; - } - - if (notificationName) { - dispatch_async(dispatch_get_main_queue(), ^{ - [[NSNotificationCenter defaultCenter] postNotificationName:notificationName object:object]; - }); - } - } else { - [super observeValueForKeyPath:keyPath ofObject:object change:change context:context]; - } -} - -#pragma mark - NSCoding - -- (id)initWithCoder:(NSCoder *)decoder { - NSURLSessionConfiguration *configuration = [decoder decodeObjectForKey:@"sessionConfiguration"]; - - self = [self initWithSessionConfiguration:configuration]; - if (!self) { - return nil; - } - - return self; -} - -- (void)encodeWithCoder:(NSCoder *)coder { - [coder encodeObject:self.session.configuration forKey:@"sessionConfiguration"]; -} - -#pragma mark - NSCopying - -- (id)copyWithZone:(NSZone *)zone { - return [[[self class] allocWithZone:zone] initWithSessionConfiguration:self.session.configuration]; -} - -@end - -#endif diff --git a/Projects/iOS > 6/Pods/AFNetworking/LICENSE b/Projects/iOS > 6/Pods/AFNetworking/LICENSE deleted file mode 100644 index f20a847..0000000 --- a/Projects/iOS > 6/Pods/AFNetworking/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2013 AFNetworking (http://afnetworking.com/) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/Projects/iOS > 6/Pods/AFNetworking/README.md b/Projects/iOS > 6/Pods/AFNetworking/README.md deleted file mode 100644 index dafe44c..0000000 --- a/Projects/iOS > 6/Pods/AFNetworking/README.md +++ /dev/null @@ -1,369 +0,0 @@ -

- AFNetworking -

- -AFNetworking is a delightful networking library for iOS and Mac OS X. It's built on top of the [Foundation URL Loading System](http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/URLLoadingSystem/URLLoadingSystem.html), extending the powerful high-level networking abstractions built into Cocoa. It has a modular architecture with well-designed, feature-rich APIs that are a joy to use. - -Perhaps the most important feature of all, however, is the amazing community of developers who use and contribute to AFNetworking every day. AFNetworking powers some of the most popular and critically-acclaimed apps on the iPhone, iPad, and Mac. - -Choose AFNetworking for your next project, or migrate over your existing projects—you'll be happy you did! - -## How To Get Started - -- [Download AFNetworking](https://github.com/AFNetworking/AFNetworking/archive/master.zip) and try out the included Mac and iPhone example apps -- Read the ["Getting Started" guide](https://github.com/AFNetworking/AFNetworking/wiki/Getting-Started-with-AFNetworking), [FAQ](https://github.com/AFNetworking/AFNetworking/wiki/AFNetworking-FAQ), or [other articles on the Wiki](https://github.com/AFNetworking/AFNetworking/wiki) -- Check out the [documentation](http://cocoadocs.org/docsets/AFNetworking/2.0.0/) for a comprehensive look at all of the APIs available in AFNetworking -- Questions? [Stack Overflow](http://stackoverflow.com/questions/tagged/afnetworking) is the best place to find answers - -### Installation with CocoaPods - -[CocoaPods](http://cocoapods.org) is a dependency manager for Objective-C, which automates and simplifies the process of using 3rd-party libraries like AFNetworking in your projects. See the ["Getting Started" guide for more information](https://github.com/AFNetworking/AFNetworking/wiki/Getting-Started-with-AFNetworking). - -#### Podfile - -```ruby -platform :ios, '7.0' -pod "AFNetworking", "~> 2.0" -``` - -## 2.0 - -AFNetworking 2.0 is a major update to the framework. Building on 2 years of development, this new version introduces powerful new features, while providing an easy upgrade path for existing users. - -**Read the [AFNetworking 2.0 Migration Guide](https://github.com/AFNetworking/AFNetworking/wiki/AFNetworking-2.0-Migration-Guide) for an overview of the architectural and API changes.** - -### What's New - -- Refactored Architecture -- Support for NSURLSession -- Serialization Modules -- Expanded UIKit Extensions -- Real-time functionality with [Rocket](http://rocket.github.io) - -## Requirements - -AFNetworking 2.0 and higher requires Xcode 5, targeting either iOS 6.0 and above, or Mac OS 10.8 Mountain Lion ([64-bit with modern Cocoa runtime](https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ObjCRuntimeGuide/Articles/ocrtVersionsPlatforms.html)) and above. - -For compatibility with iOS 5 or Mac OS X 10.7, use the [latest 1.x release](https://github.com/AFNetworking/AFNetworking/tree/1.x). - -For compatibility with iOS 4.3 or Mac OS X 10.6, use the [latest 0.10.x release](https://github.com/AFNetworking/AFNetworking/tree/0.10.x). - -## Architecture - -### NSURLConnection - -- `AFURLConnectionOperation` -- `AFHTTPRequestOperation` -- `AFHTTPRequestOperationManager` - -### NSURLSession _(iOS 7 / Mac OS X 10.9)_ - -- `AFURLSessionManager` -- `AFHTTPSessionManager` - -### Serialization - -* `` - - `AFHTTPRequestSerializer` - - `AFJSONRequestSerializer` - - `AFPropertyListRequestSerializer` -* `` - - `AFHTTPResponseSerializer` - - `AFJSONResponseSerializer` - - `AFXMLParserResponseSerializer` - - `AFXMLDocumentResponseSerializer` _(Mac OS X)_ - - `AFPropertyListResponseSerializer` - - `AFImageResponseSerializer` - - `AFCompoundResponseSerializer` - -### Additional Functionality - -- `AFSecurityPolicy` -- `AFNetworkReachabilityManager` - -## Usage - -### HTTP Request Operation Manager - -`AFHTTPRequestOperationManager` encapsulates the common patterns of communicating with a web application over HTTP, including request creation, response serialization, network reachability monitoring, and security, as well as request operation management. - -#### `GET` Request - -```objective-c -AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; -[manager GET:@"http://example.com/resources.json" parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) { - NSLog(@"JSON: %@", responseObject); -} failure:^(AFHTTPRequestOperation *operation, NSError *error) { - NSLog(@"Error: %@", error); -}]; -``` - -#### `POST` URL-Form-Encoded Request - -```objective-c -AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; -NSDictionary *parameters = @{@"foo": @"bar"}; -[manager POST:@"http://example.com/resources.json" parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) { - NSLog(@"JSON: %@", responseObject); -} failure:^(AFHTTPRequestOperation *operation, NSError *error) { - NSLog(@"Error: %@", error); -}]; -``` - -#### `POST` Multi-Part Request - -```objective-c -AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; -NSDictionary *parameters = @{@"foo": @"bar"}; -NSURL *filePath = [NSURL fileURLWithPath:@"file://path/to/image.png"]; -[manager POST:@"http://example.com/resources.json" parameters:parameters constructingBodyWithBlock:^(id formData) { - [formData appendPartWithFileURL:filePath name:@"image" error:nil]; -} success:^(AFHTTPRequestOperation *operation, id responseObject) { - NSLog(@"Success: %@", responseObject); -} failure:^(AFHTTPRequestOperation *operation, NSError *error) { - NSLog(@"Error: %@", error); -}]; -``` - ---- - -### AFURLSessionManager - -`AFURLSessionManager` creates and manages an `NSURLSession` object based on a specified `NSURLSessionConfiguration` object, which conforms to ``, ``, ``, and ``. - -#### Creating a Download Task - -```objective-c -NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration]; -AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:configuration]; - -NSURL *URL = [NSURL URLWithString:@"http://example.com/download.zip"]; -NSURLRequest *request = [NSURLRequest requestWithURL:URL]; - -NSURLSessionDownloadTask *downloadTask = [manager downloadTaskWithRequest:request progress:nil destination:^NSURL *(NSURL *targetPath, NSURLResponse *response) { - NSURL *documentsDirectoryPath = [NSURL fileURLWithPath:[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject]]; - return [documentsDirectoryPath URLByAppendingPathComponent:[targetPath lastPathComponent]]; -} completionHandler:^(NSURLResponse *response, NSURL *filePath, NSError *error) { - NSLog(@"File downloaded to: %@", filePath); -}]; -[downloadTask resume]; -``` - -#### Creating an Upload Task - -```objective-c -NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration]; -AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:configuration]; - -NSURL *URL = [NSURL URLWithString:@"http://example.com/upload"]; -NSURLRequest *request = [NSURLRequest requestWithURL:URL]; - -NSURL *filePath = [NSURL fileURLWithPath:@"file://path/to/image.png"]; -NSURLSessionUploadTask *uploadTask = [manager uploadTaskWithRequest:request fromFile:filePath progress:nil completionHandler:^(NSURLResponse *response, id responseObject, NSError *error) { - if (error) { - NSLog(@"Error: %@", error); - } else { - NSLog(@"Success: %@ %@", response, responseObject); - } -}]; -[uploadTask resume]; -``` - -#### Creating a Data Task - -```objective-c -NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration]; -AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:configuration]; - -NSURL *URL = [NSURL URLWithString:@"http://example.com/upload"]; -NSURLRequest *request = [NSURLRequest requestWithURL:URL]; - -NSURLSessionDataTask *dataTask = [manager dataTaskWithRequest:request completionHandler:^(NSURLResponse *response, id responseObject, NSError *error) { - if (error) { - NSLog(@"Error: %@", error); - } else { - NSLog(@"%@ %@", response, responseObject); - } -}]; -[dataTask resume]; -``` - ---- - -### Request Serialization - -Request serializers create requests from URL strings, encoding parameters as either a query string or HTTP body. - -```objective-c -NSString *URLString = @"http://example.com"; -NSDictionary *parameters = @{@"foo": @"bar", @"baz": @[@1, @2, @3]}; -``` - -#### Query String Parameter Encoding - -```objective-c -[[AFHTTPRequestSerializer serializer] requestWithMethod:@"GET" URLString:URLString parameters:parameters]; -``` - - GET http://example.com?foo=bar&baz[]=1&baz[]=2&baz[]=3 - -#### URL Form Parameter Encoding - -```objective-c -[[AFHTTPRequestSerializer serializer] requestWithMethod:@"POST" URLString:URLString parameters:parameters]; -``` - - POST http://example.com/ - Content-Type: application/x-www-form-urlencoded - - foo=bar&baz[]=1&baz[]=2&baz[]=3 - -#### JSON Parameter Encoding - -```objective-c -[[AFJSONRequestSerializer serializer] requestWithMethod:@"POST" URLString:URLString parameters:parameters]; -``` - - POST http://example.com/ - Content-Type: application/json - - {"foo": "bar", "baz": [1,2,3]} - ---- - -### Network Reachability Manager - -`AFNetworkReachabilityManager` monitors the reachability of domains, and addresses for both WWAN and WiFi network interfaces. - -#### Shared Network Reachability - -```objective-c -[[AFNetworkReachabilityManager sharedManager] setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) { - NSLog(@"Reachability: %@", AFStringFromNetworkReachabilityStatus(status)); -}]; -``` - -#### HTTP Manager with Base URL - -When a `baseURL` is provided, network reachability is scoped to the host of that base URL. - -```objective-c -NSURL *baseURL = [NSURL URLWithString:@"http://example.com/"]; -AFHTTPRequestOperationManager *manager = [[AFHTTPRequestOperationManager alloc] initWithBaseURL:baseURL]; - -NSOperationQueue *operationQueue = manager.operationQueue; -[manager.reachabilityManager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) { - switch (status) { - case AFNetworkReachabilityStatusReachableViaWWAN: - case AFNetworkReachabilityStatusReachableViaWiFi: - [operationQueue setSuspended:NO]; - break; - case AFNetworkReachabilityStatusNotReachable: - default: - [operationQueue setSuspended:YES]; - break; - } -}]; -``` - ---- - -### Security Policy - -`AFSecurityPolicy` evaluates server trust against pinned X.509 certificates and public keys over secure connections. - -Adding pinned SSL certificates to your app helps prevent man-in-the-middle attacks and other vulnerabilities. Applications dealing with sensitive customer data or financial information are strongly encouraged to route all communication over an HTTPS connection with SSL pinning configured and enabled. - -#### Allowing Invalid SSL Certificates - -```objective-c -AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; -manager.securityPolicy.allowInvalidCertificates = YES; // not recommended for production -``` - ---- - -### AFHTTPRequestOperation - -`AFHTTPRequestOperation` is a subclass of `AFURLConnectionOperation` for requests using the HTTP or HTTPS protocols. It encapsulates the concept of acceptable status codes and content types, which determine the success or failure of a request. - -Although `AFHTTPRequestOperationManager` is usually the best way to go about making requests, `AFHTTPRequestOperation` can be used by itself. - -#### `GET` with `AFHTTPRequestOperation` - -```objective-c -NSURL *URL = [NSURL URLWithString:@"http://example.com/resources/123.json"]; -NSURLRequest *request = [NSURLRequest requestWithURL:URL]; -AFHTTPRequestOperation *op = [[AFHTTPRequestOperation alloc] initWithRequest:request]; -op.responseSerializer = [AFJSONResponseSerializer serializer]; -[op setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) { - NSLog(@"JSON: %@", responseObject); -} failure:^(AFHTTPRequestOperation *operation, NSError *error) { - NSLog(@"Error: %@", error); -}]; -[[NSOperationQueue mainQueue] addOperation:op]; -``` - -#### Batch of Operations - -```objective-c -NSMutableArray *mutableOperations = [NSMutableArray array]; -for (NSURL *fileURL in filesToUpload) { - NSURLRequest *request = [[AFHTTPRequestSerializer serializer] multipartFormRequestWithMethod:@"POST" URLString:@"http://example.com/upload" parameters:nil constructingBodyWithBlock:^(id formData) { - [formData appendPartWithFileURL:fileURL name:@"images[]" error:nil]; - }]; - - AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request]; - - [mutableOperations addObject:operation]; -} - -NSArray *operations = [AFURLConnectionOperation batchOfRequestOperations:@[...] progressBlock:^(NSUInteger numberOfFinishedOperations, NSUInteger totalNumberOfOperations) { - NSLog(@"%lu of %lu complete", numberOfFinishedOperations, totalNumberOfOperations); -} completionBlock:^(NSArray *operations) { - NSLog(@"All operations in batch complete"); -}]; -[[NSOperationQueue mainQueue] addOperations:operations waitUntilFinished:NO]; -``` - -## Unit Tests - -AFNetworking includes a suite of unit tests within the Tests subdirectory. In order to run the unit tests, you must install the testing dependencies via CocoaPods: - - $ cd Tests - $ pod install - -Once testing dependencies are installed, you can execute the test suite via the 'iOS Tests' and 'OS X Tests' schemes within Xcode. - -### Using xctool - -Tests can also be run from the command line or within a continuous integration environment with [`xctool`](https://github.com/facebook/xctool), which can be installed with [Homebrew](http://brew.sh): - - $ brew update - $ brew install xctool --HEAD - -Once `xctool` is installed, you can execute the suite via `rake test`. - -## Credits - -AFNetworking was originally created by [Scott Raymond](https://github.com/sco/) and [Mattt Thompson](https://github.com/mattt/) in the development of [Gowalla for iPhone](http://en.wikipedia.org/wiki/Gowalla). - -AFNetworking's logo was designed by [Alan Defibaugh](http://www.alandefibaugh.com/). - -And most of all, thanks to AFNetworking's [growing list of contributors](https://github.com/AFNetworking/AFNetworking/contributors). - -## Contact - -Follow AFNetworking on Twitter ([@AFNetworking](https://twitter.com/AFNetworking)) - -### Maintainers - -- [Mattt Thompson](http://github.com/mattt) ([@mattt](https://twitter.com/mattt)) - -## One More Thing... - -**AFNetworking: the Definitive Guide** written by Mattt Thompson and published by [O'Reilly](http://oreilly.com), will be available late 2013 / early 2014. [Sign up here to be notified about updates](http://eepurl.com/Flnvn). - -## License - -AFNetworking is available under the MIT license. See the LICENSE file for more info. diff --git a/Projects/iOS > 6/Pods/AFNetworking/UIKit+AFNetworking/AFNetworkActivityIndicatorManager.h b/Projects/iOS > 6/Pods/AFNetworking/UIKit+AFNetworking/AFNetworkActivityIndicatorManager.h deleted file mode 100644 index f43b062..0000000 --- a/Projects/iOS > 6/Pods/AFNetworking/UIKit+AFNetworking/AFNetworkActivityIndicatorManager.h +++ /dev/null @@ -1,76 +0,0 @@ -// AFNetworkActivityIndicatorManager.h -// -// Copyright (c) 2013 AFNetworking (http://afnetworking.com) -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -#import - -#import - -#if defined(__IPHONE_OS_VERSION_MIN_REQUIRED) - -#import - -/** - `AFNetworkActivityIndicatorManager` manages the state of the network activity indicator in the status bar. When enabled, it will listen for notifications indicating that a network request operation has started or finished, and start or stop animating the indicator accordingly. The number of active requests is incremented and decremented much like a stack or a semaphore, and the activity indicator will animate so long as that number is greater than zero. - - You should enable the shared instance of `AFNetworkActivityIndicatorManager` when your application finishes launching. In `AppDelegate application:didFinishLaunchingWithOptions:` you can do so with the following code: - - [[AFNetworkActivityIndicatorManager sharedManager] setEnabled:YES]; - - By setting `isNetworkActivityIndicatorVisible` to `YES` for `sharedManager`, the network activity indicator will show and hide automatically as requests start and finish. You should not ever need to call `incrementActivityCount` or `decrementActivityCount` yourself. - - See the Apple Human Interface Guidelines section about the Network Activity Indicator for more information: - http://developer.apple.com/library/iOS/#documentation/UserExperience/Conceptual/MobileHIG/UIElementGuidelines/UIElementGuidelines.html#//apple_ref/doc/uid/TP40006556-CH13-SW44 - */ -@interface AFNetworkActivityIndicatorManager : NSObject - -/** - A Boolean value indicating whether the manager is enabled. - - If YES, the manager will change status bar network activity indicator according to network operation notifications it receives. The default value is NO. - */ -@property (nonatomic, assign, getter = isEnabled) BOOL enabled; - -/** - A Boolean value indicating whether the network activity indicator is currently displayed in the status bar. - */ -@property (readonly, nonatomic, assign) BOOL isNetworkActivityIndicatorVisible; - -/** - Returns the shared network activity indicator manager object for the system. - - @return The systemwide network activity indicator manager. - */ -+ (instancetype)sharedManager; - -/** - Increments the number of active network requests. If this number was zero before incrementing, this will start animating the status bar network activity indicator. - */ -- (void)incrementActivityCount; - -/** - Decrements the number of active network requests. If this number becomes zero before decrementing, this will stop animating the status bar network activity indicator. - */ -- (void)decrementActivityCount; - -@end - -#endif diff --git a/Projects/iOS > 6/Pods/AFNetworking/UIKit+AFNetworking/AFNetworkActivityIndicatorManager.m b/Projects/iOS > 6/Pods/AFNetworking/UIKit+AFNetworking/AFNetworkActivityIndicatorManager.m deleted file mode 100644 index 61cc92b..0000000 --- a/Projects/iOS > 6/Pods/AFNetworking/UIKit+AFNetworking/AFNetworkActivityIndicatorManager.m +++ /dev/null @@ -1,171 +0,0 @@ -// AFNetworkActivityIndicatorManager.m -// -// Copyright (c) 2013 AFNetworking (http://afnetworking.com) -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -#import "AFNetworkActivityIndicatorManager.h" - -#if defined(__IPHONE_OS_VERSION_MIN_REQUIRED) - -#import "AFHTTPRequestOperation.h" - -#if __IPHONE_OS_VERSION_MIN_REQUIRED >= 70000 -#import "AFURLSessionManager.h" -#endif - -static NSTimeInterval const kAFNetworkActivityIndicatorInvisibilityDelay = 0.17; - -static NSURLRequest * AFNetworkRequestFromNotification(NSNotification *notification) { - if ([[notification object] isKindOfClass:[AFURLConnectionOperation class]]) { - return [(AFURLConnectionOperation *)[notification object] request]; - } - -#if __IPHONE_OS_VERSION_MIN_REQUIRED >= 70000 - if ([[notification object] respondsToSelector:@selector(originalRequest)]) { - return [(NSURLSessionTask *)[notification object] originalRequest]; - } -#endif - - return nil; -} - -@interface AFNetworkActivityIndicatorManager () -@property (readwrite, nonatomic, assign) NSInteger activityCount; -@property (readwrite, nonatomic, strong) NSTimer *activityIndicatorVisibilityTimer; -@property (readonly, nonatomic, getter = isNetworkActivityIndicatorVisible) BOOL networkActivityIndicatorVisible; - -- (void)updateNetworkActivityIndicatorVisibility; -- (void)updateNetworkActivityIndicatorVisibilityDelayed; -@end - -@implementation AFNetworkActivityIndicatorManager -@dynamic networkActivityIndicatorVisible; - -+ (instancetype)sharedManager { - static AFNetworkActivityIndicatorManager *_sharedManager = nil; - static dispatch_once_t oncePredicate; - dispatch_once(&oncePredicate, ^{ - _sharedManager = [[self alloc] init]; - }); - - return _sharedManager; -} - -+ (NSSet *)keyPathsForValuesAffectingIsNetworkActivityIndicatorVisible { - return [NSSet setWithObject:@"activityCount"]; -} - -- (id)init { - self = [super init]; - if (!self) { - return nil; - } - - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(networkRequestDidStart:) name:AFNetworkingOperationDidStartNotification object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(networkRequestDidFinish:) name:AFNetworkingOperationDidFinishNotification object:nil]; - -#if __IPHONE_OS_VERSION_MIN_REQUIRED >= 70000 - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(networkRequestDidStart:) name:AFNetworkingTaskDidStartNotification object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(networkRequestDidFinish:) name:AFNetworkingTaskDidSuspendNotification object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(networkRequestDidFinish:) name:AFNetworkingTaskDidFinishNotification object:nil]; -#endif - - return self; -} - -- (void)dealloc { - [[NSNotificationCenter defaultCenter] removeObserver:self]; - - [_activityIndicatorVisibilityTimer invalidate]; -} - -- (void)updateNetworkActivityIndicatorVisibilityDelayed { - if (self.enabled) { - // Delay hiding of activity indicator for a short interval, to avoid flickering - if (![self isNetworkActivityIndicatorVisible]) { - [self.activityIndicatorVisibilityTimer invalidate]; - self.activityIndicatorVisibilityTimer = [NSTimer timerWithTimeInterval:kAFNetworkActivityIndicatorInvisibilityDelay target:self selector:@selector(updateNetworkActivityIndicatorVisibility) userInfo:nil repeats:NO]; - [[NSRunLoop mainRunLoop] addTimer:self.activityIndicatorVisibilityTimer forMode:NSRunLoopCommonModes]; - } else { - [self performSelectorOnMainThread:@selector(updateNetworkActivityIndicatorVisibility) withObject:nil waitUntilDone:NO modes:@[NSRunLoopCommonModes]]; - } - } -} - -- (BOOL)isNetworkActivityIndicatorVisible { - return self.activityCount > 0; -} - -- (void)updateNetworkActivityIndicatorVisibility { - [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:[self isNetworkActivityIndicatorVisible]]; -} - -- (void)setActivityCount:(NSInteger)activityCount { - @synchronized(self) { - _activityCount = activityCount; - } - - dispatch_async(dispatch_get_main_queue(), ^{ - [self updateNetworkActivityIndicatorVisibilityDelayed]; - }); -} - -- (void)incrementActivityCount { - [self willChangeValueForKey:@"activityCount"]; - @synchronized(self) { - _activityCount++; - } - [self didChangeValueForKey:@"activityCount"]; - - dispatch_async(dispatch_get_main_queue(), ^{ - [self updateNetworkActivityIndicatorVisibilityDelayed]; - }); -} - -- (void)decrementActivityCount { - [self willChangeValueForKey:@"activityCount"]; - @synchronized(self) { -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wgnu" - _activityCount = MAX(_activityCount - 1, 0); -#pragma clang diagnostic pop - } - [self didChangeValueForKey:@"activityCount"]; - - dispatch_async(dispatch_get_main_queue(), ^{ - [self updateNetworkActivityIndicatorVisibilityDelayed]; - }); -} - -- (void)networkRequestDidStart:(NSNotification *)notification { - if ([AFNetworkRequestFromNotification(notification) URL]) { - [self incrementActivityCount]; - } -} - -- (void)networkRequestDidFinish:(NSNotification *)notification { - if ([AFNetworkRequestFromNotification(notification) URL]) { - [self decrementActivityCount]; - } -} - -@end - -#endif diff --git a/Projects/iOS > 6/Pods/AFNetworking/UIKit+AFNetworking/UIActivityIndicatorView+AFNetworking.h b/Projects/iOS > 6/Pods/AFNetworking/UIKit+AFNetworking/UIActivityIndicatorView+AFNetworking.h deleted file mode 100644 index be6382c..0000000 --- a/Projects/iOS > 6/Pods/AFNetworking/UIKit+AFNetworking/UIActivityIndicatorView+AFNetworking.h +++ /dev/null @@ -1,65 +0,0 @@ -// UIActivityIndicatorView+AFNetworking.h -// -// Copyright (c) 2013 AFNetworking (http://afnetworking.com) -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -#import - -#import - -#if defined(__IPHONE_OS_VERSION_MIN_REQUIRED) - -#import - - -@class AFURLConnectionOperation; - -/** - This category adds methods to the UIKit framework's `UIActivityIndicatorView` class. The methods in this category provide support for automatically starting and stopping animation depending on the loading state of a request operation or session task. - */ -@interface UIActivityIndicatorView (AFNetworking) - -///---------------------------------- -/// @name Animating for Session Tasks -///---------------------------------- - -/** - Binds the animating state to the state of the specified task. - - @param task The task. If `nil`, automatic updating from any previously specified operation will be disabled. - */ -#if (defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 70000) || (defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 1090) -- (void)setAnimatingWithStateOfTask:(NSURLSessionTask *)task; -#endif - -///--------------------------------------- -/// @name Animating for Request Operations -///--------------------------------------- - -/** - Binds the animating state to the execution state of the specified operation. - - @param operation The operation. If `nil`, automatic updating from any previously specified operation will be disabled. - */ -- (void)setAnimatingWithStateOfOperation:(AFURLConnectionOperation *)operation; - -@end - -#endif diff --git a/Projects/iOS > 6/Pods/AFNetworking/UIKit+AFNetworking/UIActivityIndicatorView+AFNetworking.m b/Projects/iOS > 6/Pods/AFNetworking/UIKit+AFNetworking/UIActivityIndicatorView+AFNetworking.m deleted file mode 100644 index 8470ec4..0000000 --- a/Projects/iOS > 6/Pods/AFNetworking/UIKit+AFNetworking/UIActivityIndicatorView+AFNetworking.m +++ /dev/null @@ -1,97 +0,0 @@ -// UIActivityIndicatorView+AFNetworking.m -// -// Copyright (c) 2013 AFNetworking (http://afnetworking.com) -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -#import "UIActivityIndicatorView+AFNetworking.h" - -#if defined(__IPHONE_OS_VERSION_MIN_REQUIRED) - -#import "AFHTTPRequestOperation.h" - -#if __IPHONE_OS_VERSION_MIN_REQUIRED >= 70000 -#import "AFURLSessionManager.h" -#endif - -@implementation UIActivityIndicatorView (AFNetworking) - -#if __IPHONE_OS_VERSION_MIN_REQUIRED >= 70000 -- (void)setAnimatingWithStateOfTask:(NSURLSessionTask *)task { - NSNotificationCenter *notificationCenter = [NSNotificationCenter defaultCenter]; - - [notificationCenter removeObserver:self name:AFNetworkingTaskDidStartNotification object:nil]; - [notificationCenter removeObserver:self name:AFNetworkingTaskDidSuspendNotification object:nil]; - [notificationCenter removeObserver:self name:AFNetworkingTaskDidFinishNotification object:nil]; - - if (task) { - if (task.state != NSURLSessionTaskStateCompleted) { - if (task.state == NSURLSessionTaskStateRunning) { - [self startAnimating]; - } else { - [self stopAnimating]; - } - - [notificationCenter addObserver:self selector:@selector(af_startAnimating) name:AFNetworkingTaskDidStartNotification object:task]; - [notificationCenter addObserver:self selector:@selector(af_stopAnimating) name:AFNetworkingTaskDidFinishNotification object:task]; - [notificationCenter addObserver:self selector:@selector(af_stopAnimating) name:AFNetworkingTaskDidSuspendNotification object:task]; - } - } -} -#endif - -#pragma mark - - -- (void)setAnimatingWithStateOfOperation:(AFURLConnectionOperation *)operation { - NSNotificationCenter *notificationCenter = [NSNotificationCenter defaultCenter]; - - [notificationCenter removeObserver:self name:AFNetworkingOperationDidStartNotification object:nil]; - [notificationCenter removeObserver:self name:AFNetworkingOperationDidFinishNotification object:nil]; - - if (operation) { - if (![operation isFinished]) { - if ([operation isExecuting]) { - [self startAnimating]; - } else { - [self stopAnimating]; - } - - [notificationCenter addObserver:self selector:@selector(af_startAnimating) name:AFNetworkingOperationDidStartNotification object:operation]; - [notificationCenter addObserver:self selector:@selector(af_stopAnimating) name:AFNetworkingOperationDidFinishNotification object:operation]; - } - } -} - -#pragma mark - - -- (void)af_startAnimating { - dispatch_async(dispatch_get_main_queue(), ^{ - [self startAnimating]; - }); -} - -- (void)af_stopAnimating { - dispatch_async(dispatch_get_main_queue(), ^{ - [self stopAnimating]; - }); -} - -@end - -#endif diff --git a/Projects/iOS > 6/Pods/AFNetworking/UIKit+AFNetworking/UIAlertView+AFNetworking.h b/Projects/iOS > 6/Pods/AFNetworking/UIKit+AFNetworking/UIAlertView+AFNetworking.h deleted file mode 100644 index 75060c2..0000000 --- a/Projects/iOS > 6/Pods/AFNetworking/UIKit+AFNetworking/UIAlertView+AFNetworking.h +++ /dev/null @@ -1,96 +0,0 @@ -// UIAlertView+AFNetworking.h -// -// Copyright (c) 2013 AFNetworking (http://afnetworking.com) -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -#import - -#import - -#if defined(__IPHONE_OS_VERSION_MIN_REQUIRED) - -#import - -@class AFURLConnectionOperation; - -/** - This category adds methods to the UIKit framework's `UIAlertView` class. The methods in this category provide support for automatically showing an alert if a session task or request operation finishes with an error. Alert title and message are filled from the corresponding `localizedDescription` & `localizedRecoverySuggestion` or `localizedFailureReason` of the error. - */ -@interface UIAlertView (AFNetworking) - -///------------------------------------- -/// @name Showing Alert for Session Task -///------------------------------------- - -/** - Shows an alert view with the error of the specified session task, if any. - - @param task The session task. - @param delegate The alert view delegate. - */ -#if __IPHONE_OS_VERSION_MIN_REQUIRED >= 70000 -+ (void)showAlertViewForTaskWithErrorOnCompletion:(NSURLSessionTask *)task - delegate:(id)delegate; -#endif - -/** - Shows an alert view with the error of the specified session task, if any, with a custom cancel button title and other button titles. - - @param task The session task. - @param delegate The alert view delegate. - @param cancelButtonTitle The title of the cancel button or nil if there is no cancel button. Using this argument is equivalent to setting the cancel button index to the value returned by invoking addButtonWithTitle: specifying this title. - @param otherButtonTitles The title of another button. Using this argument is equivalent to invoking addButtonWithTitle: with this title to add more buttons. Too many buttons can cause the alert view to scroll. For guidelines on the best ways to use an alert in an app, see "Temporary Views". Titles of additional buttons to add to the receiver, terminated with `nil`. - */ -#if __IPHONE_OS_VERSION_MIN_REQUIRED >= 70000 -+ (void)showAlertViewForTaskWithErrorOnCompletion:(NSURLSessionTask *)task - delegate:(id)delegate - cancelButtonTitle:(NSString *)cancelButtonTitle - otherButtonTitles:(NSString *)otherButtonTitles, ... NS_REQUIRES_NIL_TERMINATION; -#endif - -///------------------------------------------ -/// @name Showing Alert for Request Operation -///------------------------------------------ - -/** - Shows an alert view with the error of the specified request operation, if any. - - @param operation The request operation. - @param delegate The alert view delegate. - */ -+ (void)showAlertViewForRequestOperationWithErrorOnCompletion:(AFURLConnectionOperation *)operation - delegate:(id)delegate; - -/** - Shows an alert view with the error of the specified request operation, if any, with a custom cancel button title and other button titles. - - @param operation The request operation. - @param delegate The alert view delegate. - @param cancelButtonTitle The title of the cancel button or nil if there is no cancel button. Using this argument is equivalent to setting the cancel button index to the value returned by invoking addButtonWithTitle: specifying this title. - @param otherButtonTitles The title of another button. Using this argument is equivalent to invoking addButtonWithTitle: with this title to add more buttons. Too many buttons can cause the alert view to scroll. For guidelines on the best ways to use an alert in an app, see "Temporary Views". Titles of additional buttons to add to the receiver, terminated with `nil`. - */ -+ (void)showAlertViewForRequestOperationWithErrorOnCompletion:(AFURLConnectionOperation *)operation - delegate:(id)delegate - cancelButtonTitle:(NSString *)cancelButtonTitle - otherButtonTitles:(NSString *)otherButtonTitles, ... NS_REQUIRES_NIL_TERMINATION; - -@end - -#endif diff --git a/Projects/iOS > 6/Pods/AFNetworking/UIKit+AFNetworking/UIAlertView+AFNetworking.m b/Projects/iOS > 6/Pods/AFNetworking/UIKit+AFNetworking/UIAlertView+AFNetworking.m deleted file mode 100644 index 788a25b..0000000 --- a/Projects/iOS > 6/Pods/AFNetworking/UIKit+AFNetworking/UIAlertView+AFNetworking.m +++ /dev/null @@ -1,111 +0,0 @@ -// UIAlertView+AFNetworking.m -// -// Copyright (c) 2013 AFNetworking (http://afnetworking.com) -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -#import "UIAlertView+AFNetworking.h" - -#if defined(__IPHONE_OS_VERSION_MIN_REQUIRED) - -#import "AFURLConnectionOperation.h" - -#if __IPHONE_OS_VERSION_MIN_REQUIRED >= 70000 -#import "AFURLSessionManager.h" -#endif - -static void AFGetAlertViewTitleAndMessageFromError(NSError *error, NSString * __autoreleasing *title, NSString * __autoreleasing *message) { - if (error.localizedDescription && (error.localizedRecoverySuggestion || error.localizedFailureReason)) { - *title = error.localizedDescription; - - if (error.localizedRecoverySuggestion) { - *message = error.localizedRecoverySuggestion; - } else { - *message = error.localizedFailureReason; - } - } else if (error.localizedDescription) { - *title = NSLocalizedStringFromTable(@"Error", @"AFNetworking", @"Fallback Error Description"); - *message = error.localizedDescription; - } else { - *title = NSLocalizedStringFromTable(@"Error", @"AFNetworking", @"Fallback Error Description"); - *message = [NSString stringWithFormat:NSLocalizedStringFromTable(@"%@ Error: %d", @"AFNetworking", @"Fallback Error Failure Reason Format"), error.domain, error.code]; - } -} - -@implementation UIAlertView (AFNetworking) - -#if __IPHONE_OS_VERSION_MIN_REQUIRED >= 70000 -+ (void)showAlertViewForTaskWithErrorOnCompletion:(NSURLSessionTask *)task - delegate:(id)delegate -{ - [self showAlertViewForTaskWithErrorOnCompletion:task delegate:delegate cancelButtonTitle:NSLocalizedStringFromTable(@"Dismiss", @"AFNetworking", @"UIAlertView Cancel Button Title") otherButtonTitles:nil, nil]; -} - -+ (void)showAlertViewForTaskWithErrorOnCompletion:(NSURLSessionTask *)task - delegate:(id)delegate - cancelButtonTitle:(NSString *)cancelButtonTitle - otherButtonTitles:(NSString *)otherButtonTitles, ... NS_REQUIRES_NIL_TERMINATION -{ - __block id observer = [[NSNotificationCenter defaultCenter] addObserverForName:AFNetworkingTaskDidFinishNotification object:task queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification *notification) { - - NSError *error = notification.userInfo[AFNetworkingTaskDidFinishErrorKey]; - if (error) { - NSString *title, *message; - AFGetAlertViewTitleAndMessageFromError(error, &title, &message); - - [[[UIAlertView alloc] initWithTitle:title message:message delegate:delegate cancelButtonTitle:cancelButtonTitle otherButtonTitles:otherButtonTitles, nil] show]; - } - - [[NSNotificationCenter defaultCenter] removeObserver:observer name:AFNetworkingTaskDidFinishNotification object:notification.object]; - }]; -} -#endif - -#pragma mark - - -+ (void)showAlertViewForRequestOperationWithErrorOnCompletion:(AFURLConnectionOperation *)operation - delegate:(id)delegate -{ - [self showAlertViewForRequestOperationWithErrorOnCompletion:operation delegate:delegate cancelButtonTitle:NSLocalizedStringFromTable(@"Dismiss", @"AFNetworking", @"UIAlert View Cancel Button Title") otherButtonTitles:nil, nil]; -} - -+ (void)showAlertViewForRequestOperationWithErrorOnCompletion:(AFURLConnectionOperation *)operation - delegate:(id)delegate - cancelButtonTitle:(NSString *)cancelButtonTitle - otherButtonTitles:(NSString *)otherButtonTitles, ... NS_REQUIRES_NIL_TERMINATION -{ - __block id observer = [[NSNotificationCenter defaultCenter] addObserverForName:AFNetworkingOperationDidFinishNotification object:operation queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification *notification) { - - if (notification.object && [notification.object isKindOfClass:[AFURLConnectionOperation class]]) { - NSError *error = [(AFURLConnectionOperation *)notification.object error]; - if (error) { - NSString *title, *message; - AFGetAlertViewTitleAndMessageFromError(error, &title, &message); - - [[[UIAlertView alloc] initWithTitle:title message:message delegate:delegate cancelButtonTitle:cancelButtonTitle otherButtonTitles:otherButtonTitles, nil] show]; - } - } - - [[NSNotificationCenter defaultCenter] removeObserver:observer name:AFNetworkingOperationDidFinishNotification object:notification.object]; - }]; -} - -@end - -#endif diff --git a/Projects/iOS > 6/Pods/AFNetworking/UIKit+AFNetworking/UIButton+AFNetworking.h b/Projects/iOS > 6/Pods/AFNetworking/UIKit+AFNetworking/UIButton+AFNetworking.h deleted file mode 100644 index 52649b6..0000000 --- a/Projects/iOS > 6/Pods/AFNetworking/UIKit+AFNetworking/UIButton+AFNetworking.h +++ /dev/null @@ -1,146 +0,0 @@ -// UIButton+AFNetworking.h -// -// Copyright (c) 2013 AFNetworking (http://afnetworking.com) -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -#import - -#import - -#if defined(__IPHONE_OS_VERSION_MIN_REQUIRED) - -#import - -/** - This category adds methods to the UIKit framework's `UIButton` class. The methods in this category provide support for loading remote images and background images asynchronously from a URL. - */ -@interface UIButton (AFNetworking) - -///-------------------- -/// @name Setting Image -///-------------------- - -/** - Asynchronously downloads an image from the specified URL, and sets it as the image for the specified state once the request is finished. Any previous image request for the receiver will be cancelled. - - If the image is cached locally, the image is set immediately, otherwise the specified placeholder image will be set immediately, and then the remote image will be set once the request is finished. - - @param state The control state. - @param url The URL used for the image request. - */ -- (void)setImageForState:(UIControlState)state - withURL:(NSURL *)url; - -/** - Asynchronously downloads an image from the specified URL, and sets it as the image for the specified state once the request is finished. Any previous image request for the receiver will be cancelled. - - If the image is cached locally, the image is set immediately, otherwise the specified placeholder image will be set immediately, and then the remote image will be set once the request is finished. - - @param state The control state. - @param url The URL used for the image request. - @param placeholderImage The image to be set initially, until the image request finishes. If `nil`, the button will not change its image until the image request finishes. - */ -- (void)setImageForState:(UIControlState)state - withURL:(NSURL *)url - placeholderImage:(UIImage *)placeholderImage; - -/** - Asynchronously downloads an image from the specified URL request, and sets it as the image for the specified state once the request is finished. Any previous image request for the receiver will be cancelled. - - If the image is cached locally, the image is set immediately, otherwise the specified placeholder image will be set immediately, and then the remote image will be set once the request is finished. - - If a success block is specified, it is the responsibility of the block to set the image of the button before returning. If no success block is specified, the default behavior of setting the image with `setImage:forState:` is applied. - - @param state The control state. - @param urlRequest The URL request used for the image request. - @param placeholderImage The image to be set initially, until the image request finishes. If `nil`, the button will not change its image until the image request finishes. - @param success A block to be executed when the image request operation finishes successfully. This block has no return value and takes two arguments: the server response and the image. If the image was returned from cache, the request and response parameters will be `nil`. - @param failure A block object to be executed when the image request operation finishes unsuccessfully, or that finishes successfully. This block has no return value and takes a single argument: the error that occurred. - */ -- (void)setImageForState:(UIControlState)state - withURLRequest:(NSURLRequest *)urlRequest - placeholderImage:(UIImage *)placeholderImage - success:(void (^)(NSHTTPURLResponse *response, UIImage *image))success - failure:(void (^)(NSError *error))failure; - - -///------------------------------- -/// @name Setting Background Image -///------------------------------- - -/** - Asynchronously downloads an image from the specified URL, and sets it as the background image for the specified state once the request is finished. Any previous background image request for the receiver will be cancelled. - - If the background image is cached locally, the background image is set immediately, otherwise the specified placeholder background image will be set immediately, and then the remote background image will be set once the request is finished. - - @param state The control state. - @param url The URL used for the background image request. - */ -- (void)setBackgroundImageForState:(UIControlState)state - withURL:(NSURL *)url; - -/** - Asynchronously downloads an image from the specified URL, and sets it as the background image for the specified state once the request is finished. Any previous image request for the receiver will be cancelled. - - If the image is cached locally, the image is set immediately, otherwise the specified placeholder image will be set immediately, and then the remote image will be set once the request is finished. - - @param state The control state. - @param url The URL used for the background image request. - @param placeholderImage The background image to be set initially, until the background image request finishes. If `nil`, the button will not change its background image until the background image request finishes. - */ -- (void)setBackgroundImageForState:(UIControlState)state - withURL:(NSURL *)url - placeholderImage:(UIImage *)placeholderImage; - -/** - Asynchronously downloads an image from the specified URL request, and sets it as the image for the specified state once the request is finished. Any previous image request for the receiver will be cancelled. - - If the image is cached locally, the image is set immediately, otherwise the specified placeholder image will be set immediately, and then the remote image will be set once the request is finished. - - If a success block is specified, it is the responsibility of the block to set the image of the button before returning. If no success block is specified, the default behavior of setting the image with `setBackgroundImage:forState:` is applied. - - @param state The control state. - @param urlRequest The URL request used for the image request. - @param placeholderImage The background image to be set initially, until the background image request finishes. If `nil`, the button will not change its background image until the background image request finishes. - */ -- (void)setBackgroundImageForState:(UIControlState)state - withURLRequest:(NSURLRequest *)urlRequest - placeholderImage:(UIImage *)placeholderImage - success:(void (^)(NSHTTPURLResponse *response, UIImage *image))success - failure:(void (^)(NSError *error))failure; - - -///------------------------------ -/// @name Canceling Image Loading -///------------------------------ - -/** - Cancels any executing image operation for the receiver, if one exists. - */ -- (void)cancelImageRequestOperation; - -/** - Cancels any executing background image operation for the receiver, if one exists. - */ -- (void)cancelBackgroundImageRequestOperation; - -@end - -#endif diff --git a/Projects/iOS > 6/Pods/AFNetworking/UIKit+AFNetworking/UIButton+AFNetworking.m b/Projects/iOS > 6/Pods/AFNetworking/UIKit+AFNetworking/UIButton+AFNetworking.m deleted file mode 100644 index 5f79d14..0000000 --- a/Projects/iOS > 6/Pods/AFNetworking/UIKit+AFNetworking/UIButton+AFNetworking.m +++ /dev/null @@ -1,192 +0,0 @@ -// UIButton+AFNetworking.m -// -// Copyright (c) 2013 AFNetworking (http://afnetworking.com) -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -#import "UIButton+AFNetworking.h" - -#import - -#if defined(__IPHONE_OS_VERSION_MIN_REQUIRED) - -#import "AFHTTPRequestOperation.h" - -static char kAFImageRequestOperationKey; -static char kAFBackgroundImageRequestOperationKey; - -@interface UIButton (_AFNetworking) -@property (readwrite, nonatomic, strong, setter = af_setImageRequestOperation:) AFHTTPRequestOperation *af_imageRequestOperation; -@property (readwrite, nonatomic, strong, setter = af_setBackgroundImageRequestOperation:) AFHTTPRequestOperation *af_backgroundImageRequestOperation; -@end - -@implementation UIButton (_AFNetworking) - -+ (NSOperationQueue *)af_sharedImageRequestOperationQueue { - static NSOperationQueue *_af_sharedImageRequestOperationQueue = nil; - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - _af_sharedImageRequestOperationQueue = [[NSOperationQueue alloc] init]; - _af_sharedImageRequestOperationQueue.maxConcurrentOperationCount = NSOperationQueueDefaultMaxConcurrentOperationCount; - }); - - return _af_sharedImageRequestOperationQueue; -} - -- (AFHTTPRequestOperation *)af_imageRequestOperation { - return (AFHTTPRequestOperation *)objc_getAssociatedObject(self, &kAFImageRequestOperationKey); -} - -- (void)af_setImageRequestOperation:(AFHTTPRequestOperation *)imageRequestOperation { - objc_setAssociatedObject(self, &kAFImageRequestOperationKey, imageRequestOperation, OBJC_ASSOCIATION_RETAIN_NONATOMIC); -} - -- (AFHTTPRequestOperation *)af_backgroundImageRequestOperation { - return (AFHTTPRequestOperation *)objc_getAssociatedObject(self, &kAFBackgroundImageRequestOperationKey); -} - -- (void)af_setBackgroundImageRequestOperation:(AFHTTPRequestOperation *)imageRequestOperation { - objc_setAssociatedObject(self, &kAFBackgroundImageRequestOperationKey, imageRequestOperation, OBJC_ASSOCIATION_RETAIN_NONATOMIC); -} - -@end - -#pragma mark - - -@implementation UIButton (AFNetworking) - -- (void)setImageForState:(UIControlState)state - withURL:(NSURL *)url -{ - [self setImageForState:state withURL:url placeholderImage:nil]; -} - -- (void)setImageForState:(UIControlState)state - withURL:(NSURL *)url - placeholderImage:(UIImage *)placeholderImage -{ - NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; - [request addValue:@"image/*" forHTTPHeaderField:@"Accept"]; - - [self setImageForState:state withURLRequest:request placeholderImage:placeholderImage success:nil failure:nil]; -} - -- (void)setImageForState:(UIControlState)state - withURLRequest:(NSURLRequest *)urlRequest - placeholderImage:(UIImage *)placeholderImage - success:(void (^)(NSHTTPURLResponse *response, UIImage *image))success - failure:(void (^)(NSError *error))failure -{ - [self cancelImageRequestOperation]; - - [self setImage:placeholderImage forState:state]; - - __weak __typeof(self)weakSelf = self; - self.af_imageRequestOperation = [[AFHTTPRequestOperation alloc] initWithRequest:urlRequest]; - self.af_imageRequestOperation.responseSerializer = [AFImageResponseSerializer serializer]; - [self.af_imageRequestOperation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) { - __strong __typeof(weakSelf)strongSelf = weakSelf; - if ([[urlRequest URL] isEqual:[operation.request URL]]) { - if (success) { - success(operation.response, responseObject); - } else if (responseObject) { - [strongSelf setImage:responseObject forState:state]; - } - } else { - - } - } failure:^(AFHTTPRequestOperation *operation, NSError *error) { - if ([[urlRequest URL] isEqual:[operation.response URL]]) { - if (failure) { - failure(error); - } - } - }]; - - [[[self class] af_sharedImageRequestOperationQueue] addOperation:self.af_imageRequestOperation]; -} - -#pragma mark - - -- (void)setBackgroundImageForState:(UIControlState)state - withURL:(NSURL *)url -{ - [self setBackgroundImageForState:state withURL:url placeholderImage:nil]; -} - -- (void)setBackgroundImageForState:(UIControlState)state - withURL:(NSURL *)url - placeholderImage:(UIImage *)placeholderImage -{ - NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; - [request addValue:@"image/*" forHTTPHeaderField:@"Accept"]; - - [self setBackgroundImageForState:state withURLRequest:request placeholderImage:placeholderImage success:nil failure:nil]; -} - -- (void)setBackgroundImageForState:(UIControlState)state - withURLRequest:(NSURLRequest *)urlRequest - placeholderImage:(UIImage *)placeholderImage - success:(void (^)(NSHTTPURLResponse *response, UIImage *image))success - failure:(void (^)(NSError *error))failure -{ - [self cancelBackgroundImageRequestOperation]; - - [self setBackgroundImage:placeholderImage forState:state]; - - __weak __typeof(self)weakSelf = self; - self.af_backgroundImageRequestOperation = [[AFHTTPRequestOperation alloc] initWithRequest:urlRequest]; - self.af_backgroundImageRequestOperation.responseSerializer = [AFImageResponseSerializer serializer]; - [self.af_backgroundImageRequestOperation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) { - __strong __typeof(weakSelf)strongSelf = weakSelf; - if ([[urlRequest URL] isEqual:[operation.request URL]]) { - if (success) { - success(operation.response, responseObject); - } else if (responseObject) { - [strongSelf setBackgroundImage:responseObject forState:state]; - } - } else { - - } - } failure:^(AFHTTPRequestOperation *operation, NSError *error) { - if ([[urlRequest URL] isEqual:[operation.response URL]]) { - if (failure) { - failure(error); - } - } - }]; - - [[[self class] af_sharedImageRequestOperationQueue] addOperation:self.af_backgroundImageRequestOperation]; -} - -#pragma mark - - -- (void)cancelImageRequestOperation { - [self.af_imageRequestOperation cancel]; - self.af_imageRequestOperation = nil; -} - -- (void)cancelBackgroundImageRequestOperation { - [self.af_backgroundImageRequestOperation cancel]; - self.af_backgroundImageRequestOperation = nil; -} - -@end - -#endif diff --git a/Projects/iOS > 6/Pods/AFNetworking/UIKit+AFNetworking/UIImageView+AFNetworking.h b/Projects/iOS > 6/Pods/AFNetworking/UIKit+AFNetworking/UIImageView+AFNetworking.h deleted file mode 100644 index bc50b7b..0000000 --- a/Projects/iOS > 6/Pods/AFNetworking/UIKit+AFNetworking/UIImageView+AFNetworking.h +++ /dev/null @@ -1,101 +0,0 @@ -// UIImageView+AFNetworking.h -// -// Copyright (c) 2013 AFNetworking (http://afnetworking.com) -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -#import - -#import - -#if defined(__IPHONE_OS_VERSION_MIN_REQUIRED) - -#import - -#import "AFURLResponseSerialization.h" - -/** - This category adds methods to the UIKit framework's `UIImageView` class. The methods in this category provide support for loading remote images asynchronously from a URL. - */ -@interface UIImageView (AFNetworking) - -///------------------------------------ -/// @name Accessing Response Serializer -///------------------------------------ - -/** - The response serializer used to create an image representation from the server response and response data. By default, this is an instance of `AFImageResponseSerializer`. - - @discussion Subclasses of `AFImageResponseSerializer` could be used to perform post-processing, such as color correction, face detection, or other effects. See https://github.com/AFNetworking/AFCoreImageSerializer - */ -@property (nonatomic, strong) AFImageResponseSerializer * imageResponseSerializer; - -///-------------------- -/// @name Setting Image -///-------------------- - -/** - Asynchronously downloads an image from the specified URL, and sets it once the request is finished. Any previous image request for the receiver will be cancelled. - - If the image is cached locally, the image is set immediately, otherwise the specified placeholder image will be set immediately, and then the remote image will be set once the request is finished. - - By default, URL requests have a `Accept` header field value of "image / *", a cache policy of `NSURLCacheStorageAllowed` and a timeout interval of 30 seconds, and are set not handle cookies. To configure URL requests differently, use `setImageWithURLRequest:placeholderImage:success:failure:` - - @param url The URL used for the image request. - */ -- (void)setImageWithURL:(NSURL *)url; - -/** - Asynchronously downloads an image from the specified URL, and sets it once the request is finished. Any previous image request for the receiver will be cancelled. - - If the image is cached locally, the image is set immediately, otherwise the specified placeholder image will be set immediately, and then the remote image will be set once the request is finished. - - By default, URL requests have a `Accept` header field value of "image / *", a cache policy of `NSURLCacheStorageAllowed` and a timeout interval of 30 seconds, and are set not handle cookies. To configure URL requests differently, use `setImageWithURLRequest:placeholderImage:success:failure:` - - @param url The URL used for the image request. - @param placeholderImage The image to be set initially, until the image request finishes. If `nil`, the image view will not change its image until the image request finishes. - */ -- (void)setImageWithURL:(NSURL *)url - placeholderImage:(UIImage *)placeholderImage; - -/** - Asynchronously downloads an image from the specified URL request, and sets it once the request is finished. Any previous image request for the receiver will be cancelled. - - If the image is cached locally, the image is set immediately, otherwise the specified placeholder image will be set immediately, and then the remote image will be set once the request is finished. - - If a success block is specified, it is the responsibility of the block to set the image of the image view before returning. If no success block is specified, the default behavior of setting the image with `self.image = image` is applied. - - @param urlRequest The URL request used for the image request. - @param placeholderImage The image to be set initially, until the image request finishes. If `nil`, the image view will not change its image until the image request finishes. - @param success A block to be executed when the image request operation finishes successfully. This block has no return value and takes three arguments: the request sent from the client, the response received from the server, and the image created from the response data of request. If the image was returned from cache, the request and response parameters will be `nil`. - @param failure A block object to be executed when the image request operation finishes unsuccessfully, or that finishes successfully. This block has no return value and takes three arguments: the request sent from the client, the response received from the server, and the error object describing the network or parsing error that occurred. - */ -- (void)setImageWithURLRequest:(NSURLRequest *)urlRequest - placeholderImage:(UIImage *)placeholderImage - success:(void (^)(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image))success - failure:(void (^)(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error))failure; - -/** - Cancels any executing image operation for the receiver, if one exists. - */ -- (void)cancelImageRequestOperation; - -@end - -#endif diff --git a/Projects/iOS > 6/Pods/AFNetworking/UIKit+AFNetworking/UIImageView+AFNetworking.m b/Projects/iOS > 6/Pods/AFNetworking/UIKit+AFNetworking/UIImageView+AFNetworking.m deleted file mode 100644 index 4b81527..0000000 --- a/Projects/iOS > 6/Pods/AFNetworking/UIKit+AFNetworking/UIImageView+AFNetworking.m +++ /dev/null @@ -1,202 +0,0 @@ -// UIImageView+AFNetworking.m -// -// Copyright (c) 2013 AFNetworking (http://afnetworking.com) -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -#import "UIImageView+AFNetworking.h" - -#import - -#if defined(__IPHONE_OS_VERSION_MIN_REQUIRED) - -#import "AFHTTPRequestOperation.h" - -@interface AFImageCache : NSCache -- (UIImage *)cachedImageForRequest:(NSURLRequest *)request; -- (void)cacheImage:(UIImage *)image - forRequest:(NSURLRequest *)request; -@end - -#pragma mark - - -static char kAFImageRequestOperationKey; -static char kAFResponseSerializerKey; - -@interface UIImageView (_AFNetworking) -@property (readwrite, nonatomic, strong, setter = af_setImageRequestOperation:) AFHTTPRequestOperation *af_imageRequestOperation; -@end - -@implementation UIImageView (_AFNetworking) - -+ (NSOperationQueue *)af_sharedImageRequestOperationQueue { - static NSOperationQueue *_af_sharedImageRequestOperationQueue = nil; - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - _af_sharedImageRequestOperationQueue = [[NSOperationQueue alloc] init]; - _af_sharedImageRequestOperationQueue.maxConcurrentOperationCount = NSOperationQueueDefaultMaxConcurrentOperationCount; - }); - - return _af_sharedImageRequestOperationQueue; -} - -+ (AFImageCache *)af_sharedImageCache { - static AFImageCache *_af_imageCache = nil; - static dispatch_once_t oncePredicate; - dispatch_once(&oncePredicate, ^{ - _af_imageCache = [[AFImageCache alloc] init]; - - [[NSNotificationCenter defaultCenter] addObserverForName:UIApplicationDidReceiveMemoryWarningNotification object:nil queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification * __unused notification) { - [_af_imageCache removeAllObjects]; - }]; - }); - - return _af_imageCache; -} - -- (AFHTTPRequestOperation *)af_imageRequestOperation { - return (AFHTTPRequestOperation *)objc_getAssociatedObject(self, &kAFImageRequestOperationKey); -} - -- (void)af_setImageRequestOperation:(AFHTTPRequestOperation *)imageRequestOperation { - objc_setAssociatedObject(self, &kAFImageRequestOperationKey, imageRequestOperation, OBJC_ASSOCIATION_RETAIN_NONATOMIC); -} - -@end - -#pragma mark - - -@implementation UIImageView (AFNetworking) -@dynamic imageResponseSerializer; - -- (id )imageResponseSerializer { - static id _af_defaultImageResponseSerializer = nil; - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - _af_defaultImageResponseSerializer = [AFImageResponseSerializer serializer]; - }); - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wgnu" - return objc_getAssociatedObject(self, &kAFResponseSerializerKey) ?: _af_defaultImageResponseSerializer; -#pragma clang diagnostic pop -} - -- (void)setImageResponseSerializer:(id )serializer { - objc_setAssociatedObject(self, &kAFResponseSerializerKey, serializer, OBJC_ASSOCIATION_RETAIN_NONATOMIC); -} - -#pragma mark - - -- (void)setImageWithURL:(NSURL *)url { - [self setImageWithURL:url placeholderImage:nil]; -} - -- (void)setImageWithURL:(NSURL *)url - placeholderImage:(UIImage *)placeholderImage -{ - NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; - [request addValue:@"image/*" forHTTPHeaderField:@"Accept"]; - - [self setImageWithURLRequest:request placeholderImage:placeholderImage success:nil failure:nil]; -} - -- (void)setImageWithURLRequest:(NSURLRequest *)urlRequest - placeholderImage:(UIImage *)placeholderImage - success:(void (^)(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image))success - failure:(void (^)(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error))failure -{ - [self cancelImageRequestOperation]; - - UIImage *cachedImage = [[[self class] af_sharedImageCache] cachedImageForRequest:urlRequest]; - if (cachedImage) { - if (success) { - success(nil, nil, cachedImage); - } else { - self.image = cachedImage; - } - - self.af_imageRequestOperation = nil; - } else { - self.image = placeholderImage; - - __weak __typeof(self)weakSelf = self; - self.af_imageRequestOperation = [[AFHTTPRequestOperation alloc] initWithRequest:urlRequest]; - self.af_imageRequestOperation.responseSerializer = self.imageResponseSerializer; - [self.af_imageRequestOperation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) { - __strong __typeof(weakSelf)strongSelf = weakSelf; - if ([[urlRequest URL] isEqual:[operation.request URL]]) { - if (success) { - success(urlRequest, operation.response, responseObject); - } else if (responseObject) { - strongSelf.image = responseObject; - } - } - - [[[strongSelf class] af_sharedImageCache] cacheImage:responseObject forRequest:urlRequest]; - } failure:^(AFHTTPRequestOperation *operation, NSError *error) { - if ([[urlRequest URL] isEqual:[operation.request URL]]) { - if (failure) { - failure(urlRequest, operation.response, error); - } - } - }]; - - [[[self class] af_sharedImageRequestOperationQueue] addOperation:self.af_imageRequestOperation]; - } -} - -- (void)cancelImageRequestOperation { - [self.af_imageRequestOperation cancel]; - self.af_imageRequestOperation = nil; -} - -@end - -#pragma mark - - -static inline NSString * AFImageCacheKeyFromURLRequest(NSURLRequest *request) { - return [[request URL] absoluteString]; -} - -@implementation AFImageCache - -- (UIImage *)cachedImageForRequest:(NSURLRequest *)request { - switch ([request cachePolicy]) { - case NSURLRequestReloadIgnoringCacheData: - case NSURLRequestReloadIgnoringLocalAndRemoteCacheData: - return nil; - default: - break; - } - - return [self objectForKey:AFImageCacheKeyFromURLRequest(request)]; -} - -- (void)cacheImage:(UIImage *)image - forRequest:(NSURLRequest *)request -{ - if (image && request) { - [self setObject:image forKey:AFImageCacheKeyFromURLRequest(request)]; - } -} - -@end - -#endif diff --git a/Projects/iOS > 6/Pods/AFNetworking/UIKit+AFNetworking/UIKit+AFNetworking.h b/Projects/iOS > 6/Pods/AFNetworking/UIKit+AFNetworking/UIKit+AFNetworking.h deleted file mode 100644 index d6ea8c2..0000000 --- a/Projects/iOS > 6/Pods/AFNetworking/UIKit+AFNetworking/UIKit+AFNetworking.h +++ /dev/null @@ -1,37 +0,0 @@ -// UIKit+AFNetworking.h -// -// Copyright (c) 2013 AFNetworking (http://afnetworking.com/) -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -#import - -#ifndef _UIKIT_AFNETWORKING_ - #define _UIKIT_AFNETWORKING_ - - #import "AFNetworkActivityIndicatorManager.h" - - #import "UIActivityIndicatorView+AFNetworking.h" - #import "UIAlertView+AFNetworking.h" - #import "UIButton+AFNetworking.h" - #import "UIImageView+AFNetworking.h" - #import "UIKit+AFNetworking.h" - #import "UIProgressView+AFNetworking.h" - #import "UIWebView+AFNetworking.h" -#endif /* _UIKIT_AFNETWORKING_ */ diff --git a/Projects/iOS > 6/Pods/AFNetworking/UIKit+AFNetworking/UIProgressView+AFNetworking.h b/Projects/iOS > 6/Pods/AFNetworking/UIKit+AFNetworking/UIProgressView+AFNetworking.h deleted file mode 100644 index 3d5d747..0000000 --- a/Projects/iOS > 6/Pods/AFNetworking/UIKit+AFNetworking/UIProgressView+AFNetworking.h +++ /dev/null @@ -1,88 +0,0 @@ -// UIProgressView+AFNetworking.h -// -// Copyright (c) 2013 AFNetworking (http://afnetworking.com) -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -#import - -#import - -#if defined(__IPHONE_OS_VERSION_MIN_REQUIRED) - -#import - -@class AFURLConnectionOperation; - -/** - This category adds methods to the UIKit framework's `UIProgressView` class. The methods in this category provide support for binding the progress to the upload and download progress of a session task or request operation. - */ -@interface UIProgressView (AFNetworking) - -///------------------------------------ -/// @name Setting Session Task Progress -///------------------------------------ - -/** - Binds the progress to the upload progress of the specified session task. - - @param task The session task. - @param animated `YES` if the change should be animated, `NO` if the change should happen immediately. - */ -#if (defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 70000) || (defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 1090) -- (void)setProgressWithUploadProgressOfTask:(NSURLSessionUploadTask *)task - animated:(BOOL)animated; -#endif - -/** - Binds the progress to the download progress of the specified session task. - - @param task The session task. - @param animated `YES` if the change should be animated, `NO` if the change should happen immediately. - */ -#if (defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 70000) || (defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 1090) -- (void)setProgressWithDownloadProgressOfTask:(NSURLSessionDownloadTask *)task - animated:(BOOL)animated; -#endif - -///------------------------------------ -/// @name Setting Session Task Progress -///------------------------------------ - -/** - Binds the progress to the upload progress of the specified request operation. - - @param operation The request operation. - @param animated `YES` if the change should be animated, `NO` if the change should happen immediately. - */ -- (void)setProgressWithUploadProgressOfOperation:(AFURLConnectionOperation *)operation - animated:(BOOL)animated; - -/** - Binds the progress to the download progress of the specified request operation. - - @param operation The request operation. - @param animated `YES` if the change should be animated, `NO` if the change should happen immediately. - */ -- (void)setProgressWithDownloadProgressOfOperation:(AFURLConnectionOperation *)operation - animated:(BOOL)animated; - -@end - -#endif diff --git a/Projects/iOS > 6/Pods/AFNetworking/UIKit+AFNetworking/UIProgressView+AFNetworking.m b/Projects/iOS > 6/Pods/AFNetworking/UIKit+AFNetworking/UIProgressView+AFNetworking.m deleted file mode 100644 index c5d2415..0000000 --- a/Projects/iOS > 6/Pods/AFNetworking/UIKit+AFNetworking/UIProgressView+AFNetworking.m +++ /dev/null @@ -1,186 +0,0 @@ -// UIProgressView+AFNetworking.m -// -// Copyright (c) 2013 AFNetworking (http://afnetworking.com) -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -#import "UIProgressView+AFNetworking.h" - -#import - -#if defined(__IPHONE_OS_VERSION_MIN_REQUIRED) - -#import "AFURLConnectionOperation.h" - -#if __IPHONE_OS_VERSION_MIN_REQUIRED >= 70000 -#import "AFURLSessionManager.h" -#endif - -static void * AFTaskCountOfBytesSentContext = &AFTaskCountOfBytesSentContext; -static void * AFTaskCountOfBytesReceivedContext = &AFTaskCountOfBytesReceivedContext; - -static char kAFUploadProgressAnimated; -static char kAFDownloadProgressAnimated; - -@interface AFURLConnectionOperation (_UIProgressView) -@property (readwrite, nonatomic, copy) void (^uploadProgress)(NSUInteger bytes, long long totalBytes, long long totalBytesExpected); -@property (readwrite, nonatomic, assign, setter = af_setUploadProgressAnimated:) BOOL af_uploadProgressAnimated; - -@property (readwrite, nonatomic, copy) void (^downloadProgress)(NSUInteger bytes, long long totalBytes, long long totalBytesExpected); -@property (readwrite, nonatomic, assign, setter = af_setDownloadProgressAnimated:) BOOL af_downloadProgressAnimated; -@end - -@implementation AFURLConnectionOperation (_UIProgressView) -@dynamic uploadProgress; // Implemented in AFURLConnectionOperation -@dynamic af_uploadProgressAnimated; - -@dynamic downloadProgress; // Implemented in AFURLConnectionOperation -@dynamic af_downloadProgressAnimated; -@end - -#pragma mark - - -@implementation UIProgressView (AFNetworking) - -- (BOOL)af_uploadProgressAnimated { - return [(NSNumber *)objc_getAssociatedObject(self, &kAFUploadProgressAnimated) boolValue]; -} - -- (void)af_setUploadProgressAnimated:(BOOL)animated { - objc_setAssociatedObject(self, &kAFUploadProgressAnimated, @(animated), OBJC_ASSOCIATION_RETAIN_NONATOMIC); -} - -- (BOOL)af_downloadProgressAnimated { - return [(NSNumber *)objc_getAssociatedObject(self, &kAFDownloadProgressAnimated) boolValue]; -} - -- (void)af_setDownloadProgressAnimated:(BOOL)animated { - objc_setAssociatedObject(self, &kAFDownloadProgressAnimated, @(animated), OBJC_ASSOCIATION_RETAIN_NONATOMIC); -} - -#pragma mark - - -#if __IPHONE_OS_VERSION_MIN_REQUIRED >= 70000 - -- (void)setProgressWithUploadProgressOfTask:(NSURLSessionUploadTask *)task - animated:(BOOL)animated -{ - [task addObserver:self forKeyPath:@"state" options:0 context:AFTaskCountOfBytesSentContext]; - [task addObserver:self forKeyPath:@"countOfBytesSent" options:0 context:AFTaskCountOfBytesSentContext]; - - [self af_setUploadProgressAnimated:animated]; -} - -- (void)setProgressWithDownloadProgressOfTask:(NSURLSessionDownloadTask *)task - animated:(BOOL)animated -{ - [task addObserver:self forKeyPath:@"state" options:0 context:AFTaskCountOfBytesReceivedContext]; - [task addObserver:self forKeyPath:@"countOfBytesReceived" options:0 context:AFTaskCountOfBytesReceivedContext]; - - [self af_setDownloadProgressAnimated:animated]; -} - -#endif - -#pragma mark - - -- (void)setProgressWithUploadProgressOfOperation:(AFURLConnectionOperation *)operation - animated:(BOOL)animated -{ - __weak __typeof(self)weakSelf = self; - void (^original)(NSUInteger bytesWritten, long long totalBytesWritten, long long totalBytesExpectedToWrite) = [operation.uploadProgress copy]; - [operation setUploadProgressBlock:^(NSUInteger bytesWritten, long long totalBytesWritten, long long totalBytesExpectedToWrite) { - if (original) { - original(bytesWritten, totalBytesWritten, totalBytesExpectedToWrite); - } - - dispatch_async(dispatch_get_main_queue(), ^{ - if (totalBytesExpectedToWrite > 0) { - [weakSelf setProgress:(totalBytesWritten / (totalBytesExpectedToWrite * 1.0f)) animated:animated]; - } - }); - }]; -} - -- (void)setProgressWithDownloadProgressOfOperation:(AFURLConnectionOperation *)operation - animated:(BOOL)animated -{ - __weak __typeof(self)weakSelf = self; - void (^original)(NSUInteger bytesRead, long long totalBytesRead, long long totalBytesExpectedToRead) = [operation.downloadProgress copy]; - [operation setDownloadProgressBlock:^(NSUInteger bytesRead, long long totalBytesRead, long long totalBytesExpectedToRead) { - if (original) { - original(bytesRead, totalBytesRead, totalBytesExpectedToRead); - } - - dispatch_async(dispatch_get_main_queue(), ^{ - if (totalBytesExpectedToRead > 0) { - [weakSelf setProgress:(totalBytesRead / (totalBytesExpectedToRead * 1.0f)) animated:animated]; - } - }); - }]; -} - -#pragma mark - NSKeyValueObserving - -- (void)observeValueForKeyPath:(NSString *)keyPath - ofObject:(id)object - change:(__unused NSDictionary *)change - context:(void *)context -{ -#if defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && __IPHONE_OS_VERSION_MAX_ALLOWED >= 70000 - if (context == AFTaskCountOfBytesSentContext || context == AFTaskCountOfBytesReceivedContext) { - if ([keyPath isEqualToString:NSStringFromSelector(@selector(countOfBytesSent))]) { - if ([object countOfBytesExpectedToSend] > 0) { - dispatch_async(dispatch_get_main_queue(), ^{ - [self setProgress:[object countOfBytesSent] / ([object countOfBytesExpectedToSend] * 1.0f) animated:self.af_uploadProgressAnimated]; - }); - } - } - - if ([keyPath isEqualToString:NSStringFromSelector(@selector(countOfBytesReceived))]) { - if ([object countOfBytesExpectedToReceive] > 0) { - dispatch_async(dispatch_get_main_queue(), ^{ - [self setProgress:[object countOfBytesReceived] / ([object countOfBytesExpectedToReceive] * 1.0f) animated:self.af_downloadProgressAnimated]; - }); - } - } - - if ([keyPath isEqualToString:NSStringFromSelector(@selector(state))]) { - if ([(NSURLSessionTask *)object state] == NSURLSessionTaskStateCompleted) { - @try { - [object removeObserver:self forKeyPath:NSStringFromSelector(@selector(state))]; - - if (context == AFTaskCountOfBytesSentContext) { - [object removeObserver:self forKeyPath:NSStringFromSelector(@selector(countOfBytesSent))]; - } - - if (context == AFTaskCountOfBytesReceivedContext) { - [object removeObserver:self forKeyPath:NSStringFromSelector(@selector(countOfBytesReceived))]; - } - } - @catch (NSException * __unused exception) {} - } - } - } -#endif -} - -@end - -#endif diff --git a/Projects/iOS > 6/Pods/AFNetworking/UIKit+AFNetworking/UIWebView+AFNetworking.h b/Projects/iOS > 6/Pods/AFNetworking/UIKit+AFNetworking/UIWebView+AFNetworking.h deleted file mode 100644 index abe8d01..0000000 --- a/Projects/iOS > 6/Pods/AFNetworking/UIKit+AFNetworking/UIWebView+AFNetworking.h +++ /dev/null @@ -1,81 +0,0 @@ -// UIWebView+AFNetworking.h -// -// Copyright (c) 2013 AFNetworking (http://afnetworking.com) -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -#import - -#import - -#if defined(__IPHONE_OS_VERSION_MIN_REQUIRED) - -#import - -#import "AFURLRequestSerialization.h" -#import "AFURLResponseSerialization.h" - -/** - This category adds methods to the UIKit framework's `UIWebView` class. The methods in this category provide increased control over the request cycle, including progress monitoring and success / failure handling. - */ -@interface UIWebView (AFNetworking) - -/** - The request serializer used to serialize requests made with the `-loadRequest:...` category methods. By default, this is an instance of `AFHTTPRequestSerializer`. - */ -@property (nonatomic, strong) AFHTTPRequestSerializer * requestSerializer; - -/** - The response serializer used to serialize responses made with the `-loadRequest:...` category methods. By default, this is an instance of `AFHTTPResponseSerializer`. - */ -@property (nonatomic, strong) AFHTTPResponseSerializer * responseSerializer; - -/** - Asynchronously loads the specified request. - - @param request A URL request identifying the location of the content to load. This must not be `nil`. - @param progress A block object to be called when an undetermined number of bytes have been downloaded from the server. This block has no return value and takes three arguments: the number of bytes read since the last time the download progress block was called, the total bytes read, and the total bytes expected to be read during the request, as initially determined by the expected content size of the `NSHTTPURLResponse` object. This block may be called multiple times, and will execute on the main thread. - @param success A block object to be executed when the request finishes loading successfully. This block returns the HTML string to be loaded by the web view, and takes two arguments: the response, and the response string. - @param failure A block object to be executed when the request operation finishes unsuccessfully, or that finishes successfully, but encountered an error while parsing the response data. This block has no return value and takes a single argument: the error that occurred. - */ -- (void)loadRequest:(NSURLRequest *)request - progress:(void (^)(NSUInteger bytesWritten, long long totalBytesWritten, long long totalBytesExpectedToWrite))progress - success:(NSString * (^)(NSHTTPURLResponse *response, NSString *HTML))success - failure:(void (^)(NSError *error))failure; - -/** - Asynchronously loads the data associated with a particular request with a specified MIME type and text encoding. - - @param request A URL request identifying the location of the content to load. This must not be `nil`. - @param MIMEType The MIME type of the content. Defaults to the content type of the response if not specified. - @param textEncodingName The IANA encoding name, as in `utf-8` or `utf-16`. Defaults to the response text encoding if not specified. - @param progress A block object to be called when an undetermined number of bytes have been downloaded from the server. This block has no return value and takes three arguments: the number of bytes read since the last time the download progress block was called, the total bytes read, and the total bytes expected to be read during the request, as initially determined by the expected content size of the `NSHTTPURLResponse` object. This block may be called multiple times, and will execute on the main thread. - @param success A block object to be executed when the request finishes loading successfully. This block returns the data to be loaded by the web view and takes two arguments: the response, and the downloaded data. - @param failure A block object to be executed when the request operation finishes unsuccessfully, or that finishes successfully, but encountered an error while parsing the response data. This block has no return value and takes a single argument: the error that occurred. - */ -- (void)loadRequest:(NSURLRequest *)request - MIMEType:(NSString *)MIMEType - textEncodingName:(NSString *)textEncodingName - progress:(void (^)(NSUInteger bytesWritten, long long totalBytesWritten, long long totalBytesExpectedToWrite))progress - success:(NSData * (^)(NSHTTPURLResponse *response, NSData *data))success - failure:(void (^)(NSError *error))failure; - -@end - -#endif diff --git a/Projects/iOS > 6/Pods/AFNetworking/UIKit+AFNetworking/UIWebView+AFNetworking.m b/Projects/iOS > 6/Pods/AFNetworking/UIKit+AFNetworking/UIWebView+AFNetworking.m deleted file mode 100644 index b849df8..0000000 --- a/Projects/iOS > 6/Pods/AFNetworking/UIKit+AFNetworking/UIWebView+AFNetworking.m +++ /dev/null @@ -1,151 +0,0 @@ -// UIWebView+AFNetworking.m -// -// Copyright (c) 2013 AFNetworking (http://afnetworking.com) -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -#import "UIWebView+AFNetworking.h" - -#import - -#if defined(__IPHONE_OS_VERSION_MIN_REQUIRED) - -#import "AFHTTPRequestOperation.h" - -static char kAFRequestSerializerKey; -static char kAFResponseSerializerKey; -static char kAFHTTPRequestOperationKey; - -@interface UIWebView (_AFNetworking) -@property (readwrite, nonatomic, strong, setter = af_setHTTPRequestOperation:) AFHTTPRequestOperation *af_HTTPRequestOperation; -@end - -@implementation UIWebView (_AFNetworking) - -- (AFHTTPRequestOperation *)af_HTTPRequestOperation { - return (AFHTTPRequestOperation *)objc_getAssociatedObject(self, &kAFHTTPRequestOperationKey); -} - -- (void)af_setHTTPRequestOperation:(AFHTTPRequestOperation *)operation { - objc_setAssociatedObject(self, &kAFHTTPRequestOperationKey, operation, OBJC_ASSOCIATION_RETAIN_NONATOMIC); -} - -@end - -#pragma mark - - -@implementation UIWebView (AFNetworking) - -- (AFHTTPRequestSerializer *)requestSerializer { - static AFHTTPRequestSerializer * _af_defaultRequestSerializer = nil; - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - _af_defaultRequestSerializer = [AFHTTPRequestSerializer serializer]; - }); - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wgnu" - return objc_getAssociatedObject(self, &kAFRequestSerializerKey) ?: _af_defaultRequestSerializer; -#pragma clang diagnostic pop -} - -- (void)setRequestSerializer:(AFHTTPRequestSerializer *)requestSerializer { - objc_setAssociatedObject(self, &kAFRequestSerializerKey, requestSerializer, OBJC_ASSOCIATION_RETAIN_NONATOMIC); -} - -- (AFHTTPResponseSerializer *)responseSerializer { - static AFHTTPResponseSerializer * _af_defaultResponseSerializer = nil; - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - _af_defaultResponseSerializer = [AFHTTPResponseSerializer serializer]; - }); - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wgnu" - return objc_getAssociatedObject(self, &kAFRequestSerializerKey) ?: _af_defaultResponseSerializer; -#pragma clang diagnostic pop -} - -- (void)setResponseSerializer:(AFHTTPResponseSerializer *)responseSerializer { - objc_setAssociatedObject(self, &kAFResponseSerializerKey, responseSerializer, OBJC_ASSOCIATION_RETAIN_NONATOMIC); -} - -#pragma mark - - -- (void)loadRequest:(NSURLRequest *)request - progress:(void (^)(NSUInteger bytesWritten, long long totalBytesWritten, long long totalBytesExpectedToWrite))progress - success:(NSString * (^)(NSHTTPURLResponse *response, NSString *HTML))success - failure:(void (^)(NSError *error))failure -{ - [self loadRequest:request MIMEType:nil textEncodingName:nil progress:progress success:^NSData *(NSHTTPURLResponse *response, NSData *data) { - if (!success) { - return data; - } - - NSStringEncoding stringEncoding = NSUTF8StringEncoding; - if (response.textEncodingName) { - CFStringEncoding encoding = CFStringConvertIANACharSetNameToEncoding((CFStringRef)response.textEncodingName); - if (encoding != kCFStringEncodingInvalidId) { - stringEncoding = CFStringConvertEncodingToNSStringEncoding(encoding); - } - } - - return [[[NSString alloc] initWithData:data encoding:stringEncoding] dataUsingEncoding:stringEncoding]; - } failure:failure]; -} - -- (void)loadRequest:(NSURLRequest *)request - MIMEType:(NSString *)MIMEType - textEncodingName:(NSString *)textEncodingName - progress:(void (^)(NSUInteger bytesWritten, long long totalBytesWritten, long long totalBytesExpectedToWrite))progress - success:(NSData * (^)(NSHTTPURLResponse *response, NSData *data))success - failure:(void (^)(NSError *error))failure -{ - NSParameterAssert(request); - - if (self.af_HTTPRequestOperation) { - [self.af_HTTPRequestOperation cancel]; - } - - request = [self.requestSerializer requestBySerializingRequest:request withParameters:nil error:nil]; - - self.af_HTTPRequestOperation = [[AFHTTPRequestOperation alloc] initWithRequest:request]; - self.af_HTTPRequestOperation.responseSerializer = self.responseSerializer; - - __weak __typeof(self)weakSelf = self; - [self.af_HTTPRequestOperation setDownloadProgressBlock:progress]; - [self.af_HTTPRequestOperation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id __unused responseObject) { - NSData *data = success ? success(operation.response, operation.responseData) : operation.responseData; - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wgnu" - [weakSelf loadData:data MIMEType:(MIMEType ?: [operation.response MIMEType]) textEncodingName:(textEncodingName ?: [operation.response textEncodingName]) baseURL:[operation.response URL]]; -#pragma clang diagnostic pop - } failure:^(AFHTTPRequestOperation * __unused operation, NSError *error) { - if (failure) { - failure(error); - } - }]; - - [self.af_HTTPRequestOperation start]; -} - -@end - -#endif diff --git a/Projects/iOS > 6/Pods/BuildHeaders/AFNetworking/AFHTTPRequestOperation.h b/Projects/iOS > 6/Pods/BuildHeaders/AFNetworking/AFHTTPRequestOperation.h deleted file mode 120000 index d51daed..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/AFNetworking/AFHTTPRequestOperation.h +++ /dev/null @@ -1 +0,0 @@ -../../AFNetworking/AFNetworking/AFHTTPRequestOperation.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/AFNetworking/AFHTTPRequestOperationManager.h b/Projects/iOS > 6/Pods/BuildHeaders/AFNetworking/AFHTTPRequestOperationManager.h deleted file mode 120000 index 6a7fa3a..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/AFNetworking/AFHTTPRequestOperationManager.h +++ /dev/null @@ -1 +0,0 @@ -../../AFNetworking/AFNetworking/AFHTTPRequestOperationManager.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/AFNetworking/AFHTTPSessionManager.h b/Projects/iOS > 6/Pods/BuildHeaders/AFNetworking/AFHTTPSessionManager.h deleted file mode 120000 index dda87e6..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/AFNetworking/AFHTTPSessionManager.h +++ /dev/null @@ -1 +0,0 @@ -../../AFNetworking/AFNetworking/AFHTTPSessionManager.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/AFNetworking/AFNetworkActivityIndicatorManager.h b/Projects/iOS > 6/Pods/BuildHeaders/AFNetworking/AFNetworkActivityIndicatorManager.h deleted file mode 120000 index 2d0d400..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/AFNetworking/AFNetworkActivityIndicatorManager.h +++ /dev/null @@ -1 +0,0 @@ -../../AFNetworking/UIKit+AFNetworking/AFNetworkActivityIndicatorManager.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/AFNetworking/AFNetworkReachabilityManager.h b/Projects/iOS > 6/Pods/BuildHeaders/AFNetworking/AFNetworkReachabilityManager.h deleted file mode 120000 index 14fd177..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/AFNetworking/AFNetworkReachabilityManager.h +++ /dev/null @@ -1 +0,0 @@ -../../AFNetworking/AFNetworking/AFNetworkReachabilityManager.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/AFNetworking/AFSecurityPolicy.h b/Projects/iOS > 6/Pods/BuildHeaders/AFNetworking/AFSecurityPolicy.h deleted file mode 120000 index 6a54dc3..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/AFNetworking/AFSecurityPolicy.h +++ /dev/null @@ -1 +0,0 @@ -../../AFNetworking/AFNetworking/AFSecurityPolicy.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/AFNetworking/AFURLConnectionOperation.h b/Projects/iOS > 6/Pods/BuildHeaders/AFNetworking/AFURLConnectionOperation.h deleted file mode 120000 index 360459d..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/AFNetworking/AFURLConnectionOperation.h +++ /dev/null @@ -1 +0,0 @@ -../../AFNetworking/AFNetworking/AFURLConnectionOperation.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/AFNetworking/AFURLRequestSerialization.h b/Projects/iOS > 6/Pods/BuildHeaders/AFNetworking/AFURLRequestSerialization.h deleted file mode 120000 index 32572ec..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/AFNetworking/AFURLRequestSerialization.h +++ /dev/null @@ -1 +0,0 @@ -../../AFNetworking/AFNetworking/AFURLRequestSerialization.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/AFNetworking/AFURLResponseSerialization.h b/Projects/iOS > 6/Pods/BuildHeaders/AFNetworking/AFURLResponseSerialization.h deleted file mode 120000 index 4b70627..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/AFNetworking/AFURLResponseSerialization.h +++ /dev/null @@ -1 +0,0 @@ -../../AFNetworking/AFNetworking/AFURLResponseSerialization.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/AFNetworking/AFURLSessionManager.h b/Projects/iOS > 6/Pods/BuildHeaders/AFNetworking/AFURLSessionManager.h deleted file mode 120000 index a206011..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/AFNetworking/AFURLSessionManager.h +++ /dev/null @@ -1 +0,0 @@ -../../AFNetworking/AFNetworking/AFURLSessionManager.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/AFNetworking/UIActivityIndicatorView+AFNetworking.h b/Projects/iOS > 6/Pods/BuildHeaders/AFNetworking/UIActivityIndicatorView+AFNetworking.h deleted file mode 120000 index 8634d2d..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/AFNetworking/UIActivityIndicatorView+AFNetworking.h +++ /dev/null @@ -1 +0,0 @@ -../../AFNetworking/UIKit+AFNetworking/UIActivityIndicatorView+AFNetworking.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/AFNetworking/UIAlertView+AFNetworking.h b/Projects/iOS > 6/Pods/BuildHeaders/AFNetworking/UIAlertView+AFNetworking.h deleted file mode 120000 index 3eb67fb..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/AFNetworking/UIAlertView+AFNetworking.h +++ /dev/null @@ -1 +0,0 @@ -../../AFNetworking/UIKit+AFNetworking/UIAlertView+AFNetworking.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/AFNetworking/UIButton+AFNetworking.h b/Projects/iOS > 6/Pods/BuildHeaders/AFNetworking/UIButton+AFNetworking.h deleted file mode 120000 index 32c242d..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/AFNetworking/UIButton+AFNetworking.h +++ /dev/null @@ -1 +0,0 @@ -../../AFNetworking/UIKit+AFNetworking/UIButton+AFNetworking.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/AFNetworking/UIImageView+AFNetworking.h b/Projects/iOS > 6/Pods/BuildHeaders/AFNetworking/UIImageView+AFNetworking.h deleted file mode 120000 index d3fab3c..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/AFNetworking/UIImageView+AFNetworking.h +++ /dev/null @@ -1 +0,0 @@ -../../AFNetworking/UIKit+AFNetworking/UIImageView+AFNetworking.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/AFNetworking/UIKit+AFNetworking.h b/Projects/iOS > 6/Pods/BuildHeaders/AFNetworking/UIKit+AFNetworking.h deleted file mode 120000 index 6d1d448..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/AFNetworking/UIKit+AFNetworking.h +++ /dev/null @@ -1 +0,0 @@ -../../AFNetworking/UIKit+AFNetworking/UIKit+AFNetworking.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/AFNetworking/UIProgressView+AFNetworking.h b/Projects/iOS > 6/Pods/BuildHeaders/AFNetworking/UIProgressView+AFNetworking.h deleted file mode 120000 index f32234c..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/AFNetworking/UIProgressView+AFNetworking.h +++ /dev/null @@ -1 +0,0 @@ -../../AFNetworking/UIKit+AFNetworking/UIProgressView+AFNetworking.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/AFNetworking/UIWebView+AFNetworking.h b/Projects/iOS > 6/Pods/BuildHeaders/AFNetworking/UIWebView+AFNetworking.h deleted file mode 120000 index 776285f..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/AFNetworking/UIWebView+AFNetworking.h +++ /dev/null @@ -1 +0,0 @@ -../../AFNetworking/UIKit+AFNetworking/UIWebView+AFNetworking.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWAfterAllNode.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWAfterAllNode.h deleted file mode 120000 index 9eeb57f..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWAfterAllNode.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Nodes/KWAfterAllNode.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWAfterEachNode.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWAfterEachNode.h deleted file mode 120000 index b807288..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWAfterEachNode.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Nodes/KWAfterEachNode.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWAny.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWAny.h deleted file mode 120000 index 0d334e7..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWAny.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/KWAny.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWAsyncVerifier.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWAsyncVerifier.h deleted file mode 120000 index 55ca577..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWAsyncVerifier.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Verifiers/KWAsyncVerifier.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWBeBetweenMatcher.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWBeBetweenMatcher.h deleted file mode 120000 index 75f9442..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWBeBetweenMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Matchers/KWBeBetweenMatcher.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWBeEmptyMatcher.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWBeEmptyMatcher.h deleted file mode 120000 index fc8c89a..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWBeEmptyMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Matchers/KWBeEmptyMatcher.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWBeIdenticalToMatcher.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWBeIdenticalToMatcher.h deleted file mode 120000 index 6e8e6be..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWBeIdenticalToMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Matchers/KWBeIdenticalToMatcher.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWBeKindOfClassMatcher.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWBeKindOfClassMatcher.h deleted file mode 120000 index d4170aa..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWBeKindOfClassMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Matchers/KWBeKindOfClassMatcher.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWBeMemberOfClassMatcher.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWBeMemberOfClassMatcher.h deleted file mode 120000 index 9b96c09..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWBeMemberOfClassMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Matchers/KWBeMemberOfClassMatcher.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWBeSubclassOfClassMatcher.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWBeSubclassOfClassMatcher.h deleted file mode 120000 index ce788b7..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWBeSubclassOfClassMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Matchers/KWBeSubclassOfClassMatcher.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWBeTrueMatcher.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWBeTrueMatcher.h deleted file mode 120000 index 6bbe534..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWBeTrueMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Matchers/KWBeTrueMatcher.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWBeWithinMatcher.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWBeWithinMatcher.h deleted file mode 120000 index ab3ad9d..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWBeWithinMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Matchers/KWBeWithinMatcher.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWBeZeroMatcher.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWBeZeroMatcher.h deleted file mode 120000 index 5c6a52d..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWBeZeroMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Matchers/KWBeZeroMatcher.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWBeforeAllNode.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWBeforeAllNode.h deleted file mode 120000 index e50bbfc..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWBeforeAllNode.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Nodes/KWBeforeAllNode.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWBeforeEachNode.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWBeforeEachNode.h deleted file mode 120000 index e25d754..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWBeforeEachNode.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Nodes/KWBeforeEachNode.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWBlock.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWBlock.h deleted file mode 120000 index 0262aa9..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWBlock.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/KWBlock.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWBlockNode.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWBlockNode.h deleted file mode 120000 index 250e21b..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWBlockNode.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Nodes/KWBlockNode.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWBlockRaiseMatcher.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWBlockRaiseMatcher.h deleted file mode 120000 index 0e3150b..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWBlockRaiseMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Matchers/KWBlockRaiseMatcher.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWCallSite.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWCallSite.h deleted file mode 120000 index 693a01b..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWCallSite.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/KWCallSite.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWCaptureSpy.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWCaptureSpy.h deleted file mode 120000 index 54a3ca2..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWCaptureSpy.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/KWCaptureSpy.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWChangeMatcher.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWChangeMatcher.h deleted file mode 120000 index be6e80b..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWChangeMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Matchers/KWChangeMatcher.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWConformToProtocolMatcher.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWConformToProtocolMatcher.h deleted file mode 120000 index 749ed75..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWConformToProtocolMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Matchers/KWConformToProtocolMatcher.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWContainMatcher.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWContainMatcher.h deleted file mode 120000 index 672fd9f..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWContainMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Matchers/KWContainMatcher.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWContainStringMatcher.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWContainStringMatcher.h deleted file mode 120000 index 3ee51f0..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWContainStringMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Matchers/KWContainStringMatcher.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWContextNode.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWContextNode.h deleted file mode 120000 index 7f72f76..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWContextNode.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Nodes/KWContextNode.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWCountType.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWCountType.h deleted file mode 120000 index 1f02227..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWCountType.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/KWCountType.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWDeviceInfo.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWDeviceInfo.h deleted file mode 120000 index 3e3bb0c..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWDeviceInfo.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/KWDeviceInfo.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWEqualMatcher.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWEqualMatcher.h deleted file mode 120000 index e842675..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWEqualMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Matchers/KWEqualMatcher.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWExample.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWExample.h deleted file mode 120000 index 0141492..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWExample.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/KWExample.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWExampleDelegate.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWExampleDelegate.h deleted file mode 120000 index 0e13935..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWExampleDelegate.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/KWExampleDelegate.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWExampleNode.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWExampleNode.h deleted file mode 120000 index 6fd1790..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWExampleNode.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Nodes/KWExampleNode.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWExampleNodeVisitor.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWExampleNodeVisitor.h deleted file mode 120000 index 0347cd9..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWExampleNodeVisitor.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/KWExampleNodeVisitor.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWExampleSuite.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWExampleSuite.h deleted file mode 120000 index 849831b..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWExampleSuite.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/KWExampleSuite.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWExampleSuiteBuilder.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWExampleSuiteBuilder.h deleted file mode 120000 index 84f06e2..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWExampleSuiteBuilder.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/KWExampleSuiteBuilder.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWExistVerifier.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWExistVerifier.h deleted file mode 120000 index 3f0dc32..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWExistVerifier.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Verifiers/KWExistVerifier.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWExpectationType.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWExpectationType.h deleted file mode 120000 index 216d889..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWExpectationType.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/KWExpectationType.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWFailure.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWFailure.h deleted file mode 120000 index 2b5a88d..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWFailure.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/KWFailure.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWFormatter.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWFormatter.h deleted file mode 120000 index 234fa84..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWFormatter.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/KWFormatter.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWFutureObject.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWFutureObject.h deleted file mode 120000 index e1e1806..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWFutureObject.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/KWFutureObject.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWGenericMatchEvaluator.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWGenericMatchEvaluator.h deleted file mode 120000 index e47bfc2..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWGenericMatchEvaluator.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Matchers/KWGenericMatchEvaluator.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWGenericMatcher.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWGenericMatcher.h deleted file mode 120000 index ed0db0e..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWGenericMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Matchers/KWGenericMatcher.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWGenericMatchingAdditions.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWGenericMatchingAdditions.h deleted file mode 120000 index 4b296a2..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWGenericMatchingAdditions.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Matchers/KWGenericMatchingAdditions.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWHaveMatcher.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWHaveMatcher.h deleted file mode 120000 index 6603a8d..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWHaveMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Matchers/KWHaveMatcher.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWHaveValueMatcher.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWHaveValueMatcher.h deleted file mode 120000 index aa68353..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWHaveValueMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Matchers/KWHaveValueMatcher.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWInequalityMatcher.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWInequalityMatcher.h deleted file mode 120000 index 563f299..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWInequalityMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Matchers/KWInequalityMatcher.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWIntercept.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWIntercept.h deleted file mode 120000 index 5aab538..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWIntercept.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/NonARC/KWIntercept.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWInvocationCapturer.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWInvocationCapturer.h deleted file mode 120000 index 786c20d..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWInvocationCapturer.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/KWInvocationCapturer.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWItNode.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWItNode.h deleted file mode 120000 index 115be89..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWItNode.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Nodes/KWItNode.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWMatchVerifier.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWMatchVerifier.h deleted file mode 120000 index 741e295..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWMatchVerifier.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Verifiers/KWMatchVerifier.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWMatcher.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWMatcher.h deleted file mode 120000 index 6d1fda1..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/KWMatcher.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWMatcherFactory.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWMatcherFactory.h deleted file mode 120000 index 053ae05..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWMatcherFactory.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/KWMatcherFactory.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWMatchers.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWMatchers.h deleted file mode 120000 index 37dc93d..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWMatchers.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/KWMatchers.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWMatching.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWMatching.h deleted file mode 120000 index 5094f6c..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWMatching.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/KWMatching.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWMessagePattern.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWMessagePattern.h deleted file mode 120000 index 7db1ee2..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWMessagePattern.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/NonARC/KWMessagePattern.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWMessageSpying.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWMessageSpying.h deleted file mode 120000 index f2b7dc0..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWMessageSpying.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/KWMessageSpying.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWMessageTracker.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWMessageTracker.h deleted file mode 120000 index 0529de7..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWMessageTracker.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/KWMessageTracker.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWMock.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWMock.h deleted file mode 120000 index d07edac..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWMock.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Mocking/KWMock.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWNilMatcher.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWNilMatcher.h deleted file mode 120000 index fbe052f..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWNilMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Matchers/KWNilMatcher.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWNull.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWNull.h deleted file mode 120000 index af2cb10..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWNull.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/KWNull.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWObjCUtilities.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWObjCUtilities.h deleted file mode 120000 index f6cc0b9..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWObjCUtilities.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/KWObjCUtilities.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWPendingNode.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWPendingNode.h deleted file mode 120000 index 7ff39e4..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWPendingNode.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Nodes/KWPendingNode.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWProbe.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWProbe.h deleted file mode 120000 index d6cdabb..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWProbe.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/KWProbe.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWProbePoller.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWProbePoller.h deleted file mode 120000 index a1aee4c..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWProbePoller.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/KWProbePoller.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWRaiseMatcher.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWRaiseMatcher.h deleted file mode 120000 index 4f4b4d9..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWRaiseMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Matchers/KWRaiseMatcher.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWReceiveMatcher.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWReceiveMatcher.h deleted file mode 120000 index c7c16f0..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWReceiveMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Matchers/KWReceiveMatcher.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWRegisterMatchersNode.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWRegisterMatchersNode.h deleted file mode 120000 index 0d88f5d..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWRegisterMatchersNode.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Nodes/KWRegisterMatchersNode.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWRegularExpressionPatternMatcher.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWRegularExpressionPatternMatcher.h deleted file mode 120000 index 322e8d1..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWRegularExpressionPatternMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Matchers/KWRegularExpressionPatternMatcher.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWReporting.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWReporting.h deleted file mode 120000 index d220f49..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWReporting.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/KWReporting.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWRespondToSelectorMatcher.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWRespondToSelectorMatcher.h deleted file mode 120000 index 53da1b3..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWRespondToSelectorMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Matchers/KWRespondToSelectorMatcher.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWSpec.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWSpec.h deleted file mode 120000 index b35172e..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWSpec.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/KWSpec.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWStringContainsMatcher.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWStringContainsMatcher.h deleted file mode 120000 index 43c9cd4..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWStringContainsMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Matchers/KWStringContainsMatcher.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWStringPrefixMatcher.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWStringPrefixMatcher.h deleted file mode 120000 index 351d3e7..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWStringPrefixMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Matchers/KWStringPrefixMatcher.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWStringUtilities.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWStringUtilities.h deleted file mode 120000 index e6225dc..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWStringUtilities.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/KWStringUtilities.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWStub.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWStub.h deleted file mode 120000 index 6c8519f..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWStub.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/NonARC/KWStub.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWSymbolicator.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWSymbolicator.h deleted file mode 120000 index 2bc8b59..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWSymbolicator.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/NonARC/KWSymbolicator.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWUserDefinedMatcher.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWUserDefinedMatcher.h deleted file mode 120000 index 241b176..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWUserDefinedMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Matchers/KWUserDefinedMatcher.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWValue.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWValue.h deleted file mode 120000 index f5aabfb..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWValue.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/KWValue.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWVerifying.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWVerifying.h deleted file mode 120000 index 10c41b7..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWVerifying.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Verifiers/KWVerifying.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWWorkarounds.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWWorkarounds.h deleted file mode 120000 index 5394bed..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KWWorkarounds.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/KWWorkarounds.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/Kiwi.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/Kiwi.h deleted file mode 120000 index 90584f1..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/Kiwi.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/Kiwi.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KiwiBlockMacros.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KiwiBlockMacros.h deleted file mode 120000 index c040758..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KiwiBlockMacros.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/KiwiBlockMacros.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KiwiConfiguration.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KiwiConfiguration.h deleted file mode 120000 index cdd209e..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KiwiConfiguration.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/KiwiConfiguration.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KiwiMacros.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KiwiMacros.h deleted file mode 120000 index 936b359..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/KiwiMacros.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/KiwiMacros.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/NSInvocation+KiwiAdditions.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/NSInvocation+KiwiAdditions.h deleted file mode 120000 index 216b70b..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/NSInvocation+KiwiAdditions.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/NSInvocation+KiwiAdditions.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/NSInvocation+OCMAdditions.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/NSInvocation+OCMAdditions.h deleted file mode 120000 index 5d505e9..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/NSInvocation+OCMAdditions.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/NSInvocation+OCMAdditions.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/NSMethodSignature+KiwiAdditions.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/NSMethodSignature+KiwiAdditions.h deleted file mode 120000 index 816f65b..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/NSMethodSignature+KiwiAdditions.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/NSMethodSignature+KiwiAdditions.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/NSNumber+KiwiAdditions.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/NSNumber+KiwiAdditions.h deleted file mode 120000 index aa1be1c..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/NSNumber+KiwiAdditions.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/NSNumber+KiwiAdditions.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/NSObject+KiwiMockAdditions.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/NSObject+KiwiMockAdditions.h deleted file mode 120000 index eba045f..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/NSObject+KiwiMockAdditions.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Mocking/NSObject+KiwiMockAdditions.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/NSObject+KiwiSpyAdditions.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/NSObject+KiwiSpyAdditions.h deleted file mode 120000 index 9746eaf..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/NSObject+KiwiSpyAdditions.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/NSObject+KiwiSpyAdditions.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/NSObject+KiwiStubAdditions.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/NSObject+KiwiStubAdditions.h deleted file mode 120000 index 09dc8ad..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/NSObject+KiwiStubAdditions.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Stubbing/NSObject+KiwiStubAdditions.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/NSObject+KiwiVerifierAdditions.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/NSObject+KiwiVerifierAdditions.h deleted file mode 120000 index 9def95d..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/NSObject+KiwiVerifierAdditions.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/NSObject+KiwiVerifierAdditions.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/NSProxy+KiwiVerifierAdditions.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/NSProxy+KiwiVerifierAdditions.h deleted file mode 120000 index f58050d..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/NSProxy+KiwiVerifierAdditions.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/NSProxy+KiwiVerifierAdditions.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/NSValue+KiwiAdditions.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/NSValue+KiwiAdditions.h deleted file mode 120000 index e411b0c..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/NSValue+KiwiAdditions.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/NSValue+KiwiAdditions.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/SenTestSuite+KiwiAdditions.h b/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/SenTestSuite+KiwiAdditions.h deleted file mode 120000 index 92b67a5..0000000 --- a/Projects/iOS > 6/Pods/BuildHeaders/Kiwi/SenTestSuite+KiwiAdditions.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/SenTestSuite+KiwiAdditions.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/AFNetworking/AFHTTPRequestOperation.h b/Projects/iOS > 6/Pods/Headers/AFNetworking/AFHTTPRequestOperation.h deleted file mode 120000 index d51daed..0000000 --- a/Projects/iOS > 6/Pods/Headers/AFNetworking/AFHTTPRequestOperation.h +++ /dev/null @@ -1 +0,0 @@ -../../AFNetworking/AFNetworking/AFHTTPRequestOperation.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/AFNetworking/AFHTTPRequestOperationManager.h b/Projects/iOS > 6/Pods/Headers/AFNetworking/AFHTTPRequestOperationManager.h deleted file mode 120000 index 6a7fa3a..0000000 --- a/Projects/iOS > 6/Pods/Headers/AFNetworking/AFHTTPRequestOperationManager.h +++ /dev/null @@ -1 +0,0 @@ -../../AFNetworking/AFNetworking/AFHTTPRequestOperationManager.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/AFNetworking/AFHTTPSessionManager.h b/Projects/iOS > 6/Pods/Headers/AFNetworking/AFHTTPSessionManager.h deleted file mode 120000 index dda87e6..0000000 --- a/Projects/iOS > 6/Pods/Headers/AFNetworking/AFHTTPSessionManager.h +++ /dev/null @@ -1 +0,0 @@ -../../AFNetworking/AFNetworking/AFHTTPSessionManager.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/AFNetworking/AFNetworkActivityIndicatorManager.h b/Projects/iOS > 6/Pods/Headers/AFNetworking/AFNetworkActivityIndicatorManager.h deleted file mode 120000 index 2d0d400..0000000 --- a/Projects/iOS > 6/Pods/Headers/AFNetworking/AFNetworkActivityIndicatorManager.h +++ /dev/null @@ -1 +0,0 @@ -../../AFNetworking/UIKit+AFNetworking/AFNetworkActivityIndicatorManager.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/AFNetworking/AFNetworkReachabilityManager.h b/Projects/iOS > 6/Pods/Headers/AFNetworking/AFNetworkReachabilityManager.h deleted file mode 120000 index 14fd177..0000000 --- a/Projects/iOS > 6/Pods/Headers/AFNetworking/AFNetworkReachabilityManager.h +++ /dev/null @@ -1 +0,0 @@ -../../AFNetworking/AFNetworking/AFNetworkReachabilityManager.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/AFNetworking/AFSecurityPolicy.h b/Projects/iOS > 6/Pods/Headers/AFNetworking/AFSecurityPolicy.h deleted file mode 120000 index 6a54dc3..0000000 --- a/Projects/iOS > 6/Pods/Headers/AFNetworking/AFSecurityPolicy.h +++ /dev/null @@ -1 +0,0 @@ -../../AFNetworking/AFNetworking/AFSecurityPolicy.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/AFNetworking/AFURLConnectionOperation.h b/Projects/iOS > 6/Pods/Headers/AFNetworking/AFURLConnectionOperation.h deleted file mode 120000 index 360459d..0000000 --- a/Projects/iOS > 6/Pods/Headers/AFNetworking/AFURLConnectionOperation.h +++ /dev/null @@ -1 +0,0 @@ -../../AFNetworking/AFNetworking/AFURLConnectionOperation.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/AFNetworking/AFURLRequestSerialization.h b/Projects/iOS > 6/Pods/Headers/AFNetworking/AFURLRequestSerialization.h deleted file mode 120000 index 32572ec..0000000 --- a/Projects/iOS > 6/Pods/Headers/AFNetworking/AFURLRequestSerialization.h +++ /dev/null @@ -1 +0,0 @@ -../../AFNetworking/AFNetworking/AFURLRequestSerialization.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/AFNetworking/AFURLResponseSerialization.h b/Projects/iOS > 6/Pods/Headers/AFNetworking/AFURLResponseSerialization.h deleted file mode 120000 index 4b70627..0000000 --- a/Projects/iOS > 6/Pods/Headers/AFNetworking/AFURLResponseSerialization.h +++ /dev/null @@ -1 +0,0 @@ -../../AFNetworking/AFNetworking/AFURLResponseSerialization.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/AFNetworking/AFURLSessionManager.h b/Projects/iOS > 6/Pods/Headers/AFNetworking/AFURLSessionManager.h deleted file mode 120000 index a206011..0000000 --- a/Projects/iOS > 6/Pods/Headers/AFNetworking/AFURLSessionManager.h +++ /dev/null @@ -1 +0,0 @@ -../../AFNetworking/AFNetworking/AFURLSessionManager.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/AFNetworking/UIActivityIndicatorView+AFNetworking.h b/Projects/iOS > 6/Pods/Headers/AFNetworking/UIActivityIndicatorView+AFNetworking.h deleted file mode 120000 index 8634d2d..0000000 --- a/Projects/iOS > 6/Pods/Headers/AFNetworking/UIActivityIndicatorView+AFNetworking.h +++ /dev/null @@ -1 +0,0 @@ -../../AFNetworking/UIKit+AFNetworking/UIActivityIndicatorView+AFNetworking.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/AFNetworking/UIAlertView+AFNetworking.h b/Projects/iOS > 6/Pods/Headers/AFNetworking/UIAlertView+AFNetworking.h deleted file mode 120000 index 3eb67fb..0000000 --- a/Projects/iOS > 6/Pods/Headers/AFNetworking/UIAlertView+AFNetworking.h +++ /dev/null @@ -1 +0,0 @@ -../../AFNetworking/UIKit+AFNetworking/UIAlertView+AFNetworking.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/AFNetworking/UIButton+AFNetworking.h b/Projects/iOS > 6/Pods/Headers/AFNetworking/UIButton+AFNetworking.h deleted file mode 120000 index 32c242d..0000000 --- a/Projects/iOS > 6/Pods/Headers/AFNetworking/UIButton+AFNetworking.h +++ /dev/null @@ -1 +0,0 @@ -../../AFNetworking/UIKit+AFNetworking/UIButton+AFNetworking.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/AFNetworking/UIImageView+AFNetworking.h b/Projects/iOS > 6/Pods/Headers/AFNetworking/UIImageView+AFNetworking.h deleted file mode 120000 index d3fab3c..0000000 --- a/Projects/iOS > 6/Pods/Headers/AFNetworking/UIImageView+AFNetworking.h +++ /dev/null @@ -1 +0,0 @@ -../../AFNetworking/UIKit+AFNetworking/UIImageView+AFNetworking.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/AFNetworking/UIKit+AFNetworking.h b/Projects/iOS > 6/Pods/Headers/AFNetworking/UIKit+AFNetworking.h deleted file mode 120000 index 6d1d448..0000000 --- a/Projects/iOS > 6/Pods/Headers/AFNetworking/UIKit+AFNetworking.h +++ /dev/null @@ -1 +0,0 @@ -../../AFNetworking/UIKit+AFNetworking/UIKit+AFNetworking.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/AFNetworking/UIProgressView+AFNetworking.h b/Projects/iOS > 6/Pods/Headers/AFNetworking/UIProgressView+AFNetworking.h deleted file mode 120000 index f32234c..0000000 --- a/Projects/iOS > 6/Pods/Headers/AFNetworking/UIProgressView+AFNetworking.h +++ /dev/null @@ -1 +0,0 @@ -../../AFNetworking/UIKit+AFNetworking/UIProgressView+AFNetworking.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/AFNetworking/UIWebView+AFNetworking.h b/Projects/iOS > 6/Pods/Headers/AFNetworking/UIWebView+AFNetworking.h deleted file mode 120000 index 776285f..0000000 --- a/Projects/iOS > 6/Pods/Headers/AFNetworking/UIWebView+AFNetworking.h +++ /dev/null @@ -1 +0,0 @@ -../../AFNetworking/UIKit+AFNetworking/UIWebView+AFNetworking.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWAfterAllNode.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWAfterAllNode.h deleted file mode 120000 index 9eeb57f..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWAfterAllNode.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Nodes/KWAfterAllNode.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWAfterEachNode.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWAfterEachNode.h deleted file mode 120000 index b807288..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWAfterEachNode.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Nodes/KWAfterEachNode.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWAny.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWAny.h deleted file mode 120000 index 0d334e7..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWAny.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/KWAny.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWAsyncVerifier.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWAsyncVerifier.h deleted file mode 120000 index 55ca577..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWAsyncVerifier.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Verifiers/KWAsyncVerifier.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWBeBetweenMatcher.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWBeBetweenMatcher.h deleted file mode 120000 index 75f9442..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWBeBetweenMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Matchers/KWBeBetweenMatcher.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWBeEmptyMatcher.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWBeEmptyMatcher.h deleted file mode 120000 index fc8c89a..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWBeEmptyMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Matchers/KWBeEmptyMatcher.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWBeIdenticalToMatcher.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWBeIdenticalToMatcher.h deleted file mode 120000 index 6e8e6be..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWBeIdenticalToMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Matchers/KWBeIdenticalToMatcher.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWBeKindOfClassMatcher.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWBeKindOfClassMatcher.h deleted file mode 120000 index d4170aa..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWBeKindOfClassMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Matchers/KWBeKindOfClassMatcher.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWBeMemberOfClassMatcher.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWBeMemberOfClassMatcher.h deleted file mode 120000 index 9b96c09..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWBeMemberOfClassMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Matchers/KWBeMemberOfClassMatcher.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWBeSubclassOfClassMatcher.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWBeSubclassOfClassMatcher.h deleted file mode 120000 index ce788b7..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWBeSubclassOfClassMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Matchers/KWBeSubclassOfClassMatcher.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWBeTrueMatcher.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWBeTrueMatcher.h deleted file mode 120000 index 6bbe534..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWBeTrueMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Matchers/KWBeTrueMatcher.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWBeWithinMatcher.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWBeWithinMatcher.h deleted file mode 120000 index ab3ad9d..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWBeWithinMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Matchers/KWBeWithinMatcher.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWBeZeroMatcher.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWBeZeroMatcher.h deleted file mode 120000 index 5c6a52d..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWBeZeroMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Matchers/KWBeZeroMatcher.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWBeforeAllNode.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWBeforeAllNode.h deleted file mode 120000 index e50bbfc..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWBeforeAllNode.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Nodes/KWBeforeAllNode.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWBeforeEachNode.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWBeforeEachNode.h deleted file mode 120000 index e25d754..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWBeforeEachNode.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Nodes/KWBeforeEachNode.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWBlock.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWBlock.h deleted file mode 120000 index 0262aa9..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWBlock.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/KWBlock.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWBlockNode.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWBlockNode.h deleted file mode 120000 index 250e21b..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWBlockNode.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Nodes/KWBlockNode.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWBlockRaiseMatcher.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWBlockRaiseMatcher.h deleted file mode 120000 index 0e3150b..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWBlockRaiseMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Matchers/KWBlockRaiseMatcher.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWCallSite.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWCallSite.h deleted file mode 120000 index 693a01b..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWCallSite.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/KWCallSite.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWCaptureSpy.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWCaptureSpy.h deleted file mode 120000 index 54a3ca2..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWCaptureSpy.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/KWCaptureSpy.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWChangeMatcher.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWChangeMatcher.h deleted file mode 120000 index be6e80b..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWChangeMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Matchers/KWChangeMatcher.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWConformToProtocolMatcher.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWConformToProtocolMatcher.h deleted file mode 120000 index 749ed75..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWConformToProtocolMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Matchers/KWConformToProtocolMatcher.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWContainMatcher.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWContainMatcher.h deleted file mode 120000 index 672fd9f..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWContainMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Matchers/KWContainMatcher.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWContainStringMatcher.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWContainStringMatcher.h deleted file mode 120000 index 3ee51f0..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWContainStringMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Matchers/KWContainStringMatcher.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWContextNode.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWContextNode.h deleted file mode 120000 index 7f72f76..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWContextNode.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Nodes/KWContextNode.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWCountType.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWCountType.h deleted file mode 120000 index 1f02227..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWCountType.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/KWCountType.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWDeviceInfo.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWDeviceInfo.h deleted file mode 120000 index 3e3bb0c..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWDeviceInfo.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/KWDeviceInfo.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWEqualMatcher.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWEqualMatcher.h deleted file mode 120000 index e842675..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWEqualMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Matchers/KWEqualMatcher.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWExample.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWExample.h deleted file mode 120000 index 0141492..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWExample.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/KWExample.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWExampleDelegate.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWExampleDelegate.h deleted file mode 120000 index 0e13935..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWExampleDelegate.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/KWExampleDelegate.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWExampleNode.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWExampleNode.h deleted file mode 120000 index 6fd1790..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWExampleNode.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Nodes/KWExampleNode.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWExampleNodeVisitor.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWExampleNodeVisitor.h deleted file mode 120000 index 0347cd9..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWExampleNodeVisitor.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/KWExampleNodeVisitor.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWExampleSuite.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWExampleSuite.h deleted file mode 120000 index 849831b..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWExampleSuite.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/KWExampleSuite.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWExampleSuiteBuilder.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWExampleSuiteBuilder.h deleted file mode 120000 index 84f06e2..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWExampleSuiteBuilder.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/KWExampleSuiteBuilder.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWExistVerifier.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWExistVerifier.h deleted file mode 120000 index 3f0dc32..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWExistVerifier.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Verifiers/KWExistVerifier.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWExpectationType.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWExpectationType.h deleted file mode 120000 index 216d889..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWExpectationType.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/KWExpectationType.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWFailure.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWFailure.h deleted file mode 120000 index 2b5a88d..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWFailure.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/KWFailure.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWFormatter.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWFormatter.h deleted file mode 120000 index 234fa84..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWFormatter.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/KWFormatter.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWFutureObject.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWFutureObject.h deleted file mode 120000 index e1e1806..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWFutureObject.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/KWFutureObject.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWGenericMatchEvaluator.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWGenericMatchEvaluator.h deleted file mode 120000 index e47bfc2..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWGenericMatchEvaluator.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Matchers/KWGenericMatchEvaluator.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWGenericMatcher.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWGenericMatcher.h deleted file mode 120000 index ed0db0e..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWGenericMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Matchers/KWGenericMatcher.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWGenericMatchingAdditions.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWGenericMatchingAdditions.h deleted file mode 120000 index 4b296a2..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWGenericMatchingAdditions.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Matchers/KWGenericMatchingAdditions.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWHaveMatcher.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWHaveMatcher.h deleted file mode 120000 index 6603a8d..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWHaveMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Matchers/KWHaveMatcher.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWHaveValueMatcher.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWHaveValueMatcher.h deleted file mode 120000 index aa68353..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWHaveValueMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Matchers/KWHaveValueMatcher.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWInequalityMatcher.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWInequalityMatcher.h deleted file mode 120000 index 563f299..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWInequalityMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Matchers/KWInequalityMatcher.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWIntercept.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWIntercept.h deleted file mode 120000 index 5aab538..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWIntercept.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/NonARC/KWIntercept.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWInvocationCapturer.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWInvocationCapturer.h deleted file mode 120000 index 786c20d..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWInvocationCapturer.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/KWInvocationCapturer.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWItNode.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWItNode.h deleted file mode 120000 index 115be89..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWItNode.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Nodes/KWItNode.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWMatchVerifier.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWMatchVerifier.h deleted file mode 120000 index 741e295..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWMatchVerifier.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Verifiers/KWMatchVerifier.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWMatcher.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWMatcher.h deleted file mode 120000 index 6d1fda1..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/KWMatcher.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWMatcherFactory.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWMatcherFactory.h deleted file mode 120000 index 053ae05..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWMatcherFactory.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/KWMatcherFactory.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWMatchers.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWMatchers.h deleted file mode 120000 index 37dc93d..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWMatchers.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/KWMatchers.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWMatching.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWMatching.h deleted file mode 120000 index 5094f6c..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWMatching.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/KWMatching.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWMessagePattern.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWMessagePattern.h deleted file mode 120000 index 7db1ee2..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWMessagePattern.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/NonARC/KWMessagePattern.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWMessageSpying.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWMessageSpying.h deleted file mode 120000 index f2b7dc0..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWMessageSpying.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/KWMessageSpying.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWMessageTracker.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWMessageTracker.h deleted file mode 120000 index 0529de7..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWMessageTracker.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/KWMessageTracker.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWMock.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWMock.h deleted file mode 120000 index d07edac..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWMock.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Mocking/KWMock.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWNilMatcher.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWNilMatcher.h deleted file mode 120000 index fbe052f..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWNilMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Matchers/KWNilMatcher.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWNull.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWNull.h deleted file mode 120000 index af2cb10..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWNull.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/KWNull.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWObjCUtilities.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWObjCUtilities.h deleted file mode 120000 index f6cc0b9..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWObjCUtilities.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/KWObjCUtilities.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWPendingNode.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWPendingNode.h deleted file mode 120000 index 7ff39e4..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWPendingNode.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Nodes/KWPendingNode.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWProbe.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWProbe.h deleted file mode 120000 index d6cdabb..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWProbe.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/KWProbe.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWProbePoller.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWProbePoller.h deleted file mode 120000 index a1aee4c..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWProbePoller.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/KWProbePoller.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWRaiseMatcher.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWRaiseMatcher.h deleted file mode 120000 index 4f4b4d9..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWRaiseMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Matchers/KWRaiseMatcher.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWReceiveMatcher.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWReceiveMatcher.h deleted file mode 120000 index c7c16f0..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWReceiveMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Matchers/KWReceiveMatcher.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWRegisterMatchersNode.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWRegisterMatchersNode.h deleted file mode 120000 index 0d88f5d..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWRegisterMatchersNode.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Nodes/KWRegisterMatchersNode.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWRegularExpressionPatternMatcher.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWRegularExpressionPatternMatcher.h deleted file mode 120000 index 322e8d1..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWRegularExpressionPatternMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Matchers/KWRegularExpressionPatternMatcher.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWReporting.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWReporting.h deleted file mode 120000 index d220f49..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWReporting.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/KWReporting.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWRespondToSelectorMatcher.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWRespondToSelectorMatcher.h deleted file mode 120000 index 53da1b3..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWRespondToSelectorMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Matchers/KWRespondToSelectorMatcher.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWSpec.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWSpec.h deleted file mode 120000 index b35172e..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWSpec.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/KWSpec.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWStringContainsMatcher.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWStringContainsMatcher.h deleted file mode 120000 index 43c9cd4..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWStringContainsMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Matchers/KWStringContainsMatcher.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWStringPrefixMatcher.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWStringPrefixMatcher.h deleted file mode 120000 index 351d3e7..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWStringPrefixMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Matchers/KWStringPrefixMatcher.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWStringUtilities.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWStringUtilities.h deleted file mode 120000 index e6225dc..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWStringUtilities.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/KWStringUtilities.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWStub.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWStub.h deleted file mode 120000 index 6c8519f..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWStub.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/NonARC/KWStub.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWSymbolicator.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWSymbolicator.h deleted file mode 120000 index 2bc8b59..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWSymbolicator.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/NonARC/KWSymbolicator.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWUserDefinedMatcher.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWUserDefinedMatcher.h deleted file mode 120000 index 241b176..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWUserDefinedMatcher.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Matchers/KWUserDefinedMatcher.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWValue.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWValue.h deleted file mode 120000 index f5aabfb..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWValue.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/KWValue.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWVerifying.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWVerifying.h deleted file mode 120000 index 10c41b7..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWVerifying.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Verifiers/KWVerifying.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KWWorkarounds.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KWWorkarounds.h deleted file mode 120000 index 5394bed..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KWWorkarounds.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/KWWorkarounds.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/Kiwi.h b/Projects/iOS > 6/Pods/Headers/Kiwi/Kiwi.h deleted file mode 120000 index 90584f1..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/Kiwi.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/Kiwi.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KiwiBlockMacros.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KiwiBlockMacros.h deleted file mode 120000 index c040758..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KiwiBlockMacros.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/KiwiBlockMacros.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KiwiConfiguration.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KiwiConfiguration.h deleted file mode 120000 index cdd209e..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KiwiConfiguration.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/KiwiConfiguration.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/KiwiMacros.h b/Projects/iOS > 6/Pods/Headers/Kiwi/KiwiMacros.h deleted file mode 120000 index 936b359..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/KiwiMacros.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/KiwiMacros.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/NSInvocation+KiwiAdditions.h b/Projects/iOS > 6/Pods/Headers/Kiwi/NSInvocation+KiwiAdditions.h deleted file mode 120000 index 216b70b..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/NSInvocation+KiwiAdditions.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/NSInvocation+KiwiAdditions.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/NSInvocation+OCMAdditions.h b/Projects/iOS > 6/Pods/Headers/Kiwi/NSInvocation+OCMAdditions.h deleted file mode 120000 index 5d505e9..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/NSInvocation+OCMAdditions.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/NSInvocation+OCMAdditions.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/NSMethodSignature+KiwiAdditions.h b/Projects/iOS > 6/Pods/Headers/Kiwi/NSMethodSignature+KiwiAdditions.h deleted file mode 120000 index 816f65b..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/NSMethodSignature+KiwiAdditions.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/NSMethodSignature+KiwiAdditions.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/NSNumber+KiwiAdditions.h b/Projects/iOS > 6/Pods/Headers/Kiwi/NSNumber+KiwiAdditions.h deleted file mode 120000 index aa1be1c..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/NSNumber+KiwiAdditions.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/NSNumber+KiwiAdditions.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/NSObject+KiwiMockAdditions.h b/Projects/iOS > 6/Pods/Headers/Kiwi/NSObject+KiwiMockAdditions.h deleted file mode 120000 index eba045f..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/NSObject+KiwiMockAdditions.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Mocking/NSObject+KiwiMockAdditions.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/NSObject+KiwiSpyAdditions.h b/Projects/iOS > 6/Pods/Headers/Kiwi/NSObject+KiwiSpyAdditions.h deleted file mode 120000 index 9746eaf..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/NSObject+KiwiSpyAdditions.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/NSObject+KiwiSpyAdditions.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/NSObject+KiwiStubAdditions.h b/Projects/iOS > 6/Pods/Headers/Kiwi/NSObject+KiwiStubAdditions.h deleted file mode 120000 index 09dc8ad..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/NSObject+KiwiStubAdditions.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Stubbing/NSObject+KiwiStubAdditions.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/NSObject+KiwiVerifierAdditions.h b/Projects/iOS > 6/Pods/Headers/Kiwi/NSObject+KiwiVerifierAdditions.h deleted file mode 120000 index 9def95d..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/NSObject+KiwiVerifierAdditions.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/NSObject+KiwiVerifierAdditions.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/NSProxy+KiwiVerifierAdditions.h b/Projects/iOS > 6/Pods/Headers/Kiwi/NSProxy+KiwiVerifierAdditions.h deleted file mode 120000 index f58050d..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/NSProxy+KiwiVerifierAdditions.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/NSProxy+KiwiVerifierAdditions.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/NSValue+KiwiAdditions.h b/Projects/iOS > 6/Pods/Headers/Kiwi/NSValue+KiwiAdditions.h deleted file mode 120000 index e411b0c..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/NSValue+KiwiAdditions.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/NSValue+KiwiAdditions.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Headers/Kiwi/SenTestSuite+KiwiAdditions.h b/Projects/iOS > 6/Pods/Headers/Kiwi/SenTestSuite+KiwiAdditions.h deleted file mode 120000 index 92b67a5..0000000 --- a/Projects/iOS > 6/Pods/Headers/Kiwi/SenTestSuite+KiwiAdditions.h +++ /dev/null @@ -1 +0,0 @@ -../../Kiwi/Classes/Core/SenTestSuite+KiwiAdditions.h \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWAny.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWAny.h deleted file mode 100644 index 0e58e60..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWAny.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWAny.m deleted file mode 100644 index 880ae29..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWBlock.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWBlock.h deleted file mode 100644 index 3a14764..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWBlock.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWBlock.m deleted file mode 100644 index 39b6b8d..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWCallSite.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWCallSite.h deleted file mode 100644 index fdb7590..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWCallSite.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWCallSite.m deleted file mode 100644 index 0ab6115..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWCaptureSpy.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWCaptureSpy.h deleted file mode 100644 index 0c875d2..0000000 --- a/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWCaptureSpy.h +++ /dev/null @@ -1,9 +0,0 @@ -#import "KWMessageSpying.h" - -@interface KWCaptureSpy : NSObject - -@property (nonatomic, readonly) id argument; - -- (id)initWithArgumentIndex:(NSUInteger)index; - -@end diff --git a/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWCaptureSpy.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWCaptureSpy.m deleted file mode 100644 index 73df9e1..0000000 --- a/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWCaptureSpy.m +++ /dev/null @@ -1,54 +0,0 @@ -#import "KWCaptureSpy.h" - -#import "KWObjCUtilities.h" -#import "KWValue.h" -#import "NSInvocation+KiwiAdditions.h" -#import "NSMethodSignature+KiwiAdditions.h" - -@interface KWCaptureSpy() - -@property (nonatomic, assign) BOOL argumentCaptured; -@property (nonatomic, assign) NSUInteger argumentIndex; -@property (nonatomic, strong) id argument; - -@end - -@implementation KWCaptureSpy - -- (id)initWithArgumentIndex:(NSUInteger)index { - self = [super init]; - if (self) { - _argumentIndex = index; - _argumentCaptured = NO; - } - return self; -} - -- (id)argument { - if (!_argumentCaptured) { - @throw [NSException exceptionWithName:NSInternalInconsistencyException reason:@"Argument requested has yet to be captured." userInfo:nil]; - } - return _argument; -} - -- (void)object:(id)anObject didReceiveInvocation:(NSInvocation *)anInvocation { - if (!_argumentCaptured) { - NSMethodSignature *signature = [anInvocation methodSignature]; - const char *objCType = [signature messageArgumentTypeAtIndex:_argumentIndex]; - if (KWObjCTypeIsObject(objCType)) { - id argument = nil; - [anInvocation getMessageArgument:&argument atIndex:_argumentIndex]; - if (KWObjCTypeIsBlock(objCType)) { - self.argument = [argument copy]; - } else { - self.argument = argument; - } - } else { - NSData *data = [anInvocation messageArgumentDataAtIndex:_argumentIndex]; - _argument = [KWValue valueWithBytes:[data bytes] objCType:objCType]; - } - _argumentCaptured = YES; - } -} - -@end diff --git a/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWCountType.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWCountType.h deleted file mode 100644 index 2ec5a66..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWDeviceInfo.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWDeviceInfo.h deleted file mode 100644 index 7e0ca36..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWDeviceInfo.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWDeviceInfo.m deleted file mode 100644 index 3abb1ab..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWExample.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWExample.h deleted file mode 100644 index 7d3e14f..0000000 --- a/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWExample.h +++ /dev/null @@ -1,91 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.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; -@class KWSpec; -@class KWMatcherFactory; - -@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:(NSInteger)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; - -@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 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 itWithCallSite(KWCallSite *aCallSite, NSString *aDescription, void (^block)(void)); -void pendingWithCallSite(KWCallSite *aCallSite, NSString *aDescription, void (^block)(void)); - -#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/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWExample.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWExample.m deleted file mode 100644 index 6eb1ab5..0000000 --- a/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWExample.m +++ /dev/null @@ -1,375 +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 "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 - -- (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) { - @throw [NSException exceptionWithName:NSInternalInconsistencyException - reason:@"Trying to add another verifier without specifying a matcher for the previous one." - userInfo:nil]; - } - 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:(NSInteger)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; -} - -#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)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 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 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/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWExampleDelegate.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWExampleDelegate.h deleted file mode 100644 index cdcceab..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWExampleNodeVisitor.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWExampleNodeVisitor.h deleted file mode 100644 index 0e28f30..0000000 --- a/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWExampleNodeVisitor.h +++ /dev/null @@ -1,33 +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 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)visitItNode:(KWItNode *)aNode; -- (void)visitPendingNode:(KWPendingNode *)aNode; - -@end diff --git a/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWExampleSuite.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWExampleSuite.h deleted file mode 100644 index e0f9a03..0000000 --- a/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWExampleSuite.h +++ /dev/null @@ -1,27 +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; -@class SenTestCase; - -@interface KWExampleSuite : NSObject - -- (id)initWithRootNode:(KWContextNode *)contextNode; -- (void)addExample:(KWExample *)example; -- (void)markLastExampleAsLastInContext:(KWContextNode *)context; -- (NSArray *)invocationsForTestCase; -@end - -@interface NSInvocation (KWExampleGroup) -- (void)kw_setExample:(KWExample *)exampleGroup; -- (KWExample *)kw_example; -@end diff --git a/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWExampleSuite.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWExampleSuite.m deleted file mode 100644 index d93c712..0000000 --- a/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWExampleSuite.m +++ /dev/null @@ -1,86 +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; - -@end - -@implementation KWExampleSuite - -- (id)initWithRootNode:(KWContextNode *)contextNode { - self = [super init]; - if (self) { - _rootNode = contextNode; - _examples = [[NSMutableArray 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]; - } -} - -- (NSArray *)invocationsForTestCase { - NSMutableArray *invocations = [NSMutableArray array]; - - // Add a single dummy invocation for each example group - - for (KWExample *exampleGroup in self.examples) { - NSMethodSignature *methodSignature = [NSMethodSignature signatureWithObjCTypes:[KWEncodingForVoidMethod() UTF8String]]; - NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:methodSignature]; - [invocations addObject:invocation]; - [invocation kw_setExample:exampleGroup]; - } - - return invocations; -} - -@end - -#pragma mark - - -// because SenTest 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); -} - -- (KWExample *)kw_example { - return objc_getAssociatedObject(self, kKWINVOCATION_EXAMPLE_GROUP_KEY); -} - -@end - diff --git a/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWExampleSuiteBuilder.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWExampleSuiteBuilder.h deleted file mode 100644 index a2dc30a..0000000 --- a/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWExampleSuiteBuilder.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 "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)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/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWExampleSuiteBuilder.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWExampleSuiteBuilder.m deleted file mode 100644 index f1fc005..0000000 --- a/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWExampleSuiteBuilder.m +++ /dev/null @@ -1,225 +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 "KWCallSite.h" -#import "KWContextNode.h" -#import "KWExample.h" -#import "KWExampleSuite.h" -#import "KWItNode.h" -#import "KWPendingNode.h" -#import "KWRegisterMatchersNode.h" -#import "KWSymbolicator.h" - -@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 { - if ([self.contextNodeStack count] == 0) - [NSException raise:@"KWExampleSuiteBuilderException" format:@"an example group has not been started"]; - - KWContextNode *contextNode = [self.contextNodeStack lastObject]; - KWRegisterMatchersNode *registerMatchersNode = [KWRegisterMatchersNode registerMatchersNodeWithCallSite:aCallSite namespacePrefix:aNamespacePrefix]; - [contextNode setRegisterMatchersNode:registerMatchersNode]; -} - -- (void)setBeforeAllNodeWithCallSite:(KWCallSite *)aCallSite block:(void (^)(void))block { - if ([self.contextNodeStack count] == 0) - [NSException raise:@"KWExampleSuiteBuilderException" format:@"an example group has not been started"]; - - KWContextNode *contextNode = [self.contextNodeStack lastObject]; - KWBeforeAllNode *beforeAllNode = [KWBeforeAllNode beforeAllNodeWithCallSite:aCallSite block:block]; - [contextNode setBeforeAllNode:beforeAllNode]; -} - -- (void)setAfterAllNodeWithCallSite:(KWCallSite *)aCallSite block:(void (^)(void))block { - if ([self.contextNodeStack count] == 0) - [NSException raise:@"KWExampleSuiteBuilderException" format:@"an example group has not been started"]; - - KWContextNode *contextNode = [self.contextNodeStack lastObject]; - KWAfterAllNode *afterAllNode = [KWAfterAllNode afterAllNodeWithCallSite:aCallSite block:block]; - [contextNode setAfterAllNode:afterAllNode]; -} - -- (void)setBeforeEachNodeWithCallSite:(KWCallSite *)aCallSite block:(void (^)(void))block { - if ([self.contextNodeStack count] == 0) - [NSException raise:@"KWExampleSuiteBuilderException" format:@"an example group has not been started"]; - - KWContextNode *contextNode = [self.contextNodeStack lastObject]; - KWBeforeEachNode *beforeEachNode = [KWBeforeEachNode beforeEachNodeWithCallSite:aCallSite block:block]; - [contextNode setBeforeEachNode:beforeEachNode]; -} - -- (void)setAfterEachNodeWithCallSite:(KWCallSite *)aCallSite block:(void (^)(void))block { - if ([self.contextNodeStack count] == 0) - [NSException raise:@"KWExampleSuiteBuilderException" format:@"an example group has not been started"]; - - KWContextNode *contextNode = [self.contextNodeStack lastObject]; - KWAfterEachNode *afterEachNode = [KWAfterEachNode afterEachNodeWithCallSite:aCallSite block:block]; - [contextNode setAfterEachNode:afterEachNode]; -} - -- (void)addItNodeWithCallSite:(KWCallSite *)aCallSite description:(NSString *)aDescription block:(void (^)(void))block { - if ([self.contextNodeStack count] == 0) - [NSException raise:@"KWExampleSuiteBuilderException" format:@"an example group has not been started"]; - - 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 { - if ([self.contextNodeStack count] == 0) - [NSException raise:@"KWExampleSuiteBuilderException" format:@"an example group has not been started"]; - - 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]; -} - -@end diff --git a/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWExpectationType.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWExpectationType.h deleted file mode 100644 index eca75a8..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWFailure.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWFailure.h deleted file mode 100644 index d516d68..0000000 --- a/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWFailure.h +++ /dev/null @@ -1,30 +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; - -#pragma mark - Getting Exception Representations - -- (NSException *)exceptionValue; - -@end diff --git a/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWFailure.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWFailure.m deleted file mode 100644 index 2ffb147..0000000 --- a/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWFailure.m +++ /dev/null @@ -1,55 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KWFailure.h" -#import -#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]; - 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]; - return [self failureWithCallSite:aCallSite message:message]; -} - -#pragma mark - Getting Exception Representations - -- (NSException *)exceptionValue { - NSDictionary *userInfo = nil; - if (self.callSite) { - NSNumber *lineNumber = @(self.callSite.lineNumber); - userInfo = @{SenTestFilenameKey: self.callSite.filename, - SenTestLineNumberKey: lineNumber}; - } - return [NSException exceptionWithName:@"KWFailureException" reason:self.message userInfo:userInfo]; -} - -@end diff --git a/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWFormatter.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWFormatter.h deleted file mode 100644 index 67ca87c..0000000 --- a/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWFormatter.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 KWFormatter : NSObject - -#pragma mark - Getting Descriptions - -+ (NSString *)formatObject:(id)anObject; - -@end diff --git a/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWFormatter.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWFormatter.m deleted file mode 100644 index 40aae85..0000000 --- a/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWFormatter.m +++ /dev/null @@ -1,51 +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]; -} - - - -#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/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWFutureObject.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWFutureObject.h deleted file mode 100644 index f45ff51..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWFutureObject.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWFutureObject.m deleted file mode 100644 index 52c654b..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWInvocationCapturer.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWInvocationCapturer.h deleted file mode 100644 index c02ab0c..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWInvocationCapturer.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWInvocationCapturer.m deleted file mode 100644 index e340972..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWMatcher.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWMatcher.h deleted file mode 100644 index 407cd9d..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWMatcher.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWMatcher.m deleted file mode 100644 index 9b3c481..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWMatcherFactory.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWMatcherFactory.h deleted file mode 100644 index 9e910be..0000000 --- a/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWMatcherFactory.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 "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 - Registering User Defined Matchers - -//- (void)registerUserDefinedMatcherWithBuilder:(KWUserDefinedMatcherBuilder *)aBuilder; - -#pragma mark - Getting Method Signatures - -- (NSMethodSignature *)methodSignatureForMatcherSelector:(SEL)aSelector; - -#pragma mark - Getting Matchers - -- (KWMatcher *)matcherFromInvocation:(NSInvocation *)anInvocation subject:(id)subject; - -@end diff --git a/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWMatcherFactory.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWMatcherFactory.m deleted file mode 100644 index 79885bf..0000000 --- a/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWMatcherFactory.m +++ /dev/null @@ -1,140 +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 - Registering User Defined Matchers - -//- (void)registerUserDefinedMatcherWithBuilder:(KWUserDefinedMatcherBuilder *)aBuilder -//{ -// -//} - -#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/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWMatchers.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWMatchers.h deleted file mode 100644 index 3f1b6e6..0000000 --- a/Projects/iOS > 6/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 *); - -@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/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWMatchers.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWMatchers.m deleted file mode 100644 index ab27895..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWMatching.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWMatching.h deleted file mode 100644 index bf7c81a..0000000 --- a/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWMatching.h +++ /dev/null @@ -1,41 +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; - -@required - -- (BOOL)evaluate; - -#pragma mark - Getting Failure Messages - -- (NSString *)failureMessageForShould; -- (NSString *)failureMessageForShouldNot; - -@end diff --git a/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWMessageSpying.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWMessageSpying.h deleted file mode 100644 index 0ac1aa7..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWMessageTracker.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWMessageTracker.h deleted file mode 100644 index 5bf5f56..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWMessageTracker.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWMessageTracker.m deleted file mode 100644 index 121e374..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWNull.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWNull.h deleted file mode 100644 index 4208a57..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWNull.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWNull.m deleted file mode 100644 index 6d3bf73..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWObjCUtilities.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWObjCUtilities.h deleted file mode 100644 index ea97878..0000000 --- a/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWObjCUtilities.h +++ /dev/null @@ -1,30 +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 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/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWObjCUtilities.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWObjCUtilities.m deleted file mode 100644 index 6873074..0000000 --- a/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWObjCUtilities.m +++ /dev/null @@ -1,100 +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 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) { - NSString *encoding = KWEncodingWithObjCTypes(objCType, @encode(id), @encode(SEL), nil); - NSMethodSignature *signature = [NSMethodSignature signatureWithObjCTypes:[encoding UTF8String]]; - return [signature methodReturnLength]; -} - -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/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWProbe.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWProbe.h deleted file mode 100644 index d635c76..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWProbePoller.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWProbePoller.h deleted file mode 100644 index 543a117..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWProbePoller.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWProbePoller.m deleted file mode 100644 index b411da9..0000000 --- a/Projects/iOS > 6/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, strong) NSDate *timeoutDate; - -@end - -@implementation KWTimeout - -- (id)initWithTimeout:(NSTimeInterval)timeout -{ - self = [super init]; - if (self) { - _timeoutDate = [[NSDate alloc] initWithTimeIntervalSinceNow:timeout]; - } - return self; -} - - -- (BOOL)hasTimedOut { - return [self.timeoutDate timeIntervalSinceDate:[NSDate date]] < 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]; - } - [[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:self.delayInterval]]; - [probe sample]; - } - - return YES; -} - -@end diff --git a/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWReporting.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWReporting.h deleted file mode 100644 index d9e9fc0..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWSpec.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWSpec.h deleted file mode 100644 index f0cc7b5..0000000 --- a/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWSpec.h +++ /dev/null @@ -1,30 +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 : SenTestCase - -#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:(NSInteger)timeout shouldWait:(BOOL)shouldWait; - -#pragma mark - Building Example Groups - -+ (NSString *)file; -+ (void)buildExampleGroups; - -@end diff --git a/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWSpec.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWSpec.m deleted file mode 100644 index 842351a..0000000 --- a/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWSpec.m +++ /dev/null @@ -1,125 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KWSpec.h" -#import -#import "KWExample.h" -#import "KWExampleSuiteBuilder.h" -#import "KWIntercept.h" -#import "KWObjCUtilities.h" -#import "KWStringUtilities.h" -#import "NSMethodSignature+KiwiAdditions.h" -#import "KWFailure.h" -#import "KWExampleSuite.h" - - -@interface KWSpec() - -@property (nonatomic, strong) KWExample *currentExample; - -@end - -@implementation KWSpec - -/* Methods are only implemented by sub-classes */ - -+ (NSString *)file { return nil; } - -+ (void)buildExampleGroups {} - -/* Reported by XCode SenTestingKit Runner before and after invocation of the test - Use camel case to make method friendly names from example description - */ - -- (NSString *)description { - KWExample *currentExample = self.currentExample ? self.currentExample : [[self invocation] kw_example]; - NSString *name = [currentExample 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:@""]; - - return [NSString stringWithFormat:@"-[%@ %@]", NSStringFromClass([self class]), name]; -} - -#pragma mark - Getting Invocations - -/* Called by the SenTestingKit test suite 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]; - }]; - - return [exampleSuite invocationsForTestCase]; -} - -#pragma mark - Running Specs - -- (void)invokeTest { - self.currentExample = [[self invocation] kw_example]; - - @autoreleasepool { - - @try { - [self.currentExample runWithDelegate:self]; - } @catch (NSException *exception) { - [self failWithException:exception]; - } - - [[self invocation] kw_setExample:nil]; - - } -} - -#pragma mark - KWExampleGroupDelegate methods - -- (void)example:(KWExample *)example didFailWithFailure:(KWFailure *)failure { - [self failWithException:[failure exceptionValue]]; -} - -#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:(NSInteger)timeout shouldWait:(BOOL)shouldWait { - return [[[KWExampleSuiteBuilder sharedExampleSuiteBuilder] currentExample] addAsyncVerifierWithExpectationType:anExpectationType callSite:aCallSite timeout:timeout shouldWait: shouldWait]; -} - -@end diff --git a/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWStringUtilities.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWStringUtilities.h deleted file mode 100644 index efd966a..0000000 --- a/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWStringUtilities.h +++ /dev/null @@ -1,18 +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); diff --git a/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWStringUtilities.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWStringUtilities.m deleted file mode 100644 index 87c3103..0000000 --- a/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWStringUtilities.m +++ /dev/null @@ -1,88 +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); -} diff --git a/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWValue.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWValue.h deleted file mode 100644 index 78cbb66..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWValue.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWValue.m deleted file mode 100644 index c131ce2..0000000 --- a/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWValue.m +++ /dev/null @@ -1,348 +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)) - [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/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWWorkarounds.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWWorkarounds.h deleted file mode 100644 index 8242a98..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWWorkarounds.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KWWorkarounds.m deleted file mode 100644 index 2d866bb..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Core/Kiwi.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/Kiwi.h deleted file mode 100644 index f260798..0000000 --- a/Projects/iOS > 6/Pods/Kiwi/Classes/Core/Kiwi.h +++ /dev/null @@ -1,101 +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 "KWRaiseMatcher.h" -#import "KWReceiveMatcher.h" -#import "KWRegisterMatchersNode.h" -#import "KWRegularExpressionPatternMatcher.h" -#import "KWRespondToSelectorMatcher.h" -#import "KWSpec.h" -#import "KWStringUtilities.h" -#import "KWStub.h" -#import "KWUserDefinedMatcher.h" -#import "KWValue.h" -#import "KWVerifying.h" -#import "KWCaptureSpy.h" -#import "KWStringPrefixMatcher.h" -#import "KWStringContainsMatcher.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/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KiwiBlockMacros.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KiwiBlockMacros.h deleted file mode 100644 index 57f0bd8..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KiwiConfiguration.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KiwiConfiguration.h deleted file mode 100644 index 1b54283..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KiwiMacros.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KiwiMacros.h deleted file mode 100644 index 368bfe7..0000000 --- a/Projects/iOS > 6/Pods/Kiwi/Classes/Core/KiwiMacros.h +++ /dev/null @@ -1,98 +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 theObject(objectPtr) [KWFutureObject objectWithObjectPointer:objectPtr] // DEPRECATED -#define theReturnValueOfBlock(block) [KWFutureObject futureObjectWithBlock:block] // DEPRECATED -#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 diff --git a/Projects/iOS > 6/Pods/Kiwi/Classes/Core/NSInvocation+KiwiAdditions.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/NSInvocation+KiwiAdditions.h deleted file mode 100644 index d663b4c..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Core/NSInvocation+KiwiAdditions.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/NSInvocation+KiwiAdditions.m deleted file mode 100644 index 23065a2..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Core/NSInvocation+OCMAdditions.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/NSInvocation+OCMAdditions.h deleted file mode 100644 index 04f22cd..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Core/NSInvocation+OCMAdditions.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/NSInvocation+OCMAdditions.m deleted file mode 100644 index 431537b..0000000 --- a/Projects/iOS > 6/Pods/Kiwi/Classes/Core/NSInvocation+OCMAdditions.m +++ /dev/null @@ -1,337 +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 '{': // 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/Projects/iOS > 6/Pods/Kiwi/Classes/Core/NSMethodSignature+KiwiAdditions.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/NSMethodSignature+KiwiAdditions.h deleted file mode 100644 index e7c44a3..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Core/NSMethodSignature+KiwiAdditions.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/NSMethodSignature+KiwiAdditions.m deleted file mode 100644 index 3d1b887..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Core/NSNumber+KiwiAdditions.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/NSNumber+KiwiAdditions.h deleted file mode 100644 index 1600af8..0000000 --- a/Projects/iOS > 6/Pods/Kiwi/Classes/Core/NSNumber+KiwiAdditions.h +++ /dev/null @@ -1,30 +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)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/Projects/iOS > 6/Pods/Kiwi/Classes/Core/NSNumber+KiwiAdditions.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/NSNumber+KiwiAdditions.m deleted file mode 100644 index f4ebdcb..0000000 --- a/Projects/iOS > 6/Pods/Kiwi/Classes/Core/NSNumber+KiwiAdditions.m +++ /dev/null @@ -1,110 +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(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)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/Projects/iOS > 6/Pods/Kiwi/Classes/Core/NSObject+KiwiSpyAdditions.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/NSObject+KiwiSpyAdditions.h deleted file mode 100644 index ac0427b..0000000 --- a/Projects/iOS > 6/Pods/Kiwi/Classes/Core/NSObject+KiwiSpyAdditions.h +++ /dev/null @@ -1,14 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" - -@class KWCaptureSpy; - -@interface NSObject (KiwiSpyAdditions) -- (KWCaptureSpy *)captureArgument:(SEL)selector atIndex:(NSUInteger)index; -+ (KWCaptureSpy *)captureArgument:(SEL)selector atIndex:(NSUInteger)index; -@end diff --git a/Projects/iOS > 6/Pods/Kiwi/Classes/Core/NSObject+KiwiSpyAdditions.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/NSObject+KiwiSpyAdditions.m deleted file mode 100644 index 321ea8a..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Core/NSObject+KiwiVerifierAdditions.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/NSObject+KiwiVerifierAdditions.h deleted file mode 100644 index 9b5de33..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Core/NSObject+KiwiVerifierAdditions.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/NSObject+KiwiVerifierAdditions.m deleted file mode 100644 index be9fa93..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Core/NSProxy+KiwiVerifierAdditions.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/NSProxy+KiwiVerifierAdditions.h deleted file mode 100644 index 30426fd..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Core/NSProxy+KiwiVerifierAdditions.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/NSProxy+KiwiVerifierAdditions.m deleted file mode 100644 index 027c6e3..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Core/NSValue+KiwiAdditions.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/NSValue+KiwiAdditions.h deleted file mode 100644 index dd96003..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Core/NSValue+KiwiAdditions.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/NSValue+KiwiAdditions.m deleted file mode 100644 index 4ff3c77..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Core/SenTestSuite+KiwiAdditions.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/SenTestSuite+KiwiAdditions.h deleted file mode 100644 index 095823c..0000000 --- a/Projects/iOS > 6/Pods/Kiwi/Classes/Core/SenTestSuite+KiwiAdditions.h +++ /dev/null @@ -1,14 +0,0 @@ -// -// SenTestSuite+KiwiAdditions.h -// Kiwi -// -// Created by Jerry Marino on 5/17/13. -// Copyright (c) 2013 Allen Ding. All rights reserved. -// - -#import - -@interface SenTestSuite (KiwiAdditions) - - -@end diff --git a/Projects/iOS > 6/Pods/Kiwi/Classes/Core/SenTestSuite+KiwiAdditions.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Core/SenTestSuite+KiwiAdditions.m deleted file mode 100644 index 41b9c91..0000000 --- a/Projects/iOS > 6/Pods/Kiwi/Classes/Core/SenTestSuite+KiwiAdditions.m +++ /dev/null @@ -1,55 +0,0 @@ -// -// SenTestSuite+KiwiAdditions.m -// Kiwi -// -// Created by Jerry Marino on 5/17/13. -// Copyright (c) 2013 Allen Ding. All rights reserved. -// - -#import "SenTestSuite+KiwiAdditions.h" -#import -#import -#import -#import "KWExampleSuiteBuilder.h" -#import "KWCallSite.h" -#import "KWSpec.h" - -@implementation SenTestSuite (KiwiAdditions) - -+ (void)initialize { - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - [self patchTestSuiteForTestCaseClassIMP]; - }); -} - -// Patch this otherwise SenTestKit will start running all suites in test bundle -// even if they are empty -+ (void)patchTestSuiteForTestCaseClassIMP { - Class c = object_getClass([SenTestSuite class]); - SEL origSEL = @selector(testSuiteForTestCaseClass:); - SEL newSEL = sel_registerName("__testSuiteForTestCaseClass:"); - - Method origMethod = class_getClassMethod(c, origSEL); - class_addMethod(c, newSEL, method_getImplementation(origMethod), method_getTypeEncoding(origMethod)) ; - - IMP focusedSuite = imp_implementationWithBlock(^(id _self, Class aClass){ -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Warc-performSelector-leaks" - return ([[KWExampleSuiteBuilder sharedExampleSuiteBuilder] isFocused] && ![_self testSuiteClassHasFocus:aClass]) ? nil : (__bridge void *)[_self performSelector:newSEL withObject:aClass]; -#pragma clang diagnostic pop - }); - method_setImplementation(origMethod, focusedSuite); -} - -+ (BOOL)testSuiteClassHasFocus:(Class)aClass { - if (![aClass respondsToSelector:@selector(file)]) - return NO; - - KWCallSite *focusedCallSite = [[KWExampleSuiteBuilder sharedExampleSuiteBuilder] focusedCallSite]; - NSString *fullFilePathOfClass = [aClass performSelector:@selector(file)]; - NSRange rangeOfFileName = [fullFilePathOfClass rangeOfString:focusedCallSite.filename]; - return rangeOfFileName.length != 0; -} - -@end diff --git a/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWBeBetweenMatcher.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWBeBetweenMatcher.h deleted file mode 100644 index fa08c75..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWBeBetweenMatcher.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWBeBetweenMatcher.m deleted file mode 100644 index b33e3a2..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWBeEmptyMatcher.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWBeEmptyMatcher.h deleted file mode 100644 index 540e6dd..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWBeEmptyMatcher.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWBeEmptyMatcher.m deleted file mode 100644 index 8f0194d..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWBeIdenticalToMatcher.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWBeIdenticalToMatcher.h deleted file mode 100644 index 09cc4b6..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWBeIdenticalToMatcher.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWBeIdenticalToMatcher.m deleted file mode 100644 index beb9886..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWBeKindOfClassMatcher.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWBeKindOfClassMatcher.h deleted file mode 100644 index 7e76fb2..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWBeKindOfClassMatcher.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWBeKindOfClassMatcher.m deleted file mode 100644 index 90afc4f..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWBeMemberOfClassMatcher.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWBeMemberOfClassMatcher.h deleted file mode 100644 index fc2fc8d..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWBeMemberOfClassMatcher.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWBeMemberOfClassMatcher.m deleted file mode 100644 index 20f41e9..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWBeSubclassOfClassMatcher.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWBeSubclassOfClassMatcher.h deleted file mode 100644 index fcb4fec..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWBeSubclassOfClassMatcher.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWBeSubclassOfClassMatcher.m deleted file mode 100644 index 90740de..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWBeTrueMatcher.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWBeTrueMatcher.h deleted file mode 100644 index 755a80d..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWBeTrueMatcher.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWBeTrueMatcher.m deleted file mode 100644 index 4a9b01a..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWBeWithinMatcher.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWBeWithinMatcher.h deleted file mode 100644 index fb455e7..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWBeWithinMatcher.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWBeWithinMatcher.m deleted file mode 100644 index f05d060..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWBeZeroMatcher.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWBeZeroMatcher.h deleted file mode 100644 index bdb4dac..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWBeZeroMatcher.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWBeZeroMatcher.m deleted file mode 100644 index 8a9d025..0000000 --- a/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWBeZeroMatcher.m +++ /dev/null @@ -1,44 +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 respondsToSelector:@selector(boolValue)]) - [NSException raise:@"KWMatcherException" format:@"subject does not respond to -numberValue"]; - - return [[self.subject numberValue] isEqualToNumber:@0]; -} - -#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"]; -} - -#pragma mark - Configuring Matchers - -- (void)beZero { -} - -@end diff --git a/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWBlockRaiseMatcher.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWBlockRaiseMatcher.h deleted file mode 100644 index 064d40a..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWBlockRaiseMatcher.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWBlockRaiseMatcher.m deleted file mode 100644 index f4bd79e..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWChangeMatcher.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWChangeMatcher.h deleted file mode 100644 index 89d37d6..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWChangeMatcher.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWChangeMatcher.m deleted file mode 100644 index fb7a376..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWConformToProtocolMatcher.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWConformToProtocolMatcher.h deleted file mode 100644 index d25ba80..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWConformToProtocolMatcher.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWConformToProtocolMatcher.m deleted file mode 100644 index deb8e2a..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWContainMatcher.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWContainMatcher.h deleted file mode 100644 index 6a750da..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWContainMatcher.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWContainMatcher.m deleted file mode 100644 index 499e367..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWContainStringMatcher.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWContainStringMatcher.h deleted file mode 100644 index be850d1..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWContainStringMatcher.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWContainStringMatcher.m deleted file mode 100644 index 19209d1..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWEqualMatcher.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWEqualMatcher.h deleted file mode 100644 index b1ae523..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWEqualMatcher.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWEqualMatcher.m deleted file mode 100644 index 2fa1cf9..0000000 --- a/Projects/iOS > 6/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 formatObject:self.otherSubject], - [KWFormatter formatObject:self.subject]]; -} - -- (NSString *)failureMessageForShouldNot { - return [NSString stringWithFormat:@"expected subject not to equal %@", - [KWFormatter formatObject:self.otherSubject]]; -} - -- (NSString *)description -{ - return [NSString stringWithFormat:@"equal %@", [KWFormatter formatObject:self.otherSubject]]; -} - -#pragma mark - Configuring Matchers - -- (void)equal:(id)anObject { - self.otherSubject = anObject; -} - -@end diff --git a/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWGenericMatchEvaluator.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWGenericMatchEvaluator.h deleted file mode 100644 index c906ab1..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWGenericMatchEvaluator.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWGenericMatchEvaluator.m deleted file mode 100644 index 138a03d..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWGenericMatcher.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWGenericMatcher.h deleted file mode 100644 index be3c7f6..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWGenericMatcher.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWGenericMatcher.m deleted file mode 100644 index 81cc888..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWGenericMatchingAdditions.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWGenericMatchingAdditions.h deleted file mode 100644 index 257f2e9..0000000 --- a/Projects/iOS > 6/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; - -@end - -@interface NSArray (KiwiGenericMatchingAdditions) - -- (BOOL)containsObjectEqualToOrMatching:(id)object; -- (BOOL)containsObjectMatching:(id)matcher; - -@end - -@interface NSSet (KiwiGenericMatchingAdditions) - -- (BOOL)containsObjectEqualToOrMatching:(id)object; - -@end - -@interface NSOrderedSet (KiwiGenericMatchingAdditions) - -- (BOOL)containsObjectEqualToOrMatching:(id)object; - -@end diff --git a/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWGenericMatchingAdditions.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWGenericMatchingAdditions.m deleted file mode 100644 index 37da7dd..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWHaveMatcher.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWHaveMatcher.h deleted file mode 100644 index ae4637d..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWHaveMatcher.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWHaveMatcher.m deleted file mode 100644 index daec83c..0000000 --- a/Projects/iOS > 6/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 = KWEncodingForVoidMethod(); - 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/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWHaveValueMatcher.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWHaveValueMatcher.h deleted file mode 100644 index 73bfccb..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWHaveValueMatcher.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWHaveValueMatcher.m deleted file mode 100644 index 9c6f8a6..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWInequalityMatcher.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWInequalityMatcher.h deleted file mode 100644 index c8fd3d6..0000000 --- a/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWInequalityMatcher.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" - -typedef NS_ENUM(NSUInteger, KWInequalityType) { - KWInequalityTypeLessThan, - KWInequalityTypeLessThanOrEqualTo, - KWInequalityTypeGreaterThan, - KWInequalityTypeGreaterThanOrEqualTo -}; - -@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/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWInequalityMatcher.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWInequalityMatcher.m deleted file mode 100644 index 8c4599d..0000000 --- a/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWInequalityMatcher.m +++ /dev/null @@ -1,102 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KWInequalityMatcher.h" -#import "KWFormatter.h" - -@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/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWNilMatcher.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWNilMatcher.h deleted file mode 100644 index 51f6057..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWNilMatcher.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWNilMatcher.m deleted file mode 100644 index 70c9c31..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWRaiseMatcher.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWRaiseMatcher.h deleted file mode 100644 index 8b163fe..0000000 --- a/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWRaiseMatcher.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 KWRaiseMatcher : KWMatcher - -#pragma mark - Configuring Matchers - -- (void)raiseWhenSent:(SEL)aSelector; -- (void)raiseWithName:(NSString *)aName whenSent:(SEL)aSelector; -- (void)raiseWithReason:(NSString *)aReason whenSent:(SEL)aSelector; -- (void)raiseWithName:(NSString *)aName reason:(NSString *)aReason whenSent:(SEL)aSelector; - -@end diff --git a/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWRaiseMatcher.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWRaiseMatcher.m deleted file mode 100644 index 3cb9878..0000000 --- a/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWRaiseMatcher.m +++ /dev/null @@ -1,108 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KWRaiseMatcher.h" -#import "KWFormatter.h" - -@interface KWRaiseMatcher() - -#pragma mark - Properties - -@property (nonatomic, assign) SEL selector; -@property (nonatomic, strong) NSException *exception; -@property (nonatomic, strong) NSException *actualException; - -@end - -@implementation KWRaiseMatcher - - -#pragma mark - Getting Matcher Strings - -+ (NSArray *)matcherStrings { - return @[@"raiseWhenSent:", - @"raiseWithName:whenSent:", - @"raiseWithReason:whenSent:", - @"raiseWithName:reason:whenSent:"]; -} - -#pragma mark - Matching - -- (BOOL)evaluate { - @try { -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Warc-performSelector-leaks" - [self.subject performSelector:self.selector]; -#pragma clang diagnostic pop - } @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]]; -} - -- (NSString *)description { - return [NSString stringWithFormat:@"raise %@ when sent %@", [[self class] exceptionPhraseWithException:self.exception], NSStringFromSelector(self.selector)]; -} - -#pragma mark - Configuring Matchers - -- (void)raiseWhenSent:(SEL)aSelector { - [self raiseWithName:nil reason:nil whenSent:aSelector]; -} - -- (void)raiseWithName:(NSString *)aName whenSent:(SEL)aSelector { - [self raiseWithName:aName reason:nil whenSent:aSelector]; -} - -- (void)raiseWithReason:(NSString *)aReason whenSent:(SEL)aSelector { - [self raiseWithName:nil reason:aReason whenSent:aSelector]; -} - -- (void)raiseWithName:(NSString *)aName reason:(NSString *)aReason whenSent:(SEL)aSelector { - self.selector = aSelector; - self.exception = [NSException exceptionWithName:aName reason:aReason userInfo:nil]; -} - -@end diff --git a/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWReceiveMatcher.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWReceiveMatcher.h deleted file mode 100644 index fa9cb39..0000000 --- a/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWReceiveMatcher.h +++ /dev/null @@ -1,58 +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; - -#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; -- (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; -- (id)receiveWithCount:(NSUInteger)aCount; -- (id)receiveWithCountAtLeast:(NSUInteger)aCount; -- (id)receiveWithCountAtMost:(NSUInteger)aCount; -- (id)receiveAndReturn:(id)aValue; -- (id)receiveAndReturn:(id)aValue withCount:(NSUInteger)aCount; -- (id)receiveAndReturn:(id)aValue withCountAtLeast:(NSUInteger)aCount; -- (id)receiveAndReturn:(id)aValue withCountAtMost:(NSUInteger)aCount; - -@end diff --git a/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWReceiveMatcher.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWReceiveMatcher.m deleted file mode 100644 index 71e023b..0000000 --- a/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWReceiveMatcher.m +++ /dev/null @@ -1,303 +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:"]; -} - -#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 receiveMessagePattern:messagePattern countType:KWCountTypeExact count:1]; -} - -- (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 receiveMessagePattern:messagePattern andReturn:aValue countType:KWCountTypeExact count:1]; -} - -- (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)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 = KWEncodingForVoidMethod(); - 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]; - NSValue *stubValue = userInfo[StubValueKey]; - KWMessagePattern *messagePattern = [KWMessagePattern messagePatternFromInvocation:anInvocation]; - - if (stubValue != nil) - [verifier receiveMessagePattern:messagePattern andReturn:[stubValue nonretainedObjectValue] 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 receiveMessagePattern:messagePattern countType:KWCountTypeExact count:1]; -} - -- (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 receiveMessagePattern:messagePattern andReturn:aValue countType:KWCountTypeExact count:1]; -} - -- (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: [NSValue valueWithNonretainedObject: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/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWRegularExpressionPatternMatcher.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWRegularExpressionPatternMatcher.h deleted file mode 100644 index 923aa03..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWRegularExpressionPatternMatcher.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWRegularExpressionPatternMatcher.m deleted file mode 100644 index c5c38e3..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWRespondToSelectorMatcher.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWRespondToSelectorMatcher.h deleted file mode 100644 index f91d47a..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWRespondToSelectorMatcher.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWRespondToSelectorMatcher.m deleted file mode 100644 index 3920dd8..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWStringContainsMatcher.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWStringContainsMatcher.h deleted file mode 100644 index c972629..0000000 --- a/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWStringContainsMatcher.h +++ /dev/null @@ -1,20 +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; -- (id)initWithSubstring:(NSString *)aSubstring; -- (BOOL)matches:(id)object; - -@end - -#define hasSubstring(substring) [KWStringContainsMatcher matcherWithSubstring:substring] diff --git a/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWStringContainsMatcher.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWStringContainsMatcher.m deleted file mode 100644 index 6230e81..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWStringPrefixMatcher.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWStringPrefixMatcher.h deleted file mode 100644 index 7c312cc..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWStringPrefixMatcher.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWStringPrefixMatcher.m deleted file mode 100644 index 81c1f89..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWUserDefinedMatcher.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWUserDefinedMatcher.h deleted file mode 100644 index d1d50c7..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWUserDefinedMatcher.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Matchers/KWUserDefinedMatcher.m deleted file mode 100644 index bdb4294..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Mocking/KWMock.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Mocking/KWMock.h deleted file mode 100644 index 8163941..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Mocking/KWMock.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Mocking/KWMock.m deleted file mode 100644 index a86e5d4..0000000 --- a/Projects/iOS > 6/Pods/Kiwi/Classes/Mocking/KWMock.m +++ /dev/null @@ -1,628 +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) NSMutableDictionary *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 = [[NSMutableDictionary alloc] init]; - } - - 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)[aMessagePattern]; - - if (messagePatternSpies == nil) { - messagePatternSpies = [[NSMutableArray alloc] init]; - (self.messageSpies)[aMessagePattern] = messagePatternSpies; - } - NSValue *spyWrapper = [NSValue valueWithNonretainedObject:aSpy]; - - if (![messagePatternSpies containsObject:spyWrapper]) - [messagePatternSpies addObject:spyWrapper]; -} - -- (void)removeMessageSpy:(id)aSpy forMessagePattern:(KWMessagePattern *)aMessagePattern { - NSValue *spyWrapper = [NSValue valueWithNonretainedObject:aSpy]; - NSMutableArray *messagePatternSpies = (self.messageSpies)[aMessagePattern]; - [messagePatternSpies removeObject:spyWrapper]; -} - -#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)[messagePattern]; - - for (NSValue *spyWrapper in spies) { - id spy = [spyWrapper nonretainedObjectValue]; - [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 = KWEncodingForVoidMethod(); - 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/Projects/iOS > 6/Pods/Kiwi/Classes/Mocking/NSObject+KiwiMockAdditions.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Mocking/NSObject+KiwiMockAdditions.h deleted file mode 100644 index 9ecea92..0000000 --- a/Projects/iOS > 6/Pods/Kiwi/Classes/Mocking/NSObject+KiwiMockAdditions.h +++ /dev/null @@ -1,19 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" - -@interface NSObject(KiwiMockAdditions) - -#pragma mark - Creating Mocks - -+ (id)mock; -+ (id)mockWithName:(NSString *)aName; - -+ (id)nullMock; -+ (id)nullMockWithName:(NSString *)aName; - -@end diff --git a/Projects/iOS > 6/Pods/Kiwi/Classes/Mocking/NSObject+KiwiMockAdditions.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Mocking/NSObject+KiwiMockAdditions.m deleted file mode 100644 index 7e7a0cf..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Nodes/KWAfterAllNode.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Nodes/KWAfterAllNode.h deleted file mode 100644 index 421ea5a..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Nodes/KWAfterAllNode.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Nodes/KWAfterAllNode.m deleted file mode 100644 index efb0a03..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Nodes/KWAfterEachNode.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Nodes/KWAfterEachNode.h deleted file mode 100644 index 4e68279..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Nodes/KWAfterEachNode.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Nodes/KWAfterEachNode.m deleted file mode 100644 index e6edd3e..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Nodes/KWBeforeAllNode.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Nodes/KWBeforeAllNode.h deleted file mode 100644 index f5cd2e1..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Nodes/KWBeforeAllNode.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Nodes/KWBeforeAllNode.m deleted file mode 100644 index 41b2e08..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Nodes/KWBeforeEachNode.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Nodes/KWBeforeEachNode.h deleted file mode 100644 index 21c5229..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Nodes/KWBeforeEachNode.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Nodes/KWBeforeEachNode.m deleted file mode 100644 index 8c143e5..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Nodes/KWBlockNode.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Nodes/KWBlockNode.h deleted file mode 100644 index 050ba5c..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Nodes/KWBlockNode.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Nodes/KWBlockNode.m deleted file mode 100644 index 69ffd1f..0000000 --- a/Projects/iOS > 6/Pods/Kiwi/Classes/Nodes/KWBlockNode.m +++ /dev/null @@ -1,28 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KWBlockNode.h" - -@implementation KWBlockNode - -#pragma mark - Initializing - -- (id)initWithCallSite:(KWCallSite *)aCallSite description:(NSString *)aDescription block:(void (^)(void))block { - self = [super init]; - if (self) { - _callSite = aCallSite; - _description = aDescription; - _block = [block copy]; - } - - return self; -} - -- (void)performBlock { - if (self.block != nil) { self.block(); } -} - -@end diff --git a/Projects/iOS > 6/Pods/Kiwi/Classes/Nodes/KWContextNode.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Nodes/KWContextNode.h deleted file mode 100644 index 23ddf33..0000000 --- a/Projects/iOS > 6/Pods/Kiwi/Classes/Nodes/KWContextNode.h +++ /dev/null @@ -1,59 +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 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 (nonatomic, readonly) NSString *description; - -#pragma mark - Managing Nodes - -@property (nonatomic, strong) KWRegisterMatchersNode *registerMatchersNode; -@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) KWContextNode *parentContext; - -@property (nonatomic, assign) BOOL isFocused; - -- (void)addContextNode:(KWContextNode *)aNode; -- (void)addItNode:(KWItNode *)aNode; -- (void)addPendingNode:(KWPendingNode *)aNode; - -- (void)performExample:(KWExample *)example withBlock:(void (^)(void))exampleBlock; - -#pragma mark - Accepting Visitors - -- (void)acceptExampleNodeVisitor:(id)aVisitor; - -@end diff --git a/Projects/iOS > 6/Pods/Kiwi/Classes/Nodes/KWContextNode.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Nodes/KWContextNode.m deleted file mode 100644 index 0b2c17a..0000000 --- a/Projects/iOS > 6/Pods/Kiwi/Classes/Nodes/KWContextNode.m +++ /dev/null @@ -1,122 +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 "KWCallSite.h" -#import "KWContextNode.h" -#import "KWExampleNodeVisitor.h" -#import "KWExample.h" -#import "KWFailure.h" -#import "KWRegisterMatchersNode.h" -#import "KWSymbolicator.h" - -@interface KWContextNode() - -@property (nonatomic, assign) NSUInteger performedExampleCount; - -@end - -@implementation KWContextNode - -#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 alloc] init]; - _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)setRegisterMatchersNode:(KWRegisterMatchersNode *)aNode { - if (self.registerMatchersNode != nil) - [NSException raise:@"KWContextNodeException" format:@"a register matchers node already exists"]; - - _registerMatchersNode = aNode; -} - -- (void)setBeforeEachNode:(KWBeforeEachNode *)aNode { - if (self.beforeEachNode != nil) - [NSException raise:@"KWContextNodeException" format:@"a before each node already exists"]; - - _beforeEachNode = aNode; -} - -- (void)setAfterEachNode:(KWAfterEachNode *)aNode { - if (self.afterEachNode != nil) - [NSException raise:@"KWContextNodeException" format:@"an after each node already exists"]; - - _afterEachNode = aNode; -} - -- (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 { - [self.registerMatchersNode acceptExampleNodeVisitor:example]; - - if (self.performedExampleCount == 0) { - [self.beforeAllNode acceptExampleNodeVisitor:example]; - } - - [self.beforeEachNode acceptExampleNodeVisitor:example]; - - innerExampleBlock(); - - [self.afterEachNode acceptExampleNodeVisitor:example]; - - if ([example isLastInContext:self]) { - [self.afterAllNode acceptExampleNodeVisitor:example]; - } - - } @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]; - } -} - -#pragma mark - Accepting Visitors - -- (void)acceptExampleNodeVisitor:(id)aVisitor { - [aVisitor visitContextNode:self]; -} - -@end diff --git a/Projects/iOS > 6/Pods/Kiwi/Classes/Nodes/KWExampleNode.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Nodes/KWExampleNode.h deleted file mode 100644 index b3fc4dc..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Nodes/KWItNode.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Nodes/KWItNode.h deleted file mode 100644 index 11bcec0..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Nodes/KWItNode.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Nodes/KWItNode.m deleted file mode 100644 index 5e3339d..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Nodes/KWPendingNode.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Nodes/KWPendingNode.h deleted file mode 100644 index f67876e..0000000 --- a/Projects/iOS > 6/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 (nonatomic, readonly) NSString *description; - -@end diff --git a/Projects/iOS > 6/Pods/Kiwi/Classes/Nodes/KWPendingNode.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Nodes/KWPendingNode.m deleted file mode 100644 index 097faf7..0000000 --- a/Projects/iOS > 6/Pods/Kiwi/Classes/Nodes/KWPendingNode.m +++ /dev/null @@ -1,53 +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 - -#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/Projects/iOS > 6/Pods/Kiwi/Classes/Nodes/KWRegisterMatchersNode.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Nodes/KWRegisterMatchersNode.h deleted file mode 100644 index f0ef83a..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Nodes/KWRegisterMatchersNode.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Nodes/KWRegisterMatchersNode.m deleted file mode 100644 index 8e6b1cc..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Stubbing/NSObject+KiwiStubAdditions.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Stubbing/NSObject+KiwiStubAdditions.h deleted file mode 100644 index a5e2566..0000000 --- a/Projects/iOS > 6/Pods/Kiwi/Classes/Stubbing/NSObject+KiwiStubAdditions.h +++ /dev/null @@ -1,52 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "KiwiConfiguration.h" - -@class KWMessagePattern; - -@protocol KWMessageSpying; - -@interface NSObject(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; -+ (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 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; - -+ (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; - -+ (void)addMessageSpy:(id)aSpy forMessagePattern:(KWMessagePattern *)aMessagePattern; -+ (void)removeMessageSpy:(id)aSpy forMessagePattern:(KWMessagePattern *)aMessagePattern; - -@end diff --git a/Projects/iOS > 6/Pods/Kiwi/Classes/Stubbing/NSObject+KiwiStubAdditions.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Stubbing/NSObject+KiwiStubAdditions.m deleted file mode 100644 index 8cded3b..0000000 --- a/Projects/iOS > 6/Pods/Kiwi/Classes/Stubbing/NSObject+KiwiStubAdditions.m +++ /dev/null @@ -1,243 +0,0 @@ -// -// Licensed under the terms in License.txt -// -// Copyright 2010 Allen Ding. All rights reserved. -// - -#import "NSObject+KiwiStubAdditions.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 = KWEncodingForVoidMethod(); - 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 { - 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]; -} - -- (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); -} - -+ (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); -} - -@end diff --git a/Projects/iOS > 6/Pods/Kiwi/Classes/Verifiers/KWAsyncVerifier.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Verifiers/KWAsyncVerifier.h deleted file mode 100644 index dd407c3..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Verifiers/KWAsyncVerifier.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Verifiers/KWAsyncVerifier.m deleted file mode 100644 index 80aaf07..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Verifiers/KWExistVerifier.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Verifiers/KWExistVerifier.h deleted file mode 100644 index 91c0c18..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Verifiers/KWExistVerifier.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Verifiers/KWExistVerifier.m deleted file mode 100644 index 9485a07..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Verifiers/KWMatchVerifier.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Verifiers/KWMatchVerifier.h deleted file mode 100644 index 0fa981a..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/Classes/Verifiers/KWMatchVerifier.m b/Projects/iOS > 6/Pods/Kiwi/Classes/Verifiers/KWMatchVerifier.m deleted file mode 100644 index 1369543..0000000 --- a/Projects/iOS > 6/Pods/Kiwi/Classes/Verifiers/KWMatchVerifier.m +++ /dev/null @@ -1,176 +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 = KWEncodingForVoidMethod(); - 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.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/Projects/iOS > 6/Pods/Kiwi/Classes/Verifiers/KWVerifying.h b/Projects/iOS > 6/Pods/Kiwi/Classes/Verifiers/KWVerifying.h deleted file mode 100644 index d26d3bc..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/License.txt b/Projects/iOS > 6/Pods/Kiwi/License.txt deleted file mode 100644 index 5591081..0000000 --- a/Projects/iOS > 6/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/Projects/iOS > 6/Pods/Kiwi/NonARC/KWIntercept.h b/Projects/iOS > 6/Pods/Kiwi/NonARC/KWIntercept.h deleted file mode 100644 index 5481c80..0000000 --- a/Projects/iOS > 6/Pods/Kiwi/NonARC/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/Projects/iOS > 6/Pods/Kiwi/NonARC/KWIntercept.m b/Projects/iOS > 6/Pods/Kiwi/NonARC/KWIntercept.m deleted file mode 100644 index 5f624ad..0000000 --- a/Projects/iOS > 6/Pods/Kiwi/NonARC/KWIntercept.m +++ /dev/null @@ -1,329 +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"; -static NSMutableDictionary *KWObjectStubs = nil; -static NSMutableDictionary *KWMessageSpies = nil; -static NSMutableArray *KWRestoredObjects = nil; - -#pragma mark - Intercept Enabled Method Implementations - -Class KWRestoreOriginalClass(id anObject); -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) { - return class_getMethodImplementation_stret([NSObject class], @selector(KWNonExistantSelector)); -} - -#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(dealloc), (IMP)KWInterceptedDealloc, "v@:"); - class_addMethod(interceptClass, @selector(class), (IMP)KWInterceptedClass, "#@:"); - 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 - -Class KWRestoreOriginalClass(id anObject) { - Class interceptClass = object_getClass(anObject); - if (KWClassIsInterceptClass(interceptClass)) - { - Class originalClass = class_getSuperclass(interceptClass); - // anObject->isa = originalClass; - object_setClass(anObject, originalClass); - } - return interceptClass; -} - -void KWInterceptedForwardInvocation(id anObject, SEL aSelector, NSInvocation* anInvocation) { - NSValue *key = [NSValue valueWithNonretainedObject:anObject]; - NSMutableDictionary *spyArrayDictionary = KWMessageSpies[key]; - - for (KWMessagePattern *messagePattern in spyArrayDictionary) { - if ([messagePattern matchesInvocation:anInvocation]) { - NSArray *spies = spyArrayDictionary[messagePattern]; - - for (NSValue *spyWrapper in spies) { - id spy = [spyWrapper nonretainedObjectValue]; - [spy object:anObject didReceiveInvocation:anInvocation]; - } - } - } - - NSMutableArray *stubs = KWObjectStubs[key]; - - for (KWStub *stub in stubs) { - if ([stub processInvocation:anInvocation]) - return; - } - - Class interceptClass = KWRestoreOriginalClass(anObject); - [anInvocation invoke]; - // anObject->isa = interceptClass; - object_setClass(anObject, interceptClass); -} - -void KWInterceptedDealloc(id anObject, SEL aSelector) { - NSValue *key = [NSValue valueWithNonretainedObject:anObject]; - [KWMessageSpies removeObjectForKey:key]; - [KWObjectStubs removeObjectForKey:key]; - - KWRestoreOriginalClass(anObject); - [anObject dealloc]; -} - -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 Stubs & Spies - -void KWClearStubsAndSpies(void) { - KWRestoredObjects = [NSMutableArray array]; - KWClearAllMessageSpies(); - KWClearAllObjectStubs(); - KWRestoredObjects = nil; -} - -#pragma mark - Managing Objects Stubs - -void KWAssociateObjectStub(id anObject, KWStub *aStub, BOOL overrideExisting) { - if (KWObjectStubs == nil) - KWObjectStubs = [[NSMutableDictionary alloc] init]; - - NSValue *key = [NSValue valueWithNonretainedObject:anObject]; - NSMutableArray *stubs = KWObjectStubs[key]; - - if (stubs == nil) { - stubs = [[NSMutableArray alloc] init]; - KWObjectStubs[key] = stubs; - [stubs release]; - } - - 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]; -} - -void KWClearObjectStubs(id anObject) { - NSValue *key = [NSValue valueWithNonretainedObject:anObject]; - [KWObjectStubs removeObjectForKey:key]; -} - -void KWClearAllObjectStubs(void) { - for (NSValue *objectKey in KWObjectStubs) { - id stubbedObject = [objectKey nonretainedObjectValue]; - if ([KWRestoredObjects containsObject:stubbedObject]) { - continue; - } - KWRestoreOriginalClass(stubbedObject); - [KWRestoredObjects addObject:stubbedObject]; - } - [KWObjectStubs removeAllObjects]; -} - -#pragma mark - Managing Message Spies - -void KWAssociateMessageSpy(id anObject, id aSpy, KWMessagePattern *aMessagePattern) { - if (KWMessageSpies == nil) - KWMessageSpies = [[NSMutableDictionary alloc] init]; - - NSValue *key = [NSValue valueWithNonretainedObject:anObject]; - NSMutableDictionary *spies = KWMessageSpies[key]; - - if (spies == nil) { - spies = [[NSMutableDictionary alloc] init]; - KWMessageSpies[key] = spies; - [spies release]; - } - - NSMutableArray *messagePatternSpies = spies[aMessagePattern]; - - if (messagePatternSpies == nil) { - messagePatternSpies = [[NSMutableArray alloc] init]; - spies[aMessagePattern] = messagePatternSpies; - [messagePatternSpies release]; - } - - NSValue *spyWrapper = [NSValue valueWithNonretainedObject:aSpy]; - - if ([messagePatternSpies containsObject:spyWrapper]) - return; - - [messagePatternSpies addObject:spyWrapper]; -} - -void KWClearObjectSpy(id anObject, id aSpy, KWMessagePattern *aMessagePattern) { - NSValue *key = [NSValue valueWithNonretainedObject:anObject]; - NSMutableDictionary *spyArrayDictionary = KWMessageSpies[key]; - NSMutableArray *spies = spyArrayDictionary[aMessagePattern]; - NSValue *spyWrapper = [NSValue valueWithNonretainedObject:aSpy]; - [spies removeObject:spyWrapper]; -} - -void KWClearAllMessageSpies(void) { - for (NSValue *objectKey in KWMessageSpies) { - id spiedObject = [objectKey nonretainedObjectValue]; - if ([KWRestoredObjects containsObject:spiedObject]) { - continue; - } - KWRestoreOriginalClass(spiedObject); - [KWRestoredObjects addObject:spiedObject]; - } - [KWMessageSpies removeAllObjects]; -} diff --git a/Projects/iOS > 6/Pods/Kiwi/NonARC/KWMessagePattern.h b/Projects/iOS > 6/Pods/Kiwi/NonARC/KWMessagePattern.h deleted file mode 100644 index a898608..0000000 --- a/Projects/iOS > 6/Pods/Kiwi/NonARC/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/Projects/iOS > 6/Pods/Kiwi/NonARC/KWMessagePattern.m b/Projects/iOS > 6/Pods/Kiwi/NonARC/KWMessagePattern.m deleted file mode 100644 index c17eea9..0000000 --- a/Projects/iOS > 6/Pods/Kiwi/NonARC/KWMessagePattern.m +++ /dev/null @@ -1,225 +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] autorelease]; -} - -+ (id)messagePatternWithSelector:(SEL)aSelector firstArgumentFilter:(id)firstArgumentFilter argumentList:(va_list)argumentList { - return [[[self alloc] initWithSelector:aSelector firstArgumentFilter:firstArgumentFilter argumentList:argumentList] autorelease]; -} - -+ (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]; - id object = nil; - - if (KWObjCTypeIsObject(type)) { - [anInvocation getMessageArgument:&object atIndex:i]; - } else { - NSData *data = [anInvocation messageArgumentDataAtIndex:i]; - object = [KWValue valueWithBytes:[data bytes] objCType:type]; - } - - - if (strcmp(type, "@?") == 0) object = [[object copy] autorelease]; // Converting NSStackBlock to NSMallocBlock - [argumentFilters addObject:(object != nil) ? object : [KWNull null]]; - } - } - - return [self messagePatternWithSelector:[anInvocation selector] argumentFilters:[argumentFilters autorelease]]; -} - -- (void)dealloc { - [argumentFilters release]; - [super dealloc]; -} - -#pragma mark - Copying - -- (id)copyWithZone:(NSZone *)zone { - return [self retain]; -} - -#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 object = nil; - - // Extract message argument into object (wrapping values if neccesary) - if (KWObjCTypeIsObject(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] autorelease]; - 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/Projects/iOS > 6/Pods/Kiwi/NonARC/KWStub.h b/Projects/iOS > 6/Pods/Kiwi/NonARC/KWStub.h deleted file mode 100644 index b16d70e..0000000 --- a/Projects/iOS > 6/Pods/Kiwi/NonARC/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/Projects/iOS > 6/Pods/Kiwi/NonARC/KWStub.m b/Projects/iOS > 6/Pods/Kiwi/NonARC/KWStub.m deleted file mode 100644 index 7a9c5f7..0000000 --- a/Projects/iOS > 6/Pods/Kiwi/NonARC/KWStub.m +++ /dev/null @@ -1,224 +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 retain]; - value = [aValue retain]; - } - - return self; -} - -- (id)initWithMessagePattern:(KWMessagePattern *)aMessagePattern block:(id (^)(NSArray *params))aBlock { - self = [super init]; - if (self) { - messagePattern = [aMessagePattern retain]; - _block = [aBlock copy]; - } - - return self; -} - -- (id)initWithMessagePattern:(KWMessagePattern *)aMessagePattern value:(id)aValue times:(id)times afterThatReturn:(id)aSecondValue { - self = [super init]; - if (self) { - messagePattern = [aMessagePattern retain]; - value = [aValue retain]; - returnValueTimes = [times retain]; - secondValue = [aSecondValue retain]; - } - - 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] autorelease]; -} - -+ (id)stubWithMessagePattern:(KWMessagePattern *)aMessagePattern block:(id (^)(NSArray *params))aBlock { - return [[[self alloc] initWithMessagePattern:aMessagePattern block:aBlock] autorelease]; -} - -+ (id)stubWithMessagePattern:(KWMessagePattern *)aMessagePattern value:(id)aValue times:(id)times afterThatReturn:(id)aSecondValue { - return [[[self alloc] initWithMessagePattern:aMessagePattern value:aValue times:times afterThatReturn:aSecondValue] autorelease]; -} - -- (void)dealloc { - [messagePattern release]; - [value release]; - [returnValueTimes release]; - [secondValue release]; - [_block release]; - [super dealloc]; -} - -#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")) { - [self.value retain]; - } -#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] autorelease]; - - if (arg == nil) - arg = [NSNull null]; - - [args addObject:arg]; - } - - id newValue = self.block(args); - if (newValue != value) { - [value release]; - value = [newValue retain]; - } - - [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/Projects/iOS > 6/Pods/Kiwi/NonARC/KWSymbolicator.h b/Projects/iOS > 6/Pods/Kiwi/NonARC/KWSymbolicator.h deleted file mode 100644 index 452852f..0000000 --- a/Projects/iOS > 6/Pods/Kiwi/NonARC/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/Projects/iOS > 6/Pods/Kiwi/NonARC/KWSymbolicator.m b/Projects/iOS > 6/Pods/Kiwi/NonARC/KWSymbolicator.m deleted file mode 100644 index 7d2275f..0000000 --- a/Projects/iOS > 6/Pods/Kiwi/NonARC/KWSymbolicator.m +++ /dev/null @@ -1,53 +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){ - 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); - } - return 0; -} - -@implementation NSString (KWShellCommand) - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wobjc-method-access" - -+ (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] autorelease]; - [task release]; - return string; -} - -#pragma clang diagnostic pop - -@end diff --git a/Projects/iOS > 6/Pods/Kiwi/Readme.md b/Projects/iOS > 6/Pods/Kiwi/Readme.md deleted file mode 100644 index 9d482f9..0000000 --- a/Projects/iOS > 6/Pods/Kiwi/Readme.md +++ /dev/null @@ -1,36 +0,0 @@ -# Simple BDD for iOS # -[![Build Status](https://travis-ci.org/allending/Kiwi.png?branch=master)](https://travis-ci.org/allending/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/allending/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/allending/kiwi/wiki) - diff --git a/Projects/iOS > 6/Pods/Manifest.lock b/Projects/iOS > 6/Pods/Manifest.lock deleted file mode 100644 index ad5b8ec..0000000 --- a/Projects/iOS > 6/Pods/Manifest.lock +++ /dev/null @@ -1,34 +0,0 @@ -PODS: - - AFNetworking (2.0.3): - - AFNetworking/NSURLConnection - - AFNetworking/NSURLSession - - AFNetworking/Reachability - - AFNetworking/Security - - AFNetworking/Serialization - - AFNetworking/UIKit - - AFNetworking/NSURLConnection (2.0.3): - - AFNetworking/Reachability - - AFNetworking/Security - - AFNetworking/Serialization - - AFNetworking/NSURLSession (2.0.3): - - AFNetworking/NSURLConnection - - AFNetworking/Reachability (2.0.3) - - AFNetworking/Security (2.0.3) - - AFNetworking/Serialization (2.0.3) - - AFNetworking/UIKit (2.0.3): - - AFNetworking/NSURLConnection - - Kiwi (2.2.1): - - Kiwi/ARC - - Kiwi/NonARC - - Kiwi/ARC (2.2.1) - - Kiwi/NonARC (2.2.1) - -DEPENDENCIES: - - AFNetworking (~> 2.0.0) - - Kiwi (= 2.2.1) - -SPEC CHECKSUMS: - AFNetworking: e499052cbf3d743e9bb727bb37adb9dc2547ba15 - Kiwi: e6524ba0eaa1b28af7af146bdee5314b32aa3edb - -COCOAPODS: 0.28.0 diff --git a/Projects/iOS > 6/Pods/Pods-AFNetworking-Private.xcconfig b/Projects/iOS > 6/Pods/Pods-AFNetworking-Private.xcconfig deleted file mode 100644 index 713690b..0000000 --- a/Projects/iOS > 6/Pods/Pods-AFNetworking-Private.xcconfig +++ /dev/null @@ -1,5 +0,0 @@ -#include "Pods-AFNetworking.xcconfig" -GCC_PREPROCESSOR_DEFINITIONS = COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/BuildHeaders" "${PODS_ROOT}/BuildHeaders/AFNetworking" "${PODS_ROOT}/Headers" "${PODS_ROOT}/Headers/AFNetworking" "${PODS_ROOT}/Headers/Kiwi" -OTHER_LDFLAGS = -ObjC ${PODS_AFNETWORKING_OTHER_LDFLAGS} -PODS_ROOT = ${SRCROOT} \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Pods-AFNetworking-dummy.m b/Projects/iOS > 6/Pods/Pods-AFNetworking-dummy.m deleted file mode 100644 index c50a8c6..0000000 --- a/Projects/iOS > 6/Pods/Pods-AFNetworking-dummy.m +++ /dev/null @@ -1,5 +0,0 @@ -#import -@interface PodsDummy_Pods_AFNetworking : NSObject -@end -@implementation PodsDummy_Pods_AFNetworking -@end diff --git a/Projects/iOS > 6/Pods/Pods-AFNetworking-prefix.pch b/Projects/iOS > 6/Pods/Pods-AFNetworking-prefix.pch deleted file mode 100644 index 73f7e08..0000000 --- a/Projects/iOS > 6/Pods/Pods-AFNetworking-prefix.pch +++ /dev/null @@ -1,11 +0,0 @@ -#ifdef __OBJC__ -#import -#endif - -#import "Pods-environment.h" - - - - - - diff --git a/Projects/iOS > 6/Pods/Pods-AFNetworking.xcconfig b/Projects/iOS > 6/Pods/Pods-AFNetworking.xcconfig deleted file mode 100644 index 13e3dff..0000000 --- a/Projects/iOS > 6/Pods/Pods-AFNetworking.xcconfig +++ /dev/null @@ -1 +0,0 @@ -PODS_AFNETWORKING_OTHER_LDFLAGS = -framework CoreGraphics -framework MobileCoreServices -framework Security -framework SystemConfiguration \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Pods-PSUpdateAppTests-Kiwi-Private.xcconfig b/Projects/iOS > 6/Pods/Pods-PSUpdateAppTests-Kiwi-Private.xcconfig deleted file mode 100644 index 153b41c..0000000 --- a/Projects/iOS > 6/Pods/Pods-PSUpdateAppTests-Kiwi-Private.xcconfig +++ /dev/null @@ -1,6 +0,0 @@ -#include "Pods-PSUpdateAppTests-Kiwi.xcconfig" -FRAMEWORK_SEARCH_PATHS = ${PODS_PSUPDATEAPPTESTS_KIWI_FRAMEWORK_SEARCH_PATHS} -GCC_PREPROCESSOR_DEFINITIONS = COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/BuildHeaders" "${PODS_ROOT}/BuildHeaders/Kiwi" "${PODS_ROOT}/Headers" "${PODS_ROOT}/Headers/AFNetworking" "${PODS_ROOT}/Headers/Kiwi" -OTHER_LDFLAGS = -ObjC ${PODS_PSUPDATEAPPTESTS_KIWI_OTHER_LDFLAGS} -PODS_ROOT = ${SRCROOT} \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Pods-PSUpdateAppTests-Kiwi-dummy.m b/Projects/iOS > 6/Pods/Pods-PSUpdateAppTests-Kiwi-dummy.m deleted file mode 100644 index e392f01..0000000 --- a/Projects/iOS > 6/Pods/Pods-PSUpdateAppTests-Kiwi-dummy.m +++ /dev/null @@ -1,5 +0,0 @@ -#import -@interface PodsDummy_Pods_PSUpdateAppTests_Kiwi : NSObject -@end -@implementation PodsDummy_Pods_PSUpdateAppTests_Kiwi -@end diff --git a/Projects/iOS > 6/Pods/Pods-PSUpdateAppTests-Kiwi-prefix.pch b/Projects/iOS > 6/Pods/Pods-PSUpdateAppTests-Kiwi-prefix.pch deleted file mode 100644 index 95d8003..0000000 --- a/Projects/iOS > 6/Pods/Pods-PSUpdateAppTests-Kiwi-prefix.pch +++ /dev/null @@ -1,7 +0,0 @@ -#ifdef __OBJC__ -#import -#endif - -#import "Pods-PSUpdateAppTests-environment.h" - - diff --git a/Projects/iOS > 6/Pods/Pods-PSUpdateAppTests-Kiwi.xcconfig b/Projects/iOS > 6/Pods/Pods-PSUpdateAppTests-Kiwi.xcconfig deleted file mode 100644 index aa612a3..0000000 --- a/Projects/iOS > 6/Pods/Pods-PSUpdateAppTests-Kiwi.xcconfig +++ /dev/null @@ -1,2 +0,0 @@ -PODS_PSUPDATEAPPTESTS_KIWI_FRAMEWORK_SEARCH_PATHS = $(inherited) "$(SDKROOT)/Developer/Library/Frameworks" "$(DEVELOPER_LIBRARY_DIR)/Frameworks" $(inherited) "$(SDKROOT)/Developer/Library/Frameworks" "$(DEVELOPER_LIBRARY_DIR)/Frameworks" $(inherited) "$(SDKROOT)/Developer/Library/Frameworks" "$(DEVELOPER_LIBRARY_DIR)/Frameworks" -PODS_PSUPDATEAPPTESTS_KIWI_OTHER_LDFLAGS = -framework SenTestingKit \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Pods-PSUpdateAppTests-acknowledgements.markdown b/Projects/iOS > 6/Pods/Pods-PSUpdateAppTests-acknowledgements.markdown deleted file mode 100644 index 99a6333..0000000 --- a/Projects/iOS > 6/Pods/Pods-PSUpdateAppTests-acknowledgements.markdown +++ /dev/null @@ -1,34 +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. - -Generated by CocoaPods - http://cocoapods.org diff --git a/Projects/iOS > 6/Pods/Pods-PSUpdateAppTests-acknowledgements.plist b/Projects/iOS > 6/Pods/Pods-PSUpdateAppTests-acknowledgements.plist deleted file mode 100644 index ed67af2..0000000 --- a/Projects/iOS > 6/Pods/Pods-PSUpdateAppTests-acknowledgements.plist +++ /dev/null @@ -1,64 +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. - - Title - Kiwi - Type - PSGroupSpecifier - - - FooterText - Generated by CocoaPods - http://cocoapods.org - Title - - Type - PSGroupSpecifier - - - StringsTable - Acknowledgements - Title - Acknowledgements - - diff --git a/Projects/iOS > 6/Pods/Pods-PSUpdateAppTests-dummy.m b/Projects/iOS > 6/Pods/Pods-PSUpdateAppTests-dummy.m deleted file mode 100644 index 9aaf893..0000000 --- a/Projects/iOS > 6/Pods/Pods-PSUpdateAppTests-dummy.m +++ /dev/null @@ -1,5 +0,0 @@ -#import -@interface PodsDummy_Pods_PSUpdateAppTests : NSObject -@end -@implementation PodsDummy_Pods_PSUpdateAppTests -@end diff --git a/Projects/iOS > 6/Pods/Pods-PSUpdateAppTests-environment.h b/Projects/iOS > 6/Pods/Pods-PSUpdateAppTests-environment.h deleted file mode 100644 index 7baecad..0000000 --- a/Projects/iOS > 6/Pods/Pods-PSUpdateAppTests-environment.h +++ /dev/null @@ -1,26 +0,0 @@ - -// To check if a library is compiled with CocoaPods you -// can use the `COCOAPODS` macro definition which is -// defined in the xcconfigs so it is available in -// headers also when they are imported in the client -// project. - - -// Kiwi -#define COCOAPODS_POD_AVAILABLE_Kiwi -#define COCOAPODS_VERSION_MAJOR_Kiwi 2 -#define COCOAPODS_VERSION_MINOR_Kiwi 2 -#define COCOAPODS_VERSION_PATCH_Kiwi 1 - -// Kiwi/ARC -#define COCOAPODS_POD_AVAILABLE_Kiwi_ARC -#define COCOAPODS_VERSION_MAJOR_Kiwi_ARC 2 -#define COCOAPODS_VERSION_MINOR_Kiwi_ARC 2 -#define COCOAPODS_VERSION_PATCH_Kiwi_ARC 1 - -// Kiwi/NonARC -#define COCOAPODS_POD_AVAILABLE_Kiwi_NonARC -#define COCOAPODS_VERSION_MAJOR_Kiwi_NonARC 2 -#define COCOAPODS_VERSION_MINOR_Kiwi_NonARC 2 -#define COCOAPODS_VERSION_PATCH_Kiwi_NonARC 1 - diff --git a/Projects/iOS > 6/Pods/Pods-PSUpdateAppTests-resources.sh b/Projects/iOS > 6/Pods/Pods-PSUpdateAppTests-resources.sh deleted file mode 100755 index 39c2549..0000000 --- a/Projects/iOS > 6/Pods/Pods-PSUpdateAppTests-resources.sh +++ /dev/null @@ -1,68 +0,0 @@ -#!/bin/sh -set -e - -RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt -> "$RESOURCES_TO_COPY" - -install_resource() -{ - case $1 in - *.storyboard) - echo "ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .storyboard`.storyboardc ${PODS_ROOT}/$1 --sdk ${SDKROOT}" - ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .storyboard`.storyboardc" "${PODS_ROOT}/$1" --sdk "${SDKROOT}" - ;; - *.xib) - echo "ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .xib`.nib ${PODS_ROOT}/$1 --sdk ${SDKROOT}" - ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .xib`.nib" "${PODS_ROOT}/$1" --sdk "${SDKROOT}" - ;; - *.framework) - echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - echo "rsync -av ${PODS_ROOT}/$1 ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - rsync -av "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - ;; - *.xcdatamodel) - echo "xcrun momc \"${PODS_ROOT}/$1\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1"`.mom\"" - xcrun momc "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcdatamodel`.mom" - ;; - *.xcdatamodeld) - echo "xcrun momc \"${PODS_ROOT}/$1\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcdatamodeld`.momd\"" - xcrun momc "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcdatamodeld`.momd" - ;; - *.xcassets) - ;; - /*) - echo "$1" - echo "$1" >> "$RESOURCES_TO_COPY" - ;; - *) - echo "${PODS_ROOT}/$1" - echo "${PODS_ROOT}/$1" >> "$RESOURCES_TO_COPY" - ;; - esac -} - -rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" -if [[ "${ACTION}" == "install" ]]; then - 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` ] && [ `find . -name '*.xcassets' | wc -l` -ne 0 ] -then - 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" - ;; - *) - TARGET_DEVICE_ARGS="--target-device mac" - ;; - esac - find "${PWD}" -name "*.xcassets" -print0 | xargs -0 actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${IPHONEOS_DEPLOYMENT_TARGET}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" -fi diff --git a/Projects/iOS > 6/Pods/Pods-PSUpdateAppTests.xcconfig b/Projects/iOS > 6/Pods/Pods-PSUpdateAppTests.xcconfig deleted file mode 100644 index 02d14c1..0000000 --- a/Projects/iOS > 6/Pods/Pods-PSUpdateAppTests.xcconfig +++ /dev/null @@ -1,5 +0,0 @@ -FRAMEWORK_SEARCH_PATHS = $(inherited) "$(SDKROOT)/Developer/Library/Frameworks" "$(DEVELOPER_LIBRARY_DIR)/Frameworks" $(inherited) "$(SDKROOT)/Developer/Library/Frameworks" "$(DEVELOPER_LIBRARY_DIR)/Frameworks" $(inherited) "$(SDKROOT)/Developer/Library/Frameworks" "$(DEVELOPER_LIBRARY_DIR)/Frameworks" -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers" "${PODS_ROOT}/Headers/AFNetworking" "${PODS_ROOT}/Headers/Kiwi" -OTHER_LDFLAGS = -ObjC -framework SenTestingKit -PODS_ROOT = ${SRCROOT}/Pods \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Pods-acknowledgements.markdown b/Projects/iOS > 6/Pods/Pods-acknowledgements.markdown deleted file mode 100644 index b62c39d..0000000 --- a/Projects/iOS > 6/Pods/Pods-acknowledgements.markdown +++ /dev/null @@ -1,26 +0,0 @@ -# Acknowledgements -This application makes use of the following third party libraries: - -## AFNetworking - -Copyright (c) 2013 AFNetworking (http://afnetworking.com/) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - -Generated by CocoaPods - http://cocoapods.org diff --git a/Projects/iOS > 6/Pods/Pods-acknowledgements.plist b/Projects/iOS > 6/Pods/Pods-acknowledgements.plist deleted file mode 100644 index ccba254..0000000 --- a/Projects/iOS > 6/Pods/Pods-acknowledgements.plist +++ /dev/null @@ -1,56 +0,0 @@ - - - - - PreferenceSpecifiers - - - FooterText - This application makes use of the following third party libraries: - Title - Acknowledgements - Type - PSGroupSpecifier - - - FooterText - Copyright (c) 2013 AFNetworking (http://afnetworking.com/) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - - Title - AFNetworking - Type - PSGroupSpecifier - - - FooterText - Generated by CocoaPods - http://cocoapods.org - Title - - Type - PSGroupSpecifier - - - StringsTable - Acknowledgements - Title - Acknowledgements - - diff --git a/Projects/iOS > 6/Pods/Pods-dummy.m b/Projects/iOS > 6/Pods/Pods-dummy.m deleted file mode 100644 index ade64bd..0000000 --- a/Projects/iOS > 6/Pods/Pods-dummy.m +++ /dev/null @@ -1,5 +0,0 @@ -#import -@interface PodsDummy_Pods : NSObject -@end -@implementation PodsDummy_Pods -@end diff --git a/Projects/iOS > 6/Pods/Pods-environment.h b/Projects/iOS > 6/Pods/Pods-environment.h deleted file mode 100644 index fac4284..0000000 --- a/Projects/iOS > 6/Pods/Pods-environment.h +++ /dev/null @@ -1,50 +0,0 @@ - -// To check if a library is compiled with CocoaPods you -// can use the `COCOAPODS` macro definition which is -// defined in the xcconfigs so it is available in -// headers also when they are imported in the client -// project. - - -// AFNetworking -#define COCOAPODS_POD_AVAILABLE_AFNetworking -#define COCOAPODS_VERSION_MAJOR_AFNetworking 2 -#define COCOAPODS_VERSION_MINOR_AFNetworking 0 -#define COCOAPODS_VERSION_PATCH_AFNetworking 3 - -// AFNetworking/NSURLConnection -#define COCOAPODS_POD_AVAILABLE_AFNetworking_NSURLConnection -#define COCOAPODS_VERSION_MAJOR_AFNetworking_NSURLConnection 2 -#define COCOAPODS_VERSION_MINOR_AFNetworking_NSURLConnection 0 -#define COCOAPODS_VERSION_PATCH_AFNetworking_NSURLConnection 3 - -// AFNetworking/NSURLSession -#define COCOAPODS_POD_AVAILABLE_AFNetworking_NSURLSession -#define COCOAPODS_VERSION_MAJOR_AFNetworking_NSURLSession 2 -#define COCOAPODS_VERSION_MINOR_AFNetworking_NSURLSession 0 -#define COCOAPODS_VERSION_PATCH_AFNetworking_NSURLSession 3 - -// AFNetworking/Reachability -#define COCOAPODS_POD_AVAILABLE_AFNetworking_Reachability -#define COCOAPODS_VERSION_MAJOR_AFNetworking_Reachability 2 -#define COCOAPODS_VERSION_MINOR_AFNetworking_Reachability 0 -#define COCOAPODS_VERSION_PATCH_AFNetworking_Reachability 3 - -// AFNetworking/Security -#define COCOAPODS_POD_AVAILABLE_AFNetworking_Security -#define COCOAPODS_VERSION_MAJOR_AFNetworking_Security 2 -#define COCOAPODS_VERSION_MINOR_AFNetworking_Security 0 -#define COCOAPODS_VERSION_PATCH_AFNetworking_Security 3 - -// AFNetworking/Serialization -#define COCOAPODS_POD_AVAILABLE_AFNetworking_Serialization -#define COCOAPODS_VERSION_MAJOR_AFNetworking_Serialization 2 -#define COCOAPODS_VERSION_MINOR_AFNetworking_Serialization 0 -#define COCOAPODS_VERSION_PATCH_AFNetworking_Serialization 3 - -// AFNetworking/UIKit -#define COCOAPODS_POD_AVAILABLE_AFNetworking_UIKit -#define COCOAPODS_VERSION_MAJOR_AFNetworking_UIKit 2 -#define COCOAPODS_VERSION_MINOR_AFNetworking_UIKit 0 -#define COCOAPODS_VERSION_PATCH_AFNetworking_UIKit 3 - diff --git a/Projects/iOS > 6/Pods/Pods-resources.sh b/Projects/iOS > 6/Pods/Pods-resources.sh deleted file mode 100755 index 39c2549..0000000 --- a/Projects/iOS > 6/Pods/Pods-resources.sh +++ /dev/null @@ -1,68 +0,0 @@ -#!/bin/sh -set -e - -RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt -> "$RESOURCES_TO_COPY" - -install_resource() -{ - case $1 in - *.storyboard) - echo "ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .storyboard`.storyboardc ${PODS_ROOT}/$1 --sdk ${SDKROOT}" - ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .storyboard`.storyboardc" "${PODS_ROOT}/$1" --sdk "${SDKROOT}" - ;; - *.xib) - echo "ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .xib`.nib ${PODS_ROOT}/$1 --sdk ${SDKROOT}" - ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .xib`.nib" "${PODS_ROOT}/$1" --sdk "${SDKROOT}" - ;; - *.framework) - echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - echo "rsync -av ${PODS_ROOT}/$1 ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - rsync -av "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - ;; - *.xcdatamodel) - echo "xcrun momc \"${PODS_ROOT}/$1\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1"`.mom\"" - xcrun momc "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcdatamodel`.mom" - ;; - *.xcdatamodeld) - echo "xcrun momc \"${PODS_ROOT}/$1\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcdatamodeld`.momd\"" - xcrun momc "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcdatamodeld`.momd" - ;; - *.xcassets) - ;; - /*) - echo "$1" - echo "$1" >> "$RESOURCES_TO_COPY" - ;; - *) - echo "${PODS_ROOT}/$1" - echo "${PODS_ROOT}/$1" >> "$RESOURCES_TO_COPY" - ;; - esac -} - -rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" -if [[ "${ACTION}" == "install" ]]; then - 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` ] && [ `find . -name '*.xcassets' | wc -l` -ne 0 ] -then - 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" - ;; - *) - TARGET_DEVICE_ARGS="--target-device mac" - ;; - esac - find "${PWD}" -name "*.xcassets" -print0 | xargs -0 actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${IPHONEOS_DEPLOYMENT_TARGET}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" -fi diff --git a/Projects/iOS > 6/Pods/Pods.xcconfig b/Projects/iOS > 6/Pods/Pods.xcconfig deleted file mode 100644 index c7c47ea..0000000 --- a/Projects/iOS > 6/Pods/Pods.xcconfig +++ /dev/null @@ -1,4 +0,0 @@ -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers" "${PODS_ROOT}/Headers/AFNetworking" "${PODS_ROOT}/Headers/Kiwi" -OTHER_LDFLAGS = -ObjC -framework CoreGraphics -framework MobileCoreServices -framework Security -framework SystemConfiguration -PODS_ROOT = ${SRCROOT}/Pods \ No newline at end of file diff --git a/Projects/iOS > 6/Pods/Pods.xcodeproj/project.pbxproj b/Projects/iOS > 6/Pods/Pods.xcodeproj/project.pbxproj deleted file mode 100644 index bcf9de6..0000000 --- a/Projects/iOS > 6/Pods/Pods.xcodeproj/project.pbxproj +++ /dev/null @@ -1,7228 +0,0 @@ - - - - - archiveVersion - 1 - classes - - objectVersion - 46 - objects - - 00558C319DCD4617BF86675B - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWRespondToSelectorMatcher.h - path - Classes/Matchers/KWRespondToSelectorMatcher.h - sourceTree - <group> - - 00BF94B769BD4A15805DFFA5 - - buildActionMask - 2147483647 - files - - 192761F0ACD64C408916A793 - DCB410C1F4C74C21A58B2721 - AAED2ABC70094AE5AC441AA9 - 11D28F20DB9643988530EB08 - 332B7C7336114B2E894C021D - 2ABCB2311D0C4A6091B4EB23 - 9808E5CD68D4415799A575FD - D9DFC23071FE40F9AE71F80A - 17F3D49DF3E14B66B7443373 - 2A4AB24EC5B64A26A8D15861 - 75A3FB2688724E13AF72CAD4 - 029AAFF59E55442E981484D9 - 982172A7ECC34CCA821FF9C1 - BCD770E353E249A2931D7438 - 93AC7FC06774414AA43B1401 - AF77E0AC5AE4473BB7A75422 - 16165DE9E79F46B189DF4C80 - 5EAAE6694C3940AE95F2C1F3 - 9162FCCF5299425682C7F2EF - 312FC9768E384E7CBF6F3001 - D55F0B48F993439D853893AA - EA1A93532A864AD98FE53654 - 11B48211F8F54DBBB627D299 - 5FA20AE8D8194F1AB559B6FF - 4C021A00238541D28D75108C - A93CF63F402C443CB60DDE65 - 817B01CC79CA41D3AA0AE576 - 46E5F285A49B4493AFFA0F18 - ADB242D644CA4AAF92EC8A74 - 1CD963AF2C864CD6B070C819 - DDC37B3DA6BC4146A5D4F9AE - 28B484C8BF5D4F6AB55A0ABE - E77E2F4D9049425180C13B3D - B5E96C1C40004FB69CE30EE7 - C488A919A9344E1CB32664D9 - FB3671F7E2CA45928EFAF896 - A0FAF582068840938865BB97 - 87B76AFA5B14423C87AA7905 - B2FCA6188F7149098404E458 - 6A63A44263E641D6B5845DB8 - 83E2491427554279954B726A - AE375EE7CF10470FA4730E60 - 6101511A409143589539AEF7 - 8ED76576067347DA9603DE00 - 673D6FC61CE847BF895CE3B1 - D69E26A26ABB425D968BD233 - 8A82D444826D44BEB46F9679 - 624FB15FB5CD49509A059F09 - 3249D4D2D9F646D69290790F - E09764A7F2384BD19D108BE4 - 81C6F800A94A4A1BB4A0E044 - C5D805E79E8F4C6D8C176A3F - DADED8C3CD434460A858F840 - 2D81F9D6DB7640C0982B139C - 0DCA9D7C7A434DADB30AE69A - 1CE26D83D79544829E0CEDD7 - 29B1F36D5B734FB8A3A88497 - 58286F85BA704B918273EC48 - 1CE091BAD2AD430594BA8133 - 10BD603794834850B1489996 - CDB33416F4B54754B275EAEC - 80C9CB9E16334B6FBCD4FC9C - F32B1FDC49DA4EDFA3B13D5F - 70F36FDA70674463A857ECF1 - 025F5892942C4AFA8B1E9CDF - BB79E9A3F8484954AD38636B - B1DE9ED0DC9746C7A7F772E4 - A8C0870215854A4D96A4FB35 - 49FCC007D61840F18C8C10C5 - C3349A319EA54F4C9A0140CE - 4A370D6FD55A4BF6B375F8F6 - B4EAA19B18EE46D6BFE981D8 - E06B9002836846C19DF48F42 - 1072329A8836474EB515C457 - C4EA22120733450DB49F19B1 - E1EF021CE27E4974BEF8A1A8 - 1086BCC8B6664BD786A87257 - 99334B70060E4BF4AD068C71 - 9C430CC8D6AF47D39CF0D90E - 07133313226E485E9F7A9332 - C0C21F37DF344365BAEF2771 - 03165749E5794F5CAFF320C7 - 3EBC7C7F52AB4BF4A50DB955 - DA15A66CD2924D55B611DB9C - 8A8FB922E9E7448880344DEA - 2B13C689D6C14CCABE51C9D4 - 2D37049B1F994FDA8AC4D850 - C851EA78016C4BE48B618325 - 10A9207F715E4886B2D2FF9D - CD4AE99F51DF4218AD37B15F - 5D18FBD53CE940ACA04143FC - 0B5E74C6E75B4E6587F92E0B - 7F81F65A34774FD2B4D4B3D4 - 03322B3740C14893AC97FA60 - - isa - PBXHeadersBuildPhase - runOnlyForDeploymentPostprocessing - 0 - - 016953AA9BEF44DD8F2AFBEF - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - text.script.sh - path - Pods-PSUpdateAppTests-resources.sh - sourceTree - <group> - - 0213002AFEAC4955B63C2532 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - KWPendingNode.m - path - Classes/Nodes/KWPendingNode.m - sourceTree - <group> - - 02451115C29446E78F6259ED - - baseConfigurationReference - 30AD1BFF540F4491B6F8B064 - buildSettings - - ALWAYS_SEARCH_USER_PATHS - NO - ARCHS - $(ARCHS_STANDARD_INCLUDING_64_BIT) - COPY_PHASE_STRIP - NO - DSTROOT - /tmp/xcodeproj.dst - GCC_C_LANGUAGE_STANDARD - gnu99 - GCC_DYNAMIC_NO_PIC - NO - GCC_OPTIMIZATION_LEVEL - 0 - GCC_PRECOMPILE_PREFIX_HEADER - YES - GCC_PREFIX_HEADER - Pods-PSUpdateAppTests-Kiwi-prefix.pch - GCC_PREPROCESSOR_DEFINITIONS - - DEBUG=1 - $(inherited) - - GCC_SYMBOLS_PRIVATE_EXTERN - NO - GCC_VERSION - com.apple.compilers.llvm.clang.1_0 - INSTALL_PATH - $(BUILT_PRODUCTS_DIR) - IPHONEOS_DEPLOYMENT_TARGET - 7.0 - OTHER_LDFLAGS - - PRODUCT_NAME - $(TARGET_NAME) - PUBLIC_HEADERS_FOLDER_PATH - $(TARGET_NAME) - SDKROOT - iphoneos - SKIP_INSTALL - YES - - isa - XCBuildConfiguration - name - Debug - - 025F5892942C4AFA8B1E9CDF - - fileRef - FC504D1D2A99400594A36592 - isa - PBXBuildFile - - 029AAFF59E55442E981484D9 - - fileRef - 0A3BD13619764BAA979534F7 - isa - PBXBuildFile - - 02F6D0127AB44894A6B387DF - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - KWGenericMatchingAdditions.m - path - Classes/Matchers/KWGenericMatchingAdditions.m - sourceTree - <group> - - 03165749E5794F5CAFF320C7 - - fileRef - AFFADC5D0E06424B966BFAAE - isa - PBXBuildFile - - 03322B3740C14893AC97FA60 - - fileRef - 4E4094BA0F2D498697E92057 - isa - PBXBuildFile - - 0338BA0498CA47EAB1D6419E - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - path - Pods-dummy.m - sourceTree - <group> - - 0545ABD9907C4286B9AF8715 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWGenericMatcher.h - path - Classes/Matchers/KWGenericMatcher.h - sourceTree - <group> - - 07133313226E485E9F7A9332 - - fileRef - 407DDED59A814DF980BFEF30 - isa - PBXBuildFile - - 087C517CB8364B81A1E6C2CE - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - KWStringContainsMatcher.m - path - Classes/Matchers/KWStringContainsMatcher.m - sourceTree - <group> - - 0892C159348D428CAFDE3AA7 - - fileRef - 78BF36739DBA4AF28891ED23 - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc - - - 0940EF67960846CC99556B07 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - KWBeSubclassOfClassMatcher.m - path - Classes/Matchers/KWBeSubclassOfClassMatcher.m - sourceTree - <group> - - 09B4397CCF95469F9BBDA7CB - - children - - E387438E7A97429390C0C7A8 - DE198B0571704603A138C469 - 45666198DA614B789E27ED39 - 0338BA0498CA47EAB1D6419E - 5196F813E6E0416DB2186665 - 12BDB32D66DC4DFDAFD2D86E - - isa - PBXGroup - name - Pods - sourceTree - <group> - - 09FF954C44564CA38B4134BA - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWContainMatcher.h - path - Classes/Matchers/KWContainMatcher.h - sourceTree - <group> - - 0A3BD13619764BAA979534F7 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWBeWithinMatcher.h - path - Classes/Matchers/KWBeWithinMatcher.h - sourceTree - <group> - - 0A8D78739A704A27B8854A7E - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWInvocationCapturer.h - path - Classes/Core/KWInvocationCapturer.h - sourceTree - <group> - - 0B5E74C6E75B4E6587F92E0B - - fileRef - 15D4EFF074D34DB38DB6C581 - isa - PBXBuildFile - - 0B7F143BE5AC47E99F5F5C6F - - fileRef - C2DC5F5FCD1E4FB8BF7DDE29 - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc - - - 0BD59B538D9940CCAD60A265 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - UIButton+AFNetworking.m - path - UIKit+AFNetworking/UIButton+AFNetworking.m - sourceTree - <group> - - 0C695EB9931C47968F456ACC - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWBeTrueMatcher.h - path - Classes/Matchers/KWBeTrueMatcher.h - sourceTree - <group> - - 0DCA9D7C7A434DADB30AE69A - - fileRef - 1C467A53E366438DAB782936 - isa - PBXBuildFile - - 0E9FB286BC6E4A6792ED7F0B - - fileRef - 0FC0C88004244571BF5E4CC5 - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - 0EC5FE0E19B949C3AC891677 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - NSObject+KiwiStubAdditions.m - path - Classes/Stubbing/NSObject+KiwiStubAdditions.m - sourceTree - <group> - - 0F3C181425324428A97774C1 - - fileRef - 76F22D5840F040A5BB31DE54 - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - 0FC0C88004244571BF5E4CC5 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - KWRaiseMatcher.m - path - Classes/Matchers/KWRaiseMatcher.m - sourceTree - <group> - - 0FE6525C18B04BCF86DE4946 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - KWHaveMatcher.m - path - Classes/Matchers/KWHaveMatcher.m - sourceTree - <group> - - 1072329A8836474EB515C457 - - fileRef - 4D7276E1283647CC9132AA9F - isa - PBXBuildFile - - 1086BCC8B6664BD786A87257 - - fileRef - EB3A39DE286A4CC68ABAA049 - isa - PBXBuildFile - - 10A9207F715E4886B2D2FF9D - - fileRef - D1842E194D9744DA8C2EB62A - isa - PBXBuildFile - - 10BD603794834850B1489996 - - fileRef - 3F7A806A340144C8A0508F5F - isa - PBXBuildFile - - 10D894B8448A48778AC992DA - - fileRef - 597246976161466F87E377C5 - isa - PBXBuildFile - - 11B48211F8F54DBBB627D299 - - fileRef - 09FF954C44564CA38B4134BA - isa - PBXBuildFile - - 11D28F20DB9643988530EB08 - - fileRef - 3BBC5215C3C348DA8665249C - isa - PBXBuildFile - - 11E7A97589BD42928B5B11F7 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - NSNumber+KiwiAdditions.m - path - Classes/Core/NSNumber+KiwiAdditions.m - sourceTree - <group> - - 11FEC5AC66224F06B543B0C3 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - AFSecurityPolicy.m - path - AFNetworking/AFSecurityPolicy.m - sourceTree - <group> - - 12BDB32D66DC4DFDAFD2D86E - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - text.script.sh - path - Pods-resources.sh - sourceTree - <group> - - 133DF17AE8A2416F921394DF - - fileRef - 595A4080C03E4185A15A1F93 - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - 13BE0FC701FD49EFB0BA1E5C - - fileRef - 1C4664EEA56649C7B38BE4B6 - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - 13DAC9EA176B40ED962206CC - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - UIImageView+AFNetworking.h - path - UIKit+AFNetworking/UIImageView+AFNetworking.h - sourceTree - <group> - - 13EF8A8C6DB34659A7A0BEFE - - children - - 7435493E03E64A9EA3948D07 - DAA8188ED973466CA4E9C9A9 - C4245B333BA14A24908B7FB8 - 696C8EDDBC7F4CC3A01DFF04 - 4D7276E1283647CC9132AA9F - 1B777013B1FF48B19C6DDC5A - CDC906BDFD6E4717BE61EF35 - BA385DCCD85C4ACE92398A26 - - isa - PBXGroup - name - NonARC - sourceTree - <group> - - 13F711B0C95644D1BF7B741C - - fileRef - 62AE1F55E4D040CF98890010 - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - 1402BA673C184CAE9BCC8EBB - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - KWAfterEachNode.m - path - Classes/Nodes/KWAfterEachNode.m - sourceTree - <group> - - 141E674B7CDB42F39AFFB2B8 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - AFHTTPRequestOperation.m - path - AFNetworking/AFHTTPRequestOperation.m - sourceTree - <group> - - 147C9995FDFF410CBE5E4E21 - - fileRef - 8FF8969BE0D045719D34D5DF - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - 152BCA1BC31C4E48BF3F488B - - fileRef - 524EA35901C5444480FA477F - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - 15A7A93BF7DF49B0854DE67D - - fileRef - A6D04104582F43D9AFF2A22C - isa - PBXBuildFile - - 15D4EFF074D34DB38DB6C581 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - NSProxy+KiwiVerifierAdditions.h - path - Classes/Core/NSProxy+KiwiVerifierAdditions.h - sourceTree - <group> - - 16165DE9E79F46B189DF4C80 - - fileRef - 2ABFE2CEEB7848759AA3958A - isa - PBXBuildFile - - 1670CF7E569F4460BE551EF0 - - buildConfigurationList - A364D66D06734C81891B38A7 - buildPhases - - 97EE589D5B434D769C9D0A4F - ABDB7FCD461B4D41A0BA20F4 - - buildRules - - dependencies - - C8EA2D1646E7493E88B11826 - - isa - PBXNativeTarget - name - Pods - productName - Pods - productReference - DAC2D06AE5A4411A94307D14 - productType - com.apple.product-type.library.static - - 16A1A4D346DE452484A42626 - - fileRef - AACDD55E60F44DBC983664AC - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - 17F3D49DF3E14B66B7443373 - - fileRef - D482CB08408944959F131CF5 - isa - PBXBuildFile - - 1816023DC9094B0BB57F8E9E - - fileRef - C87CC39DA0854A60B14AAD34 - isa - PBXBuildFile - - 192761F0ACD64C408916A793 - - fileRef - 478FA3408DC54C5F9D2D4F0A - isa - PBXBuildFile - - 1A562DE11E7B41D29A3E720D - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWBeSubclassOfClassMatcher.h - path - Classes/Matchers/KWBeSubclassOfClassMatcher.h - sourceTree - <group> - - 1AD773B069714EB58E7A95B0 - - isa - PBXTargetDependency - target - 87171E7CC16446BFA139FD8C - targetProxy - 7A396A515CC74B5BBE5BFE26 - - 1AF17B1274B6441F8202842F - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWMatchers.h - path - Classes/Core/KWMatchers.h - sourceTree - <group> - - 1B02C243BAB3434CB717C9F5 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - KWContainMatcher.m - path - Classes/Matchers/KWContainMatcher.m - sourceTree - <group> - - 1B777013B1FF48B19C6DDC5A - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - KWStub.m - path - NonARC/KWStub.m - sourceTree - <group> - - 1BBBB69661E646A5B51C1BA8 - - children - - D1ADCD4F9D4B41598C0791CD - D864580D034041EBBD9FC1DF - 899F01077F9844B9A2AFC4F2 - A08FEEBBFC734C81B320048C - 67C61BFF20864FFF858A9452 - 7495ED8ADED94E1FB539731D - 8E0B62A0BD744A22A2889B46 - E7AA735233DE4049A34CB3C2 - - isa - PBXGroup - name - AFNetworking - path - AFNetworking - sourceTree - <group> - - 1BDD4B3CD42F4A7081701761 - - fileRef - DAA8188ED973466CA4E9C9A9 - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fno-objc-arc - - - 1C4664EEA56649C7B38BE4B6 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - KWItNode.m - path - Classes/Nodes/KWItNode.m - sourceTree - <group> - - 1C467A53E366438DAB782936 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWMessageSpying.h - path - Classes/Core/KWMessageSpying.h - sourceTree - <group> - - 1CD963AF2C864CD6B070C819 - - fileRef - 5D7247D3AA2344B389DFEB27 - isa - PBXBuildFile - - 1CE091BAD2AD430594BA8133 - - fileRef - E894583069C940F5BD0D480D - isa - PBXBuildFile - - 1CE26D83D79544829E0CEDD7 - - fileRef - 87C69337685F4B2AAB6FFF35 - isa - PBXBuildFile - - 1D105CB5FCF14CD098442D66 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - NSObject+KiwiSpyAdditions.m - path - Classes/Core/NSObject+KiwiSpyAdditions.m - sourceTree - <group> - - 1DA2CCB213A14D05A9AF1AD2 - - fileRef - 1D105CB5FCF14CD098442D66 - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - 1E2C2EFED66E4D96B4331019 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - UIButton+AFNetworking.h - path - UIKit+AFNetworking/UIButton+AFNetworking.h - sourceTree - <group> - - 1E3AA6684A2A49A899141BAF - - fileRef - 3907E27AF39A49A99E57FBD6 - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc - - - 1E882D61C96344E9B90C4FCB - - explicitFileType - archive.ar - includeInIndex - 0 - isa - PBXFileReference - path - libPods-AFNetworking.a - sourceTree - BUILT_PRODUCTS_DIR - - 1F525F9ED8BB4FFCA0B04B12 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWMatching.h - path - Classes/Core/KWMatching.h - sourceTree - <group> - - 200855DA1DA54C0F8354CF1D - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - KWHaveValueMatcher.m - path - Classes/Matchers/KWHaveValueMatcher.m - sourceTree - <group> - - 211F787702CA4DE5861174CD - - isa - PBXFileReference - lastKnownFileType - wrapper.framework - name - CoreGraphics.framework - path - Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk/System/Library/Frameworks/CoreGraphics.framework - sourceTree - DEVELOPER_DIR - - 21538C8210BF4E2EB185FC9B - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWProbe.h - path - Classes/Core/KWProbe.h - sourceTree - <group> - - 217B643E5DB7494EB49293C7 - - containerPortal - 36C93C7F61484B07AB505F91 - isa - PBXContainerItemProxy - proxyType - 1 - remoteGlobalIDString - C01F9653CECB409692E03C9B - remoteInfo - Pods-AFNetworking - - 22619BA47C6E41DB8407FFC6 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - KWRegisterMatchersNode.m - path - Classes/Nodes/KWRegisterMatchersNode.m - sourceTree - <group> - - 23B6E1684A1F4B8EB9E36598 - - fileRef - 087C517CB8364B81A1E6C2CE - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - 266A947A50D34B49B21391F7 - - fileRef - BD6305FE63C04F578CFEAE02 - isa - PBXBuildFile - - 2681AA5DF321482BAB667CCB - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - path - Pods-AFNetworking-prefix.pch - sourceTree - <group> - - 26CBE52206234404B04DD705 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - KWMatcherFactory.m - path - Classes/Core/KWMatcherFactory.m - sourceTree - <group> - - 27D7347A1F3A44DB8B07DA8B - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - AFURLResponseSerialization.m - path - AFNetworking/AFURLResponseSerialization.m - sourceTree - <group> - - 28508860A79C4F2680C40807 - - fileRef - F2DE8E43122C43A1A782B427 - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - 28B484C8BF5D4F6AB55A0ABE - - fileRef - DC2CA82AF54A4FCE9C4BC262 - isa - PBXBuildFile - - 295A3121765D40179EEE40DA - - fileRef - 27D7347A1F3A44DB8B07DA8B - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc - - - 29944EE969F048A7A597EC4F - - fileRef - EFE454CC6B5F426ABFC7CBC3 - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - 29B1F36D5B734FB8A3A88497 - - fileRef - 694DCAA5526D4F9B91CB9B19 - isa - PBXBuildFile - - 2A4AB24EC5B64A26A8D15861 - - fileRef - 1A562DE11E7B41D29A3E720D - isa - PBXBuildFile - - 2ABCB2311D0C4A6091B4EB23 - - fileRef - C44C21B34E5C498CB9CF950B - isa - PBXBuildFile - - 2ABFE2CEEB7848759AA3958A - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWBlockNode.h - path - Classes/Nodes/KWBlockNode.h - sourceTree - <group> - - 2ADEAE8BFB2C45B182201C94 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - UIAlertView+AFNetworking.h - path - UIKit+AFNetworking/UIAlertView+AFNetworking.h - sourceTree - <group> - - 2B13C689D6C14CCABE51C9D4 - - fileRef - 68B9F3B047B5423890EDCC3E - isa - PBXBuildFile - - 2B9AF3D8CE0A4D1FACD9CEAC - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWGenericMatchingAdditions.h - path - Classes/Matchers/KWGenericMatchingAdditions.h - sourceTree - <group> - - 2C977BC05FE5456EB1D37527 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - AFNetworkReachabilityManager.h - path - AFNetworking/AFNetworkReachabilityManager.h - sourceTree - <group> - - 2CF3496DCDE34AD0A5975B25 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWProbePoller.h - path - Classes/Core/KWProbePoller.h - sourceTree - <group> - - 2D37049B1F994FDA8AC4D850 - - fileRef - BC7D1AC8A34C46608788585A - isa - PBXBuildFile - - 2D81F9D6DB7640C0982B139C - - fileRef - C4245B333BA14A24908B7FB8 - isa - PBXBuildFile - - 2DF376A2D5ED4CADA67B5B4A - - fileRef - 141E674B7CDB42F39AFFB2B8 - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc - - - 2DFF6C233F7C45E594726C78 - - fileRef - 22619BA47C6E41DB8407FFC6 - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - 2ECA51EDF7A24332A0F16F21 - - fileRef - D1ADCD4F9D4B41598C0791CD - isa - PBXBuildFile - - 2F937BCD5EC34C819B60BD61 - - fileRef - F94F3A040F1A4D0BA33FFE84 - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - 2FE3ABE678E34D94A6EF548D - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWNilMatcher.h - path - Classes/Matchers/KWNilMatcher.h - sourceTree - <group> - - 2FF2A64AB636417E98719CAB - - buildActionMask - 2147483647 - files - - DE64BE64022C477EB74EDD22 - CE16C356E6C04529AD732422 - - isa - PBXFrameworksBuildPhase - runOnlyForDeploymentPostprocessing - 0 - - 3045EE2B858B4E9DB25F8ABE - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - UIActivityIndicatorView+AFNetworking.m - path - UIKit+AFNetworking/UIActivityIndicatorView+AFNetworking.m - sourceTree - <group> - - 30AD1BFF540F4491B6F8B064 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - text.xcconfig - path - Pods-PSUpdateAppTests-Kiwi-Private.xcconfig - sourceTree - <group> - - 30F3E17AFA1B4BDDBB65764B - - children - - 09B4397CCF95469F9BBDA7CB - EDA13321019B4D8DAC0F717A - - isa - PBXGroup - name - Targets Support Files - sourceTree - <group> - - 312FC9768E384E7CBF6F3001 - - fileRef - 7A1662B28AC540148BA2BFAE - isa - PBXBuildFile - - 31D2B86FEBF0450D8AC1874E - - buildSettings - - ALWAYS_SEARCH_USER_PATHS - NO - CLANG_CXX_LANGUAGE_STANDARD - gnu++0x - CLANG_CXX_LIBRARY - libc++ - CLANG_ENABLE_MODULES - YES - CLANG_ENABLE_OBJC_ARC - NO - CLANG_WARN_BOOL_CONVERSION - YES - CLANG_WARN_CONSTANT_CONVERSION - YES - CLANG_WARN_DIRECT_OBJC_ISA_USAGE - YES_ERROR - CLANG_WARN_EMPTY_BODY - YES - CLANG_WARN_ENUM_CONVERSION - YES - CLANG_WARN_INT_CONVERSION - YES - CLANG_WARN_OBJC_ROOT_CLASS - YES_ERROR - COPY_PHASE_STRIP - YES - 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_64_TO_32_BIT_CONVERSION - YES - GCC_WARN_ABOUT_RETURN_TYPE - YES_ERROR - GCC_WARN_UNDECLARED_SELECTOR - YES - GCC_WARN_UNINITIALIZED_AUTOS - YES - GCC_WARN_UNUSED_FUNCTION - YES - GCC_WARN_UNUSED_VARIABLE - YES - IPHONEOS_DEPLOYMENT_TARGET - 7.0 - ONLY_ACTIVE_ARCH - YES - STRIP_INSTALLED_PRODUCT - NO - - isa - XCBuildConfiguration - name - Debug - - 3244E8191455497C97CAC567 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWReporting.h - path - Classes/Core/KWReporting.h - sourceTree - <group> - - 3249D4D2D9F646D69290790F - - fileRef - 759BCA7FEAED4EFC9297EBCD - isa - PBXBuildFile - - 332B7C7336114B2E894C021D - - fileRef - 9F39F0158E65480EA8BCA929 - isa - PBXBuildFile - - 338B85C28C2F4ABBBBEE41C7 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - KWContainStringMatcher.m - path - Classes/Matchers/KWContainStringMatcher.m - sourceTree - <group> - - 33AACC82B93848ABA32FC699 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - UIImageView+AFNetworking.m - path - UIKit+AFNetworking/UIImageView+AFNetworking.m - sourceTree - <group> - - 341C1F9867BC401FA2C4ADF5 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWBeZeroMatcher.h - path - Classes/Matchers/KWBeZeroMatcher.h - sourceTree - <group> - - 3505301368CD443695C7A5EC - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - KWEqualMatcher.m - path - Classes/Matchers/KWEqualMatcher.m - sourceTree - <group> - - 352C00CEA6E244589A6DDE18 - - fileRef - FBF8F54BB0AD4C7BBF269A7C - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - 36585514100746C8B3EA3676 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - KWWorkarounds.m - path - Classes/Core/KWWorkarounds.m - sourceTree - <group> - - 36C93C7F61484B07AB505F91 - - attributes - - LastUpgradeCheck - 0500 - - buildConfigurationList - FDA0A2A1BD054CF2A96708E6 - compatibilityVersion - Xcode 3.2 - developmentRegion - English - hasScannedForEncodings - 0 - isa - PBXProject - knownRegions - - en - - mainGroup - 60EAAE1F595945C38A0A60DA - productRefGroup - 6C179556380F4CC9B3C66A80 - projectDirPath - - projectReferences - - projectRoot - - targets - - 1670CF7E569F4460BE551EF0 - C01F9653CECB409692E03C9B - 85ABD95A5BAB4ABF81D2FD94 - 87171E7CC16446BFA139FD8C - - - 36E2A71A886F4B96B43D26D8 - - fileRef - 0940EF67960846CC99556B07 - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - 381E5FBDBB194D06AD645A91 - - fileRef - 9B579AE645A2429890CDD282 - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - 3851FBE243D84DDF8B4EFB9D - - fileRef - 4595E863DBF94DCEBD4FD4B8 - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - 3907E27AF39A49A99E57FBD6 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - AFNetworkReachabilityManager.m - path - AFNetworking/AFNetworkReachabilityManager.m - sourceTree - <group> - - 394ACC6FB5E24639B039C014 - - fileRef - C97213D22A374A82BD136F58 - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - 3A2C882EFCF543C99558648C - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWRegularExpressionPatternMatcher.h - path - Classes/Matchers/KWRegularExpressionPatternMatcher.h - sourceTree - <group> - - 3A4DAB5E32A74A0E98E53A35 - - fileRef - 0BD59B538D9940CCAD60A265 - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc - - - 3BBC5215C3C348DA8665249C - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWAsyncVerifier.h - path - Classes/Verifiers/KWAsyncVerifier.h - sourceTree - <group> - - 3BFB99700FCC45C1B7611B5C - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWGenericMatchEvaluator.h - path - Classes/Matchers/KWGenericMatchEvaluator.h - sourceTree - <group> - - 3CF08454BAF64FB98347ABC9 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWExpectationType.h - path - Classes/Core/KWExpectationType.h - sourceTree - <group> - - 3D014725D1EB4179B7722FD6 - - explicitFileType - archive.ar - includeInIndex - 0 - isa - PBXFileReference - path - libPods-PSUpdateAppTests-Kiwi.a - sourceTree - BUILT_PRODUCTS_DIR - - 3D67EAA5A76B48418867D75B - - fileRef - 5F62E92DCD02430D9EF34E3D - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - 3DCD8036841F4AE3A971B919 - - fileRef - 597246976161466F87E377C5 - isa - PBXBuildFile - - 3EA70DCAEF714B8BA5CE8FCD - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - NSObject+KiwiStubAdditions.h - path - Classes/Stubbing/NSObject+KiwiStubAdditions.h - sourceTree - <group> - - 3EBC7C7F52AB4BF4A50DB955 - - fileRef - DFFEE49925B9413ABB67491C - isa - PBXBuildFile - - 3F10E95F066F419489F0247F - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - KWBeKindOfClassMatcher.m - path - Classes/Matchers/KWBeKindOfClassMatcher.m - sourceTree - <group> - - 3F7A806A340144C8A0508F5F - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWObjCUtilities.h - path - Classes/Core/KWObjCUtilities.h - sourceTree - <group> - - 403D4A4AB17A45F0B5E2BA08 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWFutureObject.h - path - Classes/Core/KWFutureObject.h - sourceTree - <group> - - 407DDED59A814DF980BFEF30 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - Kiwi.h - path - Classes/Core/Kiwi.h - sourceTree - <group> - - 4107230AFA7C495B91D5C1E7 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - KWFormatter.m - path - Classes/Core/KWFormatter.m - sourceTree - <group> - - 41313094BC1743139CFEBC73 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWFormatter.h - path - Classes/Core/KWFormatter.h - sourceTree - <group> - - 415563C73F5E4F758CB838B1 - - fileRef - 696C8EDDBC7F4CC3A01DFF04 - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fno-objc-arc - - - 42DB64BFFAC1443FBBA5F5E7 - - fileRef - 6083B62B52794DD383FC3CDB - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - 45666198DA614B789E27ED39 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - text.plist.xml - path - Pods-acknowledgements.plist - sourceTree - <group> - - 4595E863DBF94DCEBD4FD4B8 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - KWContextNode.m - path - Classes/Nodes/KWContextNode.m - sourceTree - <group> - - 46699DB1234E40C9ABB3CDD2 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - KWRespondToSelectorMatcher.m - path - Classes/Matchers/KWRespondToSelectorMatcher.m - sourceTree - <group> - - 46E5F285A49B4493AFFA0F18 - - fileRef - 556AD2CE9F554FA2BD1F3921 - isa - PBXBuildFile - - 478FA3408DC54C5F9D2D4F0A - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWAfterAllNode.h - path - Classes/Nodes/KWAfterAllNode.h - sourceTree - <group> - - 4834938504904733A2B95A90 - - children - - D637E0CDB7FF4B57B38ABC13 - 13EF8A8C6DB34659A7A0BEFE - E2ACCEA1B4CF41E483675A90 - - isa - PBXGroup - name - Kiwi - path - Kiwi - sourceTree - <group> - - 49FCC007D61840F18C8C10C5 - - fileRef - 00558C319DCD4617BF86675B - isa - PBXBuildFile - - 4A370D6FD55A4BF6B375F8F6 - - fileRef - B584946B5F9341ADA6C95F26 - isa - PBXBuildFile - - 4A794A9812BE478496A08156 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - UIActivityIndicatorView+AFNetworking.h - path - UIKit+AFNetworking/UIActivityIndicatorView+AFNetworking.h - sourceTree - <group> - - 4AC0FE26D6864F52B71E57C8 - - fileRef - 919F791A0AFF44C3A6E424A4 - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - 4B0E171B12764642A9FBF572 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - KWExampleSuiteBuilder.m - path - Classes/Core/KWExampleSuiteBuilder.m - sourceTree - <group> - - 4BF8A39E56024D61BBF0AD27 - - fileRef - CD9CC261060749BCAECFC525 - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc - - - 4C021A00238541D28D75108C - - fileRef - AC3FB4E021B14CDB8469E9F9 - isa - PBXBuildFile - - 4CAC2FD5930C43A6849C5806 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KiwiBlockMacros.h - path - Classes/Core/KiwiBlockMacros.h - sourceTree - <group> - - 4D590AA2A62A4B7B8761D94E - - fileRef - 0FE6525C18B04BCF86DE4946 - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - 4D7276E1283647CC9132AA9F - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWStub.h - path - NonARC/KWStub.h - sourceTree - <group> - - 4E011D2378D14DB198D0332C - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - KWExampleSuite.m - path - Classes/Core/KWExampleSuite.m - sourceTree - <group> - - 4E4094BA0F2D498697E92057 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - SenTestSuite+KiwiAdditions.h - path - Classes/Core/SenTestSuite+KiwiAdditions.h - sourceTree - <group> - - 4EB9014366F644A1AB615962 - - fileRef - B87060F0EF9349B8A90E44BF - isa - PBXBuildFile - - 4F23A8AD12004EA6A019F554 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - text.xcconfig - path - Pods-AFNetworking-Private.xcconfig - sourceTree - <group> - - 5001F3963F59469698632C75 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - KWReceiveMatcher.m - path - Classes/Matchers/KWReceiveMatcher.m - sourceTree - <group> - - 504A3CDD89654BA9B473AFA1 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - text - path - Pods-PSUpdateAppTests-acknowledgements.markdown - sourceTree - <group> - - 50A0B0F6026C4644A29A722B - - fileRef - 1E2C2EFED66E4D96B4331019 - isa - PBXBuildFile - - 5196F813E6E0416DB2186665 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - path - Pods-environment.h - sourceTree - <group> - - 524EA35901C5444480FA477F - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - KWAfterAllNode.m - path - Classes/Nodes/KWAfterAllNode.m - sourceTree - <group> - - 5364EA84B1E64EF9B1339FD5 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - KWMatchVerifier.m - path - Classes/Verifiers/KWMatchVerifier.m - sourceTree - <group> - - 5445BEF983AD41C98A3B92A0 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWItNode.h - path - Classes/Nodes/KWItNode.h - sourceTree - <group> - - 546CF44AB6C24C08A97BCBBF - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWHaveMatcher.h - path - Classes/Matchers/KWHaveMatcher.h - sourceTree - <group> - - 556AD2CE9F554FA2BD1F3921 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWEqualMatcher.h - path - Classes/Matchers/KWEqualMatcher.h - sourceTree - <group> - - 55860BF0607148FC9BDEF9C1 - - fileRef - 83B394F5D26640B3B2838B3D - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - 5590B1CCA8384ED9A1B460FF - - fileRef - 3045EE2B858B4E9DB25F8ABE - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc - - - 55E2F88025CD4BF8AC5ADC31 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWFailure.h - path - Classes/Core/KWFailure.h - sourceTree - <group> - - 56067E2C5EF9499DB7F440BA - - fileRef - E134777618344E7CB28F72A1 - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc - - - 564E481ACF7246D8935D3904 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - KWCaptureSpy.m - path - Classes/Core/KWCaptureSpy.m - sourceTree - <group> - - 571B85CDB5BF4B24AB49A88E - - fileRef - 3505301368CD443695C7A5EC - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - 576E007FACAE4E71A7120BC4 - - children - - ECCB88C2283A439ABABF03DA - - isa - PBXGroup - name - Frameworks - sourceTree - <group> - - 5771667BCBCB4BFD9F7238E9 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - UIKit+AFNetworking.h - path - UIKit+AFNetworking/UIKit+AFNetworking.h - sourceTree - <group> - - 57A1D8A91DEE47039C553203 - - fileRef - 3F10E95F066F419489F0247F - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - 57ED6A1A95714C798BE41928 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - path - Pods-AFNetworking-dummy.m - sourceTree - <group> - - 58286F85BA704B918273EC48 - - fileRef - 2FE3ABE678E34D94A6EF548D - isa - PBXBuildFile - - 58D7273D0B64461E842F0EE1 - - baseConfigurationReference - 4F23A8AD12004EA6A019F554 - buildSettings - - ALWAYS_SEARCH_USER_PATHS - NO - ARCHS - $(ARCHS_STANDARD_INCLUDING_64_BIT) - COPY_PHASE_STRIP - NO - DSTROOT - /tmp/xcodeproj.dst - GCC_C_LANGUAGE_STANDARD - gnu99 - GCC_DYNAMIC_NO_PIC - NO - GCC_OPTIMIZATION_LEVEL - 0 - GCC_PRECOMPILE_PREFIX_HEADER - YES - GCC_PREFIX_HEADER - Pods-AFNetworking-prefix.pch - GCC_PREPROCESSOR_DEFINITIONS - - DEBUG=1 - $(inherited) - - GCC_SYMBOLS_PRIVATE_EXTERN - NO - GCC_VERSION - com.apple.compilers.llvm.clang.1_0 - INSTALL_PATH - $(BUILT_PRODUCTS_DIR) - IPHONEOS_DEPLOYMENT_TARGET - 7.0 - OTHER_LDFLAGS - - PRODUCT_NAME - $(TARGET_NAME) - PUBLIC_HEADERS_FOLDER_PATH - $(TARGET_NAME) - SDKROOT - iphoneos - SKIP_INSTALL - YES - - isa - XCBuildConfiguration - name - Debug - - 595A4080C03E4185A15A1F93 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - KWInequalityMatcher.m - path - Classes/Matchers/KWInequalityMatcher.m - sourceTree - <group> - - 597246976161466F87E377C5 - - isa - PBXFileReference - lastKnownFileType - wrapper.framework - name - Foundation.framework - path - Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk/System/Library/Frameworks/Foundation.framework - sourceTree - DEVELOPER_DIR - - 5C0F717E8DF84E919A7D1EDE - - fileRef - 57ED6A1A95714C798BE41928 - isa - PBXBuildFile - - 5D18FBD53CE940ACA04143FC - - fileRef - C5D6B13AF4F94DE587AEF042 - isa - PBXBuildFile - - 5D7247D3AA2344B389DFEB27 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWExampleDelegate.h - path - Classes/Core/KWExampleDelegate.h - sourceTree - <group> - - 5DA7C7ED574B4C03ADD770D6 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - KWValue.m - path - Classes/Core/KWValue.m - sourceTree - <group> - - 5EAAE6694C3940AE95F2C1F3 - - fileRef - 93CA848CB3584C079151347A - isa - PBXBuildFile - - 5F62E92DCD02430D9EF34E3D - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - KWMessageTracker.m - path - Classes/Core/KWMessageTracker.m - sourceTree - <group> - - 5FA20AE8D8194F1AB559B6FF - - fileRef - 98B874F938F147E8B7C3AFE0 - isa - PBXBuildFile - - 60029D336E04496AAC1699AA - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - NSObject+KiwiVerifierAdditions.m - path - Classes/Core/NSObject+KiwiVerifierAdditions.m - sourceTree - <group> - - 6083B62B52794DD383FC3CDB - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - KWAny.m - path - Classes/Core/KWAny.m - sourceTree - <group> - - 60EAAE1F595945C38A0A60DA - - children - - C7A55FE3F8504A7E8820576C - 576E007FACAE4E71A7120BC4 - A2452176A1E84AD582E9CB70 - 6C179556380F4CC9B3C66A80 - 30F3E17AFA1B4BDDBB65764B - - isa - PBXGroup - sourceTree - <group> - - 60FB8B9445C840A4992E482D - - fileRef - E5799643F30E4BD0AFFBDF92 - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - 6101511A409143589539AEF7 - - fileRef - 546CF44AB6C24C08A97BCBBF - isa - PBXBuildFile - - 61B0705680E748AEA1F47A39 - - buildActionMask - 2147483647 - files - - BC3C7C26FCB5412B9E5450EB - 10D894B8448A48778AC992DA - 266A947A50D34B49B21391F7 - BFA5B988C0A64503B0D3A4AC - 15A7A93BF7DF49B0854DE67D - - isa - PBXFrameworksBuildPhase - runOnlyForDeploymentPostprocessing - 0 - - 624FB15FB5CD49509A059F09 - - fileRef - 5445BEF983AD41C98A3B92A0 - isa - PBXBuildFile - - 625B5E70673C44DDA3E85880 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - NSInvocation+OCMAdditions.h - path - Classes/Core/NSInvocation+OCMAdditions.h - sourceTree - <group> - - 62AE1F55E4D040CF98890010 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - KWRegularExpressionPatternMatcher.m - path - Classes/Matchers/KWRegularExpressionPatternMatcher.m - sourceTree - <group> - - 634198E31E5342DE94B4B2BF - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - UIAlertView+AFNetworking.m - path - UIKit+AFNetworking/UIAlertView+AFNetworking.m - sourceTree - <group> - - 63DF495629834F71A17C1C56 - - fileRef - 9BE142E0FA24440E978BF38A - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc - - - 65A167CF9F68414582F21855 - - buildActionMask - 2147483647 - files - - 2DF376A2D5ED4CADA67B5B4A - 56067E2C5EF9499DB7F440BA - 0B7F143BE5AC47E99F5F5C6F - 7A682217056F44CDB69946B3 - 1E3AA6684A2A49A899141BAF - E2F11744F23E4E16A3C2C31B - 0892C159348D428CAFDE3AA7 - 63DF495629834F71A17C1C56 - 295A3121765D40179EEE40DA - 4BF8A39E56024D61BBF0AD27 - 5C0F717E8DF84E919A7D1EDE - 5590B1CCA8384ED9A1B460FF - C8B412C6C55745A0B9323FDA - 3A4DAB5E32A74A0E98E53A35 - 82EC566E247645918AE211AB - EB357A53B0144188818AAC25 - E5EF98A21484477F8C4702D9 - - isa - PBXSourcesBuildPhase - runOnlyForDeploymentPostprocessing - 0 - - 661D9AF7BA9F4CED9338F74C - - fileRef - 4A794A9812BE478496A08156 - isa - PBXBuildFile - - 66AE5155B4444B819F468978 - - fileRef - 2ADEAE8BFB2C45B182201C94 - isa - PBXBuildFile - - 673D6FC61CE847BF895CE3B1 - - fileRef - D3B2BCBDC1394CCAB7B8F412 - isa - PBXBuildFile - - 67C61BFF20864FFF858A9452 - - children - - B87060F0EF9349B8A90E44BF - 11FEC5AC66224F06B543B0C3 - - isa - PBXGroup - name - Security - sourceTree - <group> - - 68441733E1BC4ED6A15383E6 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWAny.h - path - Classes/Core/KWAny.h - sourceTree - <group> - - 68762A7BE94E41CEB1CE2B61 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWExampleSuite.h - path - Classes/Core/KWExampleSuite.h - sourceTree - <group> - - 68B9F3B047B5423890EDCC3E - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - NSMethodSignature+KiwiAdditions.h - path - Classes/Core/NSMethodSignature+KiwiAdditions.h - sourceTree - <group> - - 694DCAA5526D4F9B91CB9B19 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWMock.h - path - Classes/Mocking/KWMock.h - sourceTree - <group> - - 696C8EDDBC7F4CC3A01DFF04 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - KWMessagePattern.m - path - NonARC/KWMessagePattern.m - sourceTree - <group> - - 6A03E0036F3C43B694D057FB - - fileRef - 1B02C243BAB3434CB717C9F5 - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - 6A63A44263E641D6B5845DB8 - - fileRef - 3BFB99700FCC45C1B7611B5C - isa - PBXBuildFile - - 6B384D623D3540E0AF337BDA - - fileRef - 7904FA40FA184A928AC99F2F - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - 6BA52D1DACF4460C9FFF2BAE - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - KWBeforeAllNode.m - path - Classes/Nodes/KWBeforeAllNode.m - sourceTree - <group> - - 6C179556380F4CC9B3C66A80 - - children - - DAC2D06AE5A4411A94307D14 - 1E882D61C96344E9B90C4FCB - E3C9868D59724784B71DE202 - 3D014725D1EB4179B7722FD6 - - isa - PBXGroup - name - Products - sourceTree - <group> - - 6C2C9F34B5124E9C95C752A8 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - AFHTTPRequestOperationManager.h - path - AFNetworking/AFHTTPRequestOperationManager.h - sourceTree - <group> - - 6CE78EC137CB44DEA610CE01 - - fileRef - DBD1F1B0F64541D3A042F3F8 - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - 6DB2D2DFD5A54983937A635B - - fileRef - BA385DCCD85C4ACE92398A26 - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fno-objc-arc - - - 704EEB1A621F4164A94531E9 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - UIWebView+AFNetworking.h - path - UIKit+AFNetworking/UIWebView+AFNetworking.h - sourceTree - <group> - - 70F36FDA70674463A857ECF1 - - fileRef - 89507E1995B340BC84866226 - isa - PBXBuildFile - - 713EFE41A93B43EEBEBA75A6 - - fileRef - 02F6D0127AB44894A6B387DF - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - 72345FCD82114A38B9CD127A - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - KWBeforeEachNode.m - path - Classes/Nodes/KWBeforeEachNode.m - sourceTree - <group> - - 73C92D5A0CBC49F792293FF0 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWVerifying.h - path - Classes/Verifiers/KWVerifying.h - sourceTree - <group> - - 7435493E03E64A9EA3948D07 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWIntercept.h - path - NonARC/KWIntercept.h - sourceTree - <group> - - 7495ED8ADED94E1FB539731D - - children - - FE57EF597BEC484E855E9AD5 - 9BE142E0FA24440E978BF38A - 9C2084DBEC2C4350935DCB7D - 27D7347A1F3A44DB8B07DA8B - - isa - PBXGroup - name - Serialization - sourceTree - <group> - - 758C338DB04645AA98023F11 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - KWUserDefinedMatcher.m - path - Classes/Matchers/KWUserDefinedMatcher.m - sourceTree - <group> - - 759BCA7FEAED4EFC9297EBCD - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWMatchVerifier.h - path - Classes/Verifiers/KWMatchVerifier.h - sourceTree - <group> - - 75A3FB2688724E13AF72CAD4 - - fileRef - 0C695EB9931C47968F456ACC - isa - PBXBuildFile - - 763A78D447B441988F0F24D5 - - fileRef - 5DA7C7ED574B4C03ADD770D6 - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - 76F22D5840F040A5BB31DE54 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - KWExistVerifier.m - path - Classes/Verifiers/KWExistVerifier.m - sourceTree - <group> - - 77AB4D913B9C44AB9B420F4E - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - text.xcconfig - path - Pods-PSUpdateAppTests.xcconfig - sourceTree - <group> - - 78B03602BE954890AC1FBA7D - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - NSObject+KiwiMockAdditions.h - path - Classes/Mocking/NSObject+KiwiMockAdditions.h - sourceTree - <group> - - 78BF36739DBA4AF28891ED23 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - AFURLConnectionOperation.m - path - AFNetworking/AFURLConnectionOperation.m - sourceTree - <group> - - 7904FA40FA184A928AC99F2F - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - NSObject+KiwiMockAdditions.m - path - Classes/Mocking/NSObject+KiwiMockAdditions.m - sourceTree - <group> - - 7A1662B28AC540148BA2BFAE - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWCaptureSpy.h - path - Classes/Core/KWCaptureSpy.h - sourceTree - <group> - - 7A396A515CC74B5BBE5BFE26 - - containerPortal - 36C93C7F61484B07AB505F91 - isa - PBXContainerItemProxy - proxyType - 1 - remoteGlobalIDString - 87171E7CC16446BFA139FD8C - remoteInfo - Pods-PSUpdateAppTests-Kiwi - - 7A682217056F44CDB69946B3 - - fileRef - 905AC1ACB93B43ECA2F1823B - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc - - - 7A82308ED9D4467783FEA94A - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWBlock.h - path - Classes/Core/KWBlock.h - sourceTree - <group> - - 7C97E4F3E8674178879D5E4A - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - text.xcconfig - path - Pods-AFNetworking.xcconfig - sourceTree - <group> - - 7CABB939EFCB43449B896134 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - path - Pods-PSUpdateAppTests-environment.h - sourceTree - <group> - - 7CE684AAC7904189929B0FA1 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWAfterEachNode.h - path - Classes/Nodes/KWAfterEachNode.h - sourceTree - <group> - - 7CEB337D102C4E29ADBD1C44 - - fileRef - 46699DB1234E40C9ABB3CDD2 - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - 7D2A41B5420049038AC7BA5F - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - KWNilMatcher.m - path - Classes/Matchers/KWNilMatcher.m - sourceTree - <group> - - 7E76F745CF68439E9835BC16 - - fileRef - 4B0E171B12764642A9FBF572 - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - 7E912BF89F0C43D1A3CF234A - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWStringUtilities.h - path - Classes/Core/KWStringUtilities.h - sourceTree - <group> - - 7EC5768E2A3D4709998591B3 - - fileRef - 6C2C9F34B5124E9C95C752A8 - isa - PBXBuildFile - - 7EC87E3D25E44F31BB63C6FD - - fileRef - 597246976161466F87E377C5 - isa - PBXBuildFile - - 7F81F65A34774FD2B4D4B3D4 - - fileRef - A30D4B9F10F841CB952B60DC - isa - PBXBuildFile - - 7FA7C5430107484DB1C3BFFD - - baseConfigurationReference - 77AB4D913B9C44AB9B420F4E - buildSettings - - ALWAYS_SEARCH_USER_PATHS - NO - ARCHS - $(ARCHS_STANDARD_INCLUDING_64_BIT) - COPY_PHASE_STRIP - YES - DSTROOT - /tmp/xcodeproj.dst - GCC_C_LANGUAGE_STANDARD - gnu99 - GCC_PRECOMPILE_PREFIX_HEADER - YES - GCC_VERSION - com.apple.compilers.llvm.clang.1_0 - INSTALL_PATH - $(BUILT_PRODUCTS_DIR) - IPHONEOS_DEPLOYMENT_TARGET - 7.0 - OTHER_CFLAGS - - -DNS_BLOCK_ASSERTIONS=1 - $(inherited) - - OTHER_CPLUSPLUSFLAGS - - -DNS_BLOCK_ASSERTIONS=1 - $(inherited) - - OTHER_LDFLAGS - - PRODUCT_NAME - $(TARGET_NAME) - PUBLIC_HEADERS_FOLDER_PATH - $(TARGET_NAME) - SDKROOT - iphoneos - SKIP_INSTALL - YES - VALIDATE_PRODUCT - YES - - isa - XCBuildConfiguration - name - Release - - 7FFB43C1C94F420BBE125CF3 - - fileRef - 60029D336E04496AAC1699AA - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - 800F3F4DE52A4CBB9B291F1B - - fileRef - 6BA52D1DACF4460C9FFF2BAE - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - 80C9CB9E16334B6FBCD4FC9C - - fileRef - 21538C8210BF4E2EB185FC9B - isa - PBXBuildFile - - 813CB644D7BF424199C04CA6 - - fileRef - BDB0AC21544F40738B464369 - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - 817B01CC79CA41D3AA0AE576 - - fileRef - E82C385F7E3045ECA73D3297 - isa - PBXBuildFile - - 819CC632C52B4DB39BFF61D6 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - KWMatchers.m - path - Classes/Core/KWMatchers.m - sourceTree - <group> - - 81C6F800A94A4A1BB4A0E044 - - fileRef - D2F0C6AB807340568E14B772 - isa - PBXBuildFile - - 820BD8F674B540ED95700EA8 - - fileRef - D1B04BBF348649CFBCE06C2D - isa - PBXBuildFile - - 82CB0840473A474BA31CB4F9 - - fileRef - 5364EA84B1E64EF9B1339FD5 - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - 82EC566E247645918AE211AB - - fileRef - 33AACC82B93848ABA32FC699 - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc - - - 82ED52C40F77416ABD3DC307 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - path - Pods-PSUpdateAppTests-Kiwi-dummy.m - sourceTree - <group> - - 83B394F5D26640B3B2838B3D - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - KWObjCUtilities.m - path - Classes/Core/KWObjCUtilities.m - sourceTree - <group> - - 83E2491427554279954B726A - - fileRef - 0545ABD9907C4286B9AF8715 - isa - PBXBuildFile - - 844578C21EB040529E250972 - - baseConfigurationReference - E387438E7A97429390C0C7A8 - buildSettings - - ALWAYS_SEARCH_USER_PATHS - NO - ARCHS - $(ARCHS_STANDARD_INCLUDING_64_BIT) - COPY_PHASE_STRIP - YES - DSTROOT - /tmp/xcodeproj.dst - GCC_C_LANGUAGE_STANDARD - gnu99 - GCC_PRECOMPILE_PREFIX_HEADER - YES - GCC_VERSION - com.apple.compilers.llvm.clang.1_0 - INSTALL_PATH - $(BUILT_PRODUCTS_DIR) - IPHONEOS_DEPLOYMENT_TARGET - 7.0 - OTHER_CFLAGS - - -DNS_BLOCK_ASSERTIONS=1 - $(inherited) - - OTHER_CPLUSPLUSFLAGS - - -DNS_BLOCK_ASSERTIONS=1 - $(inherited) - - OTHER_LDFLAGS - - PRODUCT_NAME - $(TARGET_NAME) - PUBLIC_HEADERS_FOLDER_PATH - $(TARGET_NAME) - SDKROOT - iphoneos - SKIP_INSTALL - YES - VALIDATE_PRODUCT - YES - - isa - XCBuildConfiguration - name - Release - - 85ABD95A5BAB4ABF81D2FD94 - - buildConfigurationList - DD3CCEB740F94CF0B6A21F1F - buildPhases - - B39ECE7485DE4AECA3C32207 - 978834B329AF4F47A6D1CA5A - - buildRules - - dependencies - - 1AD773B069714EB58E7A95B0 - - isa - PBXNativeTarget - name - Pods-PSUpdateAppTests - productName - Pods-PSUpdateAppTests - productReference - E3C9868D59724784B71DE202 - productType - com.apple.product-type.library.static - - 8628988466914DBEAC0AD322 - - fileRef - E1D04A85576345D69B9978F6 - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - 87171E7CC16446BFA139FD8C - - buildConfigurationList - EABB6D2733D345F99DCC4E75 - buildPhases - - FDDB316B184B4FBA8DE32695 - 2FF2A64AB636417E98719CAB - 00BF94B769BD4A15805DFFA5 - - buildRules - - dependencies - - isa - PBXNativeTarget - name - Pods-PSUpdateAppTests-Kiwi - productName - Pods-PSUpdateAppTests-Kiwi - productReference - 3D014725D1EB4179B7722FD6 - productType - com.apple.product-type.library.static - - 87B76AFA5B14423C87AA7905 - - fileRef - 41313094BC1743139CFEBC73 - isa - PBXBuildFile - - 87C69337685F4B2AAB6FFF35 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWMessageTracker.h - path - Classes/Core/KWMessageTracker.h - sourceTree - <group> - - 894E49B3E37344B2BF265379 - - isa - PBXFileReference - lastKnownFileType - wrapper.framework - name - Security.framework - path - Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk/System/Library/Frameworks/Security.framework - sourceTree - DEVELOPER_DIR - - 89507E1995B340BC84866226 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWRaiseMatcher.h - path - Classes/Matchers/KWRaiseMatcher.h - sourceTree - <group> - - 899F01077F9844B9A2AFC4F2 - - children - - C205336AC3954F518920F76D - C2DC5F5FCD1E4FB8BF7DDE29 - DF05D5236E404A8D9B75A692 - CD9CC261060749BCAECFC525 - - isa - PBXGroup - name - NSURLSession - sourceTree - <group> - - 8A71AC55DA37478090807B8C - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - KWBlockNode.m - path - Classes/Nodes/KWBlockNode.m - sourceTree - <group> - - 8A82D444826D44BEB46F9679 - - fileRef - 0A8D78739A704A27B8854A7E - isa - PBXBuildFile - - 8A8FB922E9E7448880344DEA - - fileRef - 625B5E70673C44DDA3E85880 - isa - PBXBuildFile - - 8B302A5E187349449E28A824 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWChangeMatcher.h - path - Classes/Matchers/KWChangeMatcher.h - sourceTree - <group> - - 8C0C5ACC0AE84E94A8CD74A5 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - text.xcconfig - path - Pods-PSUpdateAppTests-Kiwi.xcconfig - sourceTree - <group> - - 8C53EB9664404BCFAF6F8DF9 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - KWInvocationCapturer.m - path - Classes/Core/KWInvocationCapturer.m - sourceTree - <group> - - 8C81F2B3BDF64D0BBCD38D4F - - fileRef - 26CBE52206234404B04DD705 - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - 8CD244627CD4400CB9F747EC - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWBeKindOfClassMatcher.h - path - Classes/Matchers/KWBeKindOfClassMatcher.h - sourceTree - <group> - - 8CDF1451D25542A692007E17 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - KWStringPrefixMatcher.m - path - Classes/Matchers/KWStringPrefixMatcher.m - sourceTree - <group> - - 8D9ACF03FDEC4B308A2EB155 - - fileRef - D53C0E66118C4744BF3BA13B - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - 8E0B62A0BD744A22A2889B46 - - children - - 7C97E4F3E8674178879D5E4A - 4F23A8AD12004EA6A019F554 - 57ED6A1A95714C798BE41928 - 2681AA5DF321482BAB667CCB - - isa - PBXGroup - name - Support Files - sourceTree - SOURCE_ROOT - - 8ED76576067347DA9603DE00 - - fileRef - A9DDA2AC1E69435581CFE1AC - isa - PBXBuildFile - - 8FF8969BE0D045719D34D5DF - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - KWBeBetweenMatcher.m - path - Classes/Matchers/KWBeBetweenMatcher.m - sourceTree - <group> - - 905AC1ACB93B43ECA2F1823B - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - AFNetworkActivityIndicatorManager.m - path - UIKit+AFNetworking/AFNetworkActivityIndicatorManager.m - sourceTree - <group> - - 9112F8F9B28D40CF89E5885F - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWBeforeEachNode.h - path - Classes/Nodes/KWBeforeEachNode.h - sourceTree - <group> - - 9162FCCF5299425682C7F2EF - - fileRef - 956A030E983D42908E0D563F - isa - PBXBuildFile - - 919F791A0AFF44C3A6E424A4 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - KWAsyncVerifier.m - path - Classes/Verifiers/KWAsyncVerifier.m - sourceTree - <group> - - 91A45A6557A34B25A45EEC24 - - fileRef - FE4FD85464364619AE871352 - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - 92665C94AD3A4D8A869CC98D - - fileRef - 9D25B2771D7E4362A8E3DA93 - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - 93AC7FC06774414AA43B1401 - - fileRef - 9112F8F9B28D40CF89E5885F - isa - PBXBuildFile - - 93CA848CB3584C079151347A - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWBlockRaiseMatcher.h - path - Classes/Matchers/KWBlockRaiseMatcher.h - sourceTree - <group> - - 956A030E983D42908E0D563F - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWCallSite.h - path - Classes/Core/KWCallSite.h - sourceTree - <group> - - 95E8BF93285F4B9594BC1BEE - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - path - Pods-PSUpdateAppTests-Kiwi-prefix.pch - sourceTree - <group> - - 972B83704FB74BCFB19C9666 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWExampleSuiteBuilder.h - path - Classes/Core/KWExampleSuiteBuilder.h - sourceTree - <group> - - 978834B329AF4F47A6D1CA5A - - buildActionMask - 2147483647 - files - - 3DCD8036841F4AE3A971B919 - BD5FA701F9054DDEA8CE8D2C - - isa - PBXFrameworksBuildPhase - runOnlyForDeploymentPostprocessing - 0 - - 97EE589D5B434D769C9D0A4F - - buildActionMask - 2147483647 - files - - C8E056B65F8945F0AEA053CC - - isa - PBXSourcesBuildPhase - runOnlyForDeploymentPostprocessing - 0 - - 97EF554B842D48CC9BD4635A - - fileRef - FE57EF597BEC484E855E9AD5 - isa - PBXBuildFile - - 9808E5CD68D4415799A575FD - - fileRef - C29199C45F6147C197F468AA - isa - PBXBuildFile - - 982172A7ECC34CCA821FF9C1 - - fileRef - 341C1F9867BC401FA2C4ADF5 - isa - PBXBuildFile - - 98555B182D564F3CB4107A96 - - fileRef - 758C338DB04645AA98023F11 - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - 987C9515870A405CA67810A3 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - KWBeIdenticalToMatcher.m - path - Classes/Matchers/KWBeIdenticalToMatcher.m - sourceTree - <group> - - 98B874F938F147E8B7C3AFE0 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWContainStringMatcher.h - path - Classes/Matchers/KWContainStringMatcher.h - sourceTree - <group> - - 99334B70060E4BF4AD068C71 - - fileRef - 73C92D5A0CBC49F792293FF0 - isa - PBXBuildFile - - 9B579AE645A2429890CDD282 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - NSProxy+KiwiVerifierAdditions.m - path - Classes/Core/NSProxy+KiwiVerifierAdditions.m - sourceTree - <group> - - 9BE142E0FA24440E978BF38A - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - AFURLRequestSerialization.m - path - AFNetworking/AFURLRequestSerialization.m - sourceTree - <group> - - 9C2084DBEC2C4350935DCB7D - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - AFURLResponseSerialization.h - path - AFNetworking/AFURLResponseSerialization.h - sourceTree - <group> - - 9C430CC8D6AF47D39CF0D90E - - fileRef - C8764E26604D4F1D902962F2 - isa - PBXBuildFile - - 9CF5A3DB67F340049EA4C4EE - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - NSInvocation+OCMAdditions.m - path - Classes/Core/NSInvocation+OCMAdditions.m - sourceTree - <group> - - 9D25B2771D7E4362A8E3DA93 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - KWBeWithinMatcher.m - path - Classes/Matchers/KWBeWithinMatcher.m - sourceTree - <group> - - 9F39F0158E65480EA8BCA929 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWBeBetweenMatcher.h - path - Classes/Matchers/KWBeBetweenMatcher.h - sourceTree - <group> - - A08FEEBBFC734C81B320048C - - children - - 2C977BC05FE5456EB1D37527 - 3907E27AF39A49A99E57FBD6 - - isa - PBXGroup - name - Reachability - sourceTree - <group> - - A0FAF582068840938865BB97 - - fileRef - 55E2F88025CD4BF8AC5ADC31 - isa - PBXBuildFile - - A1F3671BA60B49B887C731ED - - baseConfigurationReference - 77AB4D913B9C44AB9B420F4E - buildSettings - - ALWAYS_SEARCH_USER_PATHS - NO - ARCHS - $(ARCHS_STANDARD_INCLUDING_64_BIT) - COPY_PHASE_STRIP - NO - DSTROOT - /tmp/xcodeproj.dst - GCC_C_LANGUAGE_STANDARD - gnu99 - GCC_DYNAMIC_NO_PIC - NO - GCC_OPTIMIZATION_LEVEL - 0 - GCC_PRECOMPILE_PREFIX_HEADER - YES - GCC_PREPROCESSOR_DEFINITIONS - - DEBUG=1 - $(inherited) - - GCC_SYMBOLS_PRIVATE_EXTERN - NO - GCC_VERSION - com.apple.compilers.llvm.clang.1_0 - INSTALL_PATH - $(BUILT_PRODUCTS_DIR) - IPHONEOS_DEPLOYMENT_TARGET - 7.0 - OTHER_LDFLAGS - - PRODUCT_NAME - $(TARGET_NAME) - PUBLIC_HEADERS_FOLDER_PATH - $(TARGET_NAME) - SDKROOT - iphoneos - SKIP_INSTALL - YES - - isa - XCBuildConfiguration - name - Debug - - A2452176A1E84AD582E9CB70 - - children - - 1BBBB69661E646A5B51C1BA8 - 4834938504904733A2B95A90 - - isa - PBXGroup - name - Pods - sourceTree - <group> - - A30D4B9F10F841CB952B60DC - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - NSValue+KiwiAdditions.h - path - Classes/Core/NSValue+KiwiAdditions.h - sourceTree - <group> - - A360F4FFBC374577948A2AC7 - - fileRef - 200855DA1DA54C0F8354CF1D - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - A364D66D06734C81891B38A7 - - buildConfigurations - - EC36864152B54411B52CDB2F - 844578C21EB040529E250972 - - defaultConfigurationIsVisible - 0 - defaultConfigurationName - Release - isa - XCConfigurationList - - A3B2895176624AF3B82B61FC - - fileRef - 4E011D2378D14DB198D0332C - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - A677C68D0EC54783977D52FB - - fileRef - 36585514100746C8B3EA3676 - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - A6D04104582F43D9AFF2A22C - - isa - PBXFileReference - lastKnownFileType - wrapper.framework - name - SystemConfiguration.framework - path - Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk/System/Library/Frameworks/SystemConfiguration.framework - sourceTree - DEVELOPER_DIR - - A6F0F191BEA64F54815487D3 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWMatcher.h - path - Classes/Core/KWMatcher.h - sourceTree - <group> - - A7DA3CEFF487483390A0FCEB - - baseConfigurationReference - 4F23A8AD12004EA6A019F554 - buildSettings - - ALWAYS_SEARCH_USER_PATHS - NO - ARCHS - $(ARCHS_STANDARD_INCLUDING_64_BIT) - COPY_PHASE_STRIP - YES - DSTROOT - /tmp/xcodeproj.dst - GCC_C_LANGUAGE_STANDARD - gnu99 - GCC_PRECOMPILE_PREFIX_HEADER - YES - GCC_PREFIX_HEADER - Pods-AFNetworking-prefix.pch - GCC_VERSION - com.apple.compilers.llvm.clang.1_0 - INSTALL_PATH - $(BUILT_PRODUCTS_DIR) - IPHONEOS_DEPLOYMENT_TARGET - 7.0 - OTHER_CFLAGS - - -DNS_BLOCK_ASSERTIONS=1 - $(inherited) - - OTHER_CPLUSPLUSFLAGS - - -DNS_BLOCK_ASSERTIONS=1 - $(inherited) - - OTHER_LDFLAGS - - PRODUCT_NAME - $(TARGET_NAME) - PUBLIC_HEADERS_FOLDER_PATH - $(TARGET_NAME) - SDKROOT - iphoneos - SKIP_INSTALL - YES - VALIDATE_PRODUCT - YES - - isa - XCBuildConfiguration - name - Release - - A8C0870215854A4D96A4FB35 - - fileRef - 3244E8191455497C97CAC567 - isa - PBXBuildFile - - A93CF63F402C443CB60DDE65 - - fileRef - F55050B27F10420FACF27383 - isa - PBXBuildFile - - A961B37FCD8A42F09C858A7C - - buildActionMask - 2147483647 - files - - FE5996B9D6104BE191473C1F - 7EC5768E2A3D4709998591B3 - D783B8C9F79B44199F037CA8 - 1816023DC9094B0BB57F8E9E - C0ED0A20B26C412C9EE52C68 - 2ECA51EDF7A24332A0F16F21 - 4EB9014366F644A1AB615962 - DBB4834CB07C4429A5E312BF - 97EF554B842D48CC9BD4635A - FA5249836CFC493799BEF89D - E9D987E1CEAF4CDD87C79BE3 - 661D9AF7BA9F4CED9338F74C - 66AE5155B4444B819F468978 - 50A0B0F6026C4644A29A722B - CB75FAE303504D2FAC71657E - D71D71C45A104F4AA007073C - AE1E289F2EDA41C598A37F1C - C0A65FF0A4B14B3988E948A5 - - isa - PBXHeadersBuildPhase - runOnlyForDeploymentPostprocessing - 0 - - A995458B7357421294D088E8 - - buildConfigurations - - 58D7273D0B64461E842F0EE1 - A7DA3CEFF487483390A0FCEB - - defaultConfigurationIsVisible - 0 - defaultConfigurationName - Release - isa - XCConfigurationList - - A9DDA2AC1E69435581CFE1AC - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWHaveValueMatcher.h - path - Classes/Matchers/KWHaveValueMatcher.h - sourceTree - <group> - - AACDD55E60F44DBC983664AC - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - KWDeviceInfo.m - path - Classes/Core/KWDeviceInfo.m - sourceTree - <group> - - AAED2ABC70094AE5AC441AA9 - - fileRef - 68441733E1BC4ED6A15383E6 - isa - PBXBuildFile - - ABDB7FCD461B4D41A0BA20F4 - - buildActionMask - 2147483647 - files - - 7EC87E3D25E44F31BB63C6FD - D0B1846E5A144FB6899E7FA0 - - isa - PBXFrameworksBuildPhase - runOnlyForDeploymentPostprocessing - 0 - - AC3FB4E021B14CDB8469E9F9 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWContextNode.h - path - Classes/Nodes/KWContextNode.h - sourceTree - <group> - - AC991856DFDA454DA0397B52 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - NSMethodSignature+KiwiAdditions.m - path - Classes/Core/NSMethodSignature+KiwiAdditions.m - sourceTree - <group> - - ADB242D644CA4AAF92EC8A74 - - fileRef - B196695550964A4A9A07E0D5 - isa - PBXBuildFile - - AE1E289F2EDA41C598A37F1C - - fileRef - C32812D7C0FC49C8B0474EBD - isa - PBXBuildFile - - AE375EE7CF10470FA4730E60 - - fileRef - 2B9AF3D8CE0A4D1FACD9CEAC - isa - PBXBuildFile - - AF77E0AC5AE4473BB7A75422 - - fileRef - 7A82308ED9D4467783FEA94A - isa - PBXBuildFile - - AF985A63C7A04AD1AD398894 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWSpec.h - path - Classes/Core/KWSpec.h - sourceTree - <group> - - AFFADC5D0E06424B966BFAAE - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KiwiConfiguration.h - path - Classes/Core/KiwiConfiguration.h - sourceTree - <group> - - B017BABB0E4346B1A8A5A496 - - fileRef - 1B777013B1FF48B19C6DDC5A - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fno-objc-arc - - - B18067758D2E43CAB29AABA2 - - fileRef - 987C9515870A405CA67810A3 - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - B196695550964A4A9A07E0D5 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWExample.h - path - Classes/Core/KWExample.h - sourceTree - <group> - - B1DE9ED0DC9746C7A7F772E4 - - fileRef - 3A2C882EFCF543C99558648C - isa - PBXBuildFile - - B2FCA6188F7149098404E458 - - fileRef - 403D4A4AB17A45F0B5E2BA08 - isa - PBXBuildFile - - B31C6B08E5E547DB872FE6CD - - fileRef - 8A71AC55DA37478090807B8C - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - B37FE1F6D7184279A82ACA0F - - fileRef - 82ED52C40F77416ABD3DC307 - isa - PBXBuildFile - - B39ECE7485DE4AECA3C32207 - - buildActionMask - 2147483647 - files - - 820BD8F674B540ED95700EA8 - - isa - PBXSourcesBuildPhase - runOnlyForDeploymentPostprocessing - 0 - - B4EAA19B18EE46D6BFE981D8 - - fileRef - DE7D056B0C1C4455A1E3E669 - isa - PBXBuildFile - - B4F887D25EB84C00A4A9C8C6 - - fileRef - FBC4935E56EF4171A354D1A1 - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - B55306C06D9F4291BFFF8836 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWExistVerifier.h - path - Classes/Verifiers/KWExistVerifier.h - sourceTree - <group> - - B584946B5F9341ADA6C95F26 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWStringContainsMatcher.h - path - Classes/Matchers/KWStringContainsMatcher.h - sourceTree - <group> - - B5E96C1C40004FB69CE30EE7 - - fileRef - 972B83704FB74BCFB19C9666 - isa - PBXBuildFile - - B624795CB5E7425C87D58615 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWPendingNode.h - path - Classes/Nodes/KWPendingNode.h - sourceTree - <group> - - B6763C690BD84AD2A6A6EA80 - - fileRef - AC991856DFDA454DA0397B52 - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - B6B1AE831CF644A9A6DCC165 - - fileRef - E3239BB727854FFDB56EAB99 - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - B82962BA209A436C97A505F1 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - KWBlockRaiseMatcher.m - path - Classes/Matchers/KWBlockRaiseMatcher.m - sourceTree - <group> - - B87060F0EF9349B8A90E44BF - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - AFSecurityPolicy.h - path - AFNetworking/AFSecurityPolicy.h - sourceTree - <group> - - B97CDAD8FE6F44CD943F8724 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - AFURLConnectionOperation.h - path - AFNetworking/AFURLConnectionOperation.h - sourceTree - <group> - - B9A1BC9622714A8392989B72 - - fileRef - 1402BA673C184CAE9BCC8EBB - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - BA385DCCD85C4ACE92398A26 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - KWSymbolicator.m - path - NonARC/KWSymbolicator.m - sourceTree - <group> - - BB79E9A3F8484954AD38636B - - fileRef - D96DE5FBD38646ED9ECEAFF1 - isa - PBXBuildFile - - BBB9C868174B4CE79ADACC71 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - KWFailure.m - path - Classes/Core/KWFailure.m - sourceTree - <group> - - BC3C7C26FCB5412B9E5450EB - - fileRef - 211F787702CA4DE5861174CD - isa - PBXBuildFile - - BC4AEE5243F447FA89A7E133 - - fileRef - 8CDF1451D25542A692007E17 - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - BC7D1AC8A34C46608788585A - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - NSNumber+KiwiAdditions.h - path - Classes/Core/NSNumber+KiwiAdditions.h - sourceTree - <group> - - BCD770E353E249A2931D7438 - - fileRef - D34F99A178774216A3F0D41D - isa - PBXBuildFile - - BD5FA701F9054DDEA8CE8D2C - - fileRef - 3D014725D1EB4179B7722FD6 - isa - PBXBuildFile - - BD6305FE63C04F578CFEAE02 - - isa - PBXFileReference - lastKnownFileType - wrapper.framework - name - MobileCoreServices.framework - path - Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk/System/Library/Frameworks/MobileCoreServices.framework - sourceTree - DEVELOPER_DIR - - BDB0AC21544F40738B464369 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - KWNull.m - path - Classes/Core/KWNull.m - sourceTree - <group> - - BFA5B988C0A64503B0D3A4AC - - fileRef - 894E49B3E37344B2BF265379 - isa - PBXBuildFile - - C01F9653CECB409692E03C9B - - buildConfigurationList - A995458B7357421294D088E8 - buildPhases - - 65A167CF9F68414582F21855 - 61B0705680E748AEA1F47A39 - A961B37FCD8A42F09C858A7C - - buildRules - - dependencies - - isa - PBXNativeTarget - name - Pods-AFNetworking - productName - Pods-AFNetworking - productReference - 1E882D61C96344E9B90C4FCB - productType - com.apple.product-type.library.static - - C0A65FF0A4B14B3988E948A5 - - fileRef - 704EEB1A621F4164A94531E9 - isa - PBXBuildFile - - C0C21F37DF344365BAEF2771 - - fileRef - 4CAC2FD5930C43A6849C5806 - isa - PBXBuildFile - - C0E17478AA6E425E83B1F259 - - fileRef - ED4B849B076943B6BED16A84 - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - C0ED0A20B26C412C9EE52C68 - - fileRef - 2C977BC05FE5456EB1D37527 - isa - PBXBuildFile - - C205336AC3954F518920F76D - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - AFHTTPSessionManager.h - path - AFNetworking/AFHTTPSessionManager.h - sourceTree - <group> - - C22D3C4A160B405BBD2CCB97 - - fileRef - 0EC5FE0E19B949C3AC891677 - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - C29199C45F6147C197F468AA - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWBeIdenticalToMatcher.h - path - Classes/Matchers/KWBeIdenticalToMatcher.h - sourceTree - <group> - - C2DC5F5FCD1E4FB8BF7DDE29 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - AFHTTPSessionManager.m - path - AFNetworking/AFHTTPSessionManager.m - sourceTree - <group> - - C32812D7C0FC49C8B0474EBD - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - UIProgressView+AFNetworking.h - path - UIKit+AFNetworking/UIProgressView+AFNetworking.h - sourceTree - <group> - - C3349A319EA54F4C9A0140CE - - fileRef - AF985A63C7A04AD1AD398894 - isa - PBXBuildFile - - C3E6CC9E437F4B5FB3B29EC6 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - KWBeEmptyMatcher.m - path - Classes/Matchers/KWBeEmptyMatcher.m - sourceTree - <group> - - C4245B333BA14A24908B7FB8 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWMessagePattern.h - path - NonARC/KWMessagePattern.h - sourceTree - <group> - - C44C21B34E5C498CB9CF950B - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWBeEmptyMatcher.h - path - Classes/Matchers/KWBeEmptyMatcher.h - sourceTree - <group> - - C488A919A9344E1CB32664D9 - - fileRef - B55306C06D9F4291BFFF8836 - isa - PBXBuildFile - - C4EA22120733450DB49F19B1 - - fileRef - CDC906BDFD6E4717BE61EF35 - isa - PBXBuildFile - - C5D6B13AF4F94DE587AEF042 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - NSObject+KiwiVerifierAdditions.h - path - Classes/Core/NSObject+KiwiVerifierAdditions.h - sourceTree - <group> - - C5D805E79E8F4C6D8C176A3F - - fileRef - 1AF17B1274B6441F8202842F - isa - PBXBuildFile - - C7A55FE3F8504A7E8820576C - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - text - name - Podfile - path - ../Podfile - sourceTree - SOURCE_ROOT - xcLanguageSpecificationIdentifier - xcode.lang.ruby - - C851EA78016C4BE48B618325 - - fileRef - 78B03602BE954890AC1FBA7D - isa - PBXBuildFile - - C8764E26604D4F1D902962F2 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWWorkarounds.h - path - Classes/Core/KWWorkarounds.h - sourceTree - <group> - - C87CC39DA0854A60B14AAD34 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - AFNetworkActivityIndicatorManager.h - path - UIKit+AFNetworking/AFNetworkActivityIndicatorManager.h - sourceTree - <group> - - C8B412C6C55745A0B9323FDA - - fileRef - 634198E31E5342DE94B4B2BF - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc - - - C8E056B65F8945F0AEA053CC - - fileRef - 0338BA0498CA47EAB1D6419E - isa - PBXBuildFile - - C8EA2D1646E7493E88B11826 - - isa - PBXTargetDependency - target - C01F9653CECB409692E03C9B - targetProxy - 217B643E5DB7494EB49293C7 - - C94AC1377A55479AAD1DD45E - - fileRef - 11E7A97589BD42928B5B11F7 - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - C96039900F4F43CCABA0205D - - fileRef - FE5FC12A4998462CBC4FEA62 - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - C97213D22A374A82BD136F58 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - KWCallSite.m - path - Classes/Core/KWCallSite.m - sourceTree - <group> - - C997C2BD34B04FAFA36C25AF - - fileRef - 338B85C28C2F4ABBBBEE41C7 - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - CABE36E1838E4688B8224643 - - fileRef - EBADEDADFBCC4F55A7D12062 - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - CAF3F1EEECFE4611AD3BE218 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - KWBeMemberOfClassMatcher.m - path - Classes/Matchers/KWBeMemberOfClassMatcher.m - sourceTree - <group> - - CB75FAE303504D2FAC71657E - - fileRef - 13DAC9EA176B40ED962206CC - isa - PBXBuildFile - - CC1A3EB3FE0F48C58E5C0A5B - - fileRef - F1F4DABF0F10460AAC84FBFC - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - CC75FD441AEC46988082F46A - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - UIProgressView+AFNetworking.m - path - UIKit+AFNetworking/UIProgressView+AFNetworking.m - sourceTree - <group> - - CC8B83C861F443C1928A81A9 - - fileRef - 4107230AFA7C495B91D5C1E7 - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - CD4AE99F51DF4218AD37B15F - - fileRef - 3EA70DCAEF714B8BA5CE8FCD - isa - PBXBuildFile - - CD9CC261060749BCAECFC525 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - AFURLSessionManager.m - path - AFNetworking/AFURLSessionManager.m - sourceTree - <group> - - CDB33416F4B54754B275EAEC - - fileRef - B624795CB5E7425C87D58615 - isa - PBXBuildFile - - CDC906BDFD6E4717BE61EF35 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWSymbolicator.h - path - NonARC/KWSymbolicator.h - sourceTree - <group> - - CDD9265F7750481F9E4CEDAD - - buildSettings - - ALWAYS_SEARCH_USER_PATHS - NO - CLANG_CXX_LANGUAGE_STANDARD - gnu++0x - CLANG_CXX_LIBRARY - libc++ - CLANG_ENABLE_MODULES - YES - CLANG_ENABLE_OBJC_ARC - NO - CLANG_WARN_BOOL_CONVERSION - YES - CLANG_WARN_CONSTANT_CONVERSION - YES - CLANG_WARN_DIRECT_OBJC_ISA_USAGE - YES_ERROR - CLANG_WARN_EMPTY_BODY - YES - CLANG_WARN_ENUM_CONVERSION - YES - CLANG_WARN_INT_CONVERSION - YES - CLANG_WARN_OBJC_ROOT_CLASS - YES_ERROR - COPY_PHASE_STRIP - NO - ENABLE_NS_ASSERTIONS - NO - GCC_C_LANGUAGE_STANDARD - gnu99 - 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 - GCC_WARN_UNUSED_FUNCTION - YES - GCC_WARN_UNUSED_VARIABLE - YES - IPHONEOS_DEPLOYMENT_TARGET - 7.0 - STRIP_INSTALLED_PRODUCT - NO - VALIDATE_PRODUCT - YES - - isa - XCBuildConfiguration - name - Release - - CE16C356E6C04529AD732422 - - fileRef - E5C2E14188D347E2A09D78D1 - isa - PBXBuildFile - - D06E8DC6526B4728B4D4AE14 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - KWConformToProtocolMatcher.m - path - Classes/Matchers/KWConformToProtocolMatcher.m - sourceTree - <group> - - D0B1846E5A144FB6899E7FA0 - - fileRef - 1E882D61C96344E9B90C4FCB - isa - PBXBuildFile - - D142482971204FD299333A8C - - fileRef - 0213002AFEAC4955B63C2532 - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - D1842E194D9744DA8C2EB62A - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - NSObject+KiwiSpyAdditions.h - path - Classes/Core/NSObject+KiwiSpyAdditions.h - sourceTree - <group> - - D1ADCD4F9D4B41598C0791CD - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - AFNetworking.h - path - AFNetworking/AFNetworking.h - sourceTree - <group> - - D1B04BBF348649CFBCE06C2D - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - path - Pods-PSUpdateAppTests-dummy.m - sourceTree - <group> - - D2F0C6AB807340568E14B772 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWMatcherFactory.h - path - Classes/Core/KWMatcherFactory.h - sourceTree - <group> - - D34F99A178774216A3F0D41D - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWBeforeAllNode.h - path - Classes/Nodes/KWBeforeAllNode.h - sourceTree - <group> - - D3B2BCBDC1394CCAB7B8F412 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWInequalityMatcher.h - path - Classes/Matchers/KWInequalityMatcher.h - sourceTree - <group> - - D482CB08408944959F131CF5 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWBeMemberOfClassMatcher.h - path - Classes/Matchers/KWBeMemberOfClassMatcher.h - sourceTree - <group> - - D53C0E66118C4744BF3BA13B - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - KWExample.m - path - Classes/Core/KWExample.m - sourceTree - <group> - - D55F0B48F993439D853893AA - - fileRef - 8B302A5E187349449E28A824 - isa - PBXBuildFile - - D637E0CDB7FF4B57B38ABC13 - - children - - 478FA3408DC54C5F9D2D4F0A - 524EA35901C5444480FA477F - 7CE684AAC7904189929B0FA1 - 1402BA673C184CAE9BCC8EBB - 68441733E1BC4ED6A15383E6 - 6083B62B52794DD383FC3CDB - 3BBC5215C3C348DA8665249C - 919F791A0AFF44C3A6E424A4 - 9F39F0158E65480EA8BCA929 - 8FF8969BE0D045719D34D5DF - C44C21B34E5C498CB9CF950B - C3E6CC9E437F4B5FB3B29EC6 - C29199C45F6147C197F468AA - 987C9515870A405CA67810A3 - 8CD244627CD4400CB9F747EC - 3F10E95F066F419489F0247F - D482CB08408944959F131CF5 - CAF3F1EEECFE4611AD3BE218 - 1A562DE11E7B41D29A3E720D - 0940EF67960846CC99556B07 - 0C695EB9931C47968F456ACC - FE5FC12A4998462CBC4FEA62 - 0A3BD13619764BAA979534F7 - 9D25B2771D7E4362A8E3DA93 - 341C1F9867BC401FA2C4ADF5 - F94F3A040F1A4D0BA33FFE84 - D34F99A178774216A3F0D41D - 6BA52D1DACF4460C9FFF2BAE - 9112F8F9B28D40CF89E5885F - 72345FCD82114A38B9CD127A - 7A82308ED9D4467783FEA94A - EBADEDADFBCC4F55A7D12062 - 2ABFE2CEEB7848759AA3958A - 8A71AC55DA37478090807B8C - 93CA848CB3584C079151347A - B82962BA209A436C97A505F1 - 956A030E983D42908E0D563F - C97213D22A374A82BD136F58 - 7A1662B28AC540148BA2BFAE - 564E481ACF7246D8935D3904 - 8B302A5E187349449E28A824 - E3239BB727854FFDB56EAB99 - E4E74A59E3C1464E918E1242 - D06E8DC6526B4728B4D4AE14 - 09FF954C44564CA38B4134BA - 1B02C243BAB3434CB717C9F5 - 98B874F938F147E8B7C3AFE0 - 338B85C28C2F4ABBBBEE41C7 - AC3FB4E021B14CDB8469E9F9 - 4595E863DBF94DCEBD4FD4B8 - F55050B27F10420FACF27383 - E82C385F7E3045ECA73D3297 - AACDD55E60F44DBC983664AC - 556AD2CE9F554FA2BD1F3921 - 3505301368CD443695C7A5EC - B196695550964A4A9A07E0D5 - D53C0E66118C4744BF3BA13B - 5D7247D3AA2344B389DFEB27 - EFF5BD8A0B654FE49615681F - DC2CA82AF54A4FCE9C4BC262 - 68762A7BE94E41CEB1CE2B61 - 4E011D2378D14DB198D0332C - 972B83704FB74BCFB19C9666 - 4B0E171B12764642A9FBF572 - B55306C06D9F4291BFFF8836 - 76F22D5840F040A5BB31DE54 - 3CF08454BAF64FB98347ABC9 - 55E2F88025CD4BF8AC5ADC31 - BBB9C868174B4CE79ADACC71 - 41313094BC1743139CFEBC73 - 4107230AFA7C495B91D5C1E7 - 403D4A4AB17A45F0B5E2BA08 - FBC4935E56EF4171A354D1A1 - 3BFB99700FCC45C1B7611B5C - ED4B849B076943B6BED16A84 - 0545ABD9907C4286B9AF8715 - FB22B72C259C40E5AF03AE79 - 2B9AF3D8CE0A4D1FACD9CEAC - 02F6D0127AB44894A6B387DF - 546CF44AB6C24C08A97BCBBF - 0FE6525C18B04BCF86DE4946 - A9DDA2AC1E69435581CFE1AC - 200855DA1DA54C0F8354CF1D - D3B2BCBDC1394CCAB7B8F412 - 595A4080C03E4185A15A1F93 - 0A8D78739A704A27B8854A7E - 8C53EB9664404BCFAF6F8DF9 - 5445BEF983AD41C98A3B92A0 - 1C4664EEA56649C7B38BE4B6 - 759BCA7FEAED4EFC9297EBCD - 5364EA84B1E64EF9B1339FD5 - A6F0F191BEA64F54815487D3 - DBD1F1B0F64541D3A042F3F8 - D2F0C6AB807340568E14B772 - 26CBE52206234404B04DD705 - 1AF17B1274B6441F8202842F - 819CC632C52B4DB39BFF61D6 - 1F525F9ED8BB4FFCA0B04B12 - 1C467A53E366438DAB782936 - 87C69337685F4B2AAB6FFF35 - 5F62E92DCD02430D9EF34E3D - 694DCAA5526D4F9B91CB9B19 - E1D04A85576345D69B9978F6 - 2FE3ABE678E34D94A6EF548D - 7D2A41B5420049038AC7BA5F - E894583069C940F5BD0D480D - BDB0AC21544F40738B464369 - 3F7A806A340144C8A0508F5F - 83B394F5D26640B3B2838B3D - B624795CB5E7425C87D58615 - 0213002AFEAC4955B63C2532 - 21538C8210BF4E2EB185FC9B - 2CF3496DCDE34AD0A5975B25 - FE4FD85464364619AE871352 - 89507E1995B340BC84866226 - 0FC0C88004244571BF5E4CC5 - FC504D1D2A99400594A36592 - 5001F3963F59469698632C75 - D96DE5FBD38646ED9ECEAFF1 - 22619BA47C6E41DB8407FFC6 - 3A2C882EFCF543C99558648C - 62AE1F55E4D040CF98890010 - 3244E8191455497C97CAC567 - 00558C319DCD4617BF86675B - 46699DB1234E40C9ABB3CDD2 - AF985A63C7A04AD1AD398894 - E5799643F30E4BD0AFFBDF92 - B584946B5F9341ADA6C95F26 - 087C517CB8364B81A1E6C2CE - DE7D056B0C1C4455A1E3E669 - 8CDF1451D25542A692007E17 - 7E912BF89F0C43D1A3CF234A - EFE454CC6B5F426ABFC7CBC3 - D8F759761097424598A03D29 - 758C338DB04645AA98023F11 - EB3A39DE286A4CC68ABAA049 - 5DA7C7ED574B4C03ADD770D6 - 73C92D5A0CBC49F792293FF0 - C8764E26604D4F1D902962F2 - 36585514100746C8B3EA3676 - 407DDED59A814DF980BFEF30 - 4CAC2FD5930C43A6849C5806 - AFFADC5D0E06424B966BFAAE - DFFEE49925B9413ABB67491C - DB350EFF6C8344F195BD1554 - F2DE8E43122C43A1A782B427 - 625B5E70673C44DDA3E85880 - 9CF5A3DB67F340049EA4C4EE - 68B9F3B047B5423890EDCC3E - AC991856DFDA454DA0397B52 - BC7D1AC8A34C46608788585A - 11E7A97589BD42928B5B11F7 - 78B03602BE954890AC1FBA7D - 7904FA40FA184A928AC99F2F - D1842E194D9744DA8C2EB62A - 1D105CB5FCF14CD098442D66 - 3EA70DCAEF714B8BA5CE8FCD - 0EC5FE0E19B949C3AC891677 - C5D6B13AF4F94DE587AEF042 - 60029D336E04496AAC1699AA - 15D4EFF074D34DB38DB6C581 - 9B579AE645A2429890CDD282 - A30D4B9F10F841CB952B60DC - F1F4DABF0F10460AAC84FBFC - 4E4094BA0F2D498697E92057 - FBF8F54BB0AD4C7BBF269A7C - - isa - PBXGroup - name - ARC - sourceTree - <group> - - D69E26A26ABB425D968BD233 - - fileRef - 7435493E03E64A9EA3948D07 - isa - PBXBuildFile - - D6B150C0DE774DCBB09C2C0E - - fileRef - 7D2A41B5420049038AC7BA5F - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - D71D71C45A104F4AA007073C - - fileRef - 5771667BCBCB4BFD9F7238E9 - isa - PBXBuildFile - - D783B8C9F79B44199F037CA8 - - fileRef - C205336AC3954F518920F76D - isa - PBXBuildFile - - D864580D034041EBBD9FC1DF - - children - - E9635A91416840AAB09CD7C3 - 141E674B7CDB42F39AFFB2B8 - 6C2C9F34B5124E9C95C752A8 - E134777618344E7CB28F72A1 - B97CDAD8FE6F44CD943F8724 - 78BF36739DBA4AF28891ED23 - - isa - PBXGroup - name - NSURLConnection - sourceTree - <group> - - D8EA455549684F3593F9F71E - - fileRef - 8C53EB9664404BCFAF6F8DF9 - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - D8F759761097424598A03D29 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWUserDefinedMatcher.h - path - Classes/Matchers/KWUserDefinedMatcher.h - sourceTree - <group> - - D96DE5FBD38646ED9ECEAFF1 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWRegisterMatchersNode.h - path - Classes/Nodes/KWRegisterMatchersNode.h - sourceTree - <group> - - D980885EBA40493BBA172111 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - text.plist.xml - path - Pods-PSUpdateAppTests-acknowledgements.plist - sourceTree - <group> - - D9DFC23071FE40F9AE71F80A - - fileRef - 8CD244627CD4400CB9F747EC - isa - PBXBuildFile - - DA15A66CD2924D55B611DB9C - - fileRef - DB350EFF6C8344F195BD1554 - isa - PBXBuildFile - - DAA8188ED973466CA4E9C9A9 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - KWIntercept.m - path - NonARC/KWIntercept.m - sourceTree - <group> - - DAC2D06AE5A4411A94307D14 - - explicitFileType - archive.ar - includeInIndex - 0 - isa - PBXFileReference - path - libPods.a - sourceTree - BUILT_PRODUCTS_DIR - - DADED8C3CD434460A858F840 - - fileRef - 1F525F9ED8BB4FFCA0B04B12 - isa - PBXBuildFile - - DB350EFF6C8344F195BD1554 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - NSInvocation+KiwiAdditions.h - path - Classes/Core/NSInvocation+KiwiAdditions.h - sourceTree - <group> - - DBB4834CB07C4429A5E312BF - - fileRef - B97CDAD8FE6F44CD943F8724 - isa - PBXBuildFile - - DBD1F1B0F64541D3A042F3F8 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - KWMatcher.m - path - Classes/Core/KWMatcher.m - sourceTree - <group> - - DC2CA82AF54A4FCE9C4BC262 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWExampleNodeVisitor.h - path - Classes/Core/KWExampleNodeVisitor.h - sourceTree - <group> - - DCB410C1F4C74C21A58B2721 - - fileRef - 7CE684AAC7904189929B0FA1 - isa - PBXBuildFile - - DD3CCEB740F94CF0B6A21F1F - - buildConfigurations - - A1F3671BA60B49B887C731ED - 7FA7C5430107484DB1C3BFFD - - defaultConfigurationIsVisible - 0 - defaultConfigurationName - Release - isa - XCConfigurationList - - DD9C1B49634444DFA76E8B44 - - baseConfigurationReference - 30AD1BFF540F4491B6F8B064 - buildSettings - - ALWAYS_SEARCH_USER_PATHS - NO - ARCHS - $(ARCHS_STANDARD_INCLUDING_64_BIT) - COPY_PHASE_STRIP - YES - DSTROOT - /tmp/xcodeproj.dst - GCC_C_LANGUAGE_STANDARD - gnu99 - GCC_PRECOMPILE_PREFIX_HEADER - YES - GCC_PREFIX_HEADER - Pods-PSUpdateAppTests-Kiwi-prefix.pch - GCC_VERSION - com.apple.compilers.llvm.clang.1_0 - INSTALL_PATH - $(BUILT_PRODUCTS_DIR) - IPHONEOS_DEPLOYMENT_TARGET - 7.0 - OTHER_CFLAGS - - -DNS_BLOCK_ASSERTIONS=1 - $(inherited) - - OTHER_CPLUSPLUSFLAGS - - -DNS_BLOCK_ASSERTIONS=1 - $(inherited) - - OTHER_LDFLAGS - - PRODUCT_NAME - $(TARGET_NAME) - PUBLIC_HEADERS_FOLDER_PATH - $(TARGET_NAME) - SDKROOT - iphoneos - SKIP_INSTALL - YES - VALIDATE_PRODUCT - YES - - isa - XCBuildConfiguration - name - Release - - DDC37B3DA6BC4146A5D4F9AE - - fileRef - EFF5BD8A0B654FE49615681F - isa - PBXBuildFile - - DE198B0571704603A138C469 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - text - path - Pods-acknowledgements.markdown - sourceTree - <group> - - DE64BE64022C477EB74EDD22 - - fileRef - 597246976161466F87E377C5 - isa - PBXBuildFile - - DE7D056B0C1C4455A1E3E669 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWStringPrefixMatcher.h - path - Classes/Matchers/KWStringPrefixMatcher.h - sourceTree - <group> - - DF05D5236E404A8D9B75A692 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - AFURLSessionManager.h - path - AFNetworking/AFURLSessionManager.h - sourceTree - <group> - - DFFEE49925B9413ABB67491C - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KiwiMacros.h - path - Classes/Core/KiwiMacros.h - sourceTree - <group> - - E055809952904198818D87AF - - fileRef - 564E481ACF7246D8935D3904 - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - E06B9002836846C19DF48F42 - - fileRef - 7E912BF89F0C43D1A3CF234A - isa - PBXBuildFile - - E09764A7F2384BD19D108BE4 - - fileRef - A6F0F191BEA64F54815487D3 - isa - PBXBuildFile - - E134777618344E7CB28F72A1 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - AFHTTPRequestOperationManager.m - path - AFNetworking/AFHTTPRequestOperationManager.m - sourceTree - <group> - - E1D04A85576345D69B9978F6 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - KWMock.m - path - Classes/Mocking/KWMock.m - sourceTree - <group> - - E1EF021CE27E4974BEF8A1A8 - - fileRef - D8F759761097424598A03D29 - isa - PBXBuildFile - - E2ACCEA1B4CF41E483675A90 - - children - - 8C0C5ACC0AE84E94A8CD74A5 - 30AD1BFF540F4491B6F8B064 - 82ED52C40F77416ABD3DC307 - 95E8BF93285F4B9594BC1BEE - - isa - PBXGroup - name - Support Files - sourceTree - SOURCE_ROOT - - E2F11744F23E4E16A3C2C31B - - fileRef - 11FEC5AC66224F06B543B0C3 - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc - - - E2F9030E78E74DA2AA8147D9 - - fileRef - 9CF5A3DB67F340049EA4C4EE - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - E3239BB727854FFDB56EAB99 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - KWChangeMatcher.m - path - Classes/Matchers/KWChangeMatcher.m - sourceTree - <group> - - E387438E7A97429390C0C7A8 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - text.xcconfig - path - Pods.xcconfig - sourceTree - <group> - - E3C9868D59724784B71DE202 - - explicitFileType - archive.ar - includeInIndex - 0 - isa - PBXFileReference - path - libPods-PSUpdateAppTests.a - sourceTree - BUILT_PRODUCTS_DIR - - E4E74A59E3C1464E918E1242 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWConformToProtocolMatcher.h - path - Classes/Matchers/KWConformToProtocolMatcher.h - sourceTree - <group> - - E5799643F30E4BD0AFFBDF92 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - KWSpec.m - path - Classes/Core/KWSpec.m - sourceTree - <group> - - E5C2E14188D347E2A09D78D1 - - isa - PBXFileReference - lastKnownFileType - wrapper.framework - name - SenTestingKit.framework - path - Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk/System/Library/Frameworks/SenTestingKit.framework - sourceTree - DEVELOPER_DIR - - E5EF98A21484477F8C4702D9 - - fileRef - ECEFDE0958A4428FA664A2C5 - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc - - - E61AF33F510F486091B662E8 - - fileRef - 5001F3963F59469698632C75 - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - E6C916B8D69F428E88F91D5B - - fileRef - 819CC632C52B4DB39BFF61D6 - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - E724ACD14EF34F6BAF211344 - - fileRef - D06E8DC6526B4728B4D4AE14 - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - E77E2F4D9049425180C13B3D - - fileRef - 68762A7BE94E41CEB1CE2B61 - isa - PBXBuildFile - - E7AA735233DE4049A34CB3C2 - - children - - C87CC39DA0854A60B14AAD34 - 905AC1ACB93B43ECA2F1823B - 4A794A9812BE478496A08156 - 3045EE2B858B4E9DB25F8ABE - 2ADEAE8BFB2C45B182201C94 - 634198E31E5342DE94B4B2BF - 1E2C2EFED66E4D96B4331019 - 0BD59B538D9940CCAD60A265 - 13DAC9EA176B40ED962206CC - 33AACC82B93848ABA32FC699 - 5771667BCBCB4BFD9F7238E9 - C32812D7C0FC49C8B0474EBD - CC75FD441AEC46988082F46A - 704EEB1A621F4164A94531E9 - ECEFDE0958A4428FA664A2C5 - - isa - PBXGroup - name - UIKit - sourceTree - <group> - - E82C385F7E3045ECA73D3297 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWDeviceInfo.h - path - Classes/Core/KWDeviceInfo.h - sourceTree - <group> - - E894583069C940F5BD0D480D - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWNull.h - path - Classes/Core/KWNull.h - sourceTree - <group> - - E8C37C296E6A4D248C76C925 - - fileRef - C3E6CC9E437F4B5FB3B29EC6 - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - E9635A91416840AAB09CD7C3 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - AFHTTPRequestOperation.h - path - AFNetworking/AFHTTPRequestOperation.h - sourceTree - <group> - - E9D987E1CEAF4CDD87C79BE3 - - fileRef - DF05D5236E404A8D9B75A692 - isa - PBXBuildFile - - EA1A93532A864AD98FE53654 - - fileRef - E4E74A59E3C1464E918E1242 - isa - PBXBuildFile - - EA77D67249574164A7D56399 - - fileRef - FB22B72C259C40E5AF03AE79 - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - EABB6D2733D345F99DCC4E75 - - buildConfigurations - - 02451115C29446E78F6259ED - DD9C1B49634444DFA76E8B44 - - defaultConfigurationIsVisible - 0 - defaultConfigurationName - Release - isa - XCConfigurationList - - EB357A53B0144188818AAC25 - - fileRef - CC75FD441AEC46988082F46A - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc - - - EB3A39DE286A4CC68ABAA049 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWValue.h - path - Classes/Core/KWValue.h - sourceTree - <group> - - EBADEDADFBCC4F55A7D12062 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - KWBlock.m - path - Classes/Core/KWBlock.m - sourceTree - <group> - - EC36864152B54411B52CDB2F - - baseConfigurationReference - E387438E7A97429390C0C7A8 - buildSettings - - ALWAYS_SEARCH_USER_PATHS - NO - ARCHS - $(ARCHS_STANDARD_INCLUDING_64_BIT) - COPY_PHASE_STRIP - NO - DSTROOT - /tmp/xcodeproj.dst - GCC_C_LANGUAGE_STANDARD - gnu99 - GCC_DYNAMIC_NO_PIC - NO - GCC_OPTIMIZATION_LEVEL - 0 - GCC_PRECOMPILE_PREFIX_HEADER - YES - GCC_PREPROCESSOR_DEFINITIONS - - DEBUG=1 - $(inherited) - - GCC_SYMBOLS_PRIVATE_EXTERN - NO - GCC_VERSION - com.apple.compilers.llvm.clang.1_0 - INSTALL_PATH - $(BUILT_PRODUCTS_DIR) - IPHONEOS_DEPLOYMENT_TARGET - 7.0 - OTHER_LDFLAGS - - PRODUCT_NAME - $(TARGET_NAME) - PUBLIC_HEADERS_FOLDER_PATH - $(TARGET_NAME) - SDKROOT - iphoneos - SKIP_INSTALL - YES - - isa - XCBuildConfiguration - name - Debug - - ECA1062E179E40B4A01D01DD - - fileRef - B82962BA209A436C97A505F1 - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - ECCB88C2283A439ABABF03DA - - children - - 211F787702CA4DE5861174CD - 597246976161466F87E377C5 - BD6305FE63C04F578CFEAE02 - 894E49B3E37344B2BF265379 - E5C2E14188D347E2A09D78D1 - A6D04104582F43D9AFF2A22C - - isa - PBXGroup - name - iOS - sourceTree - <group> - - ECEFDE0958A4428FA664A2C5 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - UIWebView+AFNetworking.m - path - UIKit+AFNetworking/UIWebView+AFNetworking.m - sourceTree - <group> - - ED4B849B076943B6BED16A84 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - KWGenericMatchEvaluator.m - path - Classes/Matchers/KWGenericMatchEvaluator.m - sourceTree - <group> - - EDA13321019B4D8DAC0F717A - - children - - 77AB4D913B9C44AB9B420F4E - 504A3CDD89654BA9B473AFA1 - D980885EBA40493BBA172111 - D1B04BBF348649CFBCE06C2D - 7CABB939EFCB43449B896134 - 016953AA9BEF44DD8F2AFBEF - - isa - PBXGroup - name - Pods-PSUpdateAppTests - sourceTree - <group> - - EFE454CC6B5F426ABFC7CBC3 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - KWStringUtilities.m - path - Classes/Core/KWStringUtilities.m - sourceTree - <group> - - EFF5BD8A0B654FE49615681F - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWExampleNode.h - path - Classes/Nodes/KWExampleNode.h - sourceTree - <group> - - F117F8AC026046F3B042A75C - - fileRef - BBB9C868174B4CE79ADACC71 - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - F1F4DABF0F10460AAC84FBFC - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - NSValue+KiwiAdditions.m - path - Classes/Core/NSValue+KiwiAdditions.m - sourceTree - <group> - - F27B9217CCBE4C6BBBD9850E - - fileRef - CAF3F1EEECFE4611AD3BE218 - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - F2DE8E43122C43A1A782B427 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - NSInvocation+KiwiAdditions.m - path - Classes/Core/NSInvocation+KiwiAdditions.m - sourceTree - <group> - - F32B1FDC49DA4EDFA3B13D5F - - fileRef - 2CF3496DCDE34AD0A5975B25 - isa - PBXBuildFile - - F55050B27F10420FACF27383 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWCountType.h - path - Classes/Core/KWCountType.h - sourceTree - <group> - - F94F3A040F1A4D0BA33FFE84 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - KWBeZeroMatcher.m - path - Classes/Matchers/KWBeZeroMatcher.m - sourceTree - <group> - - FA5249836CFC493799BEF89D - - fileRef - 9C2084DBEC2C4350935DCB7D - isa - PBXBuildFile - - FAA7FBD75A174AE4A8165C72 - - fileRef - 72345FCD82114A38B9CD127A - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc -DOS_OBJECT_USE_OBJC=0 - - - FB22B72C259C40E5AF03AE79 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - KWGenericMatcher.m - path - Classes/Matchers/KWGenericMatcher.m - sourceTree - <group> - - FB3671F7E2CA45928EFAF896 - - fileRef - 3CF08454BAF64FB98347ABC9 - isa - PBXBuildFile - - FBC4935E56EF4171A354D1A1 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - KWFutureObject.m - path - Classes/Core/KWFutureObject.m - sourceTree - <group> - - FBF8F54BB0AD4C7BBF269A7C - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - SenTestSuite+KiwiAdditions.m - path - Classes/Core/SenTestSuite+KiwiAdditions.m - sourceTree - <group> - - FC504D1D2A99400594A36592 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - KWReceiveMatcher.h - path - Classes/Matchers/KWReceiveMatcher.h - sourceTree - <group> - - FDA0A2A1BD054CF2A96708E6 - - buildConfigurations - - 31D2B86FEBF0450D8AC1874E - CDD9265F7750481F9E4CEDAD - - defaultConfigurationIsVisible - 0 - defaultConfigurationName - Release - isa - XCConfigurationList - - FDDB316B184B4FBA8DE32695 - - buildActionMask - 2147483647 - files - - 152BCA1BC31C4E48BF3F488B - B9A1BC9622714A8392989B72 - 42DB64BFFAC1443FBBA5F5E7 - 4AC0FE26D6864F52B71E57C8 - 147C9995FDFF410CBE5E4E21 - E8C37C296E6A4D248C76C925 - B18067758D2E43CAB29AABA2 - 57A1D8A91DEE47039C553203 - F27B9217CCBE4C6BBBD9850E - 36E2A71A886F4B96B43D26D8 - C96039900F4F43CCABA0205D - 92665C94AD3A4D8A869CC98D - 2F937BCD5EC34C819B60BD61 - 800F3F4DE52A4CBB9B291F1B - FAA7FBD75A174AE4A8165C72 - CABE36E1838E4688B8224643 - B31C6B08E5E547DB872FE6CD - ECA1062E179E40B4A01D01DD - 394ACC6FB5E24639B039C014 - E055809952904198818D87AF - B6B1AE831CF644A9A6DCC165 - E724ACD14EF34F6BAF211344 - 6A03E0036F3C43B694D057FB - C997C2BD34B04FAFA36C25AF - 3851FBE243D84DDF8B4EFB9D - 16A1A4D346DE452484A42626 - 571B85CDB5BF4B24AB49A88E - 8D9ACF03FDEC4B308A2EB155 - A3B2895176624AF3B82B61FC - 7E76F745CF68439E9835BC16 - 0F3C181425324428A97774C1 - F117F8AC026046F3B042A75C - CC8B83C861F443C1928A81A9 - B4F887D25EB84C00A4A9C8C6 - C0E17478AA6E425E83B1F259 - EA77D67249574164A7D56399 - 713EFE41A93B43EEBEBA75A6 - 4D590AA2A62A4B7B8761D94E - A360F4FFBC374577948A2AC7 - 133DF17AE8A2416F921394DF - 1BDD4B3CD42F4A7081701761 - D8EA455549684F3593F9F71E - 13BE0FC701FD49EFB0BA1E5C - 82CB0840473A474BA31CB4F9 - 6CE78EC137CB44DEA610CE01 - 8C81F2B3BDF64D0BBCD38D4F - E6C916B8D69F428E88F91D5B - 415563C73F5E4F758CB838B1 - 3D67EAA5A76B48418867D75B - 8628988466914DBEAC0AD322 - D6B150C0DE774DCBB09C2C0E - 813CB644D7BF424199C04CA6 - 55860BF0607148FC9BDEF9C1 - D142482971204FD299333A8C - 91A45A6557A34B25A45EEC24 - 0E9FB286BC6E4A6792ED7F0B - E61AF33F510F486091B662E8 - 2DFF6C233F7C45E594726C78 - 13F711B0C95644D1BF7B741C - 7CEB337D102C4E29ADBD1C44 - 60FB8B9445C840A4992E482D - 23B6E1684A1F4B8EB9E36598 - BC4AEE5243F447FA89A7E133 - 29944EE969F048A7A597EC4F - B017BABB0E4346B1A8A5A496 - 6DB2D2DFD5A54983937A635B - 98555B182D564F3CB4107A96 - 763A78D447B441988F0F24D5 - A677C68D0EC54783977D52FB - 28508860A79C4F2680C40807 - E2F9030E78E74DA2AA8147D9 - B6763C690BD84AD2A6A6EA80 - C94AC1377A55479AAD1DD45E - 6B384D623D3540E0AF337BDA - 1DA2CCB213A14D05A9AF1AD2 - C22D3C4A160B405BBD2CCB97 - 7FFB43C1C94F420BBE125CF3 - 381E5FBDBB194D06AD645A91 - CC1A3EB3FE0F48C58E5C0A5B - B37FE1F6D7184279A82ACA0F - 352C00CEA6E244589A6DDE18 - - isa - PBXSourcesBuildPhase - runOnlyForDeploymentPostprocessing - 0 - - FE4FD85464364619AE871352 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - KWProbePoller.m - path - Classes/Core/KWProbePoller.m - sourceTree - <group> - - FE57EF597BEC484E855E9AD5 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - AFURLRequestSerialization.h - path - AFNetworking/AFURLRequestSerialization.h - sourceTree - <group> - - FE5996B9D6104BE191473C1F - - fileRef - E9635A91416840AAB09CD7C3 - isa - PBXBuildFile - - FE5FC12A4998462CBC4FEA62 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - KWBeTrueMatcher.m - path - Classes/Matchers/KWBeTrueMatcher.m - sourceTree - <group> - - - rootObject - 36C93C7F61484B07AB505F91 - - diff --git a/README.md b/README.md index e11bc92..42fd1e9 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,8 @@ PSUpdateApp =========== -## PSUpdateApp Version 2.0 is available!!! -The new version 2.0 is based on **[AFNetworking](https://github.com/AFNetworking/AFNetworking/ "AFNetworking")** framework 2.0. AFNetworking 2.0 officially supports iOS 6+, Mac OS X 10.8+, and Xcode 5. - -**If you'd like to use PSUpdateApp in a project targeting a base SDK of iOS 5, or Mac OS X 10.7, use the latest tagged 1.x release**. +## PSUpdateApp Version 3.0 +Version 3.0 is based on **[AFNetworking](https://github.com/AFNetworking/AFNetworking/ "AFNetworking")** framework3.0 and requires iOS 8.0+ or MacOS 10.10+ ## A simple method to notify users that a new version of your iOS app is available. @@ -34,9 +32,9 @@ Change to the directory of your Xcode project, and Create and Edit your Podfile $ cd /path/to/MyProject $ touch Podfile $ edit Podfile -platform :ios, '6.0' -# Or platform :osx, '10.8' -pod 'PSUpdateApp', '~> 2.0.5' +platform :ios, '8.0' +# Or platform :osx, '10.10' +pod 'PSUpdateApp', '~> 3.0' ``` Install into your project: @@ -150,7 +148,7 @@ Use `setURLAdHoc:` if you want to create a `stringWithFormat:` between your cust ### Notes -- This project requires ARC and iOS target from 6.0 +- This project requires ARC and iOS 8.0/MacOS 10.10 or later - Use the PSUpdateApp properties to change the PSUpdateApp default value: for example the **app name** or **store location** - It's localized - It has a simple BDD test inside the example project @@ -167,7 +165,7 @@ Use `setURLAdHoc:` if you want to create a `stringWithFormat:` between your cust ### Version -2.0.5 +3.0 ### Created by: