diff --git a/Cards/about.html b/Cards/about.html index 496993c..5015710 100644 --- a/Cards/about.html +++ b/Cards/about.html @@ -12,8 +12,8 @@

Recognizing that the work of our collective rests upon generations of understanding of group dynamics, we are gifting this particular emergence of that ongoing development into the commons.

-

Group Pattern Language Project (2011) www.grouppatternlanguage.org & www.groupworksdeck.org.

+

Group Pattern Language Project (2011) www.groupworksdeck.org.

This work is licensed under the Creative Commons Attribution-Share Alike 3.0 License. You are free to share and remix the work on the condition that you attribute the source, and redistribute under the same license. For more information see: www.creativecommons.org.

@@ -54,11 +54,11 @@

Introduction

Want to learn more? Go to our website :

- \ No newline at end of file + diff --git a/Group Works/Images.xcassets/AppIcon.appiconset/Contents.json b/Group Works/Images.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..2450d2e --- /dev/null +++ b/Group Works/Images.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,56 @@ +{ + "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" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "GWlogo_120.png", + "scale" : "2x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "GWlogo_180.png", + "scale" : "3x" + }, + { + "size" : "1024x1024", + "idiom" : "ios-marketing", + "filename" : "GWlogo1.png", + "scale" : "1x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Group Works/Images.xcassets/AppIcon.appiconset/GWlogo1.png b/Group Works/Images.xcassets/AppIcon.appiconset/GWlogo1.png new file mode 100644 index 0000000..1c86c25 Binary files /dev/null and b/Group Works/Images.xcassets/AppIcon.appiconset/GWlogo1.png differ diff --git a/Group Works/Images.xcassets/AppIcon.appiconset/GWlogo_120.png b/Group Works/Images.xcassets/AppIcon.appiconset/GWlogo_120.png new file mode 100644 index 0000000..a41b0ad Binary files /dev/null and b/Group Works/Images.xcassets/AppIcon.appiconset/GWlogo_120.png differ diff --git a/Group Works/Images.xcassets/AppIcon.appiconset/GWlogo_180.png b/Group Works/Images.xcassets/AppIcon.appiconset/GWlogo_180.png new file mode 100644 index 0000000..ee72fc1 Binary files /dev/null and b/Group Works/Images.xcassets/AppIcon.appiconset/GWlogo_180.png differ diff --git a/Group Works/Images.xcassets/Contents.json b/Group Works/Images.xcassets/Contents.json new file mode 100644 index 0000000..da4a164 --- /dev/null +++ b/Group Works/Images.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/GroupPatterns.xcodeproj/project.pbxproj b/GroupPatterns.xcodeproj/project.pbxproj index f5fff72..1d7587f 100644 --- a/GroupPatterns.xcodeproj/project.pbxproj +++ b/GroupPatterns.xcodeproj/project.pbxproj @@ -7,14 +7,13 @@ objects = { /* Begin PBXBuildFile section */ + 08D0FF0CAB304593A3F02C13 /* libPods-Group Works.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2AE0F4EDE76D1130ADE50075 /* libPods-Group Works.a */; }; 3F1103D31633117400FD5AFF /* SenTestingKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3F1103D21633117400FD5AFF /* SenTestingKit.framework */; }; 3F1103D41633117400FD5AFF /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ECB93FFB13F85F19001B8F09 /* UIKit.framework */; }; 3F1103D51633117400FD5AFF /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ECB93FFD13F85F19001B8F09 /* Foundation.framework */; }; 3F1103DB1633117400FD5AFF /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 3F1103D91633117400FD5AFF /* InfoPlist.strings */; }; - 3F1103F5163313A500FD5AFF /* OCHamcrestIOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3F1103F4163313A500FD5AFF /* OCHamcrestIOS.framework */; }; 3F1103FF1633150400FD5AFF /* CardTests.m in Sources */ = {isa = PBXBuildFile; fileRef = BAA65CBE07472556C7A79A08 /* CardTests.m */; }; 3F1104011633150B00FD5AFF /* CategoryTests.m in Sources */ = {isa = PBXBuildFile; fileRef = BAA65115C5994358ECCCD835 /* CategoryTests.m */; }; - 3F1104021633176C00FD5AFF /* OCTotallyLazy.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3F4DB3AB1632466E00329284 /* OCTotallyLazy.framework */; }; 3F1104031633198900FD5AFF /* Card.m in Sources */ = {isa = PBXBuildFile; fileRef = ECB9402813F86142001B8F09 /* Card.m */; }; 3F1104041633198900FD5AFF /* Category.m in Sources */ = {isa = PBXBuildFile; fileRef = BAA65C4719E5C00B16CB7178 /* Category.m */; }; 3F11040516331C0800FD5AFF /* cards.json in Resources */ = {isa = PBXBuildFile; fileRef = 3F4DB4571632CECA00329284 /* cards.json */; }; @@ -327,7 +326,6 @@ 3F442A4D162BA4F1000322AE /* launch_640x960.png in Resources */ = {isa = PBXBuildFile; fileRef = 3F442A43162BA4F1000322AE /* launch_640x960.png */; }; 3F442A4E162BA4F1000322AE /* launch_320.png in Resources */ = {isa = PBXBuildFile; fileRef = 3F442A45162BA4F1000322AE /* launch_320.png */; }; 3F442A4F162BA4F1000322AE /* launch_640.png in Resources */ = {isa = PBXBuildFile; fileRef = 3F442A46162BA4F1000322AE /* launch_640.png */; }; - 3F4DB3AC1632466E00329284 /* OCTotallyLazy.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3F4DB3AB1632466E00329284 /* OCTotallyLazy.framework */; }; 3F4DB49C1632CECA00329284 /* cards.json in Resources */ = {isa = PBXBuildFile; fileRef = 3F4DB4571632CECA00329284 /* cards.json */; }; 3F4DB49D1632CECA00329284 /* expressive_arts.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 3F4DB4581632CECA00329284 /* expressive_arts.jpg */; }; 3F4DB49E1632CECA00329284 /* feedback.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 3F4DB4591632CECA00329284 /* feedback.jpg */; }; @@ -445,11 +443,10 @@ BAA65DB2EE08A6A42156E45F /* acknowledgements.html in Resources */ = {isa = PBXBuildFile; fileRef = BAA65779D740B0CBF91AFC8A /* acknowledgements.html */; }; BAA65E57C1648A714EEA4AC5 /* CategoryListController.m in Sources */ = {isa = PBXBuildFile; fileRef = BAA6565DC1518B696A77A321 /* CategoryListController.m */; }; BAA65F5A561A687CD99D8EA9 /* NSString+Helpers.m in Sources */ = {isa = PBXBuildFile; fileRef = BAA6569492EA4382D8FC9F39 /* NSString+Helpers.m */; }; + CA1100D35EB0956CD0775CD4 /* libPods-UnitTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = EB6D4FFC22DD07D15F0A6C91 /* libPods-UnitTests.a */; }; + CBB9C1192072D8D600C882AC /* Launch Screen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = CBB9C1182072D8D600C882AC /* Launch Screen.storyboard */; }; + CBB9C11B2072D9BE00C882AC /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = CBB9C11A2072D9BE00C882AC /* Images.xcassets */; }; EC4CBC0713F86769009DBED9 /* CardListController.m in Sources */ = {isa = PBXBuildFile; fileRef = EC4CBC0513F86769009DBED9 /* CardListController.m */; }; - EC5097411403392F00800981 /* icon_57.png in Resources */ = {isa = PBXBuildFile; fileRef = EC5097401403392F00800981 /* icon_57.png */; }; - EC5097431403393B00800981 /* icon_114.png in Resources */ = {isa = PBXBuildFile; fileRef = EC5097421403393B00800981 /* icon_114.png */; }; - EC5097451403394400800981 /* Default.png in Resources */ = {isa = PBXBuildFile; fileRef = EC5097441403394400800981 /* Default.png */; }; - EC5097471403394C00800981 /* Default@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = EC5097461403394C00800981 /* Default@2x.png */; }; EC50974914033B9E00800981 /* iTunesArtwork in Resources */ = {isa = PBXBuildFile; fileRef = EC50974814033B9E00800981 /* iTunesArtwork */; }; EC509750140347EA00800981 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EC50974F140347EA00800981 /* QuartzCore.framework */; }; ECB93FFC13F85F19001B8F09 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ECB93FFB13F85F19001B8F09 /* UIKit.framework */; }; @@ -467,12 +464,13 @@ /* End PBXBuildFile section */ /* Begin PBXFileReference section */ + 1AF43673FA8DF4DE996CFF7A /* Pods-UnitTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-UnitTests.release.xcconfig"; path = "Pods/Target Support Files/Pods-UnitTests/Pods-UnitTests.release.xcconfig"; sourceTree = ""; }; + 2AE0F4EDE76D1130ADE50075 /* libPods-Group Works.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Group Works.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 3F1103D11633117400FD5AFF /* UnitTests.octest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = UnitTests.octest; sourceTree = BUILT_PRODUCTS_DIR; }; 3F1103D21633117400FD5AFF /* SenTestingKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SenTestingKit.framework; path = Library/Frameworks/SenTestingKit.framework; sourceTree = DEVELOPER_DIR; }; 3F1103D81633117400FD5AFF /* UnitTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "UnitTests-Info.plist"; sourceTree = ""; }; 3F1103DA1633117400FD5AFF /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; 3F1103DF1633117400FD5AFF /* UnitTests-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "UnitTests-Prefix.pch"; sourceTree = ""; }; - 3F1103F4163313A500FD5AFF /* OCHamcrestIOS.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = OCHamcrestIOS.framework; sourceTree = ""; }; 3F11041216333D2E00FD5AFF /* context.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = context.png; sourceTree = ""; }; 3F11041316333D2E00FD5AFF /* creativity.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = creativity.png; sourceTree = ""; }; 3F11041416333D2E00FD5AFF /* faith.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = faith.png; sourceTree = ""; }; @@ -674,7 +672,6 @@ 3F442A43162BA4F1000322AE /* launch_640x960.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = launch_640x960.png; sourceTree = ""; }; 3F442A45162BA4F1000322AE /* launch_320.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = launch_320.png; sourceTree = ""; }; 3F442A46162BA4F1000322AE /* launch_640.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = launch_640.png; sourceTree = ""; }; - 3F4DB3AB1632466E00329284 /* OCTotallyLazy.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = OCTotallyLazy.framework; sourceTree = ""; }; 3F4DB4571632CECA00329284 /* cards.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = cards.json; sourceTree = ""; }; 3F4DB4581632CECA00329284 /* expressive_arts.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = expressive_arts.jpg; sourceTree = ""; }; 3F4DB4591632CECA00329284 /* feedback.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = feedback.jpg; sourceTree = ""; }; @@ -769,6 +766,8 @@ 3FE56470162BC07400DE2CA6 /* embrace_dissonance_and_difference.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = embrace_dissonance_and_difference.jpg; sourceTree = ""; }; 3FE56471162BC07400DE2CA6 /* emergence.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = emergence.jpg; sourceTree = ""; }; 3FE56472162BC07400DE2CA6 /* experts_on_tap.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = experts_on_tap.jpg; sourceTree = ""; }; + 5474728382DAAD01200BA6C7 /* Pods-Group Works.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Group Works.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Group Works/Pods-Group Works.debug.xcconfig"; sourceTree = ""; }; + 82F941124E8EE9DD97943B83 /* Pods-Group Works.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Group Works.release.xcconfig"; path = "Pods/Target Support Files/Pods-Group Works/Pods-Group Works.release.xcconfig"; sourceTree = ""; }; BAA6504F4D38661200AC531E /* AboutController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AboutController.m; sourceTree = ""; }; BAA65086B41391BC285D0E98 /* TODO */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = TODO; sourceTree = ""; }; BAA65114549B20CC39FDE50A /* HomeController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HomeController.h; sourceTree = ""; }; @@ -799,6 +798,10 @@ BAA65E5CB3D9CBA0CD36288A /* WebViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebViewController.h; sourceTree = ""; }; BAA65EAEA94D0CC3B3B0BC92 /* CategoryController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CategoryController.h; sourceTree = ""; }; BAA65FA620D1EDE214F980D9 /* related_patterns.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = related_patterns.html; sourceTree = ""; }; + CBB9C1182072D8D600C882AC /* Launch Screen.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = "Launch Screen.storyboard"; sourceTree = ""; }; + CBB9C11A2072D9BE00C882AC /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = "Group Works/Images.xcassets"; sourceTree = ""; }; + D220B6DD78AF25AD4021986A /* Pods-UnitTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-UnitTests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-UnitTests/Pods-UnitTests.debug.xcconfig"; sourceTree = ""; }; + EB6D4FFC22DD07D15F0A6C91 /* libPods-UnitTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-UnitTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; EC4CBC0413F86769009DBED9 /* CardListController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CardListController.h; sourceTree = ""; }; EC4CBC0513F86769009DBED9 /* CardListController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CardListController.m; sourceTree = ""; }; EC5097401403392F00800981 /* icon_57.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = icon_57.png; sourceTree = ""; }; @@ -837,8 +840,7 @@ 3F1103D31633117400FD5AFF /* SenTestingKit.framework in Frameworks */, 3F1103D41633117400FD5AFF /* UIKit.framework in Frameworks */, 3F1103D51633117400FD5AFF /* Foundation.framework in Frameworks */, - 3F1103F5163313A500FD5AFF /* OCHamcrestIOS.framework in Frameworks */, - 3F1104021633176C00FD5AFF /* OCTotallyLazy.framework in Frameworks */, + CA1100D35EB0956CD0775CD4 /* libPods-UnitTests.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -851,7 +853,7 @@ ECB93FFC13F85F19001B8F09 /* UIKit.framework in Frameworks */, ECB93FFE13F85F19001B8F09 /* Foundation.framework in Frameworks */, ECB9400013F85F19001B8F09 /* CoreGraphics.framework in Frameworks */, - 3F4DB3AC1632466E00329284 /* OCTotallyLazy.framework in Frameworks */, + 08D0FF0CAB304593A3F02C13 /* libPods-Group Works.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1113,6 +1115,17 @@ path = Cards; sourceTree = ""; }; + 7F5D084E1E1A9F0F9652A772 /* Pods */ = { + isa = PBXGroup; + children = ( + 5474728382DAAD01200BA6C7 /* Pods-Group Works.debug.xcconfig */, + 82F941124E8EE9DD97943B83 /* Pods-Group Works.release.xcconfig */, + D220B6DD78AF25AD4021986A /* Pods-UnitTests.debug.xcconfig */, + 1AF43673FA8DF4DE996CFF7A /* Pods-UnitTests.release.xcconfig */, + ); + name = Pods; + sourceTree = ""; + }; BAA6546DB9C608C207165A3D /* images */ = { isa = PBXGroup; children = ( @@ -1246,7 +1259,9 @@ isa = PBXGroup; children = ( 3FE5645B162BC07400DE2CA6 /* Cards */, + CBB9C11A2072D9BE00C882AC /* Images.xcassets */, 3F442A33162B9B05000322AE /* Storyboard.storyboard */, + CBB9C1182072D8D600C882AC /* Launch Screen.storyboard */, 3F71B057162AA9A800B62E7C /* Default-568h@2x.png */, EC50974814033B9E00800981 /* iTunesArtwork */, EC5097461403394C00800981 /* Default@2x.png */, @@ -1259,6 +1274,7 @@ ECB93FF813F85F19001B8F09 /* Products */, 3F442A3C162BA4F1000322AE /* Images */, BAA65086B41391BC285D0E98 /* TODO */, + 7F5D084E1E1A9F0F9652A772 /* Pods */, ); sourceTree = ""; }; @@ -1275,13 +1291,13 @@ isa = PBXGroup; children = ( 3FB8D2781637D4710054F6CE /* MessageUI.framework */, - 3F1103F4163313A500FD5AFF /* OCHamcrestIOS.framework */, - 3F4DB3AB1632466E00329284 /* OCTotallyLazy.framework */, EC50974F140347EA00800981 /* QuartzCore.framework */, ECB93FFB13F85F19001B8F09 /* UIKit.framework */, ECB93FFD13F85F19001B8F09 /* Foundation.framework */, ECB93FFF13F85F19001B8F09 /* CoreGraphics.framework */, 3F1103D21633117400FD5AFF /* SenTestingKit.framework */, + 2AE0F4EDE76D1130ADE50075 /* libPods-Group Works.a */, + EB6D4FFC22DD07D15F0A6C91 /* libPods-UnitTests.a */, ); name = Frameworks; sourceTree = ""; @@ -1367,10 +1383,12 @@ isa = PBXNativeTarget; buildConfigurationList = 3F1103E21633117400FD5AFF /* Build configuration list for PBXNativeTarget "UnitTests" */; buildPhases = ( + 91B6493D81B59A90453E0A3C /* [CP] Check Pods Manifest.lock */, 3F1103CC1633117400FD5AFF /* Sources */, 3F1103CD1633117400FD5AFF /* Frameworks */, 3F1103CE1633117400FD5AFF /* Resources */, 3F1103CF1633117400FD5AFF /* ShellScript */, + 9408022D992F8ABA84E8A4A8 /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -1385,9 +1403,12 @@ isa = PBXNativeTarget; buildConfigurationList = ECB9401813F85F19001B8F09 /* Build configuration list for PBXNativeTarget "Group Works" */; buildPhases = ( + 47AF3A3D36BBB1779700A767 /* [CP] Check Pods Manifest.lock */, ECB93FF313F85F19001B8F09 /* Sources */, ECB93FF413F85F19001B8F09 /* Frameworks */, ECB93FF513F85F19001B8F09 /* Resources */, + C8C16BD78F38325B25EE53C0 /* [CP] Embed Pods Frameworks */, + 82C8AB917481E21C5A125DF0 /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -1404,7 +1425,13 @@ ECB93FEE13F85F19001B8F09 /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 0450; + LastUpgradeCheck = 0930; + TargetAttributes = { + ECB93FF613F85F19001B8F09 = { + DevelopmentTeam = 3V7CF2UD6R; + ProvisioningStyle = Automatic; + }; + }; }; buildConfigurationList = ECB93FF113F85F19001B8F09 /* Build configuration list for PBXProject "GroupPatterns" */; compatibilityVersion = "Xcode 3.2"; @@ -1545,15 +1572,12 @@ ECB9400613F85F19001B8F09 /* InfoPlist.strings in Resources */, ECB9400F13F85F19001B8F09 /* MainWindow.xib in Resources */, ECB9401513F85F19001B8F09 /* RootViewController.xib in Resources */, - EC5097411403392F00800981 /* icon_57.png in Resources */, - EC5097431403393B00800981 /* icon_114.png in Resources */, - EC5097451403394400800981 /* Default.png in Resources */, - EC5097471403394C00800981 /* Default@2x.png in Resources */, EC50974914033B9E00800981 /* iTunesArtwork in Resources */, 3F71B058162AA9A800B62E7C /* Default-568h@2x.png in Resources */, 3F442A34162B9B05000322AE /* Storyboard.storyboard in Resources */, 3F442A47162BA4F1000322AE /* icon_114.png in Resources */, 3F442A48162BA4F1000322AE /* icon_512.png in Resources */, + CBB9C1192072D8D600C882AC /* Launch Screen.storyboard in Resources */, 3F442A49162BA4F1000322AE /* icon_57.png in Resources */, 3F442A4A162BA4F1000322AE /* launch.png in Resources */, 3F442A4B162BA4F1000322AE /* launch_320x480.png in Resources */, @@ -1732,6 +1756,7 @@ 3F11056516333D2E00FD5AFF /* rest_small.jpg in Resources */, 3F11056716333D2E00FD5AFF /* right_size_bite_small.jpg in Resources */, 3F11056916333D2E00FD5AFF /* ritual_small.jpg in Resources */, + CBB9C11B2072D9BE00C882AC /* Images.xcassets in Resources */, 3F11056B16333D2E00FD5AFF /* seasoned_timing_small.jpg in Resources */, 3F11056D16333D2E00FD5AFF /* seeing_the_forest,_seeing_the_trees_small.jpg in Resources */, 3F11056F16333D2E00FD5AFF /* self-awareness_small.jpg in Resources */, @@ -1869,6 +1894,81 @@ shellPath = /bin/sh; shellScript = "# Run the unit tests in this test bundle.\n\"${SYSTEM_DEVELOPER_DIR}/Tools/RunUnitTests\"\n"; }; + 47AF3A3D36BBB1779700A767 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Check Pods Manifest.lock"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_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"; + showEnvVarsInLog = 0; + }; + 82C8AB917481E21C5A125DF0 /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Copy Pods Resources"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Group Works/Pods-Group Works-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; + 91B6493D81B59A90453E0A3C /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Check Pods Manifest.lock"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_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"; + showEnvVarsInLog = 0; + }; + 9408022D992F8ABA84E8A4A8 /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Copy Pods Resources"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-UnitTests/Pods-UnitTests-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; + C8C16BD78F38325B25EE53C0 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Embed Pods Frameworks"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Group Works/Pods-Group Works-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -1958,6 +2058,7 @@ /* Begin XCBuildConfiguration section */ 3F1103E01633117400FD5AFF /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = D220B6DD78AF25AD4021986A /* Pods-UnitTests.debug.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; @@ -1981,8 +2082,9 @@ GCC_VERSION = ""; GCC_WARN_UNINITIALIZED_AUTOS = YES; INFOPLIST_FILE = "UnitTests/UnitTests-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 6.0; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; ONLY_ACTIVE_ARCH = YES; + PRODUCT_BUNDLE_IDENTIFIER = "com.barkingminds.${PRODUCT_NAME:rfc1034identifier}"; PRODUCT_NAME = "$(TARGET_NAME)"; WRAPPER_EXTENSION = octest; }; @@ -1990,6 +2092,7 @@ }; 3F1103E11633117400FD5AFF /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 1AF43673FA8DF4DE996CFF7A /* Pods-UnitTests.release.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; @@ -2008,7 +2111,8 @@ GCC_VERSION = ""; GCC_WARN_UNINITIALIZED_AUTOS = YES; INFOPLIST_FILE = "UnitTests/UnitTests-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 6.0; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + PRODUCT_BUNDLE_IDENTIFIER = "com.barkingminds.${PRODUCT_NAME:rfc1034identifier}"; PRODUCT_NAME = "$(TARGET_NAME)"; VALIDATE_PRODUCT = YES; WRAPPER_EXTENSION = octest; @@ -2018,7 +2122,7 @@ ECB9401613F85F19001B8F09 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_BIT)"; + ENABLE_TESTABILITY = YES; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = DEBUG; @@ -2026,7 +2130,8 @@ GCC_VERSION = com.apple.compilers.llvmgcc42; GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 5.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.3; + ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; }; name = Debug; @@ -2034,13 +2139,12 @@ ECB9401713F85F19001B8F09 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_BIT)"; CODE_SIGN_IDENTITY = "iPhone Distribution: Group Pattern Language Project/"; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_VERSION = com.apple.compilers.llvmgcc42; GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 5.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.3; OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1"; PROVISIONING_PROFILE = "F52FFB86-C0FF-4007-A983-D4BAC413440C"; SDKROOT = iphoneos; @@ -2049,10 +2153,15 @@ }; ECB9401913F85F19001B8F09 /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 5474728382DAAD01200BA6C7 /* Pods-Group Works.debug.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_OBJC_ARC = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + CODE_SIGN_STYLE = Automatic; COPY_PHASE_STRIP = NO; + DEVELOPMENT_TEAM = 3V7CF2UD6R; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", "\"$(SRCROOT)\"", @@ -2062,20 +2171,26 @@ GCC_PREFIX_HEADER = "GroupPatterns/GroupPatterns-Prefix.pch"; GCC_VERSION = ""; INFOPLIST_FILE = "GroupPatterns/GroupPatterns-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 5.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.3; ONLY_ACTIVE_ARCH = YES; + PRODUCT_BUNDLE_IDENTIFIER = org.groupworksdeck.carddeck; PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; WRAPPER_EXTENSION = app; }; name = Debug; }; ECB9401A13F85F19001B8F09 /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 82F941124E8EE9DD97943B83 /* Pods-Group Works.release.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_OBJC_ARC = YES; - CODE_SIGN_IDENTITY = "iPhone Distribution: Group Pattern Language Project/"; + CODE_SIGN_IDENTITY = "iPhone Developer"; + CODE_SIGN_STYLE = Automatic; COPY_PHASE_STRIP = YES; + DEVELOPMENT_TEAM = 3V7CF2UD6R; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", "\"$(SRCROOT)\"", @@ -2084,9 +2199,11 @@ GCC_PREFIX_HEADER = "GroupPatterns/GroupPatterns-Prefix.pch"; GCC_VERSION = ""; INFOPLIST_FILE = "GroupPatterns/GroupPatterns-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 5.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.3; + PRODUCT_BUNDLE_IDENTIFIER = org.groupworksdeck.carddeck; PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE = "96F42FE1-F5E1-4AAC-B047-EDFDB659E302"; + PROVISIONING_PROFILE = ""; + PROVISIONING_PROFILE_SPECIFIER = ""; VALIDATE_PRODUCT = YES; WRAPPER_EXTENSION = app; }; diff --git a/GroupPatterns.xcworkspace/contents.xcworkspacedata b/GroupPatterns.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..d0bd53d --- /dev/null +++ b/GroupPatterns.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/GroupPatterns.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/GroupPatterns.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/GroupPatterns.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/GroupPatterns/Controllers/CardController.m b/GroupPatterns/Controllers/CardController.m index 66817ec..7c1e247 100644 --- a/GroupPatterns/Controllers/CardController.m +++ b/GroupPatterns/Controllers/CardController.m @@ -23,7 +23,7 @@ - (void)makeTitleFit { UILabel *label = [[UILabel alloc] initWithFrame:CGRectZero]; label.backgroundColor = [UIColor clearColor]; label.font = [UIFont boldSystemFontOfSize:16.0]; - label.textColor = [UIColor whiteColor]; + label.textColor = [UIColor blackColor]; label.text = self.navigationItem.title; label.numberOfLines = 1; label.adjustsFontSizeToFitWidth = true; @@ -34,7 +34,7 @@ - (void)makeTitleFit { - (void)viewDidLoad { [super viewDidLoad]; - self.navigationItem.title = card.name; + self.title = card.name; [self makeTitleFit]; [self loadHTMLString:[self cardHtml]]; } diff --git a/GroupPatterns/GroupPatterns-Info.plist b/GroupPatterns/GroupPatterns-Info.plist index f433245..e46d560 100644 --- a/GroupPatterns/GroupPatterns-Info.plist +++ b/GroupPatterns/GroupPatterns-Info.plist @@ -10,13 +10,8 @@ ${EXECUTABLE_NAME} CFBundleIconFile - CFBundleIconFiles - - icon_57.png - icon_114.png - CFBundleIdentifier - org.groupworksdeck.carddeck + $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleInfoDictionaryVersion 6.0 CFBundleName @@ -24,13 +19,15 @@ CFBundlePackageType APPL CFBundleShortVersionString - 1.0 + 1.2 CFBundleSignature ???? CFBundleVersion - 1.0 + 1 LSRequiresIPhoneOS + UILaunchStoryboardName + Launch Screen UIMainStoryboardFile Storyboard UISupportedInterfaceOrientations diff --git a/GroupPatterns/Models/Card.m b/GroupPatterns/Models/Card.m index 26b067b..ef0f94b 100644 --- a/GroupPatterns/Models/Card.m +++ b/GroupPatterns/Models/Card.m @@ -1,4 +1,4 @@ -#import +#import #import "Card.h" #import "Category.h" #import "NSString+Helpers.h" diff --git a/GroupPatterns/en.lproj/RootViewController.xib b/GroupPatterns/en.lproj/RootViewController.xib index f4e59c2..8672088 100644 --- a/GroupPatterns/en.lproj/RootViewController.xib +++ b/GroupPatterns/en.lproj/RootViewController.xib @@ -1,384 +1,31 @@ - - - 784 - 10D541 - 760 - 1038.29 - 460.00 - - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - 81 - - - YES - - - - YES - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - - YES - - YES - - - YES - - - - YES - - IBFilesOwner - IBCocoaTouchFramework - - - IBFirstResponder - IBCocoaTouchFramework - - - - 274 - {320, 247} - - - 3 - MQA - - NO - YES - NO - IBCocoaTouchFramework - NO - 1 - 0 - YES - 44 - 22 - 22 - - - - - YES - - - view - - - - 3 - - - - dataSource - - - - 4 - - - - delegate - - - - 5 - - - - - YES - - 0 - - - - - - -1 - - - File's Owner - - - -2 - - - - - 2 - - - - - - - YES - - YES - -1.CustomClassName - -2.CustomClassName - 2.IBEditorWindowLastContentRect - 2.IBPluginDependency - - - YES - RootViewController - UIResponder - {{144, 609}, {320, 247}} - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - - - YES - - - YES - - - - - YES - - - YES - - - - 5 - - - - YES - - RootViewController - UITableViewController - - IBProjectSource - RootViewController.h - - - - - YES - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSError.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSFileManager.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSKeyValueCoding.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSKeyValueObserving.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSKeyedArchiver.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSNetServices.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSObject.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSPort.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSRunLoop.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSStream.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSThread.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSURL.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSURLConnection.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSXMLParser.h - - - - NSObject - - IBFrameworkSource - UIKit.framework/Headers/UIAccessibility.h - - - - NSObject - - IBFrameworkSource - UIKit.framework/Headers/UINibLoading.h - - - - NSObject - - IBFrameworkSource - UIKit.framework/Headers/UIResponder.h - - - - UIResponder - NSObject - - - - UIScrollView - UIView - - IBFrameworkSource - UIKit.framework/Headers/UIScrollView.h - - - - UISearchBar - UIView - - IBFrameworkSource - UIKit.framework/Headers/UISearchBar.h - - - - UISearchDisplayController - NSObject - - IBFrameworkSource - UIKit.framework/Headers/UISearchDisplayController.h - - - - UITableView - UIScrollView - - IBFrameworkSource - UIKit.framework/Headers/UITableView.h - - - - UITableViewController - UIViewController - - IBFrameworkSource - UIKit.framework/Headers/UITableViewController.h - - - - UIView - - IBFrameworkSource - UIKit.framework/Headers/UITextField.h - - - - UIView - UIResponder - - IBFrameworkSource - UIKit.framework/Headers/UIView.h - - - - UIViewController - - IBFrameworkSource - UIKit.framework/Headers/UINavigationController.h - - - - UIViewController - - IBFrameworkSource - UIKit.framework/Headers/UITabBarController.h - - - - UIViewController - UIResponder - - IBFrameworkSource - UIKit.framework/Headers/UIViewController.h - - - - - 0 - IBCocoaTouchFramework - - com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS - - - - com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3 - - - YES - GroupPatterns.xcodeproj - 3 - 81 - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Launch Screen.storyboard b/Launch Screen.storyboard new file mode 100644 index 0000000..05c47a6 --- /dev/null +++ b/Launch Screen.storyboard @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/OCHamcrestIOS.framework/Headers b/OCHamcrestIOS.framework/Headers deleted file mode 120000 index a177d2a..0000000 --- a/OCHamcrestIOS.framework/Headers +++ /dev/null @@ -1 +0,0 @@ -Versions/Current/Headers \ No newline at end of file diff --git a/OCHamcrestIOS.framework/OCHamcrestIOS b/OCHamcrestIOS.framework/OCHamcrestIOS deleted file mode 120000 index d030988..0000000 --- a/OCHamcrestIOS.framework/OCHamcrestIOS +++ /dev/null @@ -1 +0,0 @@ -Versions/Current/OCHamcrestIOS \ No newline at end of file diff --git a/OCHamcrestIOS.framework/Resources b/OCHamcrestIOS.framework/Resources deleted file mode 120000 index 953ee36..0000000 --- a/OCHamcrestIOS.framework/Resources +++ /dev/null @@ -1 +0,0 @@ -Versions/Current/Resources \ No newline at end of file diff --git a/OCHamcrestIOS.framework/Versions/A/Headers/HCAllOf.h b/OCHamcrestIOS.framework/Versions/A/Headers/HCAllOf.h deleted file mode 100644 index 2f34936..0000000 --- a/OCHamcrestIOS.framework/Versions/A/Headers/HCAllOf.h +++ /dev/null @@ -1,43 +0,0 @@ -// -// OCHamcrest - HCAllOf.h -// Copyright 2012 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid -// - -#import - - -@interface HCAllOf : HCBaseMatcher -{ - NSArray *matchers; -} - -+ (id)allOf:(NSArray *)theMatchers; -- (id)initWithMatchers:(NSArray *)theMatchers; - -@end - - -OBJC_EXPORT id HC_allOf(id match, ...) NS_REQUIRES_NIL_TERMINATION; - -/** - allOf(firstMatcher, ...) - - Matches if all of the given matchers evaluate to @c YES. - - @param firstMatcher,... A comma-separated list of matchers ending with @c nil. - - The matchers are evaluated from left to right using short-circuit evaluation, so evaluation - stops as soon as a matcher returns @c NO. - - Any argument that is not a matcher is implicitly wrapped in an @ref equalTo matcher to check for - equality. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_allOf instead.) - - @ingroup logical_matchers - */ -#ifdef HC_SHORTHAND - #define allOf HC_allOf -#endif diff --git a/OCHamcrestIOS.framework/Versions/A/Headers/HCAnyOf.h b/OCHamcrestIOS.framework/Versions/A/Headers/HCAnyOf.h deleted file mode 100644 index 0d04797..0000000 --- a/OCHamcrestIOS.framework/Versions/A/Headers/HCAnyOf.h +++ /dev/null @@ -1,43 +0,0 @@ -// -// OCHamcrest - HCAnyOf.h -// Copyright 2012 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid -// - -#import - - -@interface HCAnyOf : HCBaseMatcher -{ - NSArray *matchers; -} - -+ (id)anyOf:(NSArray *)theMatchers; -- (id)initWithMatchers:(NSArray *)theMatchers; - -@end - - -OBJC_EXPORT id HC_anyOf(id match, ...) NS_REQUIRES_NIL_TERMINATION; - -/** - anyOf(firstMatcher, ...) - - Matches if any of the given matchers evaluate to @c YES. - - @param firstMatcher,... A comma-separated list of matchers ending with @c nil. - - The matchers are evaluated from left to right using short-circuit evaluation, so evaluation - stops as soon as a matcher returns @c YES. - - Any argument that is not a matcher is implicitly wrapped in an @ref equalTo matcher to check for - equality. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_anyOf instead.) - - @ingroup logical_matchers - */ -#ifdef HC_SHORTHAND - #define anyOf HC_anyOf -#endif diff --git a/OCHamcrestIOS.framework/Versions/A/Headers/HCAssertThat.h b/OCHamcrestIOS.framework/Versions/A/Headers/HCAssertThat.h deleted file mode 100644 index 7747e4e..0000000 --- a/OCHamcrestIOS.framework/Versions/A/Headers/HCAssertThat.h +++ /dev/null @@ -1,40 +0,0 @@ -// -// OCHamcrest - HCAssertThat.h -// Copyright 2012 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid -// - -#import - -@protocol HCMatcher; - - -OBJC_EXPORT void HC_assertThatWithLocation(id testCase, id actual, id matcher, - const char *fileName, int lineNumber); - -#define HC_assertThat(actual, matcher) \ - HC_assertThatWithLocation(self, actual, matcher, __FILE__, __LINE__) - -/** - assertThat(actual, matcher) - - Asserts that actual value satisfies matcher. - - @param actual The object to evaluate as the actual value. - @param matcher The matcher to satisfy as the expected condition. - - @c assertThat passes the actual value to the matcher for evaluation. If the matcher is not - satisfied, an exception is thrown describing the mismatch. - - @c assertThat is designed to integrate well with OCUnit and other unit testing frameworks. - Unmet assertions are reported as test failures. In Xcode, these failures can be clicked to - reveal the line of the assertion. - - In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_assertThat instead. - - @ingroup integration - */ -#ifdef HC_SHORTHAND - #define assertThat HC_assertThat -#endif diff --git a/OCHamcrestIOS.framework/Versions/A/Headers/HCBaseDescription.h b/OCHamcrestIOS.framework/Versions/A/Headers/HCBaseDescription.h deleted file mode 100644 index bfb51b8..0000000 --- a/OCHamcrestIOS.framework/Versions/A/Headers/HCBaseDescription.h +++ /dev/null @@ -1,31 +0,0 @@ -// -// OCHamcrest - HCBaseDescription.h -// Copyright 2012 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid -// - -#import -#import - - -/** - Base class for all HCDescription implementations. - - @ingroup core - */ -@interface HCBaseDescription : NSObject -@end - - -/** - Methods that must be provided by subclasses of HCBaseDescription. - */ -@interface HCBaseDescription (SubclassMustImplement) - -/** - Append the string @a str to the description. - */ -- (void)append:(NSString *)str; - -@end diff --git a/OCHamcrestIOS.framework/Versions/A/Headers/HCBaseMatcher.h b/OCHamcrestIOS.framework/Versions/A/Headers/HCBaseMatcher.h deleted file mode 100644 index eaefc9e..0000000 --- a/OCHamcrestIOS.framework/Versions/A/Headers/HCBaseMatcher.h +++ /dev/null @@ -1,25 +0,0 @@ -// -// OCHamcrest - HCBaseMatcher.h -// Copyright 2012 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid -// - -#import -#import - -#import // Convenience header, to provide OBJC_EXPORT - - -/** - Base class for all HCMatcher implementations. - - Most implementations can just implement @c -matches: and let - -matches:describingMismatchTo: call it. But if it makes more sense to generate the - mismatch description during the matching, override -matches:describingMismatchTo: - and have @c -matches: call it with a @c nil description. - - @ingroup core - */ -@interface HCBaseMatcher : NSObject -@end diff --git a/OCHamcrestIOS.framework/Versions/A/Headers/HCBoxNumber.h b/OCHamcrestIOS.framework/Versions/A/Headers/HCBoxNumber.h deleted file mode 100644 index b7b2d6a..0000000 --- a/OCHamcrestIOS.framework/Versions/A/Headers/HCBoxNumber.h +++ /dev/null @@ -1,88 +0,0 @@ -// -// OCHamcrest - HCBoxNumber.h -// Copyright 2012 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid -// - -#ifdef __cplusplus - -namespace hamcrest { - -/** - Boxes a scalar value in an NSNumber, specialized per type. - @ingroup number_matchers - */ -template -inline -NSNumber *boxNumber(T value) - { return nil; } - -template <> -inline -NSNumber *boxNumber(BOOL value) - { return [NSNumber numberWithBool:value]; } - -template <> -inline -NSNumber *boxNumber(char value) - { return [NSNumber numberWithChar:value]; } - -template <> -inline -NSNumber *boxNumber(double value) - { return [NSNumber numberWithDouble:value]; } - -template <> -inline -NSNumber *boxNumber(float value) - { return [NSNumber numberWithFloat:value]; } - -template <> -inline -NSNumber *boxNumber(int value) - { return [NSNumber numberWithInt:value]; } - -template <> -inline -NSNumber *boxNumber(long value) - { return [NSNumber numberWithLong:value]; } - -template <> -inline -NSNumber *boxNumber(long long value) - { return [NSNumber numberWithLongLong:value]; } - -template <> -inline -NSNumber *boxNumber(short value) - { return [NSNumber numberWithShort:value]; } - -template <> -inline -NSNumber *boxNumber(unsigned char value) - { return [NSNumber numberWithUnsignedChar:value]; } - -template <> -inline -NSNumber *boxNumber(unsigned int value) - { return [NSNumber numberWithUnsignedInt:value]; } - -template <> -inline -NSNumber *boxNumber(unsigned long value) - { return [NSNumber numberWithUnsignedLong:value]; } - -template <> -inline -NSNumber *boxNumber(unsigned long long value) - { return [NSNumber numberWithUnsignedLongLong:value]; } - -template <> -inline -NSNumber *boxNumber(unsigned short value) - { return [NSNumber numberWithUnsignedShort:value]; } - -} // namespace hamcrest - -#endif // __cplusplus diff --git a/OCHamcrestIOS.framework/Versions/A/Headers/HCCollectMatchers.h b/OCHamcrestIOS.framework/Versions/A/Headers/HCCollectMatchers.h deleted file mode 100644 index d590613..0000000 --- a/OCHamcrestIOS.framework/Versions/A/Headers/HCCollectMatchers.h +++ /dev/null @@ -1,21 +0,0 @@ -// -// OCHamcrest - HCCollectMatchers.h -// Copyright 2012 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid -// - -#import -#import - -#import - -@protocol HCMatcher; - - -/** - Returns an array of matchers from a variable-length comma-separated list terminated by @c nil. - - @ingroup helpers -*/ -OBJC_EXPORT NSMutableArray *HCCollectMatchers(id item1, va_list args); diff --git a/OCHamcrestIOS.framework/Versions/A/Headers/HCConformsToProtocol.h b/OCHamcrestIOS.framework/Versions/A/Headers/HCConformsToProtocol.h deleted file mode 100644 index 0499ae1..0000000 --- a/OCHamcrestIOS.framework/Versions/A/Headers/HCConformsToProtocol.h +++ /dev/null @@ -1,42 +0,0 @@ -// -// OCHamcrest - HCConformsToProtocol.h -// Copyright 2012 hamcrest.org. See LICENSE.txt -// -// Created by: Todd Farrell -// - -#import - - -@interface HCConformsToProtocol : HCBaseMatcher -{ - Protocol *theProtocol; -} - -+ (id)conformsToProtocol:(Protocol *)protocol; -- (id)initWithProtocol:(Protocol *)protocol; - -@end - - -OBJC_EXPORT id HC_conformsToProtocol(Protocol *aProtocol); - -/** - conformsToProtocol(aProtocol) - - Matches if object conforms to a given protocol. - - @param aProtocol The protocol to compare against as the expected protocol. - - This matcher checks whether the evaluated object conforms to @a aProtocol. - - Example: - @li @ref conformsToProtocol(\@protocol(NSObject)) - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_conformsToProtocol instead.) - - @ingroup object_matchers - */ -#ifdef HC_SHORTHAND - #define conformsToProtocol HC_conformsToProtocol -#endif diff --git a/OCHamcrestIOS.framework/Versions/A/Headers/HCDescribedAs.h b/OCHamcrestIOS.framework/Versions/A/Headers/HCDescribedAs.h deleted file mode 100644 index 8c25fd7..0000000 --- a/OCHamcrestIOS.framework/Versions/A/Headers/HCDescribedAs.h +++ /dev/null @@ -1,48 +0,0 @@ -// -// OCHamcrest - HCDescribedAs.h -// Copyright 2012 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid -// - -#import - - -@interface HCDescribedAs : HCBaseMatcher -{ - NSString *descriptionTemplate; - id matcher; - NSArray *values; -} - -+ (id)describedAs:(NSString *)description - forMatcher:(id)aMatcher - overValues:(NSArray *)templateValues; - -- (id)initWithDescription:(NSString *)description - forMatcher:(id)aMatcher - overValues:(NSArray *)templateValues; - -@end - - -OBJC_EXPORT id HC_describedAs(NSString *description, id matcher, ...) NS_REQUIRES_NIL_TERMINATION; - -/** - describedAs(description, matcher, ...) - - Adds custom failure description to a given matcher. - - @param description Overrides the matcher's description. - @param matcher,... The matcher to satisfy, followed by a comma-separated list of substitution values ending with @c nil. - - The description may contain substitution placeholders \%0, \%1, etc. These will be replaced by - any values that follow the matcher. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_describedAs instead.) - - @ingroup decorator_matchers - */ -#ifdef HC_SHORTHAND - #define describedAs HC_describedAs -#endif diff --git a/OCHamcrestIOS.framework/Versions/A/Headers/HCDescription.h b/OCHamcrestIOS.framework/Versions/A/Headers/HCDescription.h deleted file mode 100644 index 04052f0..0000000 --- a/OCHamcrestIOS.framework/Versions/A/Headers/HCDescription.h +++ /dev/null @@ -1,55 +0,0 @@ -// -// OCHamcrest - HCDescription.h -// Copyright 2012 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid -// - -#import - - -/** - A description of an HCMatcher. - - An HCMatcher will describe itself to a description which can later be used for reporting. - - @ingroup core - */ -@protocol HCDescription - -/** - Appends some plain text to the description. - - @return @c self, for chaining. - */ -- (id)appendText:(NSString *)text; - -/** - Appends description of given value to @c self. - - If the value implements the @ref HCSelfDescribing protocol, then it will be used. - - @return @c self, for chaining. - */ -- (id)appendDescriptionOf:(id)value; - -/** - Appends an arbitary value to the description. - - @b Deprecated: Call @ref appendDescriptionOf: instead. - - @return @c self, for chaining. - */ -- (id)appendValue:(id)value __attribute__((deprecated)); - -/** - Appends a list of objects to the description. - - @return @c self, for chaining. - */ -- (id)appendList:(NSArray *)values - start:(NSString *)start - separator:(NSString *)separator - end:(NSString *)end; - -@end diff --git a/OCHamcrestIOS.framework/Versions/A/Headers/HCHasCount.h b/OCHamcrestIOS.framework/Versions/A/Headers/HCHasCount.h deleted file mode 100644 index 3e16da1..0000000 --- a/OCHamcrestIOS.framework/Versions/A/Headers/HCHasCount.h +++ /dev/null @@ -1,61 +0,0 @@ -// -// OCHamcrest - HCHasCount.h -// Copyright 2012 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid -// - -#import - - -@interface HCHasCount : HCBaseMatcher -{ - id countMatcher; -} - -+ (id)hasCount:(id)matcher; -- (id)initWithCount:(id)matcher; - -@end - - -OBJC_EXPORT id HC_hasCount(id matcher); - -/** - hasCount(aMatcher) - - Matches if object's @c -count satisfies a given matcher. - - @param aMatcher The matcher to satisfy. - - This matcher invokes @c -count on the evaluated object to get the number of elements it - contains, passing the result to @a aMatcher for evaluation. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_hasCount instead.) - - @ingroup collection_matchers - */ -#ifdef HC_SHORTHAND - #define hasCount HC_hasCount -#endif - - -OBJC_EXPORT id HC_hasCountOf(NSUInteger count); - -/** - hasCountOf(value) - - Matches if object's @c -count equals a given value. - - @param value @c NSUInteger value to compare against as the expected value. - - This matcher invokes @c -count on the evaluated object to get the number of elements it - contains, comparing the result to @a value for equality. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_hasCountOf instead.) - - @ingroup collection_matchers - */ -#ifdef HC_SHORTHAND - #define hasCountOf HC_hasCountOf -#endif diff --git a/OCHamcrestIOS.framework/Versions/A/Headers/HCHasDescription.h b/OCHamcrestIOS.framework/Versions/A/Headers/HCHasDescription.h deleted file mode 100644 index c307038..0000000 --- a/OCHamcrestIOS.framework/Versions/A/Headers/HCHasDescription.h +++ /dev/null @@ -1,42 +0,0 @@ -// -// OCHamcrest - HCHasDescription.h -// Copyright 2012 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid -// - -#import - - -@interface HCHasDescription : HCInvocationMatcher - -+ (id)hasDescription:(id)descriptionMatcher; -- (id)initWithDescription:(id)descriptionMatcher; - -@end - - -OBJC_EXPORT id HC_hasDescription(id match); - -/** - hasDescription(aMatcher) - - Matches if object's @c -description satisfies a given matcher. - - @param aMatcher The matcher to satisfy, or an expected value for @ref equalTo matching. - - This matcher invokes @c -description on the evaluated object to get its description, passing the - result to a given matcher for evaluation. If the @a aMatcher argument is not a matcher, it is - implicitly wrapped in an @ref equalTo matcher to check for equality. - - Examples: - @li @ref hasDescription(@ref startsWith(\@"foo")) - @li @ref hasDescription(\@"bar") - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_hasDescription instead.) - - @ingroup object_matchers - */ -#ifdef HC_SHORTHAND - #define hasDescription HC_hasDescription -#endif diff --git a/OCHamcrestIOS.framework/Versions/A/Headers/HCHasProperty.h b/OCHamcrestIOS.framework/Versions/A/Headers/HCHasProperty.h deleted file mode 100644 index b85be62..0000000 --- a/OCHamcrestIOS.framework/Versions/A/Headers/HCHasProperty.h +++ /dev/null @@ -1,49 +0,0 @@ -// -// OCHamcrest - HCHasProperty.h -// Copyright 2012 hamcrest.org. See LICENSE.txt -// -// Created by: Justin Shacklette -// - -#import - - -@interface HCHasProperty : HCBaseMatcher -{ - NSString *propertyName; - id valueMatcher; -} - -+ (id)hasProperty:(NSString *)property value:(id)aValueMatcher; -- (id)initWithProperty:(NSString *)property value:(id)aValueMatcher; - -@end - - -OBJC_EXPORT id HC_hasProperty(NSString *name, id valueMatch); - -/** - hasProperty(name, valueMatcher) - - Matches if object has a method of a given name whose return value satisfies a given matcher. - - @param name The name of a method without arguments that returns an object. - @param valueMatcher The matcher to satisfy for the return value, or an expected value for @ref equalTo matching. - - This matcher first checks if the evaluated object has a method with a name matching the given - @c name. If so, it invokes the method and sees if the returned value satisfies @c valueMatcher. - - While this matcher is called "hasProperty", it's useful for checking the results of any simple - methods, not just properties. - - Examples: - @li @ref hasProperty(\@"firstName", \@"Joe") - @li @ref hasProperty(\@"firstName", startsWith(\@"J")) - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_hasProperty instead.) - - @ingroup object_matchers - */ -#ifdef HC_SHORTHAND - #define hasProperty HC_hasProperty -#endif diff --git a/OCHamcrestIOS.framework/Versions/A/Headers/HCInvocationMatcher.h b/OCHamcrestIOS.framework/Versions/A/Headers/HCInvocationMatcher.h deleted file mode 100755 index 6f178ce..0000000 --- a/OCHamcrestIOS.framework/Versions/A/Headers/HCInvocationMatcher.h +++ /dev/null @@ -1,62 +0,0 @@ -// -// OCHamcrest - HCInvocationMatcher.h -// Copyright 2012 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid -// - -#import - - -/** - Supporting class for matching a feature of an object. - - Tests whether the result of passing a given invocation to the value satisfies a given matcher. - - @ingroup helpers - */ -@interface HCInvocationMatcher : HCBaseMatcher -{ - NSInvocation *invocation; - id subMatcher; - BOOL shortMismatchDescription; -} - -/** - Determines whether a mismatch will be described in short form. - - Default is long form, which describes the object, the name of the invocation, and the - sub-matcher's mismatch diagnosis. Short form only has the sub-matcher's mismatch diagnosis. - */ -@property (nonatomic, assign) BOOL shortMismatchDescription; - -/** - Helper method for creating an invocation. - - A class is specified only so we can determine the method signature. - */ -+ (NSInvocation *)invocationForSelector:(SEL)selector onClass:(Class)aClass; - -/** - Helper method for creating an invocation. - - @b Deprecated: Use new name +invocationForSelector:onClass: - */ -+ (NSInvocation *)createInvocationForSelector:(SEL)selector onClass:(Class)aClass __attribute__((deprecated)); - -/** - Returns an HCInvocationMatcher object initialized with an invocation and a matcher. - */ -- (id)initWithInvocation:(NSInvocation *)anInvocation matching:(id)aMatcher; - -/** - Invokes stored invocation on given item and returns the result. - */ -- (id)invokeOn:(id)item; - -/** - Returns string representation of the invocation's selector. - */ -- (NSString *)stringFromSelector; - -@end diff --git a/OCHamcrestIOS.framework/Versions/A/Headers/HCIs.h b/OCHamcrestIOS.framework/Versions/A/Headers/HCIs.h deleted file mode 100644 index 7221cf7..0000000 --- a/OCHamcrestIOS.framework/Versions/A/Headers/HCIs.h +++ /dev/null @@ -1,52 +0,0 @@ -// -// OCHamcrest - HCIs.h -// Copyright 2012 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid -// - -#import - - -@interface HCIs : HCBaseMatcher -{ - id matcher; -} - -+ (id)is:(id)aMatcher; -- (id)initWithMatcher:(id)aMatcher; - -@end - - -OBJC_EXPORT id HC_is(id match); - -/** - is(aMatcher) - - Decorates another matcher, or provides a shortcut to the frequently used @ref is(equalTo(x)). - - @param aMatcher The matcher to satisfy, or an expected value for @ref equalTo matching. - - This matcher compares the evaluated object to the given matcher. - - If the @a aMatcher argument is a matcher, its behavior is retained, but the test may be more - expressive. For example: - @li @ref assertThatInt(value, equalToInt(5)) - @li @ref assertThatInt(value, is(equalToInt(5))) - - If the @a aMatcher argument is not a matcher, it is wrapped in an @ref equalTo matcher. This - makes the following statements equivalent: - @li @ref assertThat(cheese, equalTo(smelly)) - @li @ref assertThat(cheese, is(equalTo(smelly))) - @li @ref assertThat(cheese, is(smelly)) - - Choose the style that makes your expression most readable. This will vary depending on context. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_is instead.) - - @ingroup decorator_matchers - */ -#ifdef HC_SHORTHAND - #define is HC_is -#endif diff --git a/OCHamcrestIOS.framework/Versions/A/Headers/HCIsAnything.h b/OCHamcrestIOS.framework/Versions/A/Headers/HCIsAnything.h deleted file mode 100644 index 73343ca..0000000 --- a/OCHamcrestIOS.framework/Versions/A/Headers/HCIsAnything.h +++ /dev/null @@ -1,61 +0,0 @@ -// -// OCHamcrest - HCIsAnything.h -// Copyright 2012 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid -// - -#import - - -@interface HCIsAnything : HCBaseMatcher -{ - NSString *description; -} - -+ (id)isAnything; -+ (id)isAnythingWithDescription:(NSString *)aDescription; - -- (id)init; -- (id)initWithDescription:(NSString *)aDescription; - -@end - - -OBJC_EXPORT id HC_anything(); - -/** - Matches anything. - - This matcher always evaluates to @c YES. Specify this in composite matchers when the value of a - particular element is unimportant. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_anything instead.) - - @ingroup logical_matchers - */ -#ifdef HC_SHORTHAND - #define anything() HC_anything() -#endif - - -OBJC_EXPORT id HC_anythingWithDescription(NSString *aDescription); - -/** - anythingWithDescription(description) - - Matches anything. - - @param description A string used to describe this matcher. - - This matcher always evaluates to @c YES. Specify this in collection matchers when the value of a - particular element in a collection is unimportant. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_anything instead.) - - @ingroup logical_matchers - */ -#ifdef HC_SHORTHAND - #define anythingWithDescription HC_anythingWithDescription -#endif diff --git a/OCHamcrestIOS.framework/Versions/A/Headers/HCIsCloseTo.h b/OCHamcrestIOS.framework/Versions/A/Headers/HCIsCloseTo.h deleted file mode 100644 index df7bc49..0000000 --- a/OCHamcrestIOS.framework/Versions/A/Headers/HCIsCloseTo.h +++ /dev/null @@ -1,45 +0,0 @@ -// -// OCHamcrest - HCIsCloseTo.h -// Copyright 2012 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid -// - -#import - - -@interface HCIsCloseTo : HCBaseMatcher -{ - double value; - double delta; -} - -+ (id)isCloseTo:(double)aValue within:(double)aDelta; -- (id)initWithValue:(double)aValue delta:(double)aDelta; - -@end - - -OBJC_EXPORT id HC_closeTo(double aValue, double aDelta); - -/** - closeTo(aValue, aDelta) - - Matches if object is a number close to a given value, within a given delta. - - @param aValue The @c double value to compare against as the expected value. - @param aDelta The @c double maximum delta between the values for which the numbers are considered close. - - This matcher invokes @c -doubleValue on the evaluated object to get its value as a @c double. - The result is compared against @a aValue to see if the difference is within a positive @a aDelta. - - Example: - @li @ref closeTo(3.0, 0.25) - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_closeTo instead.) - - @ingroup number_matchers - */ -#ifdef HC_SHORTHAND - #define closeTo HC_closeTo -#endif diff --git a/OCHamcrestIOS.framework/Versions/A/Headers/HCIsCollectionContaining.h b/OCHamcrestIOS.framework/Versions/A/Headers/HCIsCollectionContaining.h deleted file mode 100644 index 0d876dc..0000000 --- a/OCHamcrestIOS.framework/Versions/A/Headers/HCIsCollectionContaining.h +++ /dev/null @@ -1,67 +0,0 @@ -// -// OCHamcrest - HCIsCollectionContaining.h -// Copyright 2012 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid -// - -#import - - -@interface HCIsCollectionContaining : HCBaseMatcher -{ - id elementMatcher; -} - -+ (id)isCollectionContaining:(id)anElementMatcher; -- (id)initWithMatcher:(id)anElementMatcher; - -@end - - -OBJC_EXPORT id HC_hasItem(id itemMatch); - -/** - hasItem(aMatcher) - - Matches if any element of collection satisfies a given matcher. - - @param aMatcher The matcher to satisfy, or an expected value for @ref equalTo matching. - - This matcher iterates the evaluated collection, searching for any element that satisfies a - given matcher. If a matching element is found, @c hasItem is satisfied. - - If the @a aMatcher argument is not a matcher, it is implicitly wrapped in an @ref equalTo - matcher to check for equality. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_hasItem instead.) - - @ingroup collection_matchers - */ -#ifdef HC_SHORTHAND - #define hasItem HC_hasItem -#endif - - -OBJC_EXPORT id HC_hasItems(id itemMatch, ...) NS_REQUIRES_NIL_TERMINATION; - -/** - hasItems(firstMatcher, ...) - - Matches if all of the given matchers are satisfied by any elements of the collection. - - @param firstMatcher,... A comma-separated list of matchers ending with @c nil. - - This matcher iterates the given matchers, searching for any elements in the evaluated collection - that satisfy them. If each matcher is satisfied, then @c hasItems is satisfied. - - Any argument that is not a matcher is implicitly wrapped in an @ref equalTo matcher to check for - equality. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c hasItems instead.) - - @ingroup collection_matchers - */ -#ifdef HC_SHORTHAND - #define hasItems HC_hasItems -#endif diff --git a/OCHamcrestIOS.framework/Versions/A/Headers/HCIsCollectionContainingInAnyOrder.h b/OCHamcrestIOS.framework/Versions/A/Headers/HCIsCollectionContainingInAnyOrder.h deleted file mode 100644 index 2a19ca1..0000000 --- a/OCHamcrestIOS.framework/Versions/A/Headers/HCIsCollectionContainingInAnyOrder.h +++ /dev/null @@ -1,45 +0,0 @@ -// -// OCHamcrest - HCIsCollectionContainingInAnyOrder.h -// Copyright 2012 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid -// - -#import - - -@interface HCIsCollectionContainingInAnyOrder : HCBaseMatcher -{ - NSMutableArray *matchers; -} - -+ (id)isCollectionContainingInAnyOrder:(NSMutableArray *)itemMatchers; -- (id)initWithMatchers:(NSMutableArray *)itemMatchers; - -@end - - -OBJC_EXPORT id HC_containsInAnyOrder(id itemMatch, ...) NS_REQUIRES_NIL_TERMINATION; - -/** - containsInAnyOrder(firstMatcher, ...) - - Matches if collection's elements, in any order, satisfy a given list of matchers. - - @param firstMatcher,... A comma-separated list of matchers ending with @c nil. - - This matcher iterates the evaluated collection, seeing if each element satisfies any of the - given matchers. The matchers are tried from left to right, and when a satisfied matcher is - found, it is no longer a candidate for the remaining elements. If a one-to-one correspondence is - established between elements and matchers, @c containsInAnyOrder is satisfied. - - Any argument that is not a matcher is implicitly wrapped in an @ref equalTo matcher to check for - equality. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_containsInAnyOrder instead.) - - @ingroup collection_matchers - */ -#ifdef HC_SHORTHAND - #define containsInAnyOrder HC_containsInAnyOrder -#endif diff --git a/OCHamcrestIOS.framework/Versions/A/Headers/HCIsCollectionContainingInOrder.h b/OCHamcrestIOS.framework/Versions/A/Headers/HCIsCollectionContainingInOrder.h deleted file mode 100644 index 806f0a0..0000000 --- a/OCHamcrestIOS.framework/Versions/A/Headers/HCIsCollectionContainingInOrder.h +++ /dev/null @@ -1,43 +0,0 @@ -// -// OCHamcrest - HCIsCollectionContainingInOrder.h -// Copyright 2012 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid -// - -#import - - -@interface HCIsCollectionContainingInOrder : HCBaseMatcher -{ - NSArray *matchers; -} - -+ (id)isCollectionContainingInOrder:(NSArray *)itemMatchers; -- (id)initWithMatchers:(NSArray *)itemMatchers; - -@end - - -OBJC_EXPORT id HC_contains(id itemMatch, ...) NS_REQUIRES_NIL_TERMINATION; - -/** - contains(firstMatcher, ...) - - Matches if collection's elements satisfy a given list of matchers, in order. - - @param firstMatcher,... A comma-separated list of matchers ending with @c nil. - - This matcher iterates the evaluated collection and a given list of matchers, seeing if each - element satisfies its corresponding matcher. - - Any argument that is not a matcher is implicitly wrapped in an @ref equalTo matcher to check for - equality. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_contains instead.) - - @ingroup collection_matchers - */ -#ifdef HC_SHORTHAND - #define contains HC_contains -#endif diff --git a/OCHamcrestIOS.framework/Versions/A/Headers/HCIsCollectionOnlyContaining.h b/OCHamcrestIOS.framework/Versions/A/Headers/HCIsCollectionOnlyContaining.h deleted file mode 100644 index 4016bec..0000000 --- a/OCHamcrestIOS.framework/Versions/A/Headers/HCIsCollectionOnlyContaining.h +++ /dev/null @@ -1,50 +0,0 @@ -// -// OCHamcrest - HCIsCollectionOnlyContaining.h -// Copyright 2012 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid -// - -#import - - -@interface HCIsCollectionOnlyContaining : HCBaseMatcher -{ - id matcher; -} - -+ (id)isCollectionOnlyContaining:(id)aMatcher; -- (id)initWithMatcher:(id)aMatcher; - -@end - - -OBJC_EXPORT id HC_onlyContains(id itemMatch, ...) NS_REQUIRES_NIL_TERMINATION; - -/** - onlyContains(firstMatcher, ...) - - Matches if each element of collection satisfies any of the given matchers. - - @param firstMatcher,... A comma-separated list of matchers ending with @c nil. - - This matcher iterates the evaluated collection, confirming whether each element satisfies any of - the given matchers. - - Any argument that is not a matcher is implicitly wrapped in an @ref equalTo matcher to check for - equality. - - Example: - - @par - @ref onlyContains(startsWith(@"Jo"), nil) - - will match a collection [@"Jon", @"John", @"Johann"]. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_onlyContains instead.) - - @ingroup collection_matchers - */ -#ifdef HC_SHORTHAND - #define onlyContains HC_onlyContains -#endif diff --git a/OCHamcrestIOS.framework/Versions/A/Headers/HCIsDictionaryContaining.h b/OCHamcrestIOS.framework/Versions/A/Headers/HCIsDictionaryContaining.h deleted file mode 100644 index de4928c..0000000 --- a/OCHamcrestIOS.framework/Versions/A/Headers/HCIsDictionaryContaining.h +++ /dev/null @@ -1,52 +0,0 @@ -// -// OCHamcrest - HCIsDictionaryContaining.h -// Copyright 2012 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid -// - -#import - - -@interface HCIsDictionaryContaining : HCBaseMatcher -{ - id keyMatcher; - id valueMatcher; -} - -+ (id)isDictionaryContainingKey:(id)aKeyMatcher - value:(id)aValueMatcher; - -- (id)initWithKeyMatcher:(id)aKeyMatcher - valueMatcher:(id)aValueMatcher; - -@end - - -OBJC_EXPORT id HC_hasEntry(id keyMatch, id valueMatch); - -/** - hasEntry(keyMatcher, valueMatcher) - - Matches if dictionary contains key-value entry satisfying a given pair of matchers. - - @param keyMatcher The matcher to satisfy for the key, or an expected value for @ref equalTo matching. - @param valueMatcher The matcher to satisfy for the value, or an expected value for @ref equalTo matching. - - This matcher iterates the evaluated dictionary, searching for any key-value entry that satisfies - @a keyMatcher and @a valueMatcher. If a matching entry is found, @c hasEntry is satisfied. - - Any argument that is not a matcher is implicitly wrapped in an @ref equalTo matcher to check for - equality. - - Examples: - @li @ref hasEntry(@ref equalTo(@"foo"), equalTo(@"bar")) - @li @ref hasEntry(@"foo", @"bar") - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_hasEntry instead.) - - @ingroup collection_matchers - */ -#ifdef HC_SHORTHAND - #define hasEntry HC_hasEntry -#endif diff --git a/OCHamcrestIOS.framework/Versions/A/Headers/HCIsDictionaryContainingEntries.h b/OCHamcrestIOS.framework/Versions/A/Headers/HCIsDictionaryContainingEntries.h deleted file mode 100644 index ffb5ff4..0000000 --- a/OCHamcrestIOS.framework/Versions/A/Headers/HCIsDictionaryContainingEntries.h +++ /dev/null @@ -1,51 +0,0 @@ -// -// OCHamcrest - HCIsDictionaryContainingEntries.h -// Copyright 2012 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid -// - -#import - - -@interface HCIsDictionaryContainingEntries : HCBaseMatcher -{ - NSArray *keys; - NSArray *valueMatchers; -} - -+ (id)isDictionaryContainingKeys:(NSArray *)theKeys - valueMatchers:(NSArray *)theValueMatchers; - -- (id)initWithKeys:(NSArray *)theKeys - valueMatchers:(NSArray *)theValueMatchers; - -@end - - -OBJC_EXPORT id HC_hasEntries(id keysAndValueMatch, ...) NS_REQUIRES_NIL_TERMINATION; - -/** - hasEntries(firstKey, valueMatcher, ...) - - Matches if dictionary contains entries satisfying a list of alternating keys and their value - matchers. - - @param firstKey A key (not a matcher) to look up. - @param valueMatcher,... The matcher to satisfy for the value, or an expected value for @ref equalTo matching. - - Note that the keys must be actual keys, not matchers. Any value argument that is not a matcher - is implicitly wrapped in an @ref equalTo matcher to check for equality. The list must end with - @c nil. - - Examples: - @li @ref hasEntries(@"first", equalTo(@"Jon"), @"last", equalTo(@"Reid"), nil) - @li @ref hasEntries(@"first", @"Jon", @"last", @"Reid", nil) - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_hasEntry instead.) - - @ingroup collection_matchers - */ -#ifdef HC_SHORTHAND - #define hasEntries HC_hasEntries -#endif diff --git a/OCHamcrestIOS.framework/Versions/A/Headers/HCIsDictionaryContainingKey.h b/OCHamcrestIOS.framework/Versions/A/Headers/HCIsDictionaryContainingKey.h deleted file mode 100644 index 41a3501..0000000 --- a/OCHamcrestIOS.framework/Versions/A/Headers/HCIsDictionaryContainingKey.h +++ /dev/null @@ -1,47 +0,0 @@ -// -// OCHamcrest - HCIsDictionaryContainingKey.h -// Copyright 2012 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid -// - -#import - - -@interface HCIsDictionaryContainingKey : HCBaseMatcher -{ - id keyMatcher; -} - -+ (id)isDictionaryContainingKey:(id)theKeyMatcher; -- (id)initWithKeyMatcher:(id)theKeyMatcher; - -@end - - -OBJC_EXPORT id HC_hasKey(id keyMatch); - -/** - hasKey(keyMatcher) - - Matches if dictionary contains an entry whose key satisfies a given matcher. - - @param keyMatcher The matcher to satisfy for the key, or an expected value for @ref equalTo matching. - - This matcher iterates the evaluated dictionary, searching for any key-value entry whose key - satisfies the given matcher. If a matching entry is found, @c hasKey is satisfied. - - Any argument that is not a matcher is implicitly wrapped in an @ref equalTo matcher to check for - equality. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_hasKey instead.) - - Examples: - @li @ref hasEntry(equalTo(@"foo")) - @li @ref hasEntry(@"foo") - - @ingroup collection_matchers - */ -#ifdef HC_SHORTHAND - #define hasKey HC_hasKey -#endif diff --git a/OCHamcrestIOS.framework/Versions/A/Headers/HCIsDictionaryContainingValue.h b/OCHamcrestIOS.framework/Versions/A/Headers/HCIsDictionaryContainingValue.h deleted file mode 100644 index db8eecb..0000000 --- a/OCHamcrestIOS.framework/Versions/A/Headers/HCIsDictionaryContainingValue.h +++ /dev/null @@ -1,47 +0,0 @@ -// -// OCHamcrest - HCIsDictionaryContainingValue.h -// Copyright 2012 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid -// - -#import - - -@interface HCIsDictionaryContainingValue : HCBaseMatcher -{ - id valueMatcher; -} - -+ (id)isDictionaryContainingValue:(id)theValueMatcher; -- (id)initWithValueMatcher:(id)theValueMatcher; - -@end - - -OBJC_EXPORT id HC_hasValue(id valueMatch); - -/** - hasValue(valueMatcher) - - Matches if dictionary contains an entry whose value satisfies a given matcher. - - @param valueMatcher The matcher to satisfy for the value, or an expected value for @ref equalTo matching. - - This matcher iterates the evaluated dictionary, searching for any key-value entry whose value - satisfies the given matcher. If a matching entry is found, @c hasValue is satisfied. - - Any argument that is not a matcher is implicitly wrapped in an @ref equalTo matcher to check for - equality. - - Examples: - @li @ref hasValue(equalTo(@"bar")) - @li @ref hasValue(@"bar") - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_hasValue instead.) - - @ingroup collection_matchers - */ -#ifdef HC_SHORTHAND - #define hasValue HC_hasValue -#endif diff --git a/OCHamcrestIOS.framework/Versions/A/Headers/HCIsEmptyCollection.h b/OCHamcrestIOS.framework/Versions/A/Headers/HCIsEmptyCollection.h deleted file mode 100644 index 7f270e4..0000000 --- a/OCHamcrestIOS.framework/Versions/A/Headers/HCIsEmptyCollection.h +++ /dev/null @@ -1,34 +0,0 @@ -// -// OCHamcrest - HCIsEmptyCollection.h -// Copyright 2012 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid -// - -#import - - -@interface HCIsEmptyCollection : HCHasCount - -+ (id)isEmptyCollection; -- (id)init; - -@end - - -OBJC_EXPORT id HC_empty(); - -/** - Matches empty collection. - - This matcher invokes @c -count on the evaluated object to determine if the number of elements it - contains is zero. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_empty instead.) - - @ingroup collection_matchers - */ -#ifdef HC_SHORTHAND - #define empty() HC_empty() -#endif diff --git a/OCHamcrestIOS.framework/Versions/A/Headers/HCIsEqual.h b/OCHamcrestIOS.framework/Versions/A/Headers/HCIsEqual.h deleted file mode 100644 index f7e2e26..0000000 --- a/OCHamcrestIOS.framework/Versions/A/Headers/HCIsEqual.h +++ /dev/null @@ -1,42 +0,0 @@ -// -// OCHamcrest - HCIsEqual.h -// Copyright 2012 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid -// - -#import - - -@interface HCIsEqual : HCBaseMatcher -{ - id object; -} - -+ (id)isEqualTo:(id)anObject; -- (id)initEqualTo:(id)anObject; - -@end - - -OBJC_EXPORT id HC_equalTo(id object); - -/** - equalTo(anObject) - - Matches if object is equal to a given object. - - @param anObject The object to compare against as the expected value. - - This matcher compares the evaluated object to @a anObject for equality, as determined by the - @c -isEqual: method. - - If @a anObject is @c nil, the matcher will successfully match @c nil. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_equalTo instead.) - - @ingroup object_matchers - */ -#ifdef HC_SHORTHAND - #define equalTo HC_equalTo -#endif diff --git a/OCHamcrestIOS.framework/Versions/A/Headers/HCIsEqualIgnoringCase.h b/OCHamcrestIOS.framework/Versions/A/Headers/HCIsEqualIgnoringCase.h deleted file mode 100644 index 698ab5b..0000000 --- a/OCHamcrestIOS.framework/Versions/A/Headers/HCIsEqualIgnoringCase.h +++ /dev/null @@ -1,47 +0,0 @@ -// -// OCHamcrest - HCIsEqualIgnoringCase.h -// Copyright 2012 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid -// - -#import - - -@interface HCIsEqualIgnoringCase : HCBaseMatcher -{ - NSString *string; -} - -+ (id)isEqualIgnoringCase:(NSString *)aString; -- (id)initWithString:(NSString *)aString; - -@end - - -OBJC_EXPORT id HC_equalToIgnoringCase(NSString *aString); - -/** - equalToIgnoringCase(aString) - - Matches if object is a string equal to a given string, ignoring case differences. - - @param aString The string to compare against as the expected value. This value must not be @c nil. - - This matcher first checks whether the evaluated object is a string. If so, it compares it with - @a aString, ignoring differences of case. - - Example: - - @par - @ref equalToIgnoringCase(@"hello world") - - will match "heLLo WorlD". - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_equalToIgnoringCase instead.) - - @ingroup text_matchers - */ -#ifdef HC_SHORTHAND - #define equalToIgnoringCase HC_equalToIgnoringCase -#endif diff --git a/OCHamcrestIOS.framework/Versions/A/Headers/HCIsEqualIgnoringWhiteSpace.h b/OCHamcrestIOS.framework/Versions/A/Headers/HCIsEqualIgnoringWhiteSpace.h deleted file mode 100644 index 999ebe6..0000000 --- a/OCHamcrestIOS.framework/Versions/A/Headers/HCIsEqualIgnoringWhiteSpace.h +++ /dev/null @@ -1,48 +0,0 @@ -// -// OCHamcrest - HCIsEqualIgnoringWhiteSpace.h -// Copyright 2012 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid -// - -#import - - -@interface HCIsEqualIgnoringWhiteSpace : HCBaseMatcher -{ - NSString *originalString; - NSString *strippedString; -} - -+ (id)isEqualIgnoringWhiteSpace:(NSString *)aString; -- (id)initWithString:(NSString *)aString; - -@end - - -OBJC_EXPORT id HC_equalToIgnoringWhiteSpace(NSString *aString); - -/** - equalToIgnoringWhiteSpace(aString) - - Matches if object is a string equal to a given string, ignoring differences in whitespace. - - @param aString The string to compare against as the expected value. This value must not be @c nil. - - This matcher first checks whether the evaluated object is a string. If so, it compares it with - @a aString, ignoring differences in runs of whitespace. - - Example: - - @par - @ref equalToIgnoringWhiteSpace(@"hello world") - - will match @verbatim "hello world" @endverbatim - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_equalToIgnoringWhiteSpace instead.) - - @ingroup text_matchers - */ -#ifdef HC_SHORTHAND - #define equalToIgnoringWhiteSpace HC_equalToIgnoringWhiteSpace -#endif diff --git a/OCHamcrestIOS.framework/Versions/A/Headers/HCIsEqualToNumber.h b/OCHamcrestIOS.framework/Versions/A/Headers/HCIsEqualToNumber.h deleted file mode 100644 index 03e556a..0000000 --- a/OCHamcrestIOS.framework/Versions/A/Headers/HCIsEqualToNumber.h +++ /dev/null @@ -1,323 +0,0 @@ -// -// OCHamcrest - HCIsEqualToNumber.h -// Copyright 2012 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid -// - -#import - - -OBJC_EXPORT id HC_equalToBool(BOOL value); - -/** - equalToBool(value) - - Matches if object is equal to @c NSNumber created from a @c BOOL. - - @param value The @c BOOL value from which to create an @c NSNumber. - - This matcher creates an @c NSNumber object from a @c BOOL @a value and compares the evaluated - object to it for equality. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_equalToBool instead.) - - @ingroup primitive_number_matchers - */ -#ifdef HC_SHORTHAND - #define equalToBool HC_equalToBool -#endif - - -OBJC_EXPORT id HC_equalToChar(char value); - -/** - equalToChar(value) - - Matches if object is equal to @c NSNumber created from a @c char. - - @param value The @c char value from which to create an @c NSNumber. - - This matcher creates an @c NSNumber object from a @c char @a value and compares the evaluated - object to it for equality. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_equalToChar instead.) - - @ingroup primitive_number_matchers - */ -#ifdef HC_SHORTHAND - #define equalToChar HC_equalToChar -#endif - - -OBJC_EXPORT id HC_equalToDouble(double value); - -/** - equalToDouble(value) - - Matches if object is equal to @c NSNumber created from a @c double. - - @param value The @c double value from which to create an @c NSNumber. - - This matcher creates an @c NSNumber object from a @c double @a value and compares the evaluated - object to it for equality. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_equalToDouble instead.) - - @ingroup primitive_number_matchers - */ -#ifdef HC_SHORTHAND - #define equalToDouble HC_equalToDouble -#endif - - -OBJC_EXPORT id HC_equalToFloat(float value); - -/** - equalToFloat(value) - - Matches if object is equal to @c NSNumber created from a @c float. - - @param value The @c float value from which to create an @c NSNumber. - - This matcher creates an @c NSNumber object from a @c float @a value and compares the evaluated - object to it for equality. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_equalToFloat instead.) - - @ingroup primitive_number_matchers - */ -#ifdef HC_SHORTHAND - #define equalToFloat HC_equalToFloat -#endif - - -OBJC_EXPORT id HC_equalToInt(int value); - -/** - equalToInt(value) - - Matches if object is equal to @c NSNumber created from an @c int. - - @param value The @c int value from which to create an @c NSNumber. - - This matcher creates an @c NSNumber object from a @c int @a value and compares the evaluated - object to it for equality. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_equalToInt instead.) - - @ingroup primitive_number_matchers - */ -#ifdef HC_SHORTHAND - #define equalToInt HC_equalToInt -#endif - - -OBJC_EXPORT id HC_equalToLong(long value); - -/** - equalToLong(value) - - Matches if object is equal to @c NSNumber created from a @c long. - - @param value The @c long value from which to create an @c NSNumber. - - This matcher creates an @c NSNumber object from a @c long @a value and compares the evaluated - object to it for equality. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_equalToLong instead.) - - @ingroup primitive_number_matchers - */ -#ifdef HC_SHORTHAND - #define equalToLong HC_equalToLong -#endif - - -OBJC_EXPORT id HC_equalToLongLong(long long value); - -/** - equalToLongLong(value) - - Matches if object is equal to @c NSNumber created from a long long. - - @param value The long long value from which to create an @c NSNumber. - - This matcher creates an @c NSNumber object from a long long @a value and compares - the evaluated object to it for equality. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_equalToLongLong instead.) - - @ingroup primitive_number_matchers - */ -#ifdef HC_SHORTHAND - #define equalToLongLong HC_equalToLongLong -#endif - - -OBJC_EXPORT id HC_equalToShort(short value); - -/** - equalToShort(value) - - Matches if object is equal to @c NSNumber created from a @c short. - - @param value The @c short value from which to create an @c NSNumber. - - This matcher creates an @c NSNumber object from a @c short @a value and compares the evaluated - object to it for equality. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_equalToShort instead.) - - @ingroup primitive_number_matchers - */ -#ifdef HC_SHORTHAND - #define equalToShort HC_equalToShort -#endif - - -OBJC_EXPORT id HC_equalToUnsignedChar(unsigned char value); - -/** - equalToUnsignedChar(value) - - Matches if object is equal to @c NSNumber created from an unsigned char. - - @param value The unsigned char value from which to create an @c NSNumber. - - This matcher creates an @c NSNumber object from an unsigned char @a value and - compares the evaluated object to it for equality. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_equalToUnsignedChar instead.) - - @ingroup primitive_number_matchers - */ -#ifdef HC_SHORTHAND - #define equalToUnsignedChar HC_equalToUnsignedChar -#endif - - -OBJC_EXPORT id HC_equalToUnsignedInt(unsigned int value); - -/** - equalToUnsignedInt(value) - - Matches if object is equal to @c NSNumber created from an unsigned int. - - @param value The unsigned int value from which to create an @c NSNumber. - - This matcher creates an @c NSNumber object from an unsigned int @a value and - compares the evaluated object to it for equality. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_equalToUnsignedInt instead.) - - @ingroup primitive_number_matchers - */ -#ifdef HC_SHORTHAND - #define equalToUnsignedInt HC_equalToUnsignedInt -#endif - - -OBJC_EXPORT id HC_equalToUnsignedLong(unsigned long value); - -/** - equalToUnsignedLong(value) - - Matches if object is equal to @c NSNumber created from an unsigned long. - - @param value The unsigned long value from which to create an @c NSNumber. - - This matcher creates an @c NSNumber object from an unsigned long @a value and - compares the evaluated object to it for equality. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_equalToUnsignedLong instead.) - - @ingroup primitive_number_matchers - */ -#ifdef HC_SHORTHAND - #define equalToUnsignedLong HC_equalToUnsignedLong -#endif - - -OBJC_EXPORT id HC_equalToUnsignedLongLong(unsigned long long value); - -/** - equalToUnsignedLongLong(value) - - Matches if object is equal to @c NSNumber created from an unsigned long long. - - @param value The unsigned long long value from which to create an @c NSNumber. - - This matcher creates an @c NSNumber object from an unsigned long long @a value and - compares the evaluated object to it for equality. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_equalToUnsignedLongLong instead.) - - @ingroup primitive_number_matchers - */ -#ifdef HC_SHORTHAND - #define equalToUnsignedLongLong HC_equalToUnsignedLongLong -#endif - - -OBJC_EXPORT id HC_equalToUnsignedShort(unsigned short value); - -/** - equalToUnsignedShort(value) - - Matches if object is equal to @c NSNumber created from an unsigned short. - - @param value The unsigned short value from which to create an @c NSNumber. - - This matcher creates an @c NSNumber object from an unsigned short @a value and - compares the evaluated object to it for equality. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_equalToUnsignedShort instead.) - - @ingroup primitive_number_matchers - */ -#ifdef HC_SHORTHAND - #define equalToUnsignedShort HC_equalToUnsignedShort -#endif - - -OBJC_EXPORT id HC_equalToInteger(NSInteger value); - -/** - equalToInteger(value) - - Matches if object is equal to @c NSNumber created from an @c NSInteger. - - @param value The @c NSInteger value from which to create an @c NSNumber. - - This matcher creates an @c NSNumber object from an @c NSInteger @a value and compares the - evaluated object to it for equality. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_equalToInteger instead.) - - @ingroup primitive_number_matchers - */ -#ifdef HC_SHORTHAND - #define equalToInteger HC_equalToInteger -#endif - - -OBJC_EXPORT id HC_equalToUnsignedInteger(NSUInteger value); - -/** - equalToUnsignedInteger(value) - - Matches if object is equal to @c NSNumber created from an @c NSUInteger. - - @param value The @c NSUInteger value from which to create an @c NSNumber. - - This matcher creates an @c NSNumber object from an @c NSUInteger @a value and compares the - evaluated object to it for equality. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_equalToUnsignedInteger instead.) - - @ingroup primitive_number_matchers - */ -#ifdef HC_SHORTHAND - #define equalToUnsignedInteger HC_equalToUnsignedInteger -#endif diff --git a/OCHamcrestIOS.framework/Versions/A/Headers/HCIsIn.h b/OCHamcrestIOS.framework/Versions/A/Headers/HCIsIn.h deleted file mode 100644 index ece2382..0000000 --- a/OCHamcrestIOS.framework/Versions/A/Headers/HCIsIn.h +++ /dev/null @@ -1,40 +0,0 @@ -// -// OCHamcrest - HCIsIn.h -// Copyright 2012 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid -// - -#import - - -@interface HCIsIn : HCBaseMatcher -{ - id collection; -} - -+ (id)isInCollection:(id)aCollection; -- (id)initWithCollection:(id)aCollection; - -@end - - -OBJC_EXPORT id HC_isIn(id aCollection); - -/** - isIn(aCollection) - - Matches if evaluated object is present in a given collection. - - @param aCollection The collection to search. - - This matcher invokes @c -containsObject: on @a aCollection to determine if the evaluated object - is an element of the collection. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_isIn instead.) - - @ingroup collection_matchers - */ -#ifdef HC_SHORTHAND - #define isIn HC_isIn -#endif diff --git a/OCHamcrestIOS.framework/Versions/A/Headers/HCIsInstanceOf.h b/OCHamcrestIOS.framework/Versions/A/Headers/HCIsInstanceOf.h deleted file mode 100644 index 429a608..0000000 --- a/OCHamcrestIOS.framework/Versions/A/Headers/HCIsInstanceOf.h +++ /dev/null @@ -1,43 +0,0 @@ -// -// OCHamcrest - HCIsInstanceOf.h -// Copyright 2012 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid -// - -#import - - -@interface HCIsInstanceOf : HCBaseMatcher -{ - Class theClass; -} - -+ (id)isInstanceOf:(Class)type; -- (id)initWithType:(Class)type; - -@end - - -OBJC_EXPORT id HC_instanceOf(Class aClass); - -/** - instanceOf(aClass) - - Matches if object is an instance of, or inherits from, a given class. - - @param aClass The class to compare against as the expected class. - - This matcher checks whether the evaluated object is an instance of @a aClass or an instance of - any class that inherits from @a aClass. - - Example: - @li @ref instanceOf([NSString class]) - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_instanceOf instead.) - - @ingroup object_matchers - */ -#ifdef HC_SHORTHAND - #define instanceOf HC_instanceOf -#endif diff --git a/OCHamcrestIOS.framework/Versions/A/Headers/HCIsNil.h b/OCHamcrestIOS.framework/Versions/A/Headers/HCIsNil.h deleted file mode 100644 index f9f36a4..0000000 --- a/OCHamcrestIOS.framework/Versions/A/Headers/HCIsNil.h +++ /dev/null @@ -1,45 +0,0 @@ -// -// OCHamcrest - HCIsNil.h -// Copyright 2012 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid -// - -#import - - -@interface HCIsNil : HCBaseMatcher - -+ (id)isNil; - -@end - - -OBJC_EXPORT id HC_nilValue(); - -/** - Matches if object is @c nil. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_nilValue instead.) - - @ingroup object_matchers - */ -#ifdef HC_SHORTHAND - #define nilValue() HC_nilValue() -#endif - - -OBJC_EXPORT id HC_notNilValue(); - -/** - Matches if object is not @c nil. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_notNilValue instead.) - - @ingroup object_matchers - */ -#ifdef HC_SHORTHAND - #define notNilValue() HC_notNilValue() -#endif diff --git a/OCHamcrestIOS.framework/Versions/A/Headers/HCIsNot.h b/OCHamcrestIOS.framework/Versions/A/Headers/HCIsNot.h deleted file mode 100644 index c925c89..0000000 --- a/OCHamcrestIOS.framework/Versions/A/Headers/HCIsNot.h +++ /dev/null @@ -1,45 +0,0 @@ -// -// OCHamcrest - HCIsNot.h -// Copyright 2012 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid -// - -#import - - -@interface HCIsNot : HCBaseMatcher -{ - id matcher; -} - -+ (id)isNot:(id)aMatcher; -- (id)initNot:(id)aMatcher; - -@end - - -OBJC_EXPORT id HC_isNot(id aMatcher); - -/** - isNot(aMatcher) - - Inverts the given matcher to its logical negation. - - @param aMatcher The matcher to negate. - - This matcher compares the evaluated object to the negation of the given matcher. If the - @a aMatcher argument is not a matcher, it is implicitly wrapped in an @ref equalTo matcher to - check for equality, and thus matches for inequality. - - Examples: - @li @ref assertThat(cheese, isNot(equalTo(smelly))) - @li @ref assertThat(cheese, isNot(smelly)) - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_isNot instead.) - - @ingroup logical_matchers - */ -#ifdef HC_SHORTHAND - #define isNot HC_isNot -#endif diff --git a/OCHamcrestIOS.framework/Versions/A/Headers/HCIsSame.h b/OCHamcrestIOS.framework/Versions/A/Headers/HCIsSame.h deleted file mode 100644 index 629908b..0000000 --- a/OCHamcrestIOS.framework/Versions/A/Headers/HCIsSame.h +++ /dev/null @@ -1,40 +0,0 @@ -// -// OCHamcrest - HCIsSame.h -// Copyright 2012 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid -// - -#import - - -@interface HCIsSame : HCBaseMatcher -{ - id object; -} - -+ (id)isSameAs:(id)anObject; -- (id)initSameAs:(id)anObject; - -@end - - -OBJC_EXPORT id HC_sameInstance(id object); - -/** - sameInstance(anObject) - - Matches if evaluated object is the same instance as a given object. - - @param anObject The object to compare against as the expected value. - - This matcher compares the address of the evaluated object to determine if it is the same object - as @a anObject. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_sameInstance instead.) - - @ingroup object_matchers - */ -#ifdef HC_SHORTHAND - #define sameInstance HC_sameInstance -#endif diff --git a/OCHamcrestIOS.framework/Versions/A/Headers/HCMatcher.h b/OCHamcrestIOS.framework/Versions/A/Headers/HCMatcher.h deleted file mode 100644 index 720a047..0000000 --- a/OCHamcrestIOS.framework/Versions/A/Headers/HCMatcher.h +++ /dev/null @@ -1,54 +0,0 @@ -// -// OCHamcrest - HCMatcher.h -// Copyright 2012 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid -// - -#import - - -/** - A matcher over acceptable values. - - A matcher is able to describe itself to give feedback when it fails. - - HCMatcher implementations should @b not directly implement this protocol. - Instead, @b extend the HCBaseMatcher class, which will ensure that the HCMatcher API can grow - to support new features and remain compatible with all HCMatcher implementations. - - @ingroup core - */ -@protocol HCMatcher - -/** - Evaluates the matcher for argument @a item. - - @param item The object against which the matcher is evaluated. - @return @c YES if @a item matches, otherwise @c NO. - */ -- (BOOL)matches:(id)item; - -/** - Evaluates the matcher for argument @a item. - - @param item The object against which the matcher is evaluated. - @param mismatchDescription The description to be built or appended to if @a item does not match. - @return @c YES if @a item matches, otherwise @c NO. - */ -- (BOOL)matches:(id)item describingMismatchTo:(id)mismatchDescription; - -/** - Generates a description of why the matcher has not accepted the item. - - The description will be part of a larger description of why a matching failed, so it should be - concise. - - This method assumes that @c matches:item is false, but will not check this. - - @param item The item that the HCMatcher has rejected. - @param mismatchDescription The description to be built or appended to. - */ -- (void)describeMismatchOf:(id)item to:(id)mismatchDescription; - -@end diff --git a/OCHamcrestIOS.framework/Versions/A/Headers/HCNumberAssert.h b/OCHamcrestIOS.framework/Versions/A/Headers/HCNumberAssert.h deleted file mode 100644 index eb37176..0000000 --- a/OCHamcrestIOS.framework/Versions/A/Headers/HCNumberAssert.h +++ /dev/null @@ -1,385 +0,0 @@ -// -// OCHamcrest - HCNumberAssert.h -// Copyright 2012 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid -// - -#import - -@protocol HCMatcher; - - -OBJC_EXPORT void HC_assertThatBoolWithLocation(id testCase, BOOL actual, - id matcher, const char* fileName, int lineNumber); - -#define HC_assertThatBool(actual, matcher) \ - HC_assertThatBoolWithLocation(self, actual, matcher, __FILE__, __LINE__) - -/** - assertThatBool(actual, matcher) - - Asserts that @c BOOL actual value, converted to an @c NSNumber, satisfies matcher. - - @param actual The @c BOOL value to convert to an @c NSNumber for evaluation. - @param matcher The matcher to satisfy as the expected condition. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_assertThatBool instead.) - - @ingroup integration_numeric - */ -#ifdef HC_SHORTHAND - #define assertThatBool HC_assertThatBool -#endif - - -#pragma mark - - -OBJC_EXPORT void HC_assertThatCharWithLocation(id testCase, char actual, - id matcher, const char* fileName, int lineNumber); - -#define HC_assertThatChar(actual, matcher) \ - HC_assertThatCharWithLocation(self, actual, matcher, __FILE__, __LINE__) - -/** - assertThatChar(actual, matcher) - - Asserts that @c char actual value, converted to an @c NSNumber, satisfies matcher. - - @param actual The @c char value to convert to an @c NSNumber for evaluation. - @param matcher The matcher to satisfy as the expected condition. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_assertThatChar instead.) - - @ingroup integration_numeric - */ -#ifdef HC_SHORTHAND - #define assertThatChar HC_assertThatChar -#endif - - -#pragma mark - - -OBJC_EXPORT void HC_assertThatDoubleWithLocation(id testCase, double actual, - id matcher, const char* fileName, int lineNumber); - -#define HC_assertThatDouble(actual, matcher) \ - HC_assertThatDoubleWithLocation(self, actual, matcher, __FILE__, __LINE__) - -/** - HC_assertThatDouble(actual, matcher) - - Asserts that @c double actual value, converted to an @c NSNumber, satisfies matcher. - - @param actual The @c double value to convert to an @c NSNumber for evaluation. - @param matcher The matcher to satisfy as the expected condition. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_assertThatDouble instead.) - - @ingroup integration_numeric - */ -#ifdef HC_SHORTHAND - #define assertThatDouble HC_assertThatDouble -#endif - - -#pragma mark - - -OBJC_EXPORT void HC_assertThatFloatWithLocation(id testCase, float actual, - id matcher, const char* fileName, int lineNumber); - -#define HC_assertThatFloat(actual, matcher) \ - HC_assertThatFloatWithLocation(self, actual, matcher, __FILE__, __LINE__) - -/** - assertThatFloat(actual, matcher) - - Asserts that @c float actual value, converted to an @c NSNumber, satisfies matcher. - - @param actual The @c float value to convert to an @c NSNumber for evaluation. - @param matcher The matcher to satisfy as the expected condition. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_assertThatFloat instead.) - - @ingroup integration_numeric - */ -#ifdef HC_SHORTHAND - #define assertThatFloat HC_assertThatFloat -#endif - - -#pragma mark - - -OBJC_EXPORT void HC_assertThatIntWithLocation(id testCase, int actual, - id matcher, const char* fileName, int lineNumber); - -#define HC_assertThatInt(actual, matcher) \ - HC_assertThatIntWithLocation(self, actual, matcher, __FILE__, __LINE__) - -/** - assertThatInt(actual, matcher) - - Asserts that @c int actual value, converted to an @c NSNumber, satisfies matcher. - - @param actual The @c int value to convert to an @c NSNumber for evaluation. - @param matcher The matcher to satisfy as the expected condition. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_assertThatInt instead.) - - @ingroup integration_numeric - */ -#ifdef HC_SHORTHAND - #define assertThatInt HC_assertThatInt -#endif - - -#pragma mark - - -OBJC_EXPORT void HC_assertThatLongWithLocation(id testCase, long actual, - id matcher, const char* fileName, int lineNumber); - -#define HC_assertThatLong(actual, matcher) \ - HC_assertThatLongWithLocation(self, actual, matcher, __FILE__, __LINE__) - -/** - assertThatLong(actual, matcher) - - Asserts that @c long actual value, converted to an @c NSNumber, satisfies matcher. - - @param actual The @c long value to convert to an @c NSNumber for evaluation. - @param matcher The matcher to satisfy as the expected condition. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_assertThatLong instead.) - - @ingroup integration_numeric - */ -#ifdef HC_SHORTHAND - #define assertThatLong HC_assertThatLong -#endif - - -#pragma mark - - -OBJC_EXPORT void HC_assertThatLongLongWithLocation(id testCase, long long actual, - id matcher, const char* fileName, int lineNumber); - -#define HC_assertThatLongLong(actual, matcher) \ - HC_assertThatLongLongWithLocation(self, actual, matcher, __FILE__, __LINE__) - -/** - assertThatLongLong(actual, matcher) - - Asserts that long long actual value, converted to an @c NSNumber, satisfies - matcher. - - @param actual The long long value to convert to an @c NSNumber for evaluation. - @param matcher The matcher to satisfy as the expected condition. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_assertThatLongLong instead.) - - @ingroup integration_numeric - */ -#ifdef HC_SHORTHAND - #define assertThatLongLong HC_assertThatLongLong -#endif - - -#pragma mark - - -OBJC_EXPORT void HC_assertThatShortWithLocation(id testCase, short actual, - id matcher, const char* fileName, int lineNumber); - -#define HC_assertThatShort(actual, matcher) \ - HC_assertThatShortWithLocation(self, actual, matcher, __FILE__, __LINE__) - -/** - assertThatShort(actual, matcher) - - Asserts that @c short actual value, converted to an @c NSNumber, satisfies matcher. - - @param actual The @c short value to convert to an @c NSNumber for evaluation. - @param matcher The matcher to satisfy as the expected condition. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_assertThatShort instead.) - - @ingroup integration_numeric - */ -#ifdef HC_SHORTHAND - #define assertThatShort HC_assertThatShort -#endif - - -#pragma mark - - -OBJC_EXPORT void HC_assertThatUnsignedCharWithLocation(id testCase, unsigned char actual, - id matcher, const char* fileName, int lineNumber); - -#define HC_assertThatUnsignedChar(actual, matcher) \ - HC_assertThatUnsignedCharWithLocation(self, actual, matcher, __FILE__, __LINE__) - -/** - assertThatUnsignedChar(actual, matcher) - - Asserts that unsigned char actual value, converted to an @c NSNumber, satisfies - matcher. - - @param actual The unsigned char value to convert to an @c NSNumber for evaluation. - @param matcher The matcher to satisfy as the expected condition. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_assertThatUnsignedChar instead.) - - @ingroup integration_numeric - */ -#ifdef HC_SHORTHAND - #define assertThatUnsignedChar HC_assertThatUnsignedChar -#endif - - -#pragma mark - - -OBJC_EXPORT void HC_assertThatUnsignedIntWithLocation(id testCase, unsigned int actual, - id matcher, const char* fileName, int lineNumber); - -#define HC_assertThatUnsignedInt(actual, matcher) \ - HC_assertThatUnsignedIntWithLocation(self, actual, matcher, __FILE__, __LINE__) - -/** - assertThatUnsignedInt(actual, matcher) - - Asserts that unsigned int actual value, converted to an @c NSNumber, satisfies - matcher. - - @param actual The unsigned int value to convert to an @c NSNumber for evaluation @param matcher The matcher to satisfy as the expected condition. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_assertThatUnsignedInt instead.) - - @ingroup integration_numeric - */ -#ifdef HC_SHORTHAND - #define assertThatUnsignedInt HC_assertThatUnsignedInt -#endif - - -#pragma mark - - -OBJC_EXPORT void HC_assertThatUnsignedLongWithLocation(id testCase, unsigned long actual, - id matcher, const char* fileName, int lineNumber); - -#define HC_assertThatUnsignedLong(actual, matcher) \ - HC_assertThatUnsignedLongWithLocation(self, actual, matcher, __FILE__, __LINE__) - -/** - assertThatUnsignedLong(actual, matcher) - - Asserts that unsigned long actual value, converted to an @c NSNumber, satisfies - matcher. - - @param actual The unsigned long value to convert to an @c NSNumber for evaluation @param matcher The matcher to satisfy as the expected condition. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_assertThatUnsignedLong instead.) - - @ingroup integration_numeric - */ -#ifdef HC_SHORTHAND - #define assertThatUnsignedLong HC_assertThatUnsignedLong -#endif - - -#pragma mark - - -OBJC_EXPORT void HC_assertThatUnsignedLongLongWithLocation(id testCase, unsigned long long actual, - id matcher, const char* fileName, int lineNumber); - -#define HC_assertThatUnsignedLongLong(actual, matcher) \ - HC_assertThatUnsignedLongLongWithLocation(self, actual, matcher, __FILE__, __LINE__) - -/** - assertThatUnsignedLongLong(actual, matcher) - - Asserts that unsigned long long actual value, converted to an @c NSNumber, - satisfies matcher. - - @param actual The unsigned long long value to convert to an @c NSNumber for evaluation @param matcher The matcher to satisfy as the expected condition. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_assertThatUnsignedLongLong instead.) - - @ingroup integration_numeric - */ -#ifdef HC_SHORTHAND - #define assertThatUnsignedLongLong HC_assertThatUnsignedLongLong -#endif - - -#pragma mark - - -OBJC_EXPORT void HC_assertThatUnsignedShortWithLocation(id testCase, unsigned short actual, - id matcher, const char* fileName, int lineNumber); - -#define HC_assertThatUnsignedShort(actual, matcher) \ - HC_assertThatUnsignedShortWithLocation(self, actual, matcher, __FILE__, __LINE__) - -/** - assertThatUnsignedShort(actual, matcher) - - Asserts that unsigned short actual value, converted to an @c NSNumber, satisfies - matcher. - - @param actual The unsigned short value to convert to an @c NSNumber for evaluation @param matcher The matcher to satisfy as the expected condition. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_assertThatUnsignedShort instead.) - - @ingroup integration_numeric - */ -#ifdef HC_SHORTHAND - #define assertThatUnsignedShort HC_assertThatUnsignedShort -#endif - - -#pragma mark - - -OBJC_EXPORT void HC_assertThatIntegerWithLocation(id testCase, NSInteger actual, - id matcher, const char* fileName, int lineNumber); - -#define HC_assertThatInteger(actual, matcher) \ - HC_assertThatIntegerWithLocation(self, actual, matcher, __FILE__, __LINE__) - -/** - assertThatInteger(actual, matcher) - - Asserts that @c NSInteger actual value, converted to an @c NSNumber, satisfies matcher. - - @param actual The @c NSInteger value to convert to an @c NSNumber for evaluation. - @param matcher The matcher to satisfy as the expected condition. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_assertThatInteger instead.) - - @ingroup integration_numeric - */ -#ifdef HC_SHORTHAND - #define assertThatInteger HC_assertThatInteger -#endif - - -#pragma mark - - -OBJC_EXPORT void HC_assertThatUnsignedIntegerWithLocation(id testCase, NSUInteger actual, - id matcher, const char* fileName, int lineNumber); - -#define HC_assertThatUnsignedInteger(actual, matcher) \ - HC_assertThatUnsignedIntegerWithLocation(self, actual, matcher, __FILE__, __LINE__) - -/** - assertThatUnsignedInteger(actual, matcher) - - Asserts that @c NSUInteger actual value, converted to an @c NSNumber, satisfies matcher. - - @param actual The @c NSUInteger value to convert to an @c NSNumber for evaluation. - @param matcher The matcher to satisfy as the expected condition. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_assertThatUnsignedInteger instead.) - - @ingroup integration_numeric - */ -#ifdef HC_SHORTHAND - #define assertThatUnsignedInteger HC_assertThatUnsignedInteger -#endif diff --git a/OCHamcrestIOS.framework/Versions/A/Headers/HCOrderingComparison.h b/OCHamcrestIOS.framework/Versions/A/Headers/HCOrderingComparison.h deleted file mode 100644 index 7fcad82..0000000 --- a/OCHamcrestIOS.framework/Versions/A/Headers/HCOrderingComparison.h +++ /dev/null @@ -1,113 +0,0 @@ -// -// OCHamcrest - HCOrderingComparison.h -// Copyright 2012 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid -// - -#import - - -@interface HCOrderingComparison : HCBaseMatcher -{ - id expected; - NSComparisonResult minCompare; - NSComparisonResult maxCompare; - NSString *comparisonDescription; -} - -+ (id)compare:(id)expectedValue - minCompare:(NSComparisonResult)min - maxCompare:(NSComparisonResult)max - comparisonDescription:(NSString *)comparisonDescription; - -- (id)initComparing:(id)expectedValue - minCompare:(NSComparisonResult)min - maxCompare:(NSComparisonResult)max - comparisonDescription:(NSString *)comparisonDescription; - -@end - - -OBJC_EXPORT id HC_greaterThan(id expected); - -/** - greaterThan(aNumber) - - Matches if object is greater than a given number. - - @param aNumber The @c NSNumber to compare against. - - Example: - @li @ref greaterThan([NSNumber numberWithInt:5]) - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_greaterThan instead.) - - @ingroup number_matchers - */ -#ifdef HC_SHORTHAND - #define greaterThan HC_greaterThan -#endif - - -OBJC_EXPORT id HC_greaterThanOrEqualTo(id expected); - -/** - greaterThanOrEqualTo(aNumber) - - Matches if object is greater than or equal to a given number. - - @param aNumber The @c NSNumber to compare against. - - Example: - @li @ref greaterThanOrEqualTo([NSNumber numberWithInt:5]) - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_greaterThanOrEqualTo instead.) - - @ingroup number_matchers - */ -#ifdef HC_SHORTHAND - #define greaterThanOrEqualTo HC_greaterThanOrEqualTo -#endif - - -OBJC_EXPORT id HC_lessThan(id expected); - -/** - lessThan(aNumber) - - Matches if object is less than a given number. - - @param aNumber The @c NSNumber to compare against. - - Example: - @li @ref lessThan([NSNumber numberWithInt:5]) - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_lessThan instead.) - - @ingroup number_matchers - */ -#ifdef HC_SHORTHAND - #define lessThan HC_lessThan -#endif - - -OBJC_EXPORT id HC_lessThanOrEqualTo(id expected); - -/** - lessThanOrEqualTo(aNumber) - - Matches if object is less than or equal to a given number. - - @param aNumber The @c NSNumber to compare against. - - Example: - @li @ref lessThanOrEqualTo([NSNumber numberWithInt:5]) - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_lessThanOrEqualTo instead.) - - @ingroup number_matchers - */ -#ifdef HC_SHORTHAND - #define lessThanOrEqualTo HC_lessThanOrEqualTo -#endif diff --git a/OCHamcrestIOS.framework/Versions/A/Headers/HCRequireNonNilObject.h b/OCHamcrestIOS.framework/Versions/A/Headers/HCRequireNonNilObject.h deleted file mode 100644 index 634e596..0000000 --- a/OCHamcrestIOS.framework/Versions/A/Headers/HCRequireNonNilObject.h +++ /dev/null @@ -1,17 +0,0 @@ -// -// OCHamcrest - HCRequireNonNilObject.h -// Copyright 2012 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid -// - -#import -#import - - -/** - Throws an NSException if @a obj is @c nil. - - @ingroup helpers -*/ -OBJC_EXPORT void HCRequireNonNilObject(id obj); diff --git a/OCHamcrestIOS.framework/Versions/A/Headers/HCRequireNonNilString.h b/OCHamcrestIOS.framework/Versions/A/Headers/HCRequireNonNilString.h deleted file mode 100644 index 20cd043..0000000 --- a/OCHamcrestIOS.framework/Versions/A/Headers/HCRequireNonNilString.h +++ /dev/null @@ -1,19 +0,0 @@ -// -// OCHamcrest - HCRequireNonNilString.h -// Copyright 2012 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid -// - -#import -#import - - -/** - Throws an NSException if @a string is @c nil. - - @b Deprecated: Use @ref HCRequireNonNilObject instead. - - @ingroup helpers -*/ -OBJC_EXPORT void HCRequireNonNilString(NSString *string) __attribute__((deprecated)); diff --git a/OCHamcrestIOS.framework/Versions/A/Headers/HCSelfDescribing.h b/OCHamcrestIOS.framework/Versions/A/Headers/HCSelfDescribing.h deleted file mode 100644 index fcde13e..0000000 --- a/OCHamcrestIOS.framework/Versions/A/Headers/HCSelfDescribing.h +++ /dev/null @@ -1,30 +0,0 @@ -// -// OCHamcrest - HCSelfDescribing.h -// Copyright 2012 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid -// - -#import - -@protocol HCDescription; - - -/** - The ability of an object to describe itself. - - @ingroup core - */ -@protocol HCSelfDescribing - -/** - Generates a description of the object. - - The description may be part of a description of a larger object of which this is just a - component, so it should be worded appropriately. - - @param description The description to be built or appended to. - */ -- (void)describeTo:(id)description; - -@end diff --git a/OCHamcrestIOS.framework/Versions/A/Headers/HCStringContains.h b/OCHamcrestIOS.framework/Versions/A/Headers/HCStringContains.h deleted file mode 100644 index 1673ae8..0000000 --- a/OCHamcrestIOS.framework/Versions/A/Headers/HCStringContains.h +++ /dev/null @@ -1,43 +0,0 @@ -// -// OCHamcrest - HCStringContains.h -// Copyright 2012 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid -// - -#import - - -@interface HCStringContains : HCSubstringMatcher - -+ (id)stringContains:(NSString *)aSubstring; - -@end - - -OBJC_EXPORT id HC_containsString(NSString *aSubstring); - -/** - containsString(aString) - - Matches if object is a string containing a given string. - - @param aString The string to search for. This value must not be @c nil. - - This matcher first checks whether the evaluated object is a string. If so, it checks whether it - contains @a aString. - - Example: - - @par - @ref containsString(@"def") - - will match "abcdefg". - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_containsString instead.) - - @ingroup text_matchers - */ -#ifdef HC_SHORTHAND - #define containsString HC_containsString -#endif diff --git a/OCHamcrestIOS.framework/Versions/A/Headers/HCStringContainsInOrder.h b/OCHamcrestIOS.framework/Versions/A/Headers/HCStringContainsInOrder.h deleted file mode 100644 index 430b5fc..0000000 --- a/OCHamcrestIOS.framework/Versions/A/Headers/HCStringContainsInOrder.h +++ /dev/null @@ -1,48 +0,0 @@ -// -// OCHamcrest - HCStringContainsInOrder.h -// Copyright 2012 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid -// - -#import - - -@interface HCStringContainsInOrder : HCBaseMatcher -{ - NSArray *substrings; -} - -+ (id)containsInOrder:(NSArray *)substringList; -- (id)initWithSubstrings:(NSArray *)substringList; - -@end - - -OBJC_EXPORT id HC_stringContainsInOrder(NSString *substring, ...) NS_REQUIRES_NIL_TERMINATION; - -/** - stringContainsInOrder(firstString, ...) - - Matches if object is a string containing a given list of substrings in relative order. - - @param firstString,... A comma-separated list of strings ending with @c nil. - - This matcher first checks whether the evaluated object is a string. If so, it checks whether it - contains a given list of strings, in relative order to each other. The searches are performed - starting from the beginning of the evaluated string. - - Example: - - @par - @ref stringContainsInOrder(@"bc", @"fg", @"jkl", nil) - - will match "abcdefghijklm". - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_stringContainsInOrder instead.) - - @ingroup text_matchers - */ -#ifdef HC_SHORTHAND - #define stringContainsInOrder HC_stringContainsInOrder -#endif diff --git a/OCHamcrestIOS.framework/Versions/A/Headers/HCStringDescription.h b/OCHamcrestIOS.framework/Versions/A/Headers/HCStringDescription.h deleted file mode 100644 index 458503c..0000000 --- a/OCHamcrestIOS.framework/Versions/A/Headers/HCStringDescription.h +++ /dev/null @@ -1,41 +0,0 @@ -// -// OCHamcrest - HCStringDescription.h -// Copyright 2012 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid -// - -#import - -@protocol HCSelfDescribing; - - -/** - An HCDescription that is stored as a string. - - @ingroup core - */ -@interface HCStringDescription : HCBaseDescription -{ - NSMutableString *accumulator; -} - -/** - Returns the description of an HCSelfDescribing object as a string. - - @param selfDescribing The object to be described. - @return The description of the object. - */ -+ (NSString *)stringFrom:(id)selfDescribing; - -/** - Returns an empty description. - */ -+ (HCStringDescription *)stringDescription; - -/** - Returns an initialized HCStringDescription object that is empty. - */ -- (id)init; - -@end diff --git a/OCHamcrestIOS.framework/Versions/A/Headers/HCStringEndsWith.h b/OCHamcrestIOS.framework/Versions/A/Headers/HCStringEndsWith.h deleted file mode 100644 index a4e9a17..0000000 --- a/OCHamcrestIOS.framework/Versions/A/Headers/HCStringEndsWith.h +++ /dev/null @@ -1,43 +0,0 @@ -// -// OCHamcrest - HCStringEndsWith.h -// Copyright 2012 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid -// - -#import - - -@interface HCStringEndsWith : HCSubstringMatcher - -+ (id)stringEndsWith:(NSString *)aSubstring; - -@end - - -OBJC_EXPORT id HC_endsWith(NSString *aSubstring); - -/** - endsWith(aString) - - Matches if object is a string ending with a given string. - - @param aString The string to search for. This value must not be @c nil. - - This matcher first checks whether the evaluated object is a string. If so, it checks if - @a aString matches the ending characters of the evaluated object. - - Example: - - @par - @ref endsWith(@"bar") - - will match "foobar". - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_endsWith instead.) - - @ingroup text_matchers - */ -#ifdef HC_SHORTHAND - #define endsWith HC_endsWith -#endif diff --git a/OCHamcrestIOS.framework/Versions/A/Headers/HCStringStartsWith.h b/OCHamcrestIOS.framework/Versions/A/Headers/HCStringStartsWith.h deleted file mode 100644 index 0d663fe..0000000 --- a/OCHamcrestIOS.framework/Versions/A/Headers/HCStringStartsWith.h +++ /dev/null @@ -1,43 +0,0 @@ -// -// OCHamcrest - HCStringStartsWith.h -// Copyright 2012 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid -// - -#import - - -@interface HCStringStartsWith : HCSubstringMatcher - -+ (id)stringStartsWith:(NSString *)aSubstring; - -@end - - -OBJC_EXPORT id HC_startsWith(NSString *aSubstring); - -/** - startsWith(aString) - - Matches if object is a string starting with a given string. - - @param aString The string to search for. This value must not be @c nil. - - This matcher first checks whether the evaluated object is a string. If so, it checks if - @a aString matches the beginning characters of the evaluated object. - - Example: - - @par - @ref endsWith(@"foo") - - will match "foobar". - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_startsWith instead.) - - @ingroup text_matchers - */ -#ifdef HC_SHORTHAND - #define startsWith HC_startsWith -#endif diff --git a/OCHamcrestIOS.framework/Versions/A/Headers/HCSubstringMatcher.h b/OCHamcrestIOS.framework/Versions/A/Headers/HCSubstringMatcher.h deleted file mode 100644 index 9648dfb..0000000 --- a/OCHamcrestIOS.framework/Versions/A/Headers/HCSubstringMatcher.h +++ /dev/null @@ -1,18 +0,0 @@ -// -// OCHamcrest - HCSubstringMatcher.h -// Copyright 2012 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid -// - -#import - - -@interface HCSubstringMatcher : HCBaseMatcher -{ - NSString *substring; -} - -- (id)initWithSubstring:(NSString *)aString; - -@end diff --git a/OCHamcrestIOS.framework/Versions/A/Headers/HCWrapInMatcher.h b/OCHamcrestIOS.framework/Versions/A/Headers/HCWrapInMatcher.h deleted file mode 100644 index b015e86..0000000 --- a/OCHamcrestIOS.framework/Versions/A/Headers/HCWrapInMatcher.h +++ /dev/null @@ -1,20 +0,0 @@ -// -// OCHamcrest - HCWrapInMatcher.h -// Copyright 2012 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid -// - -#import - -@protocol HCMatcher; - - -/** - Wraps argument in a matcher, if necessary. - - @return The argument as-if if it is already a matcher, otherwise wrapped in an @ref equalTo matcher. - - @ingroup helpers - */ -OBJC_EXPORT id HCWrapInMatcher(id matcherOrValue); diff --git a/OCHamcrestIOS.framework/Versions/A/Headers/NSObject+HCSelfDescribingValue.h b/OCHamcrestIOS.framework/Versions/A/Headers/NSObject+HCSelfDescribingValue.h deleted file mode 100644 index 077e649..0000000 --- a/OCHamcrestIOS.framework/Versions/A/Headers/NSObject+HCSelfDescribingValue.h +++ /dev/null @@ -1,28 +0,0 @@ -// -// OCHamcrest - NSObject+HCSelfDescribingValue.h -// Copyright 2012 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid -// - -#import - -@protocol HCDescription; - -/** - This category allows any object to satisfy the HCSelfDescribing protocol. - - @b Deprecated: No longer needed now that @ref appendDescriptionOf: handles all types of objects. - - @ingroup core - */ -@interface NSObject (HCSelfDescribingValue) - -/** - Generates a description of the object. - - @param description The description to be appended to. - */ -- (void)describeTo:(id)description __attribute__((deprecated)); - -@end diff --git a/OCHamcrestIOS.framework/Versions/A/Headers/OCHamcrestIOS.h b/OCHamcrestIOS.framework/Versions/A/Headers/OCHamcrestIOS.h deleted file mode 100644 index b58b991..0000000 --- a/OCHamcrestIOS.framework/Versions/A/Headers/OCHamcrestIOS.h +++ /dev/null @@ -1,135 +0,0 @@ -// -// OCHamcrest - OCHamcrest.h -// Copyright 2012 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid -// - -/** - @defgroup library Matcher Library - - Library of Matcher implementations. - */ - -/** - @defgroup object_matchers Object Matchers - - Matchers that inspect objects. - - @ingroup library - */ -#import -#import -#import -#import -#import -#import -#import - -/** - @defgroup collection_matchers Collection Matchers - - Matchers of collections. - - @ingroup library - */ -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import - -/** - @defgroup number_matchers Number Matchers - - Matchers that perform numeric comparisons. - - @ingroup library - */ -#import -#import - -/** - @defgroup primitive_number_matchers Primitive Number Matchers - - Matchers for testing equality against primitive numeric types. - - @ingroup number_matchers - */ -#import - -/** - @defgroup text_matchers Text Matchers - - Matchers that perform text comparisons. - - @ingroup library - */ -#import -#import -#import -#import -#import -#import - -/** - @defgroup logical_matchers Logical Matchers - - Boolean logic using other matchers. - - @ingroup library - */ -#import -#import -#import -#import - -/** - @defgroup decorator_matchers Decorator Matchers - - Matchers that decorate other matchers for better expression. - - @ingroup library - */ -#import -#import - -/** - @defgroup integration Unit Test Integration - */ -#import - -/** - @defgroup integration_numeric Unit Tests of Primitive Numbers - - Unit test integration for primitive numbers. - - The @c assertThat<Type> macros convert the primitive actual value to an @c NSNumber, - passing that to the matcher for evaluation. If the matcher is not satisfied, an exception is - thrown describing the mismatch. - - This family of macros is designed to integrate well with OCUnit and other unit testing - frameworks. Unmet assertions are reported as test failures. In Xcode, they can be clicked to - reveal the line of the assertion. - - @ingroup integration - */ -#import - -/** - @defgroup core Core API - */ - -/** - @defgroup helpers Helpers - - Utilities for writing Matchers. - - @ingroup core - */ diff --git a/OCHamcrestIOS.framework/Versions/A/OCHamcrestIOS b/OCHamcrestIOS.framework/Versions/A/OCHamcrestIOS deleted file mode 100644 index 3345700..0000000 Binary files a/OCHamcrestIOS.framework/Versions/A/OCHamcrestIOS and /dev/null differ diff --git a/OCHamcrestIOS.framework/Versions/A/Resources/Info.plist b/OCHamcrestIOS.framework/Versions/A/Resources/Info.plist deleted file mode 100644 index 2acc276..0000000 --- a/OCHamcrestIOS.framework/Versions/A/Resources/Info.plist +++ /dev/null @@ -1,42 +0,0 @@ - - - - - BuildMachineOSBuild - 10K549 - CFBundleDevelopmentRegion - English - CFBundleExecutable - OCHamcrestIOS - CFBundleIdentifier - org.hamcrest.OCHamcrestIOS - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - OCHamcrestIOS - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.7 - CFBundleSignature - ???? - CFBundleVersion - 1.7 - DTCompiler - com.apple.compilers.llvm.clang.1_0 - DTPlatformBuild - 4C199 - DTPlatformVersion - GM - DTSDKBuild - 10K549 - DTSDKName - macosx10.6 - DTXcode - 0420 - DTXcodeBuild - 4C199 - NSHumanReadableCopyright - Copyright © 2012 hamcrest.org - - diff --git a/OCHamcrestIOS.framework/Versions/Current b/OCHamcrestIOS.framework/Versions/Current deleted file mode 120000 index 8c7e5a6..0000000 --- a/OCHamcrestIOS.framework/Versions/Current +++ /dev/null @@ -1 +0,0 @@ -A \ No newline at end of file diff --git a/OCTotallyLazy.framework/Headers/OCTotallyLazy-Prefix.pch b/OCTotallyLazy.framework/Headers/OCTotallyLazy-Prefix.pch deleted file mode 100644 index 60070a9..0000000 --- a/OCTotallyLazy.framework/Headers/OCTotallyLazy-Prefix.pch +++ /dev/null @@ -1,3 +0,0 @@ -#ifdef __OBJC__ - #import -#endif diff --git a/OCTotallyLazy.framework/OCTotallyLazy b/OCTotallyLazy.framework/OCTotallyLazy deleted file mode 100644 index df36ffd..0000000 Binary files a/OCTotallyLazy.framework/OCTotallyLazy and /dev/null differ diff --git a/OCTotallyLazy.framework/Resources/OCTotallyLazy-Info.plist b/OCTotallyLazy.framework/Resources/OCTotallyLazy-Info.plist deleted file mode 100644 index a4b5c8c..0000000 Binary files a/OCTotallyLazy.framework/Resources/OCTotallyLazy-Info.plist and /dev/null differ diff --git a/Podfile b/Podfile new file mode 100644 index 0000000..3b4b59c --- /dev/null +++ b/Podfile @@ -0,0 +1,20 @@ +# Uncomment the next line to define a global platform for your project +# platform :ios, '9.0' + +target 'Group Works' do + # Uncomment the next line if you're using Swift or would like to use dynamic frameworks + # use_frameworks! + + # Pods for Group Works + inherit! :search_paths + pod 'OCHamcrest', '~> 7.0' + pod 'OCTotallyLazy' +end + +target 'UnitTests' do + # Uncomment the next line if you're using Swift or would like to use dynamic frameworks + # use_frameworks! + + # Pods for UnitTests + +end diff --git a/Podfile.lock b/Podfile.lock new file mode 100644 index 0000000..bdd884d --- /dev/null +++ b/Podfile.lock @@ -0,0 +1,15 @@ +PODS: + - OCHamcrest (7.0.2) + - OCTotallyLazy (1.1.0) + +DEPENDENCIES: + - OCHamcrest (~> 7.0) + - OCTotallyLazy + +SPEC CHECKSUMS: + OCHamcrest: 706bfbf69a3df55a873bad096014e80e2e8ca93c + OCTotallyLazy: c8838ee6491e4b3ca3fe83ac6211249ab2108101 + +PODFILE CHECKSUM: beab84ae348e3440daeb31c061813c000303612f + +COCOAPODS: 1.2.1 diff --git a/Pods/Headers/Private/OCHamcrest/HCAllOf.h b/Pods/Headers/Private/OCHamcrest/HCAllOf.h new file mode 120000 index 0000000..c016801 --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCAllOf.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Logical/HCAllOf.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCAnyOf.h b/Pods/Headers/Private/OCHamcrest/HCAnyOf.h new file mode 120000 index 0000000..53eb518 --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCAnyOf.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Logical/HCAnyOf.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCArgumentCaptor.h b/Pods/Headers/Private/OCHamcrest/HCArgumentCaptor.h new file mode 120000 index 0000000..9b244de --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCArgumentCaptor.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Object/HCArgumentCaptor.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCAssertThat.h b/Pods/Headers/Private/OCHamcrest/HCAssertThat.h new file mode 120000 index 0000000..b450f60 --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCAssertThat.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Core/HCAssertThat.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCBaseDescription.h b/Pods/Headers/Private/OCHamcrest/HCBaseDescription.h new file mode 120000 index 0000000..343fd50 --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCBaseDescription.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Core/HCBaseDescription.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCBaseMatcher.h b/Pods/Headers/Private/OCHamcrest/HCBaseMatcher.h new file mode 120000 index 0000000..ae94224 --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCBaseMatcher.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Core/HCBaseMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCBoolReturnGetter.h b/Pods/Headers/Private/OCHamcrest/HCBoolReturnGetter.h new file mode 120000 index 0000000..344b4a8 --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCBoolReturnGetter.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCBoolReturnGetter.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCCharReturnGetter.h b/Pods/Headers/Private/OCHamcrest/HCCharReturnGetter.h new file mode 120000 index 0000000..24edd49 --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCCharReturnGetter.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCCharReturnGetter.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCClassMatcher.h b/Pods/Headers/Private/OCHamcrest/HCClassMatcher.h new file mode 120000 index 0000000..f82a664 --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCClassMatcher.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Object/HCClassMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCCollect.h b/Pods/Headers/Private/OCHamcrest/HCCollect.h new file mode 120000 index 0000000..cf0d4c5 --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCCollect.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Core/Helpers/HCCollect.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCConformsToProtocol.h b/Pods/Headers/Private/OCHamcrest/HCConformsToProtocol.h new file mode 120000 index 0000000..6e95d93 --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCConformsToProtocol.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Object/HCConformsToProtocol.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCDescribedAs.h b/Pods/Headers/Private/OCHamcrest/HCDescribedAs.h new file mode 120000 index 0000000..ad78919 --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCDescribedAs.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Decorator/HCDescribedAs.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCDescription.h b/Pods/Headers/Private/OCHamcrest/HCDescription.h new file mode 120000 index 0000000..6868893 --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCDescription.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Core/HCDescription.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCDiagnosingMatcher.h b/Pods/Headers/Private/OCHamcrest/HCDiagnosingMatcher.h new file mode 120000 index 0000000..da1bd73 --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCDiagnosingMatcher.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Core/HCDiagnosingMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCDoubleReturnGetter.h b/Pods/Headers/Private/OCHamcrest/HCDoubleReturnGetter.h new file mode 120000 index 0000000..e4ed473 --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCDoubleReturnGetter.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCDoubleReturnGetter.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCEvery.h b/Pods/Headers/Private/OCHamcrest/HCEvery.h new file mode 120000 index 0000000..3ede2b1 --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCEvery.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Collection/HCEvery.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCFloatReturnGetter.h b/Pods/Headers/Private/OCHamcrest/HCFloatReturnGetter.h new file mode 120000 index 0000000..2b30151 --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCFloatReturnGetter.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCFloatReturnGetter.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCGenericTestFailureReporter.h b/Pods/Headers/Private/OCHamcrest/HCGenericTestFailureReporter.h new file mode 120000 index 0000000..4a6d8fa --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCGenericTestFailureReporter.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCGenericTestFailureReporter.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCHasCount.h b/Pods/Headers/Private/OCHamcrest/HCHasCount.h new file mode 120000 index 0000000..7adf0a9 --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCHasCount.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Collection/HCHasCount.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCHasDescription.h b/Pods/Headers/Private/OCHamcrest/HCHasDescription.h new file mode 120000 index 0000000..d017930 --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCHasDescription.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Object/HCHasDescription.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCHasProperty.h b/Pods/Headers/Private/OCHamcrest/HCHasProperty.h new file mode 120000 index 0000000..e6c98ec --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCHasProperty.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Object/HCHasProperty.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCIntReturnGetter.h b/Pods/Headers/Private/OCHamcrest/HCIntReturnGetter.h new file mode 120000 index 0000000..b2bcd40 --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCIntReturnGetter.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCIntReturnGetter.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCInvocationMatcher.h b/Pods/Headers/Private/OCHamcrest/HCInvocationMatcher.h new file mode 120000 index 0000000..5d32fdb --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCInvocationMatcher.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Core/Helpers/HCInvocationMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCIs.h b/Pods/Headers/Private/OCHamcrest/HCIs.h new file mode 120000 index 0000000..ed758d0 --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCIs.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Decorator/HCIs.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCIsAnything.h b/Pods/Headers/Private/OCHamcrest/HCIsAnything.h new file mode 120000 index 0000000..1e99ddd --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCIsAnything.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Logical/HCIsAnything.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCIsCloseTo.h b/Pods/Headers/Private/OCHamcrest/HCIsCloseTo.h new file mode 120000 index 0000000..effbb23 --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCIsCloseTo.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Number/HCIsCloseTo.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCIsCollectionContaining.h b/Pods/Headers/Private/OCHamcrest/HCIsCollectionContaining.h new file mode 120000 index 0000000..7202705 --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCIsCollectionContaining.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Collection/HCIsCollectionContaining.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCIsCollectionContainingInAnyOrder.h b/Pods/Headers/Private/OCHamcrest/HCIsCollectionContainingInAnyOrder.h new file mode 120000 index 0000000..09517dd --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCIsCollectionContainingInAnyOrder.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Collection/HCIsCollectionContainingInAnyOrder.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCIsCollectionContainingInOrder.h b/Pods/Headers/Private/OCHamcrest/HCIsCollectionContainingInOrder.h new file mode 120000 index 0000000..dd826df --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCIsCollectionContainingInOrder.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Collection/HCIsCollectionContainingInOrder.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCIsCollectionContainingInRelativeOrder.h b/Pods/Headers/Private/OCHamcrest/HCIsCollectionContainingInRelativeOrder.h new file mode 120000 index 0000000..abb3463 --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCIsCollectionContainingInRelativeOrder.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Collection/HCIsCollectionContainingInRelativeOrder.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCIsCollectionOnlyContaining.h b/Pods/Headers/Private/OCHamcrest/HCIsCollectionOnlyContaining.h new file mode 120000 index 0000000..e354127 --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCIsCollectionOnlyContaining.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Collection/HCIsCollectionOnlyContaining.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCIsDictionaryContaining.h b/Pods/Headers/Private/OCHamcrest/HCIsDictionaryContaining.h new file mode 120000 index 0000000..5e9e358 --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCIsDictionaryContaining.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Collection/HCIsDictionaryContaining.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCIsDictionaryContainingEntries.h b/Pods/Headers/Private/OCHamcrest/HCIsDictionaryContainingEntries.h new file mode 120000 index 0000000..372f4c8 --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCIsDictionaryContainingEntries.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingEntries.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCIsDictionaryContainingKey.h b/Pods/Headers/Private/OCHamcrest/HCIsDictionaryContainingKey.h new file mode 120000 index 0000000..bc923ab --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCIsDictionaryContainingKey.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingKey.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCIsDictionaryContainingValue.h b/Pods/Headers/Private/OCHamcrest/HCIsDictionaryContainingValue.h new file mode 120000 index 0000000..8c1b0ab --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCIsDictionaryContainingValue.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingValue.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCIsEmptyCollection.h b/Pods/Headers/Private/OCHamcrest/HCIsEmptyCollection.h new file mode 120000 index 0000000..8c418a8 --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCIsEmptyCollection.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Collection/HCIsEmptyCollection.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCIsEqual.h b/Pods/Headers/Private/OCHamcrest/HCIsEqual.h new file mode 120000 index 0000000..231a6d0 --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCIsEqual.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Object/HCIsEqual.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCIsEqualCompressingWhiteSpace.h b/Pods/Headers/Private/OCHamcrest/HCIsEqualCompressingWhiteSpace.h new file mode 120000 index 0000000..8445d7a --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCIsEqualCompressingWhiteSpace.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Text/HCIsEqualCompressingWhiteSpace.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCIsEqualIgnoringCase.h b/Pods/Headers/Private/OCHamcrest/HCIsEqualIgnoringCase.h new file mode 120000 index 0000000..dd50fc3 --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCIsEqualIgnoringCase.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Text/HCIsEqualIgnoringCase.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCIsEqualToNumber.h b/Pods/Headers/Private/OCHamcrest/HCIsEqualToNumber.h new file mode 120000 index 0000000..5e3de63 --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCIsEqualToNumber.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Number/HCIsEqualToNumber.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCIsIn.h b/Pods/Headers/Private/OCHamcrest/HCIsIn.h new file mode 120000 index 0000000..a1206c7 --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCIsIn.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Collection/HCIsIn.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCIsInstanceOf.h b/Pods/Headers/Private/OCHamcrest/HCIsInstanceOf.h new file mode 120000 index 0000000..30d821e --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCIsInstanceOf.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Object/HCIsInstanceOf.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCIsNil.h b/Pods/Headers/Private/OCHamcrest/HCIsNil.h new file mode 120000 index 0000000..b06661e --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCIsNil.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Object/HCIsNil.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCIsNot.h b/Pods/Headers/Private/OCHamcrest/HCIsNot.h new file mode 120000 index 0000000..fb1fc06 --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCIsNot.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Logical/HCIsNot.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCIsSame.h b/Pods/Headers/Private/OCHamcrest/HCIsSame.h new file mode 120000 index 0000000..2025675 --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCIsSame.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Object/HCIsSame.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCIsTrueFalse.h b/Pods/Headers/Private/OCHamcrest/HCIsTrueFalse.h new file mode 120000 index 0000000..fe1abd0 --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCIsTrueFalse.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Number/HCIsTrueFalse.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCIsTypeOf.h b/Pods/Headers/Private/OCHamcrest/HCIsTypeOf.h new file mode 120000 index 0000000..0b743a2 --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCIsTypeOf.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Object/HCIsTypeOf.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCLongLongReturnGetter.h b/Pods/Headers/Private/OCHamcrest/HCLongLongReturnGetter.h new file mode 120000 index 0000000..edd4d34 --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCLongLongReturnGetter.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCLongLongReturnGetter.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCLongReturnGetter.h b/Pods/Headers/Private/OCHamcrest/HCLongReturnGetter.h new file mode 120000 index 0000000..83091ca --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCLongReturnGetter.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCLongReturnGetter.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCMatcher.h b/Pods/Headers/Private/OCHamcrest/HCMatcher.h new file mode 120000 index 0000000..3634400 --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCMatcher.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Core/HCMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCNumberAssert.h b/Pods/Headers/Private/OCHamcrest/HCNumberAssert.h new file mode 120000 index 0000000..cb599f2 --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCNumberAssert.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Number/HCNumberAssert.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCObjectReturnGetter.h b/Pods/Headers/Private/OCHamcrest/HCObjectReturnGetter.h new file mode 120000 index 0000000..091ee29 --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCObjectReturnGetter.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCObjectReturnGetter.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCOrderingComparison.h b/Pods/Headers/Private/OCHamcrest/HCOrderingComparison.h new file mode 120000 index 0000000..538567e --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCOrderingComparison.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Number/HCOrderingComparison.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCRequireNonNilObject.h b/Pods/Headers/Private/OCHamcrest/HCRequireNonNilObject.h new file mode 120000 index 0000000..d57fe96 --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCRequireNonNilObject.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Core/Helpers/HCRequireNonNilObject.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCReturnTypeHandlerChain.h b/Pods/Headers/Private/OCHamcrest/HCReturnTypeHandlerChain.h new file mode 120000 index 0000000..84307b6 --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCReturnTypeHandlerChain.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCReturnTypeHandlerChain.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCReturnValueGetter.h b/Pods/Headers/Private/OCHamcrest/HCReturnValueGetter.h new file mode 120000 index 0000000..0fabb94 --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCReturnValueGetter.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCReturnValueGetter.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCRunloopRunner.h b/Pods/Headers/Private/OCHamcrest/HCRunloopRunner.h new file mode 120000 index 0000000..f911c61 --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCRunloopRunner.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Core/Helpers/HCRunloopRunner.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCSelfDescribing.h b/Pods/Headers/Private/OCHamcrest/HCSelfDescribing.h new file mode 120000 index 0000000..2786197 --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCSelfDescribing.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Core/HCSelfDescribing.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCSenTestFailureReporter.h b/Pods/Headers/Private/OCHamcrest/HCSenTestFailureReporter.h new file mode 120000 index 0000000..0a225de --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCSenTestFailureReporter.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCSenTestFailureReporter.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCShortReturnGetter.h b/Pods/Headers/Private/OCHamcrest/HCShortReturnGetter.h new file mode 120000 index 0000000..e2e3ac1 --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCShortReturnGetter.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCShortReturnGetter.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCStringContains.h b/Pods/Headers/Private/OCHamcrest/HCStringContains.h new file mode 120000 index 0000000..b0b3df7 --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCStringContains.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Text/HCStringContains.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCStringContainsInOrder.h b/Pods/Headers/Private/OCHamcrest/HCStringContainsInOrder.h new file mode 120000 index 0000000..1aee98c --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCStringContainsInOrder.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Text/HCStringContainsInOrder.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCStringDescription.h b/Pods/Headers/Private/OCHamcrest/HCStringDescription.h new file mode 120000 index 0000000..42d7171 --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCStringDescription.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Core/HCStringDescription.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCStringEndsWith.h b/Pods/Headers/Private/OCHamcrest/HCStringEndsWith.h new file mode 120000 index 0000000..829555c --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCStringEndsWith.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Text/HCStringEndsWith.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCStringStartsWith.h b/Pods/Headers/Private/OCHamcrest/HCStringStartsWith.h new file mode 120000 index 0000000..516021e --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCStringStartsWith.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Text/HCStringStartsWith.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCSubstringMatcher.h b/Pods/Headers/Private/OCHamcrest/HCSubstringMatcher.h new file mode 120000 index 0000000..ff565b0 --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCSubstringMatcher.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Text/HCSubstringMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCTestFailure.h b/Pods/Headers/Private/OCHamcrest/HCTestFailure.h new file mode 120000 index 0000000..b5bce5d --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCTestFailure.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCTestFailure.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCTestFailureReporter.h b/Pods/Headers/Private/OCHamcrest/HCTestFailureReporter.h new file mode 120000 index 0000000..288f8bc --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCTestFailureReporter.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCTestFailureReporter.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCTestFailureReporterChain.h b/Pods/Headers/Private/OCHamcrest/HCTestFailureReporterChain.h new file mode 120000 index 0000000..7f92927 --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCTestFailureReporterChain.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCTestFailureReporterChain.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCThrowsException.h b/Pods/Headers/Private/OCHamcrest/HCThrowsException.h new file mode 120000 index 0000000..12dfda8 --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCThrowsException.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Object/HCThrowsException.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCUnsignedCharReturnGetter.h b/Pods/Headers/Private/OCHamcrest/HCUnsignedCharReturnGetter.h new file mode 120000 index 0000000..7a44df7 --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCUnsignedCharReturnGetter.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedCharReturnGetter.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCUnsignedIntReturnGetter.h b/Pods/Headers/Private/OCHamcrest/HCUnsignedIntReturnGetter.h new file mode 120000 index 0000000..6cd65ab --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCUnsignedIntReturnGetter.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedIntReturnGetter.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCUnsignedLongLongReturnGetter.h b/Pods/Headers/Private/OCHamcrest/HCUnsignedLongLongReturnGetter.h new file mode 120000 index 0000000..a22ddf0 --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCUnsignedLongLongReturnGetter.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedLongLongReturnGetter.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCUnsignedLongReturnGetter.h b/Pods/Headers/Private/OCHamcrest/HCUnsignedLongReturnGetter.h new file mode 120000 index 0000000..f612e4a --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCUnsignedLongReturnGetter.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedLongReturnGetter.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCUnsignedShortReturnGetter.h b/Pods/Headers/Private/OCHamcrest/HCUnsignedShortReturnGetter.h new file mode 120000 index 0000000..d5cdb61 --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCUnsignedShortReturnGetter.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedShortReturnGetter.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCWrapInMatcher.h b/Pods/Headers/Private/OCHamcrest/HCWrapInMatcher.h new file mode 120000 index 0000000..15b751c --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCWrapInMatcher.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Core/Helpers/HCWrapInMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/HCXCTestFailureReporter.h b/Pods/Headers/Private/OCHamcrest/HCXCTestFailureReporter.h new file mode 120000 index 0000000..c590e3e --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/HCXCTestFailureReporter.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCXCTestFailureReporter.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/NSInvocation+OCHamcrest.h b/Pods/Headers/Private/OCHamcrest/NSInvocation+OCHamcrest.h new file mode 120000 index 0000000..ce6d765 --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/NSInvocation+OCHamcrest.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Core/Helpers/NSInvocation+OCHamcrest.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCHamcrest/OCHamcrest.h b/Pods/Headers/Private/OCHamcrest/OCHamcrest.h new file mode 120000 index 0000000..1933035 --- /dev/null +++ b/Pods/Headers/Private/OCHamcrest/OCHamcrest.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/OCHamcrest.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCTotallyLazy/Callables.h b/Pods/Headers/Private/OCTotallyLazy/Callables.h new file mode 120000 index 0000000..d194ba3 --- /dev/null +++ b/Pods/Headers/Private/OCTotallyLazy/Callables.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/Callables.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCTotallyLazy/Coercions.h b/Pods/Headers/Private/OCTotallyLazy/Coercions.h new file mode 120000 index 0000000..1a157d2 --- /dev/null +++ b/Pods/Headers/Private/OCTotallyLazy/Coercions.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/Coercions.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCTotallyLazy/EasyEnumerable.h b/Pods/Headers/Private/OCTotallyLazy/EasyEnumerable.h new file mode 120000 index 0000000..1e569a1 --- /dev/null +++ b/Pods/Headers/Private/OCTotallyLazy/EasyEnumerable.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/EasyEnumerable.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCTotallyLazy/EmptyEnumerator.h b/Pods/Headers/Private/OCTotallyLazy/EmptyEnumerator.h new file mode 120000 index 0000000..7a97e6d --- /dev/null +++ b/Pods/Headers/Private/OCTotallyLazy/EmptyEnumerator.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/enumerators/EmptyEnumerator.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCTotallyLazy/Enumerable.h b/Pods/Headers/Private/OCTotallyLazy/Enumerable.h new file mode 120000 index 0000000..237bf79 --- /dev/null +++ b/Pods/Headers/Private/OCTotallyLazy/Enumerable.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/Enumerable.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCTotallyLazy/EnumerateEnumerator.h b/Pods/Headers/Private/OCTotallyLazy/EnumerateEnumerator.h new file mode 120000 index 0000000..b39c735 --- /dev/null +++ b/Pods/Headers/Private/OCTotallyLazy/EnumerateEnumerator.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/enumerators/EnumerateEnumerator.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCTotallyLazy/FilterEnumerator.h b/Pods/Headers/Private/OCTotallyLazy/FilterEnumerator.h new file mode 120000 index 0000000..d310d46 --- /dev/null +++ b/Pods/Headers/Private/OCTotallyLazy/FilterEnumerator.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/enumerators/FilterEnumerator.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCTotallyLazy/FlattenEnumerator.h b/Pods/Headers/Private/OCTotallyLazy/FlattenEnumerator.h new file mode 120000 index 0000000..f27cacc --- /dev/null +++ b/Pods/Headers/Private/OCTotallyLazy/FlattenEnumerator.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/enumerators/FlattenEnumerator.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCTotallyLazy/Flattenable.h b/Pods/Headers/Private/OCTotallyLazy/Flattenable.h new file mode 120000 index 0000000..4f1b26e --- /dev/null +++ b/Pods/Headers/Private/OCTotallyLazy/Flattenable.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/Flattenable.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCTotallyLazy/Foldable.h b/Pods/Headers/Private/OCTotallyLazy/Foldable.h new file mode 120000 index 0000000..325a7c1 --- /dev/null +++ b/Pods/Headers/Private/OCTotallyLazy/Foldable.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/Foldable.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCTotallyLazy/Function1.h b/Pods/Headers/Private/OCTotallyLazy/Function1.h new file mode 120000 index 0000000..cd47dd9 --- /dev/null +++ b/Pods/Headers/Private/OCTotallyLazy/Function1.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/functions/Function1.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCTotallyLazy/Function2.h b/Pods/Headers/Private/OCTotallyLazy/Function2.h new file mode 120000 index 0000000..54fe9f4 --- /dev/null +++ b/Pods/Headers/Private/OCTotallyLazy/Function2.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/functions/Function2.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCTotallyLazy/Functions.h b/Pods/Headers/Private/OCTotallyLazy/Functions.h new file mode 120000 index 0000000..99054fe --- /dev/null +++ b/Pods/Headers/Private/OCTotallyLazy/Functions.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/functions/Functions.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCTotallyLazy/Group.h b/Pods/Headers/Private/OCTotallyLazy/Group.h new file mode 120000 index 0000000..7cee528 --- /dev/null +++ b/Pods/Headers/Private/OCTotallyLazy/Group.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/Group.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCTotallyLazy/GroupedEnumerator.h b/Pods/Headers/Private/OCTotallyLazy/GroupedEnumerator.h new file mode 120000 index 0000000..4c58e36 --- /dev/null +++ b/Pods/Headers/Private/OCTotallyLazy/GroupedEnumerator.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/enumerators/GroupedEnumerator.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCTotallyLazy/MapEnumerator.h b/Pods/Headers/Private/OCTotallyLazy/MapEnumerator.h new file mode 120000 index 0000000..e5fba8e --- /dev/null +++ b/Pods/Headers/Private/OCTotallyLazy/MapEnumerator.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/enumerators/MapEnumerator.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCTotallyLazy/Mappable.h b/Pods/Headers/Private/OCTotallyLazy/Mappable.h new file mode 120000 index 0000000..bef5e4d --- /dev/null +++ b/Pods/Headers/Private/OCTotallyLazy/Mappable.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/Mappable.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCTotallyLazy/MemoisedEnumerator.h b/Pods/Headers/Private/OCTotallyLazy/MemoisedEnumerator.h new file mode 120000 index 0000000..8d5c3ce --- /dev/null +++ b/Pods/Headers/Private/OCTotallyLazy/MemoisedEnumerator.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/enumerators/MemoisedEnumerator.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCTotallyLazy/MemoisedSequence.h b/Pods/Headers/Private/OCTotallyLazy/MemoisedSequence.h new file mode 120000 index 0000000..39b8548 --- /dev/null +++ b/Pods/Headers/Private/OCTotallyLazy/MemoisedSequence.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/MemoisedSequence.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCTotallyLazy/MergeEnumerator.h b/Pods/Headers/Private/OCTotallyLazy/MergeEnumerator.h new file mode 120000 index 0000000..992e4e2 --- /dev/null +++ b/Pods/Headers/Private/OCTotallyLazy/MergeEnumerator.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/enumerators/MergeEnumerator.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCTotallyLazy/NSArray+OCTotallyLazy.h b/Pods/Headers/Private/OCTotallyLazy/NSArray+OCTotallyLazy.h new file mode 120000 index 0000000..e2d2788 --- /dev/null +++ b/Pods/Headers/Private/OCTotallyLazy/NSArray+OCTotallyLazy.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/NSArray+OCTotallyLazy.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCTotallyLazy/NSDictionary+OCTotallyLazy.h b/Pods/Headers/Private/OCTotallyLazy/NSDictionary+OCTotallyLazy.h new file mode 120000 index 0000000..44176e4 --- /dev/null +++ b/Pods/Headers/Private/OCTotallyLazy/NSDictionary+OCTotallyLazy.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/NSDictionary+OCTotallyLazy.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCTotallyLazy/NSEnumerator+OCTotallyLazy.h b/Pods/Headers/Private/OCTotallyLazy/NSEnumerator+OCTotallyLazy.h new file mode 120000 index 0000000..6090a43 --- /dev/null +++ b/Pods/Headers/Private/OCTotallyLazy/NSEnumerator+OCTotallyLazy.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/enumerators/NSEnumerator+OCTotallyLazy.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCTotallyLazy/NSSet+OCTotallyLazy.h b/Pods/Headers/Private/OCTotallyLazy/NSSet+OCTotallyLazy.h new file mode 120000 index 0000000..187b325 --- /dev/null +++ b/Pods/Headers/Private/OCTotallyLazy/NSSet+OCTotallyLazy.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/NSSet+OCTotallyLazy.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCTotallyLazy/NoSuchElementException.h b/Pods/Headers/Private/OCTotallyLazy/NoSuchElementException.h new file mode 120000 index 0000000..a2ae174 --- /dev/null +++ b/Pods/Headers/Private/OCTotallyLazy/NoSuchElementException.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/NoSuchElementException.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCTotallyLazy/None.h b/Pods/Headers/Private/OCTotallyLazy/None.h new file mode 120000 index 0000000..163d350 --- /dev/null +++ b/Pods/Headers/Private/OCTotallyLazy/None.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/None.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCTotallyLazy/Numbers.h b/Pods/Headers/Private/OCTotallyLazy/Numbers.h new file mode 120000 index 0000000..6294e77 --- /dev/null +++ b/Pods/Headers/Private/OCTotallyLazy/Numbers.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/numbers/Numbers.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCTotallyLazy/OCTotallyLazy.h b/Pods/Headers/Private/OCTotallyLazy/OCTotallyLazy.h new file mode 120000 index 0000000..e0ec3a6 --- /dev/null +++ b/Pods/Headers/Private/OCTotallyLazy/OCTotallyLazy.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/OCTotallyLazy.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCTotallyLazy/Option.h b/Pods/Headers/Private/OCTotallyLazy/Option.h new file mode 120000 index 0000000..6f76526 --- /dev/null +++ b/Pods/Headers/Private/OCTotallyLazy/Option.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/Option.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCTotallyLazy/Pair.h b/Pods/Headers/Private/OCTotallyLazy/Pair.h new file mode 120000 index 0000000..8336366 --- /dev/null +++ b/Pods/Headers/Private/OCTotallyLazy/Pair.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/Pair.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCTotallyLazy/PairEnumerator.h b/Pods/Headers/Private/OCTotallyLazy/PairEnumerator.h new file mode 120000 index 0000000..5778b1c --- /dev/null +++ b/Pods/Headers/Private/OCTotallyLazy/PairEnumerator.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/enumerators/PairEnumerator.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCTotallyLazy/PartitionEnumerator.h b/Pods/Headers/Private/OCTotallyLazy/PartitionEnumerator.h new file mode 120000 index 0000000..32d8fa2 --- /dev/null +++ b/Pods/Headers/Private/OCTotallyLazy/PartitionEnumerator.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/enumerators/PartitionEnumerator.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCTotallyLazy/Predicates.h b/Pods/Headers/Private/OCTotallyLazy/Predicates.h new file mode 120000 index 0000000..58262db --- /dev/null +++ b/Pods/Headers/Private/OCTotallyLazy/Predicates.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/predicates/Predicates.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCTotallyLazy/Queue.h b/Pods/Headers/Private/OCTotallyLazy/Queue.h new file mode 120000 index 0000000..335f662 --- /dev/null +++ b/Pods/Headers/Private/OCTotallyLazy/Queue.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/Queue.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCTotallyLazy/Range.h b/Pods/Headers/Private/OCTotallyLazy/Range.h new file mode 120000 index 0000000..19d5e52 --- /dev/null +++ b/Pods/Headers/Private/OCTotallyLazy/Range.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/Range.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCTotallyLazy/RepeatEnumerator.h b/Pods/Headers/Private/OCTotallyLazy/RepeatEnumerator.h new file mode 120000 index 0000000..234f375 --- /dev/null +++ b/Pods/Headers/Private/OCTotallyLazy/RepeatEnumerator.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/enumerators/RepeatEnumerator.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCTotallyLazy/Sequence.h b/Pods/Headers/Private/OCTotallyLazy/Sequence.h new file mode 120000 index 0000000..a148354 --- /dev/null +++ b/Pods/Headers/Private/OCTotallyLazy/Sequence.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/Sequence.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCTotallyLazy/SingleValueEnumerator.h b/Pods/Headers/Private/OCTotallyLazy/SingleValueEnumerator.h new file mode 120000 index 0000000..3823eac --- /dev/null +++ b/Pods/Headers/Private/OCTotallyLazy/SingleValueEnumerator.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/enumerators/SingleValueEnumerator.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCTotallyLazy/Some.h b/Pods/Headers/Private/OCTotallyLazy/Some.h new file mode 120000 index 0000000..64c5c65 --- /dev/null +++ b/Pods/Headers/Private/OCTotallyLazy/Some.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/Some.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCTotallyLazy/TakeWhileEnumerator.h b/Pods/Headers/Private/OCTotallyLazy/TakeWhileEnumerator.h new file mode 120000 index 0000000..cd94d8c --- /dev/null +++ b/Pods/Headers/Private/OCTotallyLazy/TakeWhileEnumerator.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/enumerators/TakeWhileEnumerator.h \ No newline at end of file diff --git a/Pods/Headers/Private/OCTotallyLazy/Types.h b/Pods/Headers/Private/OCTotallyLazy/Types.h new file mode 120000 index 0000000..95417ce --- /dev/null +++ b/Pods/Headers/Private/OCTotallyLazy/Types.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/Types.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCHamcrest/HCAllOf.h b/Pods/Headers/Public/OCHamcrest/HCAllOf.h new file mode 120000 index 0000000..c016801 --- /dev/null +++ b/Pods/Headers/Public/OCHamcrest/HCAllOf.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Logical/HCAllOf.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCHamcrest/HCAnyOf.h b/Pods/Headers/Public/OCHamcrest/HCAnyOf.h new file mode 120000 index 0000000..53eb518 --- /dev/null +++ b/Pods/Headers/Public/OCHamcrest/HCAnyOf.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Logical/HCAnyOf.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCHamcrest/HCArgumentCaptor.h b/Pods/Headers/Public/OCHamcrest/HCArgumentCaptor.h new file mode 120000 index 0000000..9b244de --- /dev/null +++ b/Pods/Headers/Public/OCHamcrest/HCArgumentCaptor.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Object/HCArgumentCaptor.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCHamcrest/HCAssertThat.h b/Pods/Headers/Public/OCHamcrest/HCAssertThat.h new file mode 120000 index 0000000..b450f60 --- /dev/null +++ b/Pods/Headers/Public/OCHamcrest/HCAssertThat.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Core/HCAssertThat.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCHamcrest/HCBaseDescription.h b/Pods/Headers/Public/OCHamcrest/HCBaseDescription.h new file mode 120000 index 0000000..343fd50 --- /dev/null +++ b/Pods/Headers/Public/OCHamcrest/HCBaseDescription.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Core/HCBaseDescription.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCHamcrest/HCBaseMatcher.h b/Pods/Headers/Public/OCHamcrest/HCBaseMatcher.h new file mode 120000 index 0000000..ae94224 --- /dev/null +++ b/Pods/Headers/Public/OCHamcrest/HCBaseMatcher.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Core/HCBaseMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCHamcrest/HCClassMatcher.h b/Pods/Headers/Public/OCHamcrest/HCClassMatcher.h new file mode 120000 index 0000000..f82a664 --- /dev/null +++ b/Pods/Headers/Public/OCHamcrest/HCClassMatcher.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Object/HCClassMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCHamcrest/HCCollect.h b/Pods/Headers/Public/OCHamcrest/HCCollect.h new file mode 120000 index 0000000..cf0d4c5 --- /dev/null +++ b/Pods/Headers/Public/OCHamcrest/HCCollect.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Core/Helpers/HCCollect.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCHamcrest/HCConformsToProtocol.h b/Pods/Headers/Public/OCHamcrest/HCConformsToProtocol.h new file mode 120000 index 0000000..6e95d93 --- /dev/null +++ b/Pods/Headers/Public/OCHamcrest/HCConformsToProtocol.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Object/HCConformsToProtocol.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCHamcrest/HCDescribedAs.h b/Pods/Headers/Public/OCHamcrest/HCDescribedAs.h new file mode 120000 index 0000000..ad78919 --- /dev/null +++ b/Pods/Headers/Public/OCHamcrest/HCDescribedAs.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Decorator/HCDescribedAs.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCHamcrest/HCDescription.h b/Pods/Headers/Public/OCHamcrest/HCDescription.h new file mode 120000 index 0000000..6868893 --- /dev/null +++ b/Pods/Headers/Public/OCHamcrest/HCDescription.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Core/HCDescription.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCHamcrest/HCDiagnosingMatcher.h b/Pods/Headers/Public/OCHamcrest/HCDiagnosingMatcher.h new file mode 120000 index 0000000..da1bd73 --- /dev/null +++ b/Pods/Headers/Public/OCHamcrest/HCDiagnosingMatcher.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Core/HCDiagnosingMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCHamcrest/HCEvery.h b/Pods/Headers/Public/OCHamcrest/HCEvery.h new file mode 120000 index 0000000..3ede2b1 --- /dev/null +++ b/Pods/Headers/Public/OCHamcrest/HCEvery.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Collection/HCEvery.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCHamcrest/HCHasCount.h b/Pods/Headers/Public/OCHamcrest/HCHasCount.h new file mode 120000 index 0000000..7adf0a9 --- /dev/null +++ b/Pods/Headers/Public/OCHamcrest/HCHasCount.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Collection/HCHasCount.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCHamcrest/HCHasDescription.h b/Pods/Headers/Public/OCHamcrest/HCHasDescription.h new file mode 120000 index 0000000..d017930 --- /dev/null +++ b/Pods/Headers/Public/OCHamcrest/HCHasDescription.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Object/HCHasDescription.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCHamcrest/HCHasProperty.h b/Pods/Headers/Public/OCHamcrest/HCHasProperty.h new file mode 120000 index 0000000..e6c98ec --- /dev/null +++ b/Pods/Headers/Public/OCHamcrest/HCHasProperty.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Object/HCHasProperty.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCHamcrest/HCInvocationMatcher.h b/Pods/Headers/Public/OCHamcrest/HCInvocationMatcher.h new file mode 120000 index 0000000..5d32fdb --- /dev/null +++ b/Pods/Headers/Public/OCHamcrest/HCInvocationMatcher.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Core/Helpers/HCInvocationMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCHamcrest/HCIs.h b/Pods/Headers/Public/OCHamcrest/HCIs.h new file mode 120000 index 0000000..ed758d0 --- /dev/null +++ b/Pods/Headers/Public/OCHamcrest/HCIs.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Decorator/HCIs.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCHamcrest/HCIsAnything.h b/Pods/Headers/Public/OCHamcrest/HCIsAnything.h new file mode 120000 index 0000000..1e99ddd --- /dev/null +++ b/Pods/Headers/Public/OCHamcrest/HCIsAnything.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Logical/HCIsAnything.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCHamcrest/HCIsCloseTo.h b/Pods/Headers/Public/OCHamcrest/HCIsCloseTo.h new file mode 120000 index 0000000..effbb23 --- /dev/null +++ b/Pods/Headers/Public/OCHamcrest/HCIsCloseTo.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Number/HCIsCloseTo.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCHamcrest/HCIsCollectionContaining.h b/Pods/Headers/Public/OCHamcrest/HCIsCollectionContaining.h new file mode 120000 index 0000000..7202705 --- /dev/null +++ b/Pods/Headers/Public/OCHamcrest/HCIsCollectionContaining.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Collection/HCIsCollectionContaining.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCHamcrest/HCIsCollectionContainingInAnyOrder.h b/Pods/Headers/Public/OCHamcrest/HCIsCollectionContainingInAnyOrder.h new file mode 120000 index 0000000..09517dd --- /dev/null +++ b/Pods/Headers/Public/OCHamcrest/HCIsCollectionContainingInAnyOrder.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Collection/HCIsCollectionContainingInAnyOrder.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCHamcrest/HCIsCollectionContainingInOrder.h b/Pods/Headers/Public/OCHamcrest/HCIsCollectionContainingInOrder.h new file mode 120000 index 0000000..dd826df --- /dev/null +++ b/Pods/Headers/Public/OCHamcrest/HCIsCollectionContainingInOrder.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Collection/HCIsCollectionContainingInOrder.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCHamcrest/HCIsCollectionContainingInRelativeOrder.h b/Pods/Headers/Public/OCHamcrest/HCIsCollectionContainingInRelativeOrder.h new file mode 120000 index 0000000..abb3463 --- /dev/null +++ b/Pods/Headers/Public/OCHamcrest/HCIsCollectionContainingInRelativeOrder.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Collection/HCIsCollectionContainingInRelativeOrder.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCHamcrest/HCIsCollectionOnlyContaining.h b/Pods/Headers/Public/OCHamcrest/HCIsCollectionOnlyContaining.h new file mode 120000 index 0000000..e354127 --- /dev/null +++ b/Pods/Headers/Public/OCHamcrest/HCIsCollectionOnlyContaining.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Collection/HCIsCollectionOnlyContaining.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCHamcrest/HCIsDictionaryContaining.h b/Pods/Headers/Public/OCHamcrest/HCIsDictionaryContaining.h new file mode 120000 index 0000000..5e9e358 --- /dev/null +++ b/Pods/Headers/Public/OCHamcrest/HCIsDictionaryContaining.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Collection/HCIsDictionaryContaining.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCHamcrest/HCIsDictionaryContainingEntries.h b/Pods/Headers/Public/OCHamcrest/HCIsDictionaryContainingEntries.h new file mode 120000 index 0000000..372f4c8 --- /dev/null +++ b/Pods/Headers/Public/OCHamcrest/HCIsDictionaryContainingEntries.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingEntries.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCHamcrest/HCIsDictionaryContainingKey.h b/Pods/Headers/Public/OCHamcrest/HCIsDictionaryContainingKey.h new file mode 120000 index 0000000..bc923ab --- /dev/null +++ b/Pods/Headers/Public/OCHamcrest/HCIsDictionaryContainingKey.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingKey.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCHamcrest/HCIsDictionaryContainingValue.h b/Pods/Headers/Public/OCHamcrest/HCIsDictionaryContainingValue.h new file mode 120000 index 0000000..8c1b0ab --- /dev/null +++ b/Pods/Headers/Public/OCHamcrest/HCIsDictionaryContainingValue.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingValue.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCHamcrest/HCIsEmptyCollection.h b/Pods/Headers/Public/OCHamcrest/HCIsEmptyCollection.h new file mode 120000 index 0000000..8c418a8 --- /dev/null +++ b/Pods/Headers/Public/OCHamcrest/HCIsEmptyCollection.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Collection/HCIsEmptyCollection.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCHamcrest/HCIsEqual.h b/Pods/Headers/Public/OCHamcrest/HCIsEqual.h new file mode 120000 index 0000000..231a6d0 --- /dev/null +++ b/Pods/Headers/Public/OCHamcrest/HCIsEqual.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Object/HCIsEqual.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCHamcrest/HCIsEqualCompressingWhiteSpace.h b/Pods/Headers/Public/OCHamcrest/HCIsEqualCompressingWhiteSpace.h new file mode 120000 index 0000000..8445d7a --- /dev/null +++ b/Pods/Headers/Public/OCHamcrest/HCIsEqualCompressingWhiteSpace.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Text/HCIsEqualCompressingWhiteSpace.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCHamcrest/HCIsEqualIgnoringCase.h b/Pods/Headers/Public/OCHamcrest/HCIsEqualIgnoringCase.h new file mode 120000 index 0000000..dd50fc3 --- /dev/null +++ b/Pods/Headers/Public/OCHamcrest/HCIsEqualIgnoringCase.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Text/HCIsEqualIgnoringCase.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCHamcrest/HCIsEqualToNumber.h b/Pods/Headers/Public/OCHamcrest/HCIsEqualToNumber.h new file mode 120000 index 0000000..5e3de63 --- /dev/null +++ b/Pods/Headers/Public/OCHamcrest/HCIsEqualToNumber.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Number/HCIsEqualToNumber.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCHamcrest/HCIsIn.h b/Pods/Headers/Public/OCHamcrest/HCIsIn.h new file mode 120000 index 0000000..a1206c7 --- /dev/null +++ b/Pods/Headers/Public/OCHamcrest/HCIsIn.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Collection/HCIsIn.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCHamcrest/HCIsInstanceOf.h b/Pods/Headers/Public/OCHamcrest/HCIsInstanceOf.h new file mode 120000 index 0000000..30d821e --- /dev/null +++ b/Pods/Headers/Public/OCHamcrest/HCIsInstanceOf.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Object/HCIsInstanceOf.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCHamcrest/HCIsNil.h b/Pods/Headers/Public/OCHamcrest/HCIsNil.h new file mode 120000 index 0000000..b06661e --- /dev/null +++ b/Pods/Headers/Public/OCHamcrest/HCIsNil.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Object/HCIsNil.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCHamcrest/HCIsNot.h b/Pods/Headers/Public/OCHamcrest/HCIsNot.h new file mode 120000 index 0000000..fb1fc06 --- /dev/null +++ b/Pods/Headers/Public/OCHamcrest/HCIsNot.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Logical/HCIsNot.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCHamcrest/HCIsSame.h b/Pods/Headers/Public/OCHamcrest/HCIsSame.h new file mode 120000 index 0000000..2025675 --- /dev/null +++ b/Pods/Headers/Public/OCHamcrest/HCIsSame.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Object/HCIsSame.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCHamcrest/HCIsTrueFalse.h b/Pods/Headers/Public/OCHamcrest/HCIsTrueFalse.h new file mode 120000 index 0000000..fe1abd0 --- /dev/null +++ b/Pods/Headers/Public/OCHamcrest/HCIsTrueFalse.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Number/HCIsTrueFalse.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCHamcrest/HCIsTypeOf.h b/Pods/Headers/Public/OCHamcrest/HCIsTypeOf.h new file mode 120000 index 0000000..0b743a2 --- /dev/null +++ b/Pods/Headers/Public/OCHamcrest/HCIsTypeOf.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Object/HCIsTypeOf.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCHamcrest/HCMatcher.h b/Pods/Headers/Public/OCHamcrest/HCMatcher.h new file mode 120000 index 0000000..3634400 --- /dev/null +++ b/Pods/Headers/Public/OCHamcrest/HCMatcher.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Core/HCMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCHamcrest/HCNumberAssert.h b/Pods/Headers/Public/OCHamcrest/HCNumberAssert.h new file mode 120000 index 0000000..cb599f2 --- /dev/null +++ b/Pods/Headers/Public/OCHamcrest/HCNumberAssert.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Number/HCNumberAssert.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCHamcrest/HCOrderingComparison.h b/Pods/Headers/Public/OCHamcrest/HCOrderingComparison.h new file mode 120000 index 0000000..538567e --- /dev/null +++ b/Pods/Headers/Public/OCHamcrest/HCOrderingComparison.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Number/HCOrderingComparison.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCHamcrest/HCRequireNonNilObject.h b/Pods/Headers/Public/OCHamcrest/HCRequireNonNilObject.h new file mode 120000 index 0000000..d57fe96 --- /dev/null +++ b/Pods/Headers/Public/OCHamcrest/HCRequireNonNilObject.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Core/Helpers/HCRequireNonNilObject.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCHamcrest/HCSelfDescribing.h b/Pods/Headers/Public/OCHamcrest/HCSelfDescribing.h new file mode 120000 index 0000000..2786197 --- /dev/null +++ b/Pods/Headers/Public/OCHamcrest/HCSelfDescribing.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Core/HCSelfDescribing.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCHamcrest/HCStringContains.h b/Pods/Headers/Public/OCHamcrest/HCStringContains.h new file mode 120000 index 0000000..b0b3df7 --- /dev/null +++ b/Pods/Headers/Public/OCHamcrest/HCStringContains.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Text/HCStringContains.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCHamcrest/HCStringContainsInOrder.h b/Pods/Headers/Public/OCHamcrest/HCStringContainsInOrder.h new file mode 120000 index 0000000..1aee98c --- /dev/null +++ b/Pods/Headers/Public/OCHamcrest/HCStringContainsInOrder.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Text/HCStringContainsInOrder.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCHamcrest/HCStringDescription.h b/Pods/Headers/Public/OCHamcrest/HCStringDescription.h new file mode 120000 index 0000000..42d7171 --- /dev/null +++ b/Pods/Headers/Public/OCHamcrest/HCStringDescription.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Core/HCStringDescription.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCHamcrest/HCStringEndsWith.h b/Pods/Headers/Public/OCHamcrest/HCStringEndsWith.h new file mode 120000 index 0000000..829555c --- /dev/null +++ b/Pods/Headers/Public/OCHamcrest/HCStringEndsWith.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Text/HCStringEndsWith.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCHamcrest/HCStringStartsWith.h b/Pods/Headers/Public/OCHamcrest/HCStringStartsWith.h new file mode 120000 index 0000000..516021e --- /dev/null +++ b/Pods/Headers/Public/OCHamcrest/HCStringStartsWith.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Text/HCStringStartsWith.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCHamcrest/HCSubstringMatcher.h b/Pods/Headers/Public/OCHamcrest/HCSubstringMatcher.h new file mode 120000 index 0000000..ff565b0 --- /dev/null +++ b/Pods/Headers/Public/OCHamcrest/HCSubstringMatcher.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Text/HCSubstringMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCHamcrest/HCTestFailure.h b/Pods/Headers/Public/OCHamcrest/HCTestFailure.h new file mode 120000 index 0000000..b5bce5d --- /dev/null +++ b/Pods/Headers/Public/OCHamcrest/HCTestFailure.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCTestFailure.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCHamcrest/HCTestFailureReporter.h b/Pods/Headers/Public/OCHamcrest/HCTestFailureReporter.h new file mode 120000 index 0000000..288f8bc --- /dev/null +++ b/Pods/Headers/Public/OCHamcrest/HCTestFailureReporter.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCTestFailureReporter.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCHamcrest/HCTestFailureReporterChain.h b/Pods/Headers/Public/OCHamcrest/HCTestFailureReporterChain.h new file mode 120000 index 0000000..7f92927 --- /dev/null +++ b/Pods/Headers/Public/OCHamcrest/HCTestFailureReporterChain.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCTestFailureReporterChain.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCHamcrest/HCThrowsException.h b/Pods/Headers/Public/OCHamcrest/HCThrowsException.h new file mode 120000 index 0000000..12dfda8 --- /dev/null +++ b/Pods/Headers/Public/OCHamcrest/HCThrowsException.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Library/Object/HCThrowsException.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCHamcrest/HCWrapInMatcher.h b/Pods/Headers/Public/OCHamcrest/HCWrapInMatcher.h new file mode 120000 index 0000000..15b751c --- /dev/null +++ b/Pods/Headers/Public/OCHamcrest/HCWrapInMatcher.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/Core/Helpers/HCWrapInMatcher.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCHamcrest/OCHamcrest.h b/Pods/Headers/Public/OCHamcrest/OCHamcrest.h new file mode 120000 index 0000000..1933035 --- /dev/null +++ b/Pods/Headers/Public/OCHamcrest/OCHamcrest.h @@ -0,0 +1 @@ +../../../OCHamcrest/Source/OCHamcrest.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCTotallyLazy/Callables.h b/Pods/Headers/Public/OCTotallyLazy/Callables.h new file mode 120000 index 0000000..d194ba3 --- /dev/null +++ b/Pods/Headers/Public/OCTotallyLazy/Callables.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/Callables.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCTotallyLazy/Coercions.h b/Pods/Headers/Public/OCTotallyLazy/Coercions.h new file mode 120000 index 0000000..1a157d2 --- /dev/null +++ b/Pods/Headers/Public/OCTotallyLazy/Coercions.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/Coercions.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCTotallyLazy/EasyEnumerable.h b/Pods/Headers/Public/OCTotallyLazy/EasyEnumerable.h new file mode 120000 index 0000000..1e569a1 --- /dev/null +++ b/Pods/Headers/Public/OCTotallyLazy/EasyEnumerable.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/EasyEnumerable.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCTotallyLazy/EmptyEnumerator.h b/Pods/Headers/Public/OCTotallyLazy/EmptyEnumerator.h new file mode 120000 index 0000000..7a97e6d --- /dev/null +++ b/Pods/Headers/Public/OCTotallyLazy/EmptyEnumerator.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/enumerators/EmptyEnumerator.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCTotallyLazy/Enumerable.h b/Pods/Headers/Public/OCTotallyLazy/Enumerable.h new file mode 120000 index 0000000..237bf79 --- /dev/null +++ b/Pods/Headers/Public/OCTotallyLazy/Enumerable.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/Enumerable.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCTotallyLazy/EnumerateEnumerator.h b/Pods/Headers/Public/OCTotallyLazy/EnumerateEnumerator.h new file mode 120000 index 0000000..b39c735 --- /dev/null +++ b/Pods/Headers/Public/OCTotallyLazy/EnumerateEnumerator.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/enumerators/EnumerateEnumerator.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCTotallyLazy/FilterEnumerator.h b/Pods/Headers/Public/OCTotallyLazy/FilterEnumerator.h new file mode 120000 index 0000000..d310d46 --- /dev/null +++ b/Pods/Headers/Public/OCTotallyLazy/FilterEnumerator.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/enumerators/FilterEnumerator.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCTotallyLazy/FlattenEnumerator.h b/Pods/Headers/Public/OCTotallyLazy/FlattenEnumerator.h new file mode 120000 index 0000000..f27cacc --- /dev/null +++ b/Pods/Headers/Public/OCTotallyLazy/FlattenEnumerator.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/enumerators/FlattenEnumerator.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCTotallyLazy/Flattenable.h b/Pods/Headers/Public/OCTotallyLazy/Flattenable.h new file mode 120000 index 0000000..4f1b26e --- /dev/null +++ b/Pods/Headers/Public/OCTotallyLazy/Flattenable.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/Flattenable.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCTotallyLazy/Foldable.h b/Pods/Headers/Public/OCTotallyLazy/Foldable.h new file mode 120000 index 0000000..325a7c1 --- /dev/null +++ b/Pods/Headers/Public/OCTotallyLazy/Foldable.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/Foldable.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCTotallyLazy/Function1.h b/Pods/Headers/Public/OCTotallyLazy/Function1.h new file mode 120000 index 0000000..cd47dd9 --- /dev/null +++ b/Pods/Headers/Public/OCTotallyLazy/Function1.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/functions/Function1.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCTotallyLazy/Function2.h b/Pods/Headers/Public/OCTotallyLazy/Function2.h new file mode 120000 index 0000000..54fe9f4 --- /dev/null +++ b/Pods/Headers/Public/OCTotallyLazy/Function2.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/functions/Function2.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCTotallyLazy/Functions.h b/Pods/Headers/Public/OCTotallyLazy/Functions.h new file mode 120000 index 0000000..99054fe --- /dev/null +++ b/Pods/Headers/Public/OCTotallyLazy/Functions.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/functions/Functions.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCTotallyLazy/Group.h b/Pods/Headers/Public/OCTotallyLazy/Group.h new file mode 120000 index 0000000..7cee528 --- /dev/null +++ b/Pods/Headers/Public/OCTotallyLazy/Group.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/Group.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCTotallyLazy/GroupedEnumerator.h b/Pods/Headers/Public/OCTotallyLazy/GroupedEnumerator.h new file mode 120000 index 0000000..4c58e36 --- /dev/null +++ b/Pods/Headers/Public/OCTotallyLazy/GroupedEnumerator.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/enumerators/GroupedEnumerator.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCTotallyLazy/MapEnumerator.h b/Pods/Headers/Public/OCTotallyLazy/MapEnumerator.h new file mode 120000 index 0000000..e5fba8e --- /dev/null +++ b/Pods/Headers/Public/OCTotallyLazy/MapEnumerator.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/enumerators/MapEnumerator.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCTotallyLazy/Mappable.h b/Pods/Headers/Public/OCTotallyLazy/Mappable.h new file mode 120000 index 0000000..bef5e4d --- /dev/null +++ b/Pods/Headers/Public/OCTotallyLazy/Mappable.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/Mappable.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCTotallyLazy/MemoisedEnumerator.h b/Pods/Headers/Public/OCTotallyLazy/MemoisedEnumerator.h new file mode 120000 index 0000000..8d5c3ce --- /dev/null +++ b/Pods/Headers/Public/OCTotallyLazy/MemoisedEnumerator.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/enumerators/MemoisedEnumerator.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCTotallyLazy/MemoisedSequence.h b/Pods/Headers/Public/OCTotallyLazy/MemoisedSequence.h new file mode 120000 index 0000000..39b8548 --- /dev/null +++ b/Pods/Headers/Public/OCTotallyLazy/MemoisedSequence.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/MemoisedSequence.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCTotallyLazy/MergeEnumerator.h b/Pods/Headers/Public/OCTotallyLazy/MergeEnumerator.h new file mode 120000 index 0000000..992e4e2 --- /dev/null +++ b/Pods/Headers/Public/OCTotallyLazy/MergeEnumerator.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/enumerators/MergeEnumerator.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCTotallyLazy/NSArray+OCTotallyLazy.h b/Pods/Headers/Public/OCTotallyLazy/NSArray+OCTotallyLazy.h new file mode 120000 index 0000000..e2d2788 --- /dev/null +++ b/Pods/Headers/Public/OCTotallyLazy/NSArray+OCTotallyLazy.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/NSArray+OCTotallyLazy.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCTotallyLazy/NSDictionary+OCTotallyLazy.h b/Pods/Headers/Public/OCTotallyLazy/NSDictionary+OCTotallyLazy.h new file mode 120000 index 0000000..44176e4 --- /dev/null +++ b/Pods/Headers/Public/OCTotallyLazy/NSDictionary+OCTotallyLazy.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/NSDictionary+OCTotallyLazy.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCTotallyLazy/NSEnumerator+OCTotallyLazy.h b/Pods/Headers/Public/OCTotallyLazy/NSEnumerator+OCTotallyLazy.h new file mode 120000 index 0000000..6090a43 --- /dev/null +++ b/Pods/Headers/Public/OCTotallyLazy/NSEnumerator+OCTotallyLazy.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/enumerators/NSEnumerator+OCTotallyLazy.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCTotallyLazy/NSSet+OCTotallyLazy.h b/Pods/Headers/Public/OCTotallyLazy/NSSet+OCTotallyLazy.h new file mode 120000 index 0000000..187b325 --- /dev/null +++ b/Pods/Headers/Public/OCTotallyLazy/NSSet+OCTotallyLazy.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/NSSet+OCTotallyLazy.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCTotallyLazy/NoSuchElementException.h b/Pods/Headers/Public/OCTotallyLazy/NoSuchElementException.h new file mode 120000 index 0000000..a2ae174 --- /dev/null +++ b/Pods/Headers/Public/OCTotallyLazy/NoSuchElementException.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/NoSuchElementException.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCTotallyLazy/None.h b/Pods/Headers/Public/OCTotallyLazy/None.h new file mode 120000 index 0000000..163d350 --- /dev/null +++ b/Pods/Headers/Public/OCTotallyLazy/None.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/None.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCTotallyLazy/Numbers.h b/Pods/Headers/Public/OCTotallyLazy/Numbers.h new file mode 120000 index 0000000..6294e77 --- /dev/null +++ b/Pods/Headers/Public/OCTotallyLazy/Numbers.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/numbers/Numbers.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCTotallyLazy/OCTotallyLazy.h b/Pods/Headers/Public/OCTotallyLazy/OCTotallyLazy.h new file mode 120000 index 0000000..e0ec3a6 --- /dev/null +++ b/Pods/Headers/Public/OCTotallyLazy/OCTotallyLazy.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/OCTotallyLazy.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCTotallyLazy/Option.h b/Pods/Headers/Public/OCTotallyLazy/Option.h new file mode 120000 index 0000000..6f76526 --- /dev/null +++ b/Pods/Headers/Public/OCTotallyLazy/Option.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/Option.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCTotallyLazy/Pair.h b/Pods/Headers/Public/OCTotallyLazy/Pair.h new file mode 120000 index 0000000..8336366 --- /dev/null +++ b/Pods/Headers/Public/OCTotallyLazy/Pair.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/Pair.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCTotallyLazy/PairEnumerator.h b/Pods/Headers/Public/OCTotallyLazy/PairEnumerator.h new file mode 120000 index 0000000..5778b1c --- /dev/null +++ b/Pods/Headers/Public/OCTotallyLazy/PairEnumerator.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/enumerators/PairEnumerator.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCTotallyLazy/PartitionEnumerator.h b/Pods/Headers/Public/OCTotallyLazy/PartitionEnumerator.h new file mode 120000 index 0000000..32d8fa2 --- /dev/null +++ b/Pods/Headers/Public/OCTotallyLazy/PartitionEnumerator.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/enumerators/PartitionEnumerator.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCTotallyLazy/Predicates.h b/Pods/Headers/Public/OCTotallyLazy/Predicates.h new file mode 120000 index 0000000..58262db --- /dev/null +++ b/Pods/Headers/Public/OCTotallyLazy/Predicates.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/predicates/Predicates.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCTotallyLazy/Queue.h b/Pods/Headers/Public/OCTotallyLazy/Queue.h new file mode 120000 index 0000000..335f662 --- /dev/null +++ b/Pods/Headers/Public/OCTotallyLazy/Queue.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/Queue.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCTotallyLazy/Range.h b/Pods/Headers/Public/OCTotallyLazy/Range.h new file mode 120000 index 0000000..19d5e52 --- /dev/null +++ b/Pods/Headers/Public/OCTotallyLazy/Range.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/Range.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCTotallyLazy/RepeatEnumerator.h b/Pods/Headers/Public/OCTotallyLazy/RepeatEnumerator.h new file mode 120000 index 0000000..234f375 --- /dev/null +++ b/Pods/Headers/Public/OCTotallyLazy/RepeatEnumerator.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/enumerators/RepeatEnumerator.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCTotallyLazy/Sequence.h b/Pods/Headers/Public/OCTotallyLazy/Sequence.h new file mode 120000 index 0000000..a148354 --- /dev/null +++ b/Pods/Headers/Public/OCTotallyLazy/Sequence.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/Sequence.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCTotallyLazy/SingleValueEnumerator.h b/Pods/Headers/Public/OCTotallyLazy/SingleValueEnumerator.h new file mode 120000 index 0000000..3823eac --- /dev/null +++ b/Pods/Headers/Public/OCTotallyLazy/SingleValueEnumerator.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/enumerators/SingleValueEnumerator.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCTotallyLazy/Some.h b/Pods/Headers/Public/OCTotallyLazy/Some.h new file mode 120000 index 0000000..64c5c65 --- /dev/null +++ b/Pods/Headers/Public/OCTotallyLazy/Some.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/Some.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCTotallyLazy/TakeWhileEnumerator.h b/Pods/Headers/Public/OCTotallyLazy/TakeWhileEnumerator.h new file mode 120000 index 0000000..cd94d8c --- /dev/null +++ b/Pods/Headers/Public/OCTotallyLazy/TakeWhileEnumerator.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/enumerators/TakeWhileEnumerator.h \ No newline at end of file diff --git a/Pods/Headers/Public/OCTotallyLazy/Types.h b/Pods/Headers/Public/OCTotallyLazy/Types.h new file mode 120000 index 0000000..95417ce --- /dev/null +++ b/Pods/Headers/Public/OCTotallyLazy/Types.h @@ -0,0 +1 @@ +../../../OCTotallyLazy/src/main/Types.h \ No newline at end of file diff --git a/Pods/Manifest.lock b/Pods/Manifest.lock new file mode 100644 index 0000000..bdd884d --- /dev/null +++ b/Pods/Manifest.lock @@ -0,0 +1,15 @@ +PODS: + - OCHamcrest (7.0.2) + - OCTotallyLazy (1.1.0) + +DEPENDENCIES: + - OCHamcrest (~> 7.0) + - OCTotallyLazy + +SPEC CHECKSUMS: + OCHamcrest: 706bfbf69a3df55a873bad096014e80e2e8ca93c + OCTotallyLazy: c8838ee6491e4b3ca3fe83ac6211249ab2108101 + +PODFILE CHECKSUM: beab84ae348e3440daeb31c061813c000303612f + +COCOAPODS: 1.2.1 diff --git a/Pods/OCHamcrest/LICENSE.txt b/Pods/OCHamcrest/LICENSE.txt new file mode 100644 index 0000000..7bd4000 --- /dev/null +++ b/Pods/OCHamcrest/LICENSE.txt @@ -0,0 +1,13 @@ +OCHamcrest by Jon Reid, https://qualitycoding.org/ +Copyright 2017 hamcrest.org +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 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. + +Neither the name of Hamcrest nor the names of its 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 OWNER 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. + +(BSD License) diff --git a/Pods/OCHamcrest/README.md b/Pods/OCHamcrest/README.md new file mode 100644 index 0000000..cb9f194 --- /dev/null +++ b/Pods/OCHamcrest/README.md @@ -0,0 +1,245 @@ +![ochamcrest](http://hamcrest.org/images/logo.jpg) + +What is OCHamcrest? +------------------- + +[![Build Status](https://travis-ci.org/hamcrest/OCHamcrest.svg?branch=master)](https://travis-ci.org/hamcrest/OCHamcrest) +[![Coverage Status](https://coveralls.io/repos/hamcrest/OCHamcrest/badge.svg?branch=master)](https://coveralls.io/r/hamcrest/OCHamcrest?branch=master) +[![Cocoapods Version](https://cocoapod-badges.herokuapp.com/v/OCHamcrest/badge.png)](https://cocoapods.org/pods/OCHamcrest) +[![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage) + + +OCHamcrest is an Objective-C library providing: + +* a library of "matcher" objects for declaring rules to check whether a given object matches those + rules. +* a framework for writing your own matchers. + +Matchers are useful for a variety of purposes, such as UI validation. But they're most commonly used +for writing unit tests that are expressive and flexible. + + +My first OCHamcrest test +------------------------ + +We'll start by writing a very simple Xcode unit test, but instead of using XCTest's +`XCTAssertEqualObjects` function, we'll use OCHamcrest's `assertThat` construct and a predefined +matcher: + +```obj-c +@import XCTest; +#import + +@interface BiscuitTest : XCTestCase +@end + +@implementation BiscuitTest + +- (void)testEquals +{ + Biscuit* theBiscuit = [[Biscuit alloc] initWithName:@"Ginger"]; + Biscuit* myBiscuit = [[Biscuit alloc] initWithName:@"Ginger"]; + assertThat(theBiscuit, equalTo(myBiscuit)); +} + +@end +``` + +The `assertThat` function is a stylized sentence for making a test assertion. In this example, the +subject of the assertion is the object `theBiscuit`, which is the first method parameter. The second +method parameter is a matcher for `Biscuit` objects, here a matcher that checks one object is equal +to another using the `-isEqual:` method. The test passes since the `Biscuit` class defines an +`-isEqual:` method. + +OCHamcrest's functions are actually declared with an "HC_" package prefix (such as `HC_assertThat` +and `HC_equalTo`) to avoid name clashes. To make test writing faster and test code more legible, +optional short syntax is provided by default. For example, instead of writing `HC_assertThat`, +simply write `assertThat`. + + +Predefined matchers +------------------- + +OCHamcrest comes with a library of useful matchers: + +* Object + + * `conformsTo` - match object that conforms to protocol + * `equalTo` - match equal object + * `hasDescription` - match object's `-description` + * `hasProperty` - match return value of method with given name + * `instanceOf` - match object type + * `isA` - match object type precisely, no subclasses + * `nilValue`, `notNilValue` - match `nil`, or not `nil` + * `sameInstance` - match same object + * `throwsException` - match block that throws an exception + * HCArgumentCaptor - match anything, capturing all values + +* Number + + * `closeTo` - match number close to a given value + * `greaterThan`, `greaterThanOrEqualTo`, `lessThan`, + `lessThanOrEqualTo` - match numeric ordering + * `isFalse` - match zero + * `isTrue` - match non-zero + +* Text + + * `containsSubstring` - match part of a string + * `endsWith` - match the end of a string + * `equalToIgnoringCase` - match the complete string but ignore case + * `equalToIgnoringWhitespace` - match the complete string but ignore extra + whitespace + * `startsWith` - match the beginning of a string + * `stringContainsInOrder`, `stringContainsInOrderIn` - match parts of a string, in relative order + +* Logical + + * `allOf`, `allOfIn` - "and" together all matchers + * `anyOf`, `anyOfIn` - "or" together all matchers + * `anything` - match anything (useful in composite matchers when you don't + care about a particular value) + * `isNot` - negate the matcher + +* Collection + + * `contains`, `containsIn` - exactly match the entire collection + * `containsInAnyOrder`, `containsInAnyOrderIn` - match the entire collection, but in any order + * `containsInRelativeOrder`, `containsInRelativeOrderIn` - match collection containing items in relative order + * `everyItem` - match if every item in a collection satisfies a given matcher + * `hasCount` - match number of elements against another matcher + * `hasCountOf` - match collection with given number of elements + * `hasEntries` - match dictionary with key-value pairs in a dictionary + * `hasEntriesIn` - match dictionary with key-value pairs in a list + * `hasEntry` - match dictionary containing a key-value pair + * `hasItem` - match if given item appears in the collection + * `hasItems`, `hasItemsIn` - match if all given items appear in the collection, in any order + * `hasKey` - match dictionary with a key + * `hasValue` - match dictionary with a value + * `isEmpty` - match empty collection + * `isIn` - match when object is in given collection + * `onlyContains`, `onlyContainsIn` - match if collection's items appear in given list + +* Decorator + + * `describedAs` - give the matcher a custom failure description + * `is` - decorator to improve readability - see "Syntactic sugar" below + +The arguments for many of these matchers accept not just a matching value, but +another matcher, so matchers can be composed for greater flexibility. For +example, `only_contains(endsWith(@"."))` will match any collection where every +item is a string ending with period. + + +Syntactic sugar +--------------- + +OCHamcrest strives to make your tests as readable as possible. For example, the `is` matcher is a +wrapper that doesn't add any extra behavior to the underlying matcher. The following assertions are +all equivalent: + +```obj-c +assertThat(theBiscuit, equalTo(myBiscuit)); +assertThat(theBiscuit, is(equalTo(myBiscuit))); +assertThat(theBiscuit, is(myBiscuit)); +``` + +The last form is allowed since `is` wraps non-matcher arguments with `equalTo`. Other matchers that +take matchers as arguments provide similar shortcuts, wrapping non-matcher arguments in `equalTo`. + + +How can I assert on an asynchronous call? +----------------------------------------- + +`assertWithTimeout` will keep evaluating an expression until the matcher is satisfied or a timeout +is reached. For example, + +```obj-c +assertWithTimeout(5, thatEventually(self.someString), is(@"expected")); +``` + +This repeatedly checks for this string to evaluate to "expected" before timing out after 5 seconds. +`thatEventually` is a convenience macro to create a block. + + +Writing custom matchers +----------------------- + +OCHamcrest comes bundled with lots of useful matchers, but you'll probably find that you need to +create your own from time to time to fit your testing needs. See the +["Writing Custom Matchers" guide for more information](https://github.com/hamcrest/OCHamcrest/wiki/Writing-Custom-Matchers). + + +What about Swift? +----------------- + +Try the [native Swift implementation of Hamcrest](https://github.com/nschum/SwiftHamcrest). + + +How do I add OCHamcrest to my project? +-------------------------------------- + +The Examples folder shows projects using OCHamcrest either through CocoaPods or through the prebuilt +frameworks, for iOS and Mac OS X development. + +### CocoaPods + +If you want to add OCHamcrest using Cocoapods then add the following dependency to your Podfile. +Most people will want OCHamcrest in their test targets, and not include any pods from their main +targets: + +```ruby +target 'MyTests' do + inherit! :search_paths + pod 'OCHamcrest', '~> 7.0' +end +``` + +Use the following import: + + #import + +### Carthage + +Add the following to your Cartfile: + +``` +github "hamcrest/OCHamcrest" ~> 7.0 +``` + +Then drag the the built framework from the appropriate Carthage/Build directory into your project, +but with "Copy items into destination group's folder" disabled. + +### Prebuilt Frameworks + +Prebuilt binaries are available on [GitHub](https://github.com/hamcrest/OCHamcrest/releases/). The +binaries are packaged as frameworks: + +* __OCHamcrestIOS.framework__ for iOS development +* __OCHamcrest.framework__ for Mac OS X development + +Drag the appropriate framework into your project, specifying "Copy items into destination group's +folder". Then specify `-ObjC` in your "Other Linker Flags". + +#### iOS Development: + +Use the following import: + + #import + +#### Mac OS X Development: + +Add a "Copy Files" build phase to copy OCHamcrest.framework to your Products Directory. + +Use the following import: + + #import + +### Build Your Own + +If you want to build OCHamcrest yourself, clone the repo, then + +```sh +$ cd Source +$ ./MakeDistribution.sh +``` diff --git a/Pods/OCHamcrest/Source/Core/HCAssertThat.h b/Pods/OCHamcrest/Source/Core/HCAssertThat.h new file mode 100644 index 0000000..1a4dfb9 --- /dev/null +++ b/Pods/OCHamcrest/Source/Core/HCAssertThat.h @@ -0,0 +1,96 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import + +@protocol HCMatcher; + +NS_ASSUME_NONNULL_BEGIN + +/*! + * @header + * Assertion macros for using matchers in testing frameworks. + * Unmet assertions are reported to the HCTestFailureReporterChain. + */ + + +FOUNDATION_EXPORT void HC_assertThatWithLocation(id testCase, _Nullable id actual, id matcher, + const char *fileName, int lineNumber); + +#define HC_assertThat(actual, matcher) \ + HC_assertThatWithLocation(self, actual, matcher, __FILE__, __LINE__) + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract assertThat(actual, matcher) - + * Asserts that actual value satisfies matcher. + * @param actual The object to evaluate as the actual value. + * @param matcher The matcher to satisfy as the expected condition. + * @discussion assertThat passes the actual value to the matcher for evaluation. If the matcher is + * not satisfied, it is reported to the HCTestFailureReporterChain. + * + * Use assertThat in test case methods. It's designed to integrate with XCTest and other testing + * frameworks where individual tests are executed as methods. + * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_assertThat instead. + */ +#define assertThat(actual, matcher) HC_assertThat(actual, matcher) +#endif + + +typedef _Nonnull id (^HCFutureValue)(void); + +FOUNDATION_EXPORT void HC_assertWithTimeoutAndLocation(id testCase, NSTimeInterval timeout, + HCFutureValue actualBlock, id matcher, + const char *fileName, int lineNumber); + +#define HC_assertWithTimeout(timeout, actualBlock, matcher) \ + HC_assertWithTimeoutAndLocation(self, timeout, actualBlock, matcher, __FILE__, __LINE__) + +#define HC_thatEventually(actual) ^{ return actual; } + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract assertWithTimeout(timeout, actualBlock, matcher) - + * Asserts that a value provided by a block will satisfy matcher within the specified time. + * @param timeout Maximum time to wait for passing behavior, specified in seconds. + * @param actualBlock A block providing the object to repeatedly evaluate as the actual value. + * @param matcher The matcher to satisfy as the expected condition. + * @discussion assertWithTimeout polls a value provided by a block to asynchronously + * satisfy the matcher. The block is evaluated repeatedly for an actual value, which is passed to + * the matcher for evaluation. If the matcher is not satisfied within the timeout, it is reported to + * the HCTestFailureReporterChain. + * + * An easy way of providing the actualBlock is to use the macro thatEventually. + * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_assertWithTimeout instead. +*/ +#define assertWithTimeout(timeout, actualBlock, matcher) HC_assertWithTimeout(timeout, actualBlock, matcher) + + +/*! + * @abstract thatEventually(actual) - + * Evaluates actual value at future time. + * @param actual The object to evaluate as the actual value. + * @discussion Wraps actual in a block so that it can be repeatedly evaluated by + * assertWithTimeout. + * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_thatEventually instead. + */ +#define thatEventually(actual) HC_thatEventually(actual) +#endif + + +/*! + * @abstract "Expected , but " + * @discussion Helper function to let you describe mismatches the way assertThat does. + */ +FOUNDATION_EXPORT NSString *HCDescribeMismatch(id matcher, id actual); + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Core/HCAssertThat.m b/Pods/OCHamcrest/Source/Core/HCAssertThat.m new file mode 100644 index 0000000..d1cabae --- /dev/null +++ b/Pods/OCHamcrest/Source/Core/HCAssertThat.m @@ -0,0 +1,58 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCAssertThat.h" + +#import "HCRunloopRunner.h" +#import "HCStringDescription.h" +#import "HCMatcher.h" +#import "HCTestFailure.h" +#import "HCTestFailureReporter.h" +#import "HCTestFailureReporterChain.h" + +static void reportMismatch(id testCase, id actual, id matcher, + char const *fileName, int lineNumber) +{ + HCTestFailure *failure = [[HCTestFailure alloc] initWithTestCase:testCase + fileName:[NSString stringWithUTF8String:fileName] + lineNumber:(NSUInteger)lineNumber + reason:HCDescribeMismatch(matcher, actual)]; + HCTestFailureReporter *chain = [HCTestFailureReporterChain reporterChain]; + [chain handleFailure:failure]; +} + +void HC_assertThatWithLocation(id testCase, _Nullable id actual, id matcher, + const char *fileName, int lineNumber) +{ + if (![matcher matches:actual]) + reportMismatch(testCase, actual, matcher, fileName, lineNumber); +} + +void HC_assertWithTimeoutAndLocation(id testCase, NSTimeInterval timeout, + HCFutureValue actualBlock, id matcher, + const char *fileName, int lineNumber) +{ + __block BOOL match = [matcher matches:actualBlock()]; + + if (!match) + { + HCRunloopRunner *runner = [[HCRunloopRunner alloc] initWithFulfillmentBlock:^{ + match = [matcher matches:actualBlock()]; + return match; + }]; + [runner runUntilFulfilledOrTimeout:timeout]; + } + + if (!match) + reportMismatch(testCase, actualBlock(), matcher, fileName, lineNumber); +} + +NSString *HCDescribeMismatch(id matcher, id actual) +{ + HCStringDescription *description = [HCStringDescription stringDescription]; + [[[description appendText:@"Expected "] + appendDescriptionOf:matcher] + appendText:@", but "]; + [matcher describeMismatchOf:actual to:description]; + return description.description; +} diff --git a/Pods/OCHamcrest/Source/Core/HCBaseDescription.h b/Pods/OCHamcrest/Source/Core/HCBaseDescription.h new file mode 100644 index 0000000..8e13bc8 --- /dev/null +++ b/Pods/OCHamcrest/Source/Core/HCBaseDescription.h @@ -0,0 +1,29 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import +#import + + +NS_ASSUME_NONNULL_BEGIN + +/*! + * @abstract Base class for all HCDescription implementations. + */ +@interface HCBaseDescription : NSObject +@end + + +/*! + * @abstract Methods that must be provided by subclasses of HCBaseDescription. + */ +@interface HCBaseDescription (SubclassResponsibility) + +/*! + * @abstract Appends the specified string to the description. + */ +- (void)append:(NSString *)str; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Core/HCBaseDescription.m b/Pods/OCHamcrest/Source/Core/HCBaseDescription.m new file mode 100644 index 0000000..fabf17e --- /dev/null +++ b/Pods/OCHamcrest/Source/Core/HCBaseDescription.m @@ -0,0 +1,101 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCBaseDescription.h" + +#import "HCMatcher.h" + + +@implementation HCBaseDescription + +- (id )appendText:(NSString *)text +{ + [self append:text]; + return self; +} + +- (id )appendDescriptionOf:(nullable id)value +{ + if (value == nil) + [self append:@"nil"]; + else if ([value conformsToProtocol:@protocol(HCSelfDescribing)]) + [value describeTo:self]; + else if ([value respondsToSelector:@selector(isKindOfClass:)] && [value isKindOfClass:[NSString class]]) + [self toCSyntaxString:value]; + else + [self appendObjectDescriptionOf:value]; + + return self; +} + +- (id )appendObjectDescriptionOf:(id)value +{ + NSString *description = [value description]; + NSUInteger descriptionLength = description.length; + if (descriptionLength == 0) + [self append:[NSString stringWithFormat:@"<%@: %p>", NSStringFromClass([value class]), (__bridge void *)value]]; + else if ([description characterAtIndex:0] == '<' + && [description characterAtIndex:descriptionLength - 1] == '>') + { + [self append:description]; + } + else + { + [self append:@"<"]; + [self append:description]; + [self append:@">"]; + } + return self; +} + +- (id )appendList:(NSArray *)values + start:(NSString *)start + separator:(NSString *)separator + end:(NSString *)end +{ + BOOL separate = NO; + + [self append:start]; + for (id item in values) + { + if (separate) + [self append:separator]; + [self appendDescriptionOf:item]; + separate = YES; + } + [self append:end]; + return self; +} + +- (void)toCSyntaxString:(NSString *)unformatted +{ + [self append:@"\""]; + NSUInteger length = unformatted.length; + for (NSUInteger index = 0; index < length; ++index) + [self toCSyntax:[unformatted characterAtIndex:index]]; + [self append:@"\""]; +} + +- (void)toCSyntax:(unichar)ch +{ + switch (ch) + { + case '"': + [self append:@"\\\""]; + break; + case '\n': + [self append:@"\\n"]; + break; + case '\r': + [self append:@"\\r"]; + break; + case '\t': + [self append:@"\\t"]; + break; + default: + [self append:[NSString stringWithCharacters:&ch length:1]]; + break; + } +} + +@end diff --git a/Pods/OCHamcrest/Source/Core/HCBaseMatcher.h b/Pods/OCHamcrest/Source/Core/HCBaseMatcher.h new file mode 100644 index 0000000..879b45e --- /dev/null +++ b/Pods/OCHamcrest/Source/Core/HCBaseMatcher.h @@ -0,0 +1,25 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import +#import + +#define HC_ABSTRACT_METHOD [self subclassResponsibility:_cmd] + + +NS_ASSUME_NONNULL_BEGIN + +/*! + * @abstract Base class for all HCMatcher implementations. + * @discussion Simple matchers can just subclass HCBaseMatcher and implement -matches: + * and -describeTo:. But if the matching algorithm has several "no match" paths, + * consider subclassing HCDiagnosingMatcher instead. + */ +@interface HCBaseMatcher : NSObject + +/*! @abstract Raises exception that command (a pseudo-abstract method) is not implemented. */ +- (void)subclassResponsibility:(SEL)command; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Core/HCBaseMatcher.m b/Pods/OCHamcrest/Source/Core/HCBaseMatcher.m new file mode 100644 index 0000000..f988c0a --- /dev/null +++ b/Pods/OCHamcrest/Source/Core/HCBaseMatcher.m @@ -0,0 +1,52 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCBaseMatcher.h" + +#import "HCStringDescription.h" + + +@implementation HCBaseMatcher + +- (NSString *)description +{ + return [HCStringDescription stringFrom:self]; +} + +- (BOOL)matches:(nullable id)item +{ + HC_ABSTRACT_METHOD; + return NO; +} + +- (BOOL)matches:(nullable id)item describingMismatchTo:(id )mismatchDescription +{ + BOOL matchResult = [self matches:item]; + if (!matchResult) + [self describeMismatchOf:item to:mismatchDescription]; + return matchResult; +} + +- (void)describeMismatchOf:(nullable id)item to:(nullable id )mismatchDescription +{ + [[mismatchDescription appendText:@"was "] appendDescriptionOf:item]; +} + +- (void)describeTo:(id )description +{ + HC_ABSTRACT_METHOD; +} + +- (void)subclassResponsibility:(SEL)command +{ + NSString *className = NSStringFromClass([self class]); + [NSException raise:NSGenericException + format:@"-[%@ %@] not implemented", className, NSStringFromSelector(command)]; +} + +- (id)copyWithZone:(NSZone *)zone +{ + return self; +} + +@end diff --git a/Pods/OCHamcrest/Source/Core/HCDescription.h b/Pods/OCHamcrest/Source/Core/HCDescription.h new file mode 100644 index 0000000..c09ba0e --- /dev/null +++ b/Pods/OCHamcrest/Source/Core/HCDescription.h @@ -0,0 +1,39 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import + + +NS_ASSUME_NONNULL_BEGIN + +/*! + * @abstract A description of an HCMatcher. + * @discussion An HCMatcher will describe itself to a description which can later be used for reporting. + */ +@protocol HCDescription + +/*! + * @abstract Appends some plain text to the description. + * @return self, for chaining. + */ +- (id )appendText:(NSString *)text; + +/*! + * @abstract Appends description of specified value to description. + * @discussion If the value implements the HCSelfDescribing protocol, then it will be used. + * @return self, for chaining. + */ +- (id )appendDescriptionOf:(nullable id)value; + +/*! + * @abstract Appends a list of objects to the description. + * @return self, for chaining. + */ +- (id )appendList:(NSArray *)values + start:(NSString *)start + separator:(NSString *)separator + end:(NSString *)end; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Core/HCDiagnosingMatcher.h b/Pods/OCHamcrest/Source/Core/HCDiagnosingMatcher.h new file mode 100644 index 0000000..0cae596 --- /dev/null +++ b/Pods/OCHamcrest/Source/Core/HCDiagnosingMatcher.h @@ -0,0 +1,19 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import + + +NS_ASSUME_NONNULL_BEGIN + +/*! + * @abstract Base class for matchers that generate mismatch descriptions during the matching. + * @discussion Some matching algorithms have several "no match" paths. It helps to make the mismatch + * description as precise as possible, but we don't want to have to repeat the matching logic to do + * so. For such matchers, subclass HCDiagnosingMatcher and implement HCMatcher's + * -matches:describingMismatchTo:. +*/ +@interface HCDiagnosingMatcher : HCBaseMatcher +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Core/HCDiagnosingMatcher.m b/Pods/OCHamcrest/Source/Core/HCDiagnosingMatcher.m new file mode 100644 index 0000000..141ecba --- /dev/null +++ b/Pods/OCHamcrest/Source/Core/HCDiagnosingMatcher.m @@ -0,0 +1,25 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCDiagnosingMatcher.h" + + +@implementation HCDiagnosingMatcher + +- (BOOL)matches:(nullable id)item +{ + return [self matches:item describingMismatchTo:nil]; +} + +- (BOOL)matches:(nullable id)item describingMismatchTo:(id )mismatchDescription +{ + HC_ABSTRACT_METHOD; + return NO; +} + +- (void)describeMismatchOf:(nullable id)item to:(nullable id )mismatchDescription +{ + [self matches:item describingMismatchTo:mismatchDescription]; +} + +@end diff --git a/Pods/OCHamcrest/Source/Core/HCMatcher.h b/Pods/OCHamcrest/Source/Core/HCMatcher.h new file mode 100644 index 0000000..59d648c --- /dev/null +++ b/Pods/OCHamcrest/Source/Core/HCMatcher.h @@ -0,0 +1,47 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCSelfDescribing.h" + + +NS_ASSUME_NONNULL_BEGIN + +/*! + * @abstract A matcher over acceptable values. + * @discussion A matcher is able to describe itself to give feedback when it fails. + * + * HCMatcher implementations should not directly implement this protocol. Instead, extend the + * HCBaseMatcher class, which will ensure that the HCMatcher API can grow to support new features + * and remain compatible with all HCMatcher implementations. + */ +@protocol HCMatcher + +/*! + * @abstract Evaluates the matcher for argument item. + * @param item The object against which the matcher is evaluated. + * @return YES if item matches, otherwise NO. + */ +- (BOOL)matches:(nullable id)item; + +/*! + * @abstract Evaluates the matcher for argument item. + * @param item The object against which the matcher is evaluated. + * @param mismatchDescription The description to be built or appended to if item does not match. + * @return YES if item matches, otherwise NO. + */ +- (BOOL)matches:(nullable id)item describingMismatchTo:(nullable id )mismatchDescription; + +/*! + * @abstract Generates a description of why the matcher has not accepted the item. + * @param item The item that the HCMatcher has rejected. + * @param mismatchDescription The description to be built or appended to. + * @discussion The description will be part of a larger description of why a matching failed, so it + * should be concise. + * + * This method assumes that matches:item is false, but will not check this. + */ +- (void)describeMismatchOf:(nullable id)item to:(nullable id )mismatchDescription; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Core/HCSelfDescribing.h b/Pods/OCHamcrest/Source/Core/HCSelfDescribing.h new file mode 100644 index 0000000..68ac956 --- /dev/null +++ b/Pods/OCHamcrest/Source/Core/HCSelfDescribing.h @@ -0,0 +1,26 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import + +#import "HCDescription.h" // Convenience header + + +NS_ASSUME_NONNULL_BEGIN + +/*! + * @abstract The ability of an object to describe itself. + */ +@protocol HCSelfDescribing + +/*! + * @abstract Generates a description of the object. + * @param description The description to be built or appended to. + * @discussion The description may be part of a description of a larger object of which this is just + * a component, so it should be worded appropriately. + */ +- (void)describeTo:(id )description; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Core/HCStringDescription.h b/Pods/OCHamcrest/Source/Core/HCStringDescription.h new file mode 100644 index 0000000..fad5a60 --- /dev/null +++ b/Pods/OCHamcrest/Source/Core/HCStringDescription.h @@ -0,0 +1,36 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import + +@protocol HCSelfDescribing; + + +NS_ASSUME_NONNULL_BEGIN + +/*! + * @abstract An HCDescription that is stored as a string. + */ +@interface HCStringDescription : HCBaseDescription + + +/*! + * @abstract Returns the description of an HCSelfDescribing object as a string. + * @param selfDescribing The object to be described. + * @return The description of the object. + */ ++ (NSString *)stringFrom:(id )selfDescribing; + +/*! + * @abstract Creates and returns an empty description. + */ ++ (instancetype)stringDescription; + +/*! + * @abstract Initializes a newly allocated HCStringDescription that is initially empty. + */ +- (instancetype)init NS_DESIGNATED_INITIALIZER; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Core/HCStringDescription.m b/Pods/OCHamcrest/Source/Core/HCStringDescription.m new file mode 100644 index 0000000..b51b243 --- /dev/null +++ b/Pods/OCHamcrest/Source/Core/HCStringDescription.m @@ -0,0 +1,45 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCStringDescription.h" + +#import "HCSelfDescribing.h" + + +@interface HCStringDescription () +@property (nonatomic, strong) NSMutableString *accumulator; +@end + +@implementation HCStringDescription + ++ (NSString *)stringFrom:(id )selfDescribing +{ + HCStringDescription *description = [HCStringDescription stringDescription]; + [description appendDescriptionOf:selfDescribing]; + return description.description; +} + ++ (instancetype)stringDescription +{ + return [[HCStringDescription alloc] init]; +} + +- (instancetype)init +{ + self = [super init]; + if (self) + _accumulator = [[NSMutableString alloc] init]; + return self; +} + +- (NSString *)description +{ + return self.accumulator; +} + +- (void)append:(NSString *)str +{ + [self.accumulator appendString:str]; +} + +@end diff --git a/Pods/OCHamcrest/Source/Core/Helpers/HCCollect.h b/Pods/OCHamcrest/Source/Core/Helpers/HCCollect.h new file mode 100644 index 0000000..b3731e0 --- /dev/null +++ b/Pods/OCHamcrest/Source/Core/Helpers/HCCollect.h @@ -0,0 +1,26 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import + +#import + +@protocol HCMatcher; + + +NS_ASSUME_NONNULL_BEGIN + +/*! + * @abstract Returns an array of values from a variable-length comma-separated list terminated + * by nil. + */ +FOUNDATION_EXPORT NSArray * HCCollectItems(id item, va_list args); + +/*! + * @abstract Returns an array of matchers from a mixed array of items and matchers. + * @discussion Each item is wrapped in HCWrapInMatcher to transform non-matcher items into equality + * matchers. + */ +FOUNDATION_EXPORT NSArray> * HCWrapIntoMatchers(NSArray *items); + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Core/Helpers/HCCollect.m b/Pods/OCHamcrest/Source/Core/Helpers/HCCollect.m new file mode 100644 index 0000000..ba540f0 --- /dev/null +++ b/Pods/OCHamcrest/Source/Core/Helpers/HCCollect.m @@ -0,0 +1,43 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCCollect.h" + +#import "HCWrapInMatcher.h" + +/*! + * @abstract Returns an array of wrapped items from a variable-length comma-separated list + * terminated by nil. + * @discussion Each item is transformed by passing it to the specified wrap function. + */ +static NSArray * HCCollectWrappedItems(id item, va_list args, id (*wrap)(id)) +{ + NSMutableArray *list = [NSMutableArray arrayWithObject:wrap(item)]; + + id nextItem = va_arg(args, id); + while (nextItem) + { + [list addObject:wrap(nextItem)]; + nextItem = va_arg(args, id); + } + + return list; +} + +static id passThrough(id value) +{ + return value; +} + +NSArray * HCCollectItems(id item, va_list args) +{ + return HCCollectWrappedItems(item, args, passThrough); +} + +NSArray> * HCWrapIntoMatchers(NSArray *items) +{ + NSMutableArray> *matchers = [[NSMutableArray alloc] init]; + for (id item in items) + [matchers addObject:HCWrapInMatcher(item)]; + return matchers; +} diff --git a/Pods/OCHamcrest/Source/Core/Helpers/HCInvocationMatcher.h b/Pods/OCHamcrest/Source/Core/Helpers/HCInvocationMatcher.h new file mode 100644 index 0000000..379280f --- /dev/null +++ b/Pods/OCHamcrest/Source/Core/Helpers/HCInvocationMatcher.h @@ -0,0 +1,42 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import + + +NS_ASSUME_NONNULL_BEGIN + +/*! + * @abstract Supporting class for matching a feature of an object. + * @discussion Tests whether the result of passing the specified invocation to the value satisfies + * the specified matcher. + */ +@interface HCInvocationMatcher : HCBaseMatcher + + +/*! + * @abstract Determines whether a mismatch will be described in short form. + * @discussion Default is long form, which describes the object, the name of the invocation, and the + * sub-matcher's mismatch diagnosis. Short form only has the sub-matcher's mismatch diagnosis. + */ +@property (nonatomic, assign) BOOL shortMismatchDescription; + +/*! + * @abstract Initializes a newly allocated HCInvocationMatcher with an invocation and a matcher. + */ +- (instancetype)initWithInvocation:(NSInvocation *)anInvocation matching:(id )aMatcher NS_DESIGNATED_INITIALIZER; +- (instancetype)init NS_UNAVAILABLE; + +/*! + * @abstract Invokes stored invocation on the specified item and returns the result. + */ +- (id)invokeOn:(id)item; + +/*! + * @abstract Returns string representation of the invocation's selector. + */ +- (NSString *)stringFromSelector; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Core/Helpers/HCInvocationMatcher.m b/Pods/OCHamcrest/Source/Core/Helpers/HCInvocationMatcher.m new file mode 100644 index 0000000..2767311 --- /dev/null +++ b/Pods/OCHamcrest/Source/Core/Helpers/HCInvocationMatcher.m @@ -0,0 +1,81 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCInvocationMatcher.h" + + +@interface HCInvocationMatcher () +@property (nonatomic, strong) NSInvocation *invocation; +@property (nonatomic, strong) id subMatcher; +@end + +@implementation HCInvocationMatcher + +- (instancetype)initWithInvocation:(NSInvocation *)anInvocation matching:(id )aMatcher +{ + self = [super init]; + if (self) + { + _invocation = anInvocation; + _subMatcher = aMatcher; + } + return self; +} + +- (BOOL)matches:(nullable id)item +{ + if ([self invocationNotSupportedForItem:item]) + return NO; + + return [self.subMatcher matches:[self invokeOn:item]]; +} + +- (BOOL)invocationNotSupportedForItem:(id)item +{ + return ![item respondsToSelector:self.invocation.selector]; +} + +- (id)invokeOn:(id)item +{ + __unsafe_unretained id result = nil; + [self.invocation invokeWithTarget:item]; + [self.invocation getReturnValue:&result]; + return result; +} + +- (void)describeMismatchOf:(nullable id)item to:(nullable id )mismatchDescription +{ + if ([self invocationNotSupportedForItem:item]) + [super describeMismatchOf:item to:mismatchDescription]; + else + { + [self describeLongMismatchDescriptionOf:item to:mismatchDescription]; + [self.subMatcher describeMismatchOf:[self invokeOn:item] to:mismatchDescription]; + } +} + +- (void)describeLongMismatchDescriptionOf:(id)item to:(id )mismatchDescription +{ + if (!self.shortMismatchDescription) + { + [[[[mismatchDescription appendDescriptionOf:item] + appendText:@" "] + appendText:[self stringFromSelector]] + appendText:@" "]; + } +} + +- (void)describeTo:(id )description +{ + [[[[description appendText:@"an object with "] + appendText:[self stringFromSelector]] + appendText:@" "] + appendDescriptionOf:self.subMatcher]; +} + +- (NSString *)stringFromSelector +{ + return NSStringFromSelector(self.invocation.selector); +} + +@end diff --git a/Pods/OCHamcrest/Source/Core/Helpers/HCRequireNonNilObject.h b/Pods/OCHamcrest/Source/Core/Helpers/HCRequireNonNilObject.h new file mode 100644 index 0000000..d9ad35c --- /dev/null +++ b/Pods/OCHamcrest/Source/Core/Helpers/HCRequireNonNilObject.h @@ -0,0 +1,14 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import + + +NS_ASSUME_NONNULL_BEGIN + +/*! + * @abstract Throws an NSException if obj is nil. +*/ +FOUNDATION_EXPORT void HCRequireNonNilObject(id obj); + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Core/Helpers/HCRequireNonNilObject.m b/Pods/OCHamcrest/Source/Core/Helpers/HCRequireNonNilObject.m new file mode 100644 index 0000000..08fe383 --- /dev/null +++ b/Pods/OCHamcrest/Source/Core/Helpers/HCRequireNonNilObject.m @@ -0,0 +1,15 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCRequireNonNilObject.h" + + +void HCRequireNonNilObject(id obj) +{ + if (obj == nil) + { + @throw [NSException exceptionWithName:@"NilObject" + reason:@"Must be non-nil object" + userInfo:nil]; + } +} diff --git a/Pods/OCHamcrest/Source/Core/Helpers/HCRunloopRunner.h b/Pods/OCHamcrest/Source/Core/Helpers/HCRunloopRunner.h new file mode 100644 index 0000000..323eeee --- /dev/null +++ b/Pods/OCHamcrest/Source/Core/Helpers/HCRunloopRunner.h @@ -0,0 +1,21 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import + + +NS_ASSUME_NONNULL_BEGIN + +/*! + * @abstract Runs runloop until fulfilled, or timeout is reached. + * @discussion Based on http://bou.io/CTTRunLoopRunUntil.html + */ +@interface HCRunloopRunner : NSObject + +- (instancetype)initWithFulfillmentBlock:(BOOL (^)(void))fulfillmentBlock NS_DESIGNATED_INITIALIZER; +- (instancetype)init NS_UNAVAILABLE; +- (void)runUntilFulfilledOrTimeout:(CFTimeInterval)timeout; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Core/Helpers/HCRunloopRunner.m b/Pods/OCHamcrest/Source/Core/Helpers/HCRunloopRunner.m new file mode 100644 index 0000000..fd4e25d --- /dev/null +++ b/Pods/OCHamcrest/Source/Core/Helpers/HCRunloopRunner.m @@ -0,0 +1,36 @@ +#import "HCRunloopRunner.h" + + +@implementation HCRunloopRunner +{ + CFRunLoopObserverRef _observer; +} + +- (instancetype)initWithFulfillmentBlock:(BOOL (^)(void))fulfillmentBlock +{ + self = [super init]; + if (self) + { + _observer = CFRunLoopObserverCreateWithHandler(NULL, kCFRunLoopBeforeWaiting, YES, 0, ^(CFRunLoopObserverRef observer, CFRunLoopActivity activity) { + if (fulfillmentBlock()) + CFRunLoopStop(CFRunLoopGetCurrent()); + else + CFRunLoopWakeUp(CFRunLoopGetCurrent()); + }); + CFRunLoopAddObserver(CFRunLoopGetCurrent(), _observer, kCFRunLoopDefaultMode); + } + return self; +} + +- (void)dealloc +{ + CFRunLoopRemoveObserver(CFRunLoopGetCurrent(), _observer, kCFRunLoopDefaultMode); + CFRelease(_observer); +} + +- (void)runUntilFulfilledOrTimeout:(CFTimeInterval)timeout +{ + CFRunLoopRunInMode(kCFRunLoopDefaultMode, timeout, false); +} + +@end diff --git a/Pods/OCHamcrest/Source/Core/Helpers/HCWrapInMatcher.h b/Pods/OCHamcrest/Source/Core/Helpers/HCWrapInMatcher.h new file mode 100644 index 0000000..16ff013 --- /dev/null +++ b/Pods/OCHamcrest/Source/Core/Helpers/HCWrapInMatcher.h @@ -0,0 +1,17 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import + +@protocol HCMatcher; + + +NS_ASSUME_NONNULL_BEGIN + +/*! + * @abstract Wraps argument in a matcher, if necessary. + * @return The argument as-is if it is already a matcher, otherwise wrapped in an equalTo matcher. + */ +FOUNDATION_EXPORT _Nullable id HCWrapInMatcher(_Nullable id matcherOrValue); + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Core/Helpers/HCWrapInMatcher.m b/Pods/OCHamcrest/Source/Core/Helpers/HCWrapInMatcher.m new file mode 100644 index 0000000..f86e564 --- /dev/null +++ b/Pods/OCHamcrest/Source/Core/Helpers/HCWrapInMatcher.m @@ -0,0 +1,17 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCWrapInMatcher.h" + +#import "HCIsEqual.h" + + +_Nullable id HCWrapInMatcher(_Nullable id matcherOrValue) +{ + if (!matcherOrValue) + return nil; + + if ([matcherOrValue conformsToProtocol:@protocol(HCMatcher)]) + return matcherOrValue; + return HC_equalTo(matcherOrValue); +} diff --git a/Pods/OCHamcrest/Source/Core/Helpers/NSInvocation+OCHamcrest.h b/Pods/OCHamcrest/Source/Core/Helpers/NSInvocation+OCHamcrest.h new file mode 100644 index 0000000..ce86a6f --- /dev/null +++ b/Pods/OCHamcrest/Source/Core/Helpers/NSInvocation+OCHamcrest.h @@ -0,0 +1,17 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import + + +NS_ASSUME_NONNULL_BEGIN + +@interface NSInvocation (OCHamcrest) + ++ (NSInvocation *)och_invocationWithTarget:(id)target selector:(SEL)selector; ++ (NSInvocation *)och_invocationOnObjectOfType:(Class)aClass selector:(SEL)selector; +- (id)och_invoke; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Core/Helpers/NSInvocation+OCHamcrest.m b/Pods/OCHamcrest/Source/Core/Helpers/NSInvocation+OCHamcrest.m new file mode 100644 index 0000000..9927ee5 --- /dev/null +++ b/Pods/OCHamcrest/Source/Core/Helpers/NSInvocation+OCHamcrest.m @@ -0,0 +1,45 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "NSInvocation+OCHamcrest.h" + +#import "HCReturnValueGetter.h" +#import "HCReturnTypeHandlerChain.h" + + +@implementation NSInvocation (OCHamcrest) + ++ (NSInvocation *)och_invocationWithTarget:(id)target selector:(SEL)selector +{ + NSMethodSignature *signature = [target methodSignatureForSelector:selector]; + NSInvocation *invocation= [self och_invocationWithSignature:signature selector:selector]; + invocation.target = target; + return invocation; +} + ++ (NSInvocation *)och_invocationOnObjectOfType:(Class)aClass selector:(SEL)selector +{ + NSMethodSignature *signature = [aClass instanceMethodSignatureForSelector:selector]; + return [self och_invocationWithSignature:signature selector:selector]; +} + ++ (NSInvocation *)och_invocationWithSignature:(NSMethodSignature *)signature selector:(SEL)selector +{ + NSInvocation *invocation = [[self class] invocationWithMethodSignature:signature]; + invocation.selector = selector; + return invocation; +} + +- (id)och_invoke +{ + [self invoke]; + return [self och_returnValue]; +} + +- (id)och_returnValue +{ + char const *returnType = self.methodSignature.methodReturnType; + return [HCReturnValueGetterChain() returnValueOfType:returnType fromInvocation:self]; +} + +@end diff --git a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCBoolReturnGetter.h b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCBoolReturnGetter.h new file mode 100644 index 0000000..54fa863 --- /dev/null +++ b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCBoolReturnGetter.h @@ -0,0 +1,16 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCReturnValueGetter.h" + + +NS_ASSUME_NONNULL_BEGIN + +@interface HCBoolReturnGetter : HCReturnValueGetter + +- (instancetype)initWithSuccessor:(nullable HCReturnValueGetter *)successor NS_DESIGNATED_INITIALIZER; +- (instancetype)initWithType:(char const *)handlerType successor:(nullable HCReturnValueGetter *)successor NS_UNAVAILABLE; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCBoolReturnGetter.m b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCBoolReturnGetter.m new file mode 100644 index 0000000..39a86d5 --- /dev/null +++ b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCBoolReturnGetter.m @@ -0,0 +1,22 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCBoolReturnGetter.h" + + +@implementation HCBoolReturnGetter + +- (instancetype)initWithSuccessor:(nullable HCReturnValueGetter *)successor +{ + self = [super initWithType:@encode(BOOL) successor:successor]; + return self; +} + +- (id)returnValueFromInvocation:(NSInvocation *)invocation +{ + BOOL value; + [invocation getReturnValue:&value]; + return @(value); +} + +@end diff --git a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCCharReturnGetter.h b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCCharReturnGetter.h new file mode 100644 index 0000000..033b96b --- /dev/null +++ b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCCharReturnGetter.h @@ -0,0 +1,16 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCReturnValueGetter.h" + + +NS_ASSUME_NONNULL_BEGIN + +@interface HCCharReturnGetter : HCReturnValueGetter + +- (instancetype)initWithSuccessor:(nullable HCReturnValueGetter *)successor NS_DESIGNATED_INITIALIZER; +- (instancetype)initWithType:(char const *)handlerType successor:(nullable HCReturnValueGetter *)successor NS_UNAVAILABLE; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCCharReturnGetter.m b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCCharReturnGetter.m new file mode 100644 index 0000000..db2c7ca --- /dev/null +++ b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCCharReturnGetter.m @@ -0,0 +1,22 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCCharReturnGetter.h" + + +@implementation HCCharReturnGetter + +- (instancetype)initWithSuccessor:(nullable HCReturnValueGetter *)successor +{ + self = [super initWithType:@encode(char) successor:successor]; + return self; +} + +- (id)returnValueFromInvocation:(NSInvocation *)invocation +{ + char value; + [invocation getReturnValue:&value]; + return @(value); +} + +@end diff --git a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCDoubleReturnGetter.h b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCDoubleReturnGetter.h new file mode 100644 index 0000000..35e4aec --- /dev/null +++ b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCDoubleReturnGetter.h @@ -0,0 +1,16 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCReturnValueGetter.h" + + +NS_ASSUME_NONNULL_BEGIN + +@interface HCDoubleReturnGetter : HCReturnValueGetter + +- (instancetype)initWithSuccessor:(nullable HCReturnValueGetter *)successor NS_DESIGNATED_INITIALIZER; +- (instancetype)initWithType:(char const *)handlerType successor:(nullable HCReturnValueGetter *)successor NS_UNAVAILABLE; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCDoubleReturnGetter.m b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCDoubleReturnGetter.m new file mode 100644 index 0000000..6cdcaae --- /dev/null +++ b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCDoubleReturnGetter.m @@ -0,0 +1,22 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCDoubleReturnGetter.h" + + +@implementation HCDoubleReturnGetter + +- (instancetype)initWithSuccessor:(nullable HCReturnValueGetter *)successor +{ + self = [super initWithType:@encode(double) successor:successor]; + return self; +} + +- (id)returnValueFromInvocation:(NSInvocation *)invocation +{ + double value; + [invocation getReturnValue:&value]; + return @(value); +} + +@end diff --git a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCFloatReturnGetter.h b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCFloatReturnGetter.h new file mode 100644 index 0000000..3d49fba --- /dev/null +++ b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCFloatReturnGetter.h @@ -0,0 +1,16 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCReturnValueGetter.h" + + +NS_ASSUME_NONNULL_BEGIN + +@interface HCFloatReturnGetter : HCReturnValueGetter + +- (instancetype)initWithSuccessor:(nullable HCReturnValueGetter *)successor NS_DESIGNATED_INITIALIZER; +- (instancetype)initWithType:(char const *)handlerType successor:(nullable HCReturnValueGetter *)successor NS_UNAVAILABLE; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCFloatReturnGetter.m b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCFloatReturnGetter.m new file mode 100644 index 0000000..99edf33 --- /dev/null +++ b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCFloatReturnGetter.m @@ -0,0 +1,22 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCFloatReturnGetter.h" + + +@implementation HCFloatReturnGetter + +- (instancetype)initWithSuccessor:(nullable HCReturnValueGetter *)successor +{ + self = [super initWithType:@encode(float) successor:successor]; + return self; +} + +- (id)returnValueFromInvocation:(NSInvocation *)invocation +{ + float value; + [invocation getReturnValue:&value]; + return @(value); +} + +@end diff --git a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCIntReturnGetter.h b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCIntReturnGetter.h new file mode 100644 index 0000000..a0b5213 --- /dev/null +++ b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCIntReturnGetter.h @@ -0,0 +1,16 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCReturnValueGetter.h" + + +NS_ASSUME_NONNULL_BEGIN + +@interface HCIntReturnGetter : HCReturnValueGetter + +- (instancetype)initWithSuccessor:(nullable HCReturnValueGetter *)successor NS_DESIGNATED_INITIALIZER; +- (instancetype)initWithType:(char const *)handlerType successor:(nullable HCReturnValueGetter *)successor NS_UNAVAILABLE; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCIntReturnGetter.m b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCIntReturnGetter.m new file mode 100644 index 0000000..0b5b59f --- /dev/null +++ b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCIntReturnGetter.m @@ -0,0 +1,22 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCIntReturnGetter.h" + + +@implementation HCIntReturnGetter + +- (instancetype)initWithSuccessor:(nullable HCReturnValueGetter *)successor +{ + self = [super initWithType:@encode(int) successor:successor]; + return self; +} + +- (id)returnValueFromInvocation:(NSInvocation *)invocation +{ + int value; + [invocation getReturnValue:&value]; + return @(value); +} + +@end diff --git a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCLongLongReturnGetter.h b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCLongLongReturnGetter.h new file mode 100644 index 0000000..abbb524 --- /dev/null +++ b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCLongLongReturnGetter.h @@ -0,0 +1,16 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCReturnValueGetter.h" + + +NS_ASSUME_NONNULL_BEGIN + +@interface HCLongLongReturnGetter : HCReturnValueGetter + +- (instancetype)initWithSuccessor:(nullable HCReturnValueGetter *)successor NS_DESIGNATED_INITIALIZER; +- (instancetype)initWithType:(char const *)handlerType successor:(nullable HCReturnValueGetter *)successor NS_UNAVAILABLE; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCLongLongReturnGetter.m b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCLongLongReturnGetter.m new file mode 100644 index 0000000..54251f8 --- /dev/null +++ b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCLongLongReturnGetter.m @@ -0,0 +1,22 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCLongLongReturnGetter.h" + + +@implementation HCLongLongReturnGetter + +- (instancetype)initWithSuccessor:(nullable HCReturnValueGetter *)successor +{ + self = [super initWithType:@encode(long long) successor:successor]; + return self; +} + +- (id)returnValueFromInvocation:(NSInvocation *)invocation +{ + long long value; + [invocation getReturnValue:&value]; + return @(value); +} + +@end diff --git a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCLongReturnGetter.h b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCLongReturnGetter.h new file mode 100644 index 0000000..a8d1687 --- /dev/null +++ b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCLongReturnGetter.h @@ -0,0 +1,16 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCReturnValueGetter.h" + + +NS_ASSUME_NONNULL_BEGIN + +@interface HCLongReturnGetter : HCReturnValueGetter + +- (instancetype)initWithSuccessor:(nullable HCReturnValueGetter *)successor NS_DESIGNATED_INITIALIZER; +- (instancetype)initWithType:(char const *)handlerType successor:(nullable HCReturnValueGetter *)successor NS_UNAVAILABLE; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCLongReturnGetter.m b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCLongReturnGetter.m new file mode 100644 index 0000000..50ba0e6 --- /dev/null +++ b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCLongReturnGetter.m @@ -0,0 +1,22 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCLongReturnGetter.h" + + +@implementation HCLongReturnGetter + +- (instancetype)initWithSuccessor:(nullable HCReturnValueGetter *)successor +{ + self = [super initWithType:@encode(long) successor:successor]; + return self; +} + +- (id)returnValueFromInvocation:(NSInvocation *)invocation +{ + long value; + [invocation getReturnValue:&value]; + return @(value); +} + +@end diff --git a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCObjectReturnGetter.h b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCObjectReturnGetter.h new file mode 100644 index 0000000..00b1896 --- /dev/null +++ b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCObjectReturnGetter.h @@ -0,0 +1,16 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCReturnValueGetter.h" + + +NS_ASSUME_NONNULL_BEGIN + +@interface HCObjectReturnGetter : HCReturnValueGetter + +- (instancetype)initWithSuccessor:(nullable HCReturnValueGetter *)successor NS_DESIGNATED_INITIALIZER; +- (instancetype)initWithType:(char const *)handlerType successor:(nullable HCReturnValueGetter *)successor NS_UNAVAILABLE; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCObjectReturnGetter.m b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCObjectReturnGetter.m new file mode 100644 index 0000000..2354830 --- /dev/null +++ b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCObjectReturnGetter.m @@ -0,0 +1,22 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCObjectReturnGetter.h" + + +@implementation HCObjectReturnGetter + +- (instancetype)initWithSuccessor:(nullable HCReturnValueGetter *)successor +{ + self = [super initWithType:@encode(id) successor:successor]; + return self; +} + +- (id)returnValueFromInvocation:(NSInvocation *)invocation +{ + __unsafe_unretained id value; + [invocation getReturnValue:&value]; + return value; +} + +@end diff --git a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCReturnTypeHandlerChain.h b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCReturnTypeHandlerChain.h new file mode 100644 index 0000000..03f8213 --- /dev/null +++ b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCReturnTypeHandlerChain.h @@ -0,0 +1,12 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import + +@class HCReturnValueGetter; + + +/*! + * @abstract Returns chain of return type handlers. + */ +FOUNDATION_EXPORT HCReturnValueGetter *HCReturnValueGetterChain(void); diff --git a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCReturnTypeHandlerChain.m b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCReturnTypeHandlerChain.m new file mode 100644 index 0000000..931a73d --- /dev/null +++ b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCReturnTypeHandlerChain.m @@ -0,0 +1,44 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCReturnTypeHandlerChain.h" + +#import "HCObjectReturnGetter.h" +#import "HCCharReturnGetter.h" +#import "HCBoolReturnGetter.h" +#import "HCIntReturnGetter.h" +#import "HCShortReturnGetter.h" +#import "HCLongReturnGetter.h" +#import "HCLongLongReturnGetter.h" +#import "HCUnsignedCharReturnGetter.h" +#import "HCUnsignedIntReturnGetter.h" +#import "HCUnsignedShortReturnGetter.h" +#import "HCUnsignedLongReturnGetter.h" +#import "HCUnsignedLongLongReturnGetter.h" +#import "HCFloatReturnGetter.h" +#import "HCDoubleReturnGetter.h" + + +HCReturnValueGetter *HCReturnValueGetterChain(void) +{ + static HCReturnValueGetter *chain = nil; + if (!chain) + { + HCReturnValueGetter *doubleHandler = [[HCDoubleReturnGetter alloc] initWithSuccessor:nil]; + HCReturnValueGetter *floatHandler = [[HCFloatReturnGetter alloc] initWithSuccessor:doubleHandler]; + HCReturnValueGetter *uLongLongHandler = [[HCUnsignedLongLongReturnGetter alloc] initWithSuccessor:floatHandler]; + HCReturnValueGetter *uLongHandler = [[HCUnsignedLongReturnGetter alloc] initWithSuccessor:uLongLongHandler]; + HCReturnValueGetter *uShortHandler = [[HCUnsignedShortReturnGetter alloc] initWithSuccessor:uLongHandler]; + HCReturnValueGetter *uIntHandler = [[HCUnsignedIntReturnGetter alloc] initWithSuccessor:uShortHandler]; + HCReturnValueGetter *uCharHandler = [[HCUnsignedCharReturnGetter alloc] initWithSuccessor:uIntHandler]; + HCReturnValueGetter *longLongHandler = [[HCLongLongReturnGetter alloc] initWithSuccessor:uCharHandler]; + HCReturnValueGetter *longHandler = [[HCLongReturnGetter alloc] initWithSuccessor:longLongHandler]; + HCReturnValueGetter *shortHandler = [[HCShortReturnGetter alloc] initWithSuccessor:longHandler]; + HCReturnValueGetter *intHandler = [[HCIntReturnGetter alloc] initWithSuccessor:shortHandler]; + HCReturnValueGetter *boolHandler = [[HCBoolReturnGetter alloc] initWithSuccessor:intHandler]; + HCReturnValueGetter *charHandler = [[HCCharReturnGetter alloc] initWithSuccessor:boolHandler]; + HCReturnValueGetter *objectHandler = [[HCObjectReturnGetter alloc] initWithSuccessor:charHandler]; + chain = objectHandler; + } + return chain; +} diff --git a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCReturnValueGetter.h b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCReturnValueGetter.h new file mode 100644 index 0000000..cbfd8a9 --- /dev/null +++ b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCReturnValueGetter.h @@ -0,0 +1,20 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import + + +NS_ASSUME_NONNULL_BEGIN + +/*! + * @abstract Chain-of-responsibility for handling NSInvocation return types. + */ +@interface HCReturnValueGetter : NSObject + +- (instancetype)initWithType:(char const *)handlerType successor:(nullable HCReturnValueGetter *)successor NS_DESIGNATED_INITIALIZER; +- (instancetype)init NS_UNAVAILABLE; +- (id)returnValueOfType:(char const *)type fromInvocation:(NSInvocation *)invocation; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCReturnValueGetter.m b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCReturnValueGetter.m new file mode 100644 index 0000000..91818b6 --- /dev/null +++ b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCReturnValueGetter.m @@ -0,0 +1,42 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCReturnValueGetter.h" + + +@interface HCReturnValueGetter (SubclassResponsibility) +- (id)returnValueFromInvocation:(NSInvocation *)invocation; +@end + +@interface HCReturnValueGetter () +@property (nonatomic, assign, readonly) char const *handlerType; +@property (nullable, nonatomic, strong, readonly) HCReturnValueGetter *successor; +@end + +@implementation HCReturnValueGetter + +- (instancetype)initWithType:(char const *)handlerType successor:(nullable HCReturnValueGetter *)successor +{ + self = [super init]; + if (self) + { + _handlerType = handlerType; + _successor = successor; + } + return self; +} + +- (BOOL)handlesReturnType:(char const *)returnType +{ + return strcmp(returnType, self.handlerType) == 0; +} + +- (id)returnValueOfType:(char const *)type fromInvocation:(NSInvocation *)invocation +{ + if ([self handlesReturnType:type]) + return [self returnValueFromInvocation:invocation]; + + return [self.successor returnValueOfType:type fromInvocation:invocation]; +} + +@end diff --git a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCShortReturnGetter.h b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCShortReturnGetter.h new file mode 100644 index 0000000..7234ae7 --- /dev/null +++ b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCShortReturnGetter.h @@ -0,0 +1,16 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCReturnValueGetter.h" + + +NS_ASSUME_NONNULL_BEGIN + +@interface HCShortReturnGetter : HCReturnValueGetter + +- (instancetype)initWithSuccessor:(nullable HCReturnValueGetter *)successor NS_DESIGNATED_INITIALIZER; +- (instancetype)initWithType:(char const *)handlerType successor:(nullable HCReturnValueGetter *)successor NS_UNAVAILABLE; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCShortReturnGetter.m b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCShortReturnGetter.m new file mode 100644 index 0000000..611f90a --- /dev/null +++ b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCShortReturnGetter.m @@ -0,0 +1,22 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCShortReturnGetter.h" + + +@implementation HCShortReturnGetter + +- (instancetype)initWithSuccessor:(nullable HCReturnValueGetter *)successor +{ + self = [super initWithType:@encode(short) successor:successor]; + return self; +} + +- (id)returnValueFromInvocation:(NSInvocation *)invocation +{ + short value; + [invocation getReturnValue:&value]; + return @(value); +} + +@end diff --git a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedCharReturnGetter.h b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedCharReturnGetter.h new file mode 100644 index 0000000..9cd6ddc --- /dev/null +++ b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedCharReturnGetter.h @@ -0,0 +1,16 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCReturnValueGetter.h" + + +NS_ASSUME_NONNULL_BEGIN + +@interface HCUnsignedCharReturnGetter : HCReturnValueGetter + +- (instancetype)initWithSuccessor:(nullable HCReturnValueGetter *)successor NS_DESIGNATED_INITIALIZER; +- (instancetype)initWithType:(char const *)handlerType successor:(nullable HCReturnValueGetter *)successor NS_UNAVAILABLE; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedCharReturnGetter.m b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedCharReturnGetter.m new file mode 100644 index 0000000..f7c737b --- /dev/null +++ b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedCharReturnGetter.m @@ -0,0 +1,22 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCUnsignedCharReturnGetter.h" + + +@implementation HCUnsignedCharReturnGetter + +- (instancetype)initWithSuccessor:(nullable HCReturnValueGetter *)successor +{ + self = [super initWithType:@encode(unsigned char) successor:successor]; + return self; +} + +- (id)returnValueFromInvocation:(NSInvocation *)invocation +{ + unsigned char value; + [invocation getReturnValue:&value]; + return @(value); +} + +@end diff --git a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedIntReturnGetter.h b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedIntReturnGetter.h new file mode 100644 index 0000000..10cedf3 --- /dev/null +++ b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedIntReturnGetter.h @@ -0,0 +1,16 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCReturnValueGetter.h" + + +NS_ASSUME_NONNULL_BEGIN + +@interface HCUnsignedIntReturnGetter : HCReturnValueGetter + +- (instancetype)initWithSuccessor:(nullable HCReturnValueGetter *)successor NS_DESIGNATED_INITIALIZER; +- (instancetype)initWithType:(char const *)handlerType successor:(nullable HCReturnValueGetter *)successor NS_UNAVAILABLE; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedIntReturnGetter.m b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedIntReturnGetter.m new file mode 100644 index 0000000..47dfa25 --- /dev/null +++ b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedIntReturnGetter.m @@ -0,0 +1,22 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCUnsignedIntReturnGetter.h" + + +@implementation HCUnsignedIntReturnGetter + +- (instancetype)initWithSuccessor:(nullable HCReturnValueGetter *)successor +{ + self = [super initWithType:@encode(unsigned int) successor:successor]; + return self; +} + +- (id)returnValueFromInvocation:(NSInvocation *)invocation +{ + unsigned int value; + [invocation getReturnValue:&value]; + return @(value); +} + +@end diff --git a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedLongLongReturnGetter.h b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedLongLongReturnGetter.h new file mode 100644 index 0000000..e4671b1 --- /dev/null +++ b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedLongLongReturnGetter.h @@ -0,0 +1,16 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCReturnValueGetter.h" + + +NS_ASSUME_NONNULL_BEGIN + +@interface HCUnsignedLongLongReturnGetter : HCReturnValueGetter + +- (instancetype)initWithSuccessor:(nullable HCReturnValueGetter *)successor NS_DESIGNATED_INITIALIZER; +- (instancetype)initWithType:(char const *)handlerType successor:(nullable HCReturnValueGetter *)successor NS_UNAVAILABLE; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedLongLongReturnGetter.m b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedLongLongReturnGetter.m new file mode 100644 index 0000000..87c88de --- /dev/null +++ b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedLongLongReturnGetter.m @@ -0,0 +1,22 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCUnsignedLongLongReturnGetter.h" + + +@implementation HCUnsignedLongLongReturnGetter + +- (instancetype)initWithSuccessor:(nullable HCReturnValueGetter *)successor +{ + self = [super initWithType:@encode(unsigned long long) successor:successor]; + return self; +} + +- (id)returnValueFromInvocation:(NSInvocation *)invocation +{ + unsigned long long value; + [invocation getReturnValue:&value]; + return @(value); +} + +@end diff --git a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedLongReturnGetter.h b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedLongReturnGetter.h new file mode 100644 index 0000000..abec904 --- /dev/null +++ b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedLongReturnGetter.h @@ -0,0 +1,16 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCReturnValueGetter.h" + + +NS_ASSUME_NONNULL_BEGIN + +@interface HCUnsignedLongReturnGetter : HCReturnValueGetter + +- (instancetype)initWithSuccessor:(nullable HCReturnValueGetter *)successor NS_DESIGNATED_INITIALIZER; +- (instancetype)initWithType:(char const *)handlerType successor:(nullable HCReturnValueGetter *)successor NS_UNAVAILABLE; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedLongReturnGetter.m b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedLongReturnGetter.m new file mode 100644 index 0000000..fe6ef2c --- /dev/null +++ b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedLongReturnGetter.m @@ -0,0 +1,22 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCUnsignedLongReturnGetter.h" + + +@implementation HCUnsignedLongReturnGetter + +- (instancetype)initWithSuccessor:(nullable HCReturnValueGetter *)successor +{ + self = [super initWithType:@encode(unsigned long) successor:successor]; + return self; +} + +- (id)returnValueFromInvocation:(NSInvocation *)invocation +{ + unsigned long value; + [invocation getReturnValue:&value]; + return @(value); +} + +@end diff --git a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedShortReturnGetter.h b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedShortReturnGetter.h new file mode 100644 index 0000000..9fc1151 --- /dev/null +++ b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedShortReturnGetter.h @@ -0,0 +1,16 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCReturnValueGetter.h" + + +NS_ASSUME_NONNULL_BEGIN + +@interface HCUnsignedShortReturnGetter : HCReturnValueGetter + +- (instancetype)initWithSuccessor:(nullable HCReturnValueGetter *)successor NS_DESIGNATED_INITIALIZER; +- (instancetype)initWithType:(char const *)handlerType successor:(nullable HCReturnValueGetter *)successor NS_UNAVAILABLE; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedShortReturnGetter.m b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedShortReturnGetter.m new file mode 100644 index 0000000..b5dd20a --- /dev/null +++ b/Pods/OCHamcrest/Source/Core/Helpers/ReturnValueGetters/HCUnsignedShortReturnGetter.m @@ -0,0 +1,22 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCUnsignedShortReturnGetter.h" + + +@implementation HCUnsignedShortReturnGetter + +- (instancetype)initWithSuccessor:(nullable HCReturnValueGetter *)successor +{ + self = [super initWithType:@encode(unsigned short) successor:successor]; + return self; +} + +- (id)returnValueFromInvocation:(NSInvocation *)invocation +{ + unsigned short value; + [invocation getReturnValue:&value]; + return @(value); +} + +@end diff --git a/Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCGenericTestFailureReporter.h b/Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCGenericTestFailureReporter.h new file mode 100644 index 0000000..3611d46 --- /dev/null +++ b/Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCGenericTestFailureReporter.h @@ -0,0 +1,8 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCTestFailureReporter.h" + + +@interface HCGenericTestFailureReporter : HCTestFailureReporter +@end diff --git a/Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCGenericTestFailureReporter.m b/Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCGenericTestFailureReporter.m new file mode 100644 index 0000000..24bf53d --- /dev/null +++ b/Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCGenericTestFailureReporter.m @@ -0,0 +1,31 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCGenericTestFailureReporter.h" + +#import "HCTestFailure.h" + + +@implementation HCGenericTestFailureReporter + +- (BOOL)willHandleFailure:(HCTestFailure *)failure +{ + return YES; +} + +- (void)executeHandlingOfFailure:(HCTestFailure *)failure +{ + NSException *exception = [self createExceptionForFailure:failure]; + [exception raise]; +} + +- (NSException *)createExceptionForFailure:(HCTestFailure *)failure +{ + NSString *failureReason = [NSString stringWithFormat:@"%@:%lu: matcher error: %@", + failure.fileName, + (unsigned long)failure.lineNumber, + failure.reason]; + return [NSException exceptionWithName:@"HCGenericTestFailure" reason:failureReason userInfo:nil]; +} + +@end diff --git a/Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCSenTestFailureReporter.h b/Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCSenTestFailureReporter.h new file mode 100644 index 0000000..bf10913 --- /dev/null +++ b/Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCSenTestFailureReporter.h @@ -0,0 +1,8 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCTestFailureReporter.h" + + +@interface HCSenTestFailureReporter : HCTestFailureReporter +@end diff --git a/Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCSenTestFailureReporter.m b/Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCSenTestFailureReporter.m new file mode 100644 index 0000000..6228e70 --- /dev/null +++ b/Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCSenTestFailureReporter.m @@ -0,0 +1,69 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCSenTestFailureReporter.h" + +#import "HCTestFailure.h" +#import "NSInvocation+OCHamcrest.h" + +@interface NSObject (PretendMethodsExistOnNSObjectToAvoidLinkingSenTestingKit) + ++ (NSException *)failureInFile:(NSString *)filename + atLine:(int)lineNumber + withDescription:(NSString *)formatString, ...; + +- (void)failWithException:(NSException *)exception; + +@end + + +@interface NSInvocation (OCHamcrest_SenTestingKit) +@end + +@implementation NSInvocation (OCHamcrest_SenTestingKit) + ++ (NSInvocation *)och_SenTestFailureInFile:(NSString *)fileName + atLine:(NSUInteger)lineNumber + description:(NSString *)description +{ + // SenTestingKit expects a format string, but NSInvocation does not support varargs. + // Mask % symbols in the string so they aren't treated as placeholders. + NSString *massagedDescription = [description stringByReplacingOccurrencesOfString:@"%" + withString:@"%%"]; + + NSInvocation *invocation = [NSInvocation och_invocationWithTarget:[NSException class] + selector:@selector(failureInFile:atLine:withDescription:)]; + [invocation setArgument:&fileName atIndex:2]; + [invocation setArgument:&lineNumber atIndex:3]; + [invocation setArgument:&massagedDescription atIndex:4]; + return invocation; +} + +@end + + +@implementation HCSenTestFailureReporter + +- (BOOL)willHandleFailure:(HCTestFailure *)failure +{ + return [failure.testCase respondsToSelector:@selector(failWithException:)]; +} + +- (void)executeHandlingOfFailure:(HCTestFailure *)failure +{ + NSException *exception = [self createExceptionForFailure:failure]; + [failure.testCase failWithException:exception]; +} + +- (NSException *)createExceptionForFailure:(HCTestFailure *)failure +{ + NSInvocation *invocation = [NSInvocation och_SenTestFailureInFile:failure.fileName + atLine:failure.lineNumber + description:failure.reason]; + [invocation invoke]; + __unsafe_unretained NSException *result = nil; + [invocation getReturnValue:&result]; + return result; +} + +@end diff --git a/Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCTestFailure.h b/Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCTestFailure.h new file mode 100644 index 0000000..58615db --- /dev/null +++ b/Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCTestFailure.h @@ -0,0 +1,42 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import + + +NS_ASSUME_NONNULL_BEGIN + +/*! + @abstract Test failure location and reason. + */ +@interface HCTestFailure : NSObject + +/*! + * @abstract Test case used to run test method. + * @discussion Can be nil. + * + * For unmet OCHamcrest assertions, if the assertion was assertThat or + * assertWithTimeout, testCase will be the test case instance. + */ +@property (nonatomic, strong, readonly) id testCase; + +/*! @abstract File name to report. */ +@property (nonatomic, copy, readonly) NSString *fileName; + +/*! @abstract Line number to report. */ +@property (nonatomic, assign, readonly) NSUInteger lineNumber; + +/*! @abstract Failure reason to report. */ +@property (nonatomic, strong, readonly) NSString *reason; + +/*! + * @abstract Initializes a newly allocated instance of a test failure. + */ +- (instancetype)initWithTestCase:(id)testCase + fileName:(NSString *)fileName + lineNumber:(NSUInteger)lineNumber + reason:(NSString *)reason; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCTestFailure.m b/Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCTestFailure.m new file mode 100644 index 0000000..d6d8487 --- /dev/null +++ b/Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCTestFailure.m @@ -0,0 +1,25 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCTestFailure.h" + + +@implementation HCTestFailure + +- (instancetype)initWithTestCase:(id)testCase + fileName:(NSString *)fileName + lineNumber:(NSUInteger)lineNumber + reason:(NSString *)reason +{ + self = [super init]; + if (self) + { + _testCase = testCase; + _fileName = [fileName copy]; + _lineNumber = lineNumber; + _reason = [reason copy]; + } + return self; +} + +@end diff --git a/Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCTestFailureReporter.h b/Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCTestFailureReporter.h new file mode 100644 index 0000000..b9b075e --- /dev/null +++ b/Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCTestFailureReporter.h @@ -0,0 +1,25 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import + +@class HCTestFailure; + + +NS_ASSUME_NONNULL_BEGIN + +/*! + Chain-of-responsibility for handling test failures. + */ +@interface HCTestFailureReporter : NSObject + +@property (nullable, nonatomic, strong) HCTestFailureReporter *successor; + +/*! + Handle test failure at specific location, or pass to successor. + */ +- (void)handleFailure:(HCTestFailure *)failure; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCTestFailureReporter.m b/Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCTestFailureReporter.m new file mode 100644 index 0000000..d8c7211 --- /dev/null +++ b/Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCTestFailureReporter.m @@ -0,0 +1,22 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCTestFailureReporter.h" + +@interface HCTestFailureReporter (SubclassResponsibility) +- (BOOL)willHandleFailure:(HCTestFailure *)failure; +- (void)executeHandlingOfFailure:(HCTestFailure *)failure; +@end + + +@implementation HCTestFailureReporter + +- (void)handleFailure:(HCTestFailure *)failure +{ + if ([self willHandleFailure:failure]) + [self executeHandlingOfFailure:failure]; + else + [self.successor handleFailure:failure]; +} + +@end diff --git a/Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCTestFailureReporterChain.h b/Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCTestFailureReporterChain.h new file mode 100644 index 0000000..3c1a279 --- /dev/null +++ b/Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCTestFailureReporterChain.h @@ -0,0 +1,36 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import + +@class HCTestFailureReporter; + + +NS_ASSUME_NONNULL_BEGIN + +/*! + * @abstract Manage chain-of-responsibility for reporting test failures. + * @discussion This provides a generic way of reporting test failures without knowing about the + * underlying test framework. By default, we try XCTest first, then SenTestingKit. If we run out of + * options, the final catch-all is to throw an NSException describing the test failure. + */ +@interface HCTestFailureReporterChain : NSObject + +/*! + * @abstract Returns current chain of test failure reporters. + */ ++ (HCTestFailureReporter *)reporterChain; + +/*! + * @abstract Adds specified test failure reporter to head of chain-of-responsibility. + */ ++ (void)addReporter:(HCTestFailureReporter *)reporter; + +/*! + * @abstract Resets chain-of-responsibility to default. + */ ++ (void)reset; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCTestFailureReporterChain.m b/Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCTestFailureReporterChain.m new file mode 100644 index 0000000..1c4e3ed --- /dev/null +++ b/Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCTestFailureReporterChain.m @@ -0,0 +1,41 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCTestFailureReporterChain.h" + +#import "HCGenericTestFailureReporter.h" +#import "HCSenTestFailureReporter.h" +#import "HCXCTestFailureReporter.h" + +static HCTestFailureReporter *chainHead = nil; + + +@implementation HCTestFailureReporterChain + ++ (HCTestFailureReporter *)reporterChain +{ + if (!chainHead) + { + HCTestFailureReporter *xctestReporter = [[HCXCTestFailureReporter alloc] init]; + HCTestFailureReporter *ocunitReporter = [[HCSenTestFailureReporter alloc] init]; + HCTestFailureReporter *genericReporter = [[HCGenericTestFailureReporter alloc] init]; + + chainHead = xctestReporter; + xctestReporter.successor = ocunitReporter; + ocunitReporter.successor = genericReporter; + } + return chainHead; +} + ++ (void)addReporter:(HCTestFailureReporter *)reporter +{ + reporter.successor = [self reporterChain]; + chainHead = reporter; +} + ++ (void)reset +{ + chainHead = nil; +} + +@end diff --git a/Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCXCTestFailureReporter.h b/Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCXCTestFailureReporter.h new file mode 100644 index 0000000..d77db53 --- /dev/null +++ b/Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCXCTestFailureReporter.h @@ -0,0 +1,8 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCTestFailureReporter.h" + + +@interface HCXCTestFailureReporter : HCTestFailureReporter +@end diff --git a/Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCXCTestFailureReporter.m b/Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCXCTestFailureReporter.m new file mode 100644 index 0000000..1f130da --- /dev/null +++ b/Pods/OCHamcrest/Source/Core/Helpers/TestFailureReporters/HCXCTestFailureReporter.m @@ -0,0 +1,33 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCXCTestFailureReporter.h" + +#import "HCTestFailure.h" + +@interface NSObject (PretendMethodExistsOnNSObjectToAvoidLinkingXCTest) + +- (void)recordFailureWithDescription:(NSString *)description + inFile:(NSString *)filename + atLine:(NSUInteger)lineNumber + expected:(BOOL)expected; + +@end + + +@implementation HCXCTestFailureReporter + +- (BOOL)willHandleFailure:(HCTestFailure *)failure +{ + return [failure.testCase respondsToSelector:@selector(recordFailureWithDescription:inFile:atLine:expected:)]; +} + +- (void)executeHandlingOfFailure:(HCTestFailure *)failure +{ + [failure.testCase recordFailureWithDescription:failure.reason + inFile:failure.fileName + atLine:failure.lineNumber + expected:YES]; +} + +@end diff --git a/Pods/OCHamcrest/Source/Library/Collection/HCEvery.h b/Pods/OCHamcrest/Source/Library/Collection/HCEvery.h new file mode 100644 index 0000000..d56c1df --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Collection/HCEvery.h @@ -0,0 +1,45 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import + + +NS_ASSUME_NONNULL_BEGIN + +/*! + * @abstract Matches if every item in a collection satisfies a nested matcher. + */ +@interface HCEvery : HCDiagnosingMatcher + +@property (nonatomic, strong, readonly) id matcher; + +- (instancetype)initWithMatcher:(id )matcher NS_DESIGNATED_INITIALIZER; +- (instancetype)init NS_UNAVAILABLE; + +@end + + +FOUNDATION_EXPORT id HC_everyItem(id itemMatcher); + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract Creates a matcher for collections that matches when the examined collection's items are + * all matched by the specified matcher. + * @param itemMatcher The matcher to apply to every item provided by the examined collection. + * @discussion This matcher works on any collection that conforms to the NSFastEnumeration protocol, + * performing a single pass. + * + * Example
+ *
assertThat(\@[\@"bar", \@"baz"], everyItem(startsWith(\@"ba")))
+ * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_everyItem instead. + */ +static inline id everyItem(id itemMatcher) +{ + return HC_everyItem(itemMatcher); +} +#endif + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Collection/HCEvery.m b/Pods/OCHamcrest/Source/Library/Collection/HCEvery.m new file mode 100644 index 0000000..6e78076 --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Collection/HCEvery.m @@ -0,0 +1,74 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCEvery.h" + +#import "HCRequireNonNilObject.h" + + +@implementation HCEvery + +- (instancetype)initWithMatcher:(id )matcher +{ + HCRequireNonNilObject(matcher); + + self = [super init]; + if (self) + _matcher = matcher; + return self; +} + +- (BOOL)matches:(id)collection describingMismatchTo:(id )mismatchDescription +{ + if (![collection conformsToProtocol:@protocol(NSFastEnumeration)]) + { + [[mismatchDescription appendText:@"was non-collection "] appendDescriptionOf:collection]; + return NO; + } + + if ([collection count] == 0) + { + [mismatchDescription appendText:@"was empty"]; + return NO; + } + + for (id item in collection) + { + if (![self.matcher matches:item]) + { + [self describeAllMismatchesInCollection:collection to:mismatchDescription]; + return NO; + } + } + return YES; +} + +- (void)describeAllMismatchesInCollection:(id)collection to:(id )mismatchDescription +{ + [mismatchDescription appendText:@"mismatches were: ["]; + BOOL isPastFirst = NO; + for (id item in collection) + { + if (![self.matcher matches:item]) + { + if (isPastFirst) + [mismatchDescription appendText:@", "]; + [self.matcher describeMismatchOf:item to:mismatchDescription]; + isPastFirst = YES; + } + } + [mismatchDescription appendText:@"]"]; +} + +- (void)describeTo:(id )description +{ + [[description appendText:@"every item is "] appendDescriptionOf:self.matcher]; +} + +@end + + +id HC_everyItem(id itemMatcher) +{ + return [[HCEvery alloc] initWithMatcher:itemMatcher]; +} diff --git a/Pods/OCHamcrest/Source/Library/Collection/HCHasCount.h b/Pods/OCHamcrest/Source/Library/Collection/HCHasCount.h new file mode 100644 index 0000000..ee83072 --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Collection/HCHasCount.h @@ -0,0 +1,63 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import + + +NS_ASSUME_NONNULL_BEGIN + +/*! + * @abstract Matches if collection size satisfies a nested matcher. + */ +@interface HCHasCount : HCBaseMatcher + +- (instancetype)initWithMatcher:(id )countMatcher NS_DESIGNATED_INITIALIZER; +- (instancetype)init NS_UNAVAILABLE; + +@end + + +FOUNDATION_EXPORT id HC_hasCount(id countMatcher); + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract Creates a matcher that matches when the examined object's -count method + * returns a value that satisfies the specified matcher. + * @param countMatcher A matcher for the count of an examined collection. + * @discussion + * Example
+ *
assertThat(\@[\@"foo", \@"bar"], hasCount(equalTo(@2)))
+ * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_hasCount instead. + */ +static inline id hasCount(id countMatcher) +{ + return HC_hasCount(countMatcher); +} +#endif + + +FOUNDATION_EXPORT id HC_hasCountOf(NSUInteger count); + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract Creates a matcher that matches when the examined object's -count method + * returns a value that equals the specified value. + * @param value Value to compare against as the expected count. + * @discussion + * Example
+ *
assertThat(\@[\@"foo", \@"bar"], hasCountOf(2))
+ * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_hasCountOf instead. + */ +static inline id hasCountOf(NSUInteger value) +{ + return HC_hasCountOf(value); +} +#endif + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Collection/HCHasCount.m b/Pods/OCHamcrest/Source/Library/Collection/HCHasCount.m new file mode 100644 index 0000000..9f63d0e --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Collection/HCHasCount.m @@ -0,0 +1,65 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCHasCount.h" + +#import "HCIsEqual.h" + + +@interface HCHasCount () +@property (nonatomic, strong, readonly) id countMatcher; +@end + +@implementation HCHasCount + +- (instancetype)initWithMatcher:(id )countMatcher +{ + self = [super init]; + if (self) + _countMatcher = countMatcher; + return self; +} + +- (BOOL)matches:(nullable id)item +{ + if (![self itemHasCount:item]) + return NO; + + NSNumber *count = @([item count]); + return [self.countMatcher matches:count]; +} + +- (BOOL)itemHasCount:(id)item +{ + return [item respondsToSelector:@selector(count)]; +} + +- (void)describeMismatchOf:(nullable id)item to:(nullable id )mismatchDescription +{ + [mismatchDescription appendText:@"was "]; + if ([self itemHasCount:item]) + { + [[[mismatchDescription appendText:@"count of "] + appendDescriptionOf:@([item count])] + appendText:@" with "]; + } + [mismatchDescription appendDescriptionOf:item]; +} + +- (void)describeTo:(id )description +{ + [[description appendText:@"a collection with count of "] appendDescriptionOf:self.countMatcher]; +} + +@end + + +id HC_hasCount(id countMatcher) +{ + return [[HCHasCount alloc] initWithMatcher:countMatcher]; +} + +id HC_hasCountOf(NSUInteger value) +{ + return HC_hasCount(HC_equalTo(@(value))); +} diff --git a/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionContaining.h b/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionContaining.h new file mode 100644 index 0000000..7a5d6f6 --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionContaining.h @@ -0,0 +1,95 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import + + +NS_ASSUME_NONNULL_BEGIN + +/*! + * @abstract Matches if any item in a collection satisfies a nested matcher. + */ +@interface HCIsCollectionContaining : HCDiagnosingMatcher + +- (instancetype)initWithMatcher:(id )elementMatcher NS_DESIGNATED_INITIALIZER; +- (instancetype)init NS_UNAVAILABLE; + +@end + + +FOUNDATION_EXPORT id HC_hasItem(id itemMatcher); + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract hasItem(itemMatcher) - + * Creates a matcher for collections that matches when at least one item in the examined collection + * satisfies the specified matcher. + * @param itemMatcher The matcher to apply to collection elements, or an expected value + * for equalTo matching. + * @discussion This matcher works on any collection that conforms to the NSFastEnumeration protocol, + * performing a single pass. + * + * If itemMatcher is not a matcher, it is implicitly wrapped in an equalTo matcher + * to check for equality. + * + * Example
+ *
assertThat(\@[\@1, \@2, \@3], hasItem(equalTo(\@2)))
+ * + *
assertThat(\@[\@1, \@2, \@3], hasItem(\@2))
+ * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_hasItem instead. + */ +#define hasItem HC_hasItem +#endif + + +FOUNDATION_EXPORT id HC_hasItemsIn(NSArray *itemMatchers); + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract Creates a matcher for collections that matches when all specified matchers are + * satisfied by any item in the examined collection. + * @param itemMatchers An array of matchers. Any element that is not a matcher is implicitly wrapped + * in an equalTo matcher to check for equality. + * @discussion This matcher works on any collection that conforms to the NSFastEnumeration protocol, + * performing one pass for each matcher. + * + * Example
+ *
assertThat(\@[\@"foo", \@"bar", \@"baz"], hasItems(\@[endsWith(\@"z"), endsWith(\@"o")]))
+ * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_hasItemsIn instead. + */ +static inline id hasItemsIn(NSArray *itemMatchers) +{ + return HC_hasItemsIn(itemMatchers); +} +#endif + + +FOUNDATION_EXPORT id HC_hasItems(id itemMatchers, ...) NS_REQUIRES_NIL_TERMINATION; + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract Creates a matcher for collections that matches when all specified matchers are + * satisfied by any item in the examined collection. + * @param itemMatchers... A comma-separated list of matchers ending with nil. + * Any argument that is not a matcher is implicitly wrapped in an equalTo matcher to check + * for equality. + * @discussion This matcher works on any collection that conforms to the NSFastEnumeration protocol, + * performing one pass for each matcher. + * + * Example
+ *
assertThat(\@[\@"foo", \@"bar", \@"baz"], hasItems(endsWith(\@"z"), endsWith(\@"o"), nil))
+ * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_hasItems instead. + */ +#define hasItems(itemMatchers...) HC_hasItems(itemMatchers) +#endif + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionContaining.m b/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionContaining.m new file mode 100644 index 0000000..96cb321 --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionContaining.m @@ -0,0 +1,88 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCIsCollectionContaining.h" + +#import "HCAllOf.h" +#import "HCCollect.h" +#import "HCRequireNonNilObject.h" +#import "HCWrapInMatcher.h" + + +@interface HCIsCollectionContaining () +@property (nonatomic, strong, readonly) id elementMatcher; +@end + +@implementation HCIsCollectionContaining + +- (instancetype)initWithMatcher:(id )elementMatcher +{ + self = [super init]; + if (self) + _elementMatcher = elementMatcher; + return self; +} + +- (BOOL)matches:(id)collection describingMismatchTo:(id )mismatchDescription +{ + if (![collection conformsToProtocol:@protocol(NSFastEnumeration)]) + { + [[mismatchDescription appendText:@"was non-collection "] appendDescriptionOf:collection]; + return NO; + } + + if ([collection count] == 0) + { + [mismatchDescription appendText:@"was empty"]; + return NO; + } + + for (id item in collection) + if ([self.elementMatcher matches:item]) + return YES; + + [mismatchDescription appendText:@"mismatches were: ["]; + BOOL isPastFirst = NO; + for (id item in collection) + { + if (isPastFirst) + [mismatchDescription appendText:@", "]; + [self.elementMatcher describeMismatchOf:item to:mismatchDescription]; + isPastFirst = YES; + } + [mismatchDescription appendText:@"]"]; + return NO; +} + +- (void)describeTo:(id )description +{ + [[description appendText:@"a collection containing "] + appendDescriptionOf:self.elementMatcher]; +} + +@end + + +id HC_hasItem(id itemMatcher) +{ + HCRequireNonNilObject(itemMatcher); + return [[HCIsCollectionContaining alloc] initWithMatcher:HCWrapInMatcher(itemMatcher)]; +} + +id HC_hasItemsIn(NSArray *itemMatchers) +{ + NSMutableArray *matchers = [[NSMutableArray alloc] init]; + for (id itemMatcher in itemMatchers) + [matchers addObject:HC_hasItem(itemMatcher)]; + return HC_allOfIn(matchers); +} + +id HC_hasItems(id itemMatchers, ...) +{ + va_list args; + va_start(args, itemMatchers); + NSArray *array = HCCollectItems(itemMatchers, args); + va_end(args); + + return HC_hasItemsIn(array); +} diff --git a/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionContainingInAnyOrder.h b/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionContainingInAnyOrder.h new file mode 100644 index 0000000..c75d0c7 --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionContainingInAnyOrder.h @@ -0,0 +1,79 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import + + +NS_ASSUME_NONNULL_BEGIN + +/*! + * @abstract Matches if every item in a collection, in any order, satisfy a list of nested matchers. + */ +@interface HCIsCollectionContainingInAnyOrder : HCDiagnosingMatcher + +- (instancetype)initWithMatchers:(NSArray> *)itemMatchers NS_DESIGNATED_INITIALIZER; +- (instancetype)init NS_UNAVAILABLE; + +@end + + +FOUNDATION_EXPORT id HC_containsInAnyOrderIn(NSArray *itemMatchers); + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract Creates an order-agnostic matcher for collections that matches when each item in the + * examined collection satisfies one matcher anywhere in the specified list of matchers. + * @param itemMatchers An array of matchers. Any element that is not a matcher is implicitly wrapped + * in an equalTo matcher to check for equality. + * @discussion This matcher works on any collection that conforms to the NSFastEnumeration protocol, + * performing a single pass. For a positive match, the examined collection must be of the same + * length as the specified list of matchers. + * + * Note: Each matcher in the specified list will only be used once during a given examination, so + * be careful when specifying matchers that may be satisfied by more than one entry in an examined + * collection. + * + * Examples
+ *
assertThat(\@[\@"foo", \@"bar"], containsInAnyOrderIn(\@[equalTo(\@"bar"), equalTo(\@"foo")]))
+ *
assertThat(\@[\@"foo", \@"bar"], containsInAnyOrderIn(@[\@"bar", \@"foo"]))
+ * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_containsInAnyOrderIn instead. + */ +static inline id containsInAnyOrderIn(NSArray *itemMatchers) +{ + return HC_containsInAnyOrderIn(itemMatchers); +} +#endif + + +FOUNDATION_EXPORT id HC_containsInAnyOrder(id itemMatchers, ...) NS_REQUIRES_NIL_TERMINATION; + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract Creates an order-agnostic matcher for collections that matches when each item in the + * examined collection satisfies one matcher anywhere in the specified list of matchers. + * @param itemMatchers... A comma-separated list of matchers ending with nil. + * Any argument that is not a matcher is implicitly wrapped in an equalTo matcher to check + * for equality. + * @discussion This matcher works on any collection that conforms to the NSFastEnumeration protocol, + * performing a single pass. For a positive match, the examined collection must be of the same + * length as the specified list of matchers. + * + * Note: Each matcher in the specified list will only be used once during a given examination, so + * be careful when specifying matchers that may be satisfied by more than one entry in an examined + * collection. + * + * Examples
+ *
assertThat(\@[\@"foo", \@"bar"], containsInAnyOrder(equalTo(\@"bar"), equalTo(\@"foo"), nil))
+ *
assertThat(\@[\@"foo", \@"bar"], containsInAnyOrder(\@"bar", \@"foo", nil))
+ * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_containsInAnyOrder instead. + */ +#define containsInAnyOrder(itemMatchers...) HC_containsInAnyOrder(itemMatchers) +#endif + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionContainingInAnyOrder.m b/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionContainingInAnyOrder.m new file mode 100644 index 0000000..9e5dc61 --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionContainingInAnyOrder.m @@ -0,0 +1,115 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCIsCollectionContainingInAnyOrder.h" + +#import "HCCollect.h" + + +@interface HCMatchingInAnyOrder : NSObject +@property (nonatomic, copy, readonly) NSMutableArray> *matchers; +@property (nonatomic, strong, readonly) id mismatchDescription; +@end + +@implementation HCMatchingInAnyOrder + +- (instancetype)initWithMatchers:(NSArray> *)itemMatchers + mismatchDescription:(id )description +{ + self = [super init]; + if (self) + { + _matchers = [itemMatchers mutableCopy]; + _mismatchDescription = description; + } + return self; +} + +- (BOOL)matches:(nullable id)item +{ + NSUInteger index = 0; + for (id matcher in self.matchers) + { + if ([matcher matches:item]) + { + [self.matchers removeObjectAtIndex:index]; + return YES; + } + ++index; + } + [[self.mismatchDescription appendText:@"not matched: "] + appendDescriptionOf:item]; + return NO; +} + +- (BOOL)isFinishedWith:(NSArray *)collection +{ + if (self.matchers.count == 0) + return YES; + + [[[[self.mismatchDescription appendText:@"no item matches: "] + appendList:self.matchers start:@"" separator:@", " end:@""] + appendText:@" in "] + appendList:collection start:@"[" separator:@", " end:@"]"]; + return NO; +} + +@end + + +@interface HCIsCollectionContainingInAnyOrder () +@property (nonatomic, copy, readonly) NSArray> *matchers; +@end + +@implementation HCIsCollectionContainingInAnyOrder + +- (instancetype)initWithMatchers:(NSArray> *)itemMatchers +{ + self = [super init]; + if (self) + _matchers = [itemMatchers copy]; + return self; +} + +- (BOOL)matches:(id)collection describingMismatchTo:(id )mismatchDescription +{ + if (![collection conformsToProtocol:@protocol(NSFastEnumeration)]) + { + [[mismatchDescription appendText:@"was non-collection "] appendDescriptionOf:collection]; + return NO; + } + + HCMatchingInAnyOrder *matchSequence = + [[HCMatchingInAnyOrder alloc] initWithMatchers:self.matchers + mismatchDescription:mismatchDescription]; + for (id item in collection) + if (![matchSequence matches:item]) + return NO; + + return [matchSequence isFinishedWith:collection]; +} + +- (void)describeTo:(id )description +{ + [[[description appendText:@"a collection over "] + appendList:self.matchers start:@"[" separator:@", " end:@"]"] + appendText:@" in any order"]; +} + +@end + + +id HC_containsInAnyOrderIn(NSArray *itemMatchers) +{ + return [[HCIsCollectionContainingInAnyOrder alloc] initWithMatchers:HCWrapIntoMatchers(itemMatchers)]; +} + +id HC_containsInAnyOrder(id itemMatchers, ...) +{ + va_list args; + va_start(args, itemMatchers); + NSArray *array = HCCollectItems(itemMatchers, args); + va_end(args); + + return HC_containsInAnyOrderIn(array); +} diff --git a/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionContainingInOrder.h b/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionContainingInOrder.h new file mode 100644 index 0000000..a011224 --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionContainingInOrder.h @@ -0,0 +1,71 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import + + +NS_ASSUME_NONNULL_BEGIN + +/*! + * @abstract Matches if every item in a collection satisfies a list of nested matchers, in order. + */ +@interface HCIsCollectionContainingInOrder : HCDiagnosingMatcher + +- (instancetype)initWithMatchers:(NSArray> *)itemMatchers NS_DESIGNATED_INITIALIZER; +- (instancetype)init NS_UNAVAILABLE; + +@end + + +FOUNDATION_EXPORT id HC_containsIn(NSArray *itemMatchers); + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract Creates a matcher for collections that matches when each item in the examined + * collection satisfies the corresponding matcher in the specified list of matchers. + * @param itemMatchers An array of matchers. Any element that is not a matcher is implicitly wrapped + * in an equalTo matcher to check for equality. + * @discussion This matcher works on any collection that conforms to the NSFastEnumeration protocol, + * performing a single pass. For a positive match, the examined collection must be of the same + * length as the specified list of matchers. + * + * Examples
+ *
assertThat(\@[\@"foo", \@"bar"], containsIn(\@[equalTo(\@"foo"), equalTo(\@"bar")]))
+ *
assertThat(\@[\@"foo", \@"bar"], containsIn(\@[\@"foo", \@"bar"]))
+ * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_containsIn instead.) + */ +static inline id containsIn(NSArray *itemMatchers) +{ + return HC_containsIn(itemMatchers); +} +#endif + + +FOUNDATION_EXPORT id HC_contains(id itemMatchers, ...) NS_REQUIRES_NIL_TERMINATION; + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract Creates a matcher for collections that matches when each item in the examined + * collection satisfies the corresponding matcher in the specified list of matchers. + * @param itemMatchers... A comma-separated list of matchers ending with nil. + * Any argument that is not a matcher is implicitly wrapped in an equalTo matcher to check + * for equality. + * @discussion This matcher works on any collection that conforms to the NSFastEnumeration protocol, + * performing a single pass. For a positive match, the examined collection must be of the same + * length as the specified list of matchers. + * + * Examples
+ *
assertThat(\@[\@"foo", \@"bar"], contains(equalTo(\@"foo"), equalTo(\@"bar"), nil))
+ *
assertThat(\@[\@"foo", \@"bar"], contains(\@"foo", \@"bar", nil))
+ * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_contains instead.) + */ +#define contains(itemMatchers...) HC_contains(itemMatchers) +#endif + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionContainingInOrder.m b/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionContainingInOrder.m new file mode 100644 index 0000000..eab6614 --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionContainingInOrder.m @@ -0,0 +1,134 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCIsCollectionContainingInOrder.h" + +#import "HCCollect.h" + + +@interface HCMatchSequence : NSObject +@property (nonatomic, copy, readonly) NSArray> *matchers; +@property (nonatomic, strong, readonly) id mismatchDescription; +@property (nonatomic, assign) NSUInteger nextMatchIndex; +@end + +@implementation HCMatchSequence + +- (instancetype)initWithMatchers:(NSArray> *)itemMatchers + mismatchDescription:(id )description +{ + self = [super init]; + if (self) + { + _matchers = [itemMatchers copy]; + _mismatchDescription = description; + } + return self; +} + +- (BOOL)matches:(nullable id)item +{ + return [self isNotSurplus:item] && [self isMatched:item]; +} + +- (BOOL)isFinished +{ + if (self.nextMatchIndex < self.matchers.count) + { + [[self.mismatchDescription appendText:@"no item was "] + appendDescriptionOf:self.matchers[self.nextMatchIndex]]; + return NO; + } + return YES; +} + +- (BOOL)isMatched:(id)item +{ + id matcher = self.matchers[self.nextMatchIndex]; + if (![matcher matches:item]) + { + [self describeMismatchOfMatcher:matcher item:item]; + return NO; + } + ++self.nextMatchIndex; + return YES; +} + +- (BOOL)isNotSurplus:(id)item +{ + if (self.matchers.count <= self.nextMatchIndex) + { + [[self.mismatchDescription + appendText:[NSString stringWithFormat:@"exceeded count of %lu with item ", + (unsigned long)self.matchers.count]] + appendDescriptionOf:item]; + return NO; + } + return YES; +} + +- (void)describeMismatchOfMatcher:(id )matcher item:(id)item +{ + [self.mismatchDescription appendText:[NSString stringWithFormat:@"item %lu: ", + (unsigned long)self.nextMatchIndex]]; + [matcher describeMismatchOf:item to:self.mismatchDescription]; +} + +@end + + +@interface HCIsCollectionContainingInOrder () +@property (nonatomic, copy, readonly) NSArray> *matchers; +@end + +@implementation HCIsCollectionContainingInOrder + +- (instancetype)initWithMatchers:(NSArray> *)itemMatchers +{ + self = [super init]; + if (self) + _matchers = [itemMatchers copy]; + return self; +} + +- (BOOL)matches:(id)collection describingMismatchTo:(id )mismatchDescription +{ + if (![collection conformsToProtocol:@protocol(NSFastEnumeration)]) + { + [[mismatchDescription appendText:@"was non-collection "] appendDescriptionOf:collection]; + return NO; + } + + HCMatchSequence *matchSequence = + [[HCMatchSequence alloc] initWithMatchers:self.matchers + mismatchDescription:mismatchDescription]; + for (id item in collection) + if (![matchSequence matches:item]) + return NO; + + return [matchSequence isFinished]; +} + +- (void)describeTo:(id )description +{ + [[description appendText:@"a collection containing "] + appendList:self.matchers start:@"[" separator:@", " end:@"]"]; +} + +@end + + +id HC_containsIn(NSArray *itemMatchers) +{ + return [[HCIsCollectionContainingInOrder alloc] initWithMatchers:HCWrapIntoMatchers(itemMatchers)]; +} + +id HC_contains(id itemMatchers, ...) +{ + va_list args; + va_start(args, itemMatchers); + NSArray *array = HCCollectItems(itemMatchers, args); + va_end(args); + + return HC_containsIn(array); +} diff --git a/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionContainingInRelativeOrder.h b/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionContainingInRelativeOrder.h new file mode 100644 index 0000000..fc25327 --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionContainingInRelativeOrder.h @@ -0,0 +1,48 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import + + +NS_ASSUME_NONNULL_BEGIN + +/*! + * @abstract Matches if every item in a collection satisfies a list of nested matchers, in order. + */ +@interface HCIsCollectionContainingInRelativeOrder : HCDiagnosingMatcher + +- (instancetype)initWithMatchers:(NSArray> *)itemMatchers NS_DESIGNATED_INITIALIZER; +- (instancetype)init NS_UNAVAILABLE; + +@end + + +FOUNDATION_EXPORT id HC_containsInRelativeOrder(NSArray *itemMatchers); + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract Creates a matcher for collections that matches when the examined collection contains + * items satisfying the specified list of matchers, in the same relative order. + * @param itemMatchers Array of matchers that must be satisfied by the items provided by the + * examined collection in the same relative order. + * @discussion This matcher works on any collection that conforms to the NSFastEnumeration protocol, + * performing a single pass. + * + * Any element of itemMatchers that is not a matcher is implicitly wrapped in an + * equalTo matcher to check for equality. + * + * Examples
+ *
assertThat(\@[\@1, \@2, \@3, \@4, \@5], containsInRelativeOrder(equalTo(\@2), equalTo(\@4)))
+ *
assertThat(\@[\@1, \@2, \@3, \@4, \@5], containsInRelativeOrder(\@2, \@4))
+ * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_containsInRelativeOrder instead. + */ +static inline id containsInRelativeOrder(NSArray *itemMatchers) +{ + return HC_containsInRelativeOrder(itemMatchers); +} +#endif + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionContainingInRelativeOrder.m b/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionContainingInRelativeOrder.m new file mode 100644 index 0000000..264e535 --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionContainingInRelativeOrder.m @@ -0,0 +1,124 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCIsCollectionContainingInRelativeOrder.h" + +#import "HCCollect.h" + + +static void HCRequireNonEmptyArray(NSArray *array) +{ + if (!array.count) + { + @throw [NSException exceptionWithName:@"EmptyArray" + reason:@"Must be non-empty array" + userInfo:nil]; + } +} + + +@interface HCMatchSequenceInRelativeOrder : NSObject +@property (nonatomic, copy, readonly) NSArray> *matchers; +@property (nonatomic, strong, readonly) id mismatchDescription; +@property (nonatomic, assign) NSUInteger nextMatchIndex; +@property (nonatomic, strong) id lastMatchedItem; +@end + +@implementation HCMatchSequenceInRelativeOrder + +- (instancetype)initWithMatchers:(NSArray> *)itemMatchers + mismatchDescription:(id )description +{ + self = [super init]; + if (self) + { + _matchers = [itemMatchers copy]; + _mismatchDescription = description; + } + return self; +} + +- (void)processItems:(NSArray *)sequence +{ + for (id item in sequence) + { + if (self.nextMatchIndex < self.matchers.count) + { + id matcher = self.matchers[self.nextMatchIndex]; + if ([matcher matches:item]) + { + self.lastMatchedItem = item; + self.nextMatchIndex += 1; + } + } + } +} + +- (BOOL)isFinished +{ + if (self.nextMatchIndex < self.matchers.count) + { + [[self.mismatchDescription + appendDescriptionOf:self.matchers[self.nextMatchIndex]] + appendText:@" was not found"]; + if (self.lastMatchedItem != nil) + { + [[self.mismatchDescription + appendText:@" after "] + appendDescriptionOf:self.lastMatchedItem]; + } + return NO; + } + return YES; +} + +@end + + +@interface HCIsCollectionContainingInRelativeOrder () +@property (nonatomic, copy, readonly) NSArray> *matchers; +@end + +@implementation HCIsCollectionContainingInRelativeOrder + +- (instancetype)initWithMatchers:(NSArray> *)itemMatchers +{ + HCRequireNonEmptyArray(itemMatchers); + + self = [super init]; + if (self) + _matchers = [itemMatchers copy]; + return self; +} + +- (BOOL)matches:(id)collection describingMismatchTo:(id )mismatchDescription +{ + if (![collection conformsToProtocol:@protocol(NSFastEnumeration)]) + { + [[mismatchDescription appendText:@"was non-collection "] appendDescriptionOf:collection]; + return NO; + } + + HCMatchSequenceInRelativeOrder *matchSequenceInRelativeOrder = + [[HCMatchSequenceInRelativeOrder alloc] initWithMatchers:self.matchers + mismatchDescription:mismatchDescription]; + [matchSequenceInRelativeOrder processItems:collection]; + return [matchSequenceInRelativeOrder isFinished]; +} + +- (void)describeTo:(id )description +{ + [[[description + appendText:@"a collection containing "] + appendList:self.matchers start:@"[" separator:@", " end:@"]"] + appendText:@" in relative order"]; +} + +@end + + +id HC_containsInRelativeOrder(NSArray *itemMatchers) +{ + NSArray *matchers = HCWrapIntoMatchers(itemMatchers); + return [[HCIsCollectionContainingInRelativeOrder alloc] initWithMatchers:matchers]; +} diff --git a/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionOnlyContaining.h b/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionOnlyContaining.h new file mode 100644 index 0000000..fe050de --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionOnlyContaining.h @@ -0,0 +1,62 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import + + +NS_ASSUME_NONNULL_BEGIN + +/*! + * @abstract Matches if every item in a collection satisfies any of the nested matchers. + */ +@interface HCIsCollectionOnlyContaining : HCEvery +@end + +FOUNDATION_EXPORT id HC_onlyContainsIn(NSArray *itemMatchers); + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract Creates a matcher for collections that matches when each item of the examined + * collection satisfies any of the specified matchers. + * @param itemMatchers An array of matchers. Any element that is not a matcher is implicitly wrapped + * in an equalTo matcher to check for equality. + * @discussion This matcher works on any collection that conforms to the NSFastEnumeration protocol, + * performing a single pass. Any matcher may match multiple elements. + * + * Example
+ *
assertThat(\@[\@"Jon", \@"John", \@"Bob"], onlyContainsIn(\@[startsWith(\@"Jo"), startsWith(\@("Bo")]))
+ * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_onlyContainsIn instead. + */ +static inline id onlyContainsIn(NSArray *itemMatchers) +{ + return HC_onlyContainsIn(itemMatchers); +} +#endif + + +FOUNDATION_EXPORT id HC_onlyContains(id itemMatchers, ...) NS_REQUIRES_NIL_TERMINATION; + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract Creates a matcher for collections that matches when each item of the examined + * collection satisfies any of the specified matchers. + * @param itemMatchers... A comma-separated list of matchers ending with nil. + * Any argument that is not a matcher is implicitly wrapped in an equalTo matcher to check for + * equality. + * @discussion This matcher works on any collection that conforms to the NSFastEnumeration protocol, + * performing a single pass. Any matcher may match multiple elements. + * + * Example
+ *
assertThat(\@[\@"Jon", \@"John", \@"Bob"], onlyContains(startsWith(\@"Jo"), startsWith(\@("Bo"), nil))
+ * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_onlyContains instead. + */ +#define onlyContains(itemMatchers...) HC_onlyContains(itemMatchers) +#endif + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionOnlyContaining.m b/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionOnlyContaining.m new file mode 100644 index 0000000..d5c5fed --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionOnlyContaining.m @@ -0,0 +1,34 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCIsCollectionOnlyContaining.h" + +#import "HCAnyOf.h" +#import "HCCollect.h" + + +@implementation HCIsCollectionOnlyContaining + +- (void)describeTo:(id )description +{ + [[description appendText:@"a collection containing items matching "] + appendDescriptionOf:self.matcher]; +} + +@end + + +id HC_onlyContainsIn(NSArray *itemMatchers) +{ + return [[HCIsCollectionOnlyContaining alloc] initWithMatcher:HC_anyOfIn(itemMatchers)]; +} + +id HC_onlyContains(id itemMatchers, ...) +{ + va_list args; + va_start(args, itemMatchers); + NSArray *array = HCCollectItems(itemMatchers, args); + va_end(args); + + return HC_onlyContainsIn(array); +} diff --git a/Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContaining.h b/Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContaining.h new file mode 100644 index 0000000..f0567a3 --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContaining.h @@ -0,0 +1,47 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import + + +NS_ASSUME_NONNULL_BEGIN + +/*! + * @abstract Matches if any entry in a dictionary satisfies the nested pair of matchers. + */ +@interface HCIsDictionaryContaining : HCBaseMatcher + +- (instancetype)initWithKeyMatcher:(id )keyMatcher + valueMatcher:(id )valueMatcher NS_DESIGNATED_INITIALIZER; +- (instancetype)init NS_UNAVAILABLE; + +@end + + +FOUNDATION_EXPORT id HC_hasEntry(id keyMatcher, id valueMatcher); + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract Creates a matcher for NSDictionaries that matches when the examined dictionary contains + * at least one entry whose key satisfies the specified keyMatcher and whose + * value satisfies the specified valueMatcher. + * @param keyMatcher The matcher to satisfy for the key, or an expected value for equalTo matching. + * @param valueMatcher The matcher to satisfy for the value, or an expected value for equalTo matching. + * @discussion Any argument that is not a matcher is implicitly wrapped in an equalTo + * matcher to check for equality. + * + * Examples
+ *
assertThat(myDictionary, hasEntry(equalTo(\@"foo"), equalTo(\@"bar")))
+ *
assertThat(myDictionary, hasEntry(\@"foo", \@"bar"))
+ * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_hasEntry instead. + */ +static inline id hasEntry(id keyMatcher, id valueMatcher) +{ + return HC_hasEntry(keyMatcher, valueMatcher); +} +#endif + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContaining.m b/Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContaining.m new file mode 100644 index 0000000..e11011e --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContaining.m @@ -0,0 +1,56 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCIsDictionaryContaining.h" + +#import "HCRequireNonNilObject.h" +#import "HCWrapInMatcher.h" + + +@interface HCIsDictionaryContaining () +@property (nonatomic, strong, readonly) id keyMatcher; +@property (nonatomic, strong, readonly) id valueMatcher; +@end + +@implementation HCIsDictionaryContaining + +- (instancetype)initWithKeyMatcher:(id )keyMatcher + valueMatcher:(id )valueMatcher +{ + self = [super init]; + if (self) + { + _keyMatcher = keyMatcher; + _valueMatcher = valueMatcher; + } + return self; +} + +- (BOOL)matches:(id)dict +{ + if ([dict isKindOfClass:[NSDictionary class]]) + for (id oneKey in dict) + if ([self.keyMatcher matches:oneKey] && [self.valueMatcher matches:dict[oneKey]]) + return YES; + return NO; +} + +- (void)describeTo:(id )description +{ + [[[[[description appendText:@"a dictionary containing { "] + appendDescriptionOf:self.keyMatcher] + appendText:@" = "] + appendDescriptionOf:self.valueMatcher] + appendText:@"; }"]; +} + +@end + + +id HC_hasEntry(id keyMatcher, id valueMatcher) +{ + HCRequireNonNilObject(keyMatcher); + HCRequireNonNilObject(valueMatcher); + return [[HCIsDictionaryContaining alloc] initWithKeyMatcher:HCWrapInMatcher(keyMatcher) + valueMatcher:HCWrapInMatcher(valueMatcher)]; +} diff --git a/Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingEntries.h b/Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingEntries.h new file mode 100644 index 0000000..89b0ee2 --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingEntries.h @@ -0,0 +1,68 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import + + +NS_ASSUME_NONNULL_BEGIN + +/*! + * @abstract Matches if dictionary contains entries that satisfy the list of keys and value + * matchers. + */ +@interface HCIsDictionaryContainingEntries : HCDiagnosingMatcher + +- (instancetype)initWithKeys:(NSArray *)keys + valueMatchers:(NSArray> *)valueMatchers NS_DESIGNATED_INITIALIZER; +- (instancetype)init NS_UNAVAILABLE; + +@end + +FOUNDATION_EXPORT id HC_hasEntriesIn(NSDictionary *valueMatchersForKeys); + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract Creates a matcher for NSDictionaries that matches when the examined dictionary contains + * entries satisfying a dictionary of keys and their value matchers. + * @param valueMatchersForKeys A dictionary of keys (not matchers) and their value matchers. Any + * value argument that is not a matcher is implicitly wrapped in an equalTo matcher to + * check for equality. + * @discussion + * Examples
+ *
assertThat(personDict, hasEntriesIn(\@{\@"firstName": equalTo(\@"Jon"), \@"lastName": equalTo(\@"Reid")}))
+ *
assertThat(personDict, hasEntriesIn(\@{\@"firstName": \@"Jon", \@"lastName": \@"Reid"}))
+ * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_hasEntryIn instead. + */ +static inline id hasEntriesIn(NSDictionary *valueMatchersForKeys) +{ + return HC_hasEntriesIn(valueMatchersForKeys); +} +#endif + +FOUNDATION_EXPORT id HC_hasEntries(id keysAndValueMatchers, ...) NS_REQUIRES_NIL_TERMINATION; + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract Creates a matcher for NSDictionaries that matches when the examined dictionary contains + * entries satisfying a list of alternating keys and their value matchers. + * @param keysAndValueMatchers... A key (not a matcher) to look up, followed by a value matcher or + * an expected value for equalTo matching, in a comma-separated list ending + * with nil + * @discussion Note that the keys must be actual keys, not matchers. Any value argument that is not + * a matcher is implicitly wrapped in an equalTo matcher to check for equality. + * + * Examples
+ *
assertThat(personDict, hasEntries(\@"firstName", equalTo(\@"Jon"), \@"lastName", equalTo(\@"Reid"), nil))
+ *
assertThat(personDict, hasEntries(\@"firstName", \@"Jon", \@"lastName", \@"Reid", nil))
+ * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_hasEntry instead. + */ +#define hasEntries(keysAndValueMatchers...) HC_hasEntries(keysAndValueMatchers) +#endif + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingEntries.m b/Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingEntries.m new file mode 100644 index 0000000..7585df2 --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingEntries.m @@ -0,0 +1,132 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCIsDictionaryContainingEntries.h" + +#import "HCWrapInMatcher.h" + + +@interface HCIsDictionaryContainingEntries () +@property (nonatomic, copy, readonly) NSArray *keys; +@property (nonatomic, copy, readonly) NSArray> *valueMatchers; +@end + +@implementation HCIsDictionaryContainingEntries + +- (instancetype)initWithKeys:(NSArray *)keys + valueMatchers:(NSArray> *)valueMatchers +{ + self = [super init]; + if (self) + { + _keys = [keys copy]; + _valueMatchers = [valueMatchers copy]; + } + return self; +} + +- (BOOL)matches:(id)dict describingMismatchTo:(id )mismatchDescription +{ + if (![dict isKindOfClass:[NSDictionary class]]) + { + [[mismatchDescription appendText:@"was non-dictionary "] appendDescriptionOf:dict]; + return NO; + } + + NSUInteger count = self.keys.count; + for (NSUInteger index = 0; index < count; ++index) + { + id key = self.keys[index]; + if (dict[key] == nil) + { + [[[[mismatchDescription appendText:@"no "] + appendDescriptionOf:key] + appendText:@" key in "] + appendDescriptionOf:dict]; + return NO; + } + + id valueMatcher = self.valueMatchers[index]; + id actualValue = dict[key]; + + if (![valueMatcher matches:actualValue]) + { + [[[[mismatchDescription appendText:@"value for "] + appendDescriptionOf:key] + appendText:@" was "] + appendDescriptionOf:actualValue]; + return NO; + } + } + + return YES; +} + +- (void)describeKeyValueAtIndex:(NSUInteger)index to:(id )description +{ + [[[[description appendDescriptionOf:self.keys[index]] + appendText:@" = "] + appendDescriptionOf:self.valueMatchers[index]] + appendText:@"; "]; +} + +- (void)describeTo:(id )description +{ + [description appendText:@"a dictionary containing { "]; + NSUInteger count = [self.keys count]; + NSUInteger index = 0; + for (; index < count - 1; ++index) + [self describeKeyValueAtIndex:index to:description]; + [self describeKeyValueAtIndex:index to:description]; + [description appendText:@"}"]; +} + +@end + + +static void requirePairedObject(id obj) +{ + if (obj == nil) + { + @throw [NSException exceptionWithName:@"NilObject" + reason:@"HC_hasEntries keys and value matchers must be paired" + userInfo:nil]; + } +} + + +id HC_hasEntriesIn(NSDictionary *valueMatchersForKeys) +{ + NSArray *keys = valueMatchersForKeys.allKeys; + NSMutableArray> *valueMatchers = [[NSMutableArray alloc] init]; + for (id key in keys) + [valueMatchers addObject:HCWrapInMatcher(valueMatchersForKeys[key])]; + + return [[HCIsDictionaryContainingEntries alloc] initWithKeys:keys + valueMatchers:valueMatchers]; +} + +id HC_hasEntries(id keysAndValueMatchers, ...) +{ + va_list args; + va_start(args, keysAndValueMatchers); + + id key = keysAndValueMatchers; + id valueMatcher = va_arg(args, id); + requirePairedObject(valueMatcher); + NSMutableArray *keys = [NSMutableArray arrayWithObject:key]; + NSMutableArray> *valueMatchers = [NSMutableArray arrayWithObject:HCWrapInMatcher(valueMatcher)]; + + key = va_arg(args, id); + while (key != nil) + { + [keys addObject:key]; + valueMatcher = va_arg(args, id); + requirePairedObject(valueMatcher); + [valueMatchers addObject:HCWrapInMatcher(valueMatcher)]; + key = va_arg(args, id); + } + + return [[HCIsDictionaryContainingEntries alloc] initWithKeys:keys + valueMatchers:valueMatchers]; +} diff --git a/Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingKey.h b/Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingKey.h new file mode 100644 index 0000000..9785dd5 --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingKey.h @@ -0,0 +1,44 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import + + +NS_ASSUME_NONNULL_BEGIN + +/*! + * @abstract Matches if any entry in a dictionary has a key satisfying the nested matcher. + */ +@interface HCIsDictionaryContainingKey : HCBaseMatcher + +- (instancetype)initWithKeyMatcher:(id )keyMatcher NS_DESIGNATED_INITIALIZER; +- (instancetype)init NS_UNAVAILABLE; + +@end + + +FOUNDATION_EXPORT id HC_hasKey(id keyMatcher); + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract Creates a matcher for NSDictionaries that matches when the examined dictionary contains + * at least key that satisfies the specified matcher. + * @param keyMatcher The matcher to satisfy for the key, or an expected value for equalTo matching. + * @discussion Any argument that is not a matcher is implicitly wrapped in an equalTo + * matcher to check for equality. + * + * Examples
+ *
assertThat(myDictionary, hasEntry(equalTo(\@"foo")))
+ *
assertThat(myDictionary, hasEntry(\@"foo"))
+ * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_hasKey instead. + */ +static inline id hasKey(id keyMatcher) +{ + return HC_hasKey(keyMatcher); +} +#endif + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingKey.m b/Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingKey.m new file mode 100644 index 0000000..5426330 --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingKey.m @@ -0,0 +1,46 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCIsDictionaryContainingKey.h" + +#import "HCRequireNonNilObject.h" +#import "HCWrapInMatcher.h" + + +@interface HCIsDictionaryContainingKey () +@property (nonatomic, strong, readonly) id keyMatcher; +@end + +@implementation HCIsDictionaryContainingKey + +- (instancetype)initWithKeyMatcher:(id )keyMatcher +{ + self = [super init]; + if (self) + _keyMatcher = keyMatcher; + return self; +} + +- (BOOL)matches:(id)dict +{ + if ([dict isKindOfClass:[NSDictionary class]]) + for (id oneKey in dict) + if ([self.keyMatcher matches:oneKey]) + return YES; + return NO; +} + +- (void)describeTo:(id )description +{ + [[description appendText:@"a dictionary containing key "] + appendDescriptionOf:self.keyMatcher]; +} + +@end + + +id HC_hasKey(id keyMatcher) +{ + HCRequireNonNilObject(keyMatcher); + return [[HCIsDictionaryContainingKey alloc] initWithKeyMatcher:HCWrapInMatcher(keyMatcher)]; +} diff --git a/Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingValue.h b/Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingValue.h new file mode 100644 index 0000000..cbd61a7 --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingValue.h @@ -0,0 +1,46 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import + + +NS_ASSUME_NONNULL_BEGIN + +/*! + * @abstract Matches if any entry in a dictionary has a value satisfying the nested matcher. + */ +@interface HCIsDictionaryContainingValue : HCBaseMatcher + +- (instancetype)initWithValueMatcher:(id )valueMatcher NS_DESIGNATED_INITIALIZER; +- (instancetype)init NS_UNAVAILABLE; + +@end + + +FOUNDATION_EXPORT id HC_hasValue(id valueMatcher); + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract Creates a matcher for NSDictionaries that matches when the examined dictionary contains + * at least value that satisfies the specified matcher. + * @param valueMatcher The matcher to satisfy for the value, or an expected value for equalTo matching. + * @discussion This matcher works on any collection that has an -allValues method. + * + * Any argument that is not a matcher is implicitly wrapped in an equalTo matcher to check + * for equality. + * + * Examples
+ *
assertThat(myDictionary, hasValue(equalTo(\@"bar")))
+ *
assertThat(myDictionary, hasValue(\@"bar"))
+ * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_hasValue instead. + */ +static inline id hasValue(id valueMatcher) +{ + return HC_hasValue(valueMatcher); +} +#endif + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingValue.m b/Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingValue.m new file mode 100644 index 0000000..97b073e --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingValue.m @@ -0,0 +1,46 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCIsDictionaryContainingValue.h" + +#import "HCRequireNonNilObject.h" +#import "HCWrapInMatcher.h" + + +@interface HCIsDictionaryContainingValue () +@property (nonatomic, strong, readonly) id valueMatcher; +@end + +@implementation HCIsDictionaryContainingValue + +- (instancetype)initWithValueMatcher:(id )valueMatcher +{ + self = [super init]; + if (self) + _valueMatcher = valueMatcher; + return self; +} + +- (BOOL)matches:(id)dict +{ + if ([dict respondsToSelector:@selector(allValues)]) + for (id oneValue in [dict allValues]) + if ([self.valueMatcher matches:oneValue]) + return YES; + return NO; +} + +- (void)describeTo:(id )description +{ + [[description appendText:@"a dictionary containing value "] + appendDescriptionOf:self.valueMatcher]; +} + +@end + + +id HC_hasValue(id valueMatcher) +{ + HCRequireNonNilObject(valueMatcher); + return [[HCIsDictionaryContainingValue alloc] initWithValueMatcher:HCWrapInMatcher(valueMatcher)]; +} diff --git a/Pods/OCHamcrest/Source/Library/Collection/HCIsEmptyCollection.h b/Pods/OCHamcrest/Source/Library/Collection/HCIsEmptyCollection.h new file mode 100644 index 0000000..4818d55 --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Collection/HCIsEmptyCollection.h @@ -0,0 +1,39 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import + + +NS_ASSUME_NONNULL_BEGIN + +/*! + * @abstract Matches empty collections. + */ +@interface HCIsEmptyCollection : HCHasCount + +- (instancetype)init; + +@end + + +FOUNDATION_EXPORT id HC_isEmpty(void); + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract Creates a matcher that matches any examined object whose -count method + * returns zero. + * + * Example
+ *
assertThat(\@[], isEmpty())
+ * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_isEmpty instead. + */ +static inline id isEmpty(void) +{ + return HC_isEmpty(); +} +#endif + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Collection/HCIsEmptyCollection.m b/Pods/OCHamcrest/Source/Library/Collection/HCIsEmptyCollection.m new file mode 100644 index 0000000..698234b --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Collection/HCIsEmptyCollection.m @@ -0,0 +1,33 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCIsEmptyCollection.h" + +#import "HCIsEqual.h" + + +@implementation HCIsEmptyCollection + +- (instancetype)init +{ + self = [super initWithMatcher:HC_equalTo(@0)]; + return self; +} + +- (void)describeMismatchOf:(nullable id)item to:(nullable id )mismatchDescription +{ + [[mismatchDescription appendText:@"was "] appendDescriptionOf:item]; +} + +- (void)describeTo:(id )description +{ + [description appendText:@"empty collection"]; +} + +@end + + +FOUNDATION_EXPORT id HC_isEmpty() +{ + return [[HCIsEmptyCollection alloc] init]; +} diff --git a/Pods/OCHamcrest/Source/Library/Collection/HCIsIn.h b/Pods/OCHamcrest/Source/Library/Collection/HCIsIn.h new file mode 100644 index 0000000..a3a8789 --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Collection/HCIsIn.h @@ -0,0 +1,43 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import + + +NS_ASSUME_NONNULL_BEGIN + +/*! + * @abstract Matches if examined object is contained within the nested collection. + */ +@interface HCIsIn : HCBaseMatcher + +- (instancetype)initWithCollection:(id)collection NS_DESIGNATED_INITIALIZER; +- (instancetype)init NS_UNAVAILABLE; + +@end + + +FOUNDATION_EXPORT id HC_isIn(id aCollection); + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract Creates a matcher that matches when the examined object is found within the specified + * collection. + * @param aCollection The collection to search. + * @discussion Invokes -containsObject: on aCollection to determine if the + * examined object is an element of the collection. + * + * Example
+ *
assertThat(\@"foo", isIn(\@@[\@"bar", \@"foo"]))
+ * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_isIn instead. + */ +static inline id isIn(id aCollection) +{ + return HC_isIn(aCollection); +} +#endif + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Collection/HCIsIn.m b/Pods/OCHamcrest/Source/Library/Collection/HCIsIn.m new file mode 100644 index 0000000..2ddf114 --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Collection/HCIsIn.m @@ -0,0 +1,45 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCIsIn.h" + + +@interface HCIsIn () +@property (nonatomic, strong, readonly) id collection; +@end + +@implementation HCIsIn + +- (instancetype)initWithCollection:(id)collection +{ + if (![collection respondsToSelector:@selector(containsObject:)]) + { + @throw [NSException exceptionWithName:@"NotAContainer" + reason:@"Object must respond to -containsObject:" + userInfo:nil]; + } + + self = [super init]; + if (self) + _collection = collection; + return self; +} + +- (BOOL)matches:(nullable id)item +{ + return [self.collection containsObject:item]; +} + +- (void)describeTo:(id )description +{ + [[description appendText:@"one of "] + appendList:self.collection start:@"{" separator:@", " end:@"}"]; +} + +@end + + +id HC_isIn(id aCollection) +{ + return [[HCIsIn alloc] initWithCollection:aCollection]; +} diff --git a/Pods/OCHamcrest/Source/Library/Decorator/HCDescribedAs.h b/Pods/OCHamcrest/Source/Library/Decorator/HCDescribedAs.h new file mode 100644 index 0000000..53f3fdf --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Decorator/HCDescribedAs.h @@ -0,0 +1,41 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import + + +NS_ASSUME_NONNULL_BEGIN + +/*! + * @abstract Provides a custom description to another matcher. + */ +@interface HCDescribedAs : HCBaseMatcher + +- (instancetype)initWithDescription:(NSString *)description + forMatcher:(id )matcher + overValues:(NSArray *)templateValues NS_DESIGNATED_INITIALIZER; +- (instancetype)init NS_UNAVAILABLE; + +@end + + +FOUNDATION_EXPORT id HC_describedAs(NSString *description, id matcher, ...) NS_REQUIRES_NIL_TERMINATION; + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract Wraps an existing matcher, overriding its description with that specified. All other + * functions are delegated to the decorated matcher, including its mismatch description. + * @param description The new description for the wrapped matcher. + * @param matcher The matcher to wrap, followed by a comma-separated list of substitution + * values ending with nil. + * @discussion The description may contain substitution placeholders %0, %1, etc. These will be + * replaced by any values that follow the matcher. + * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_describedAs instead. + */ +#define describedAs(description, matcher, ...) HC_describedAs(description, matcher, ##__VA_ARGS__) +#endif + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Decorator/HCDescribedAs.m b/Pods/OCHamcrest/Source/Library/Decorator/HCDescribedAs.m new file mode 100644 index 0000000..4c6b076 --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Decorator/HCDescribedAs.m @@ -0,0 +1,121 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCDescribedAs.h" + + +@interface NSString (OCHamcrest) +@end + +@implementation NSString (OCHamcrest) + +// Parse decimal number (-1 if not found) and return remaining string. +- (NSString *)och_getDecimalNumber:(int *)number +{ + int decimal = 0; + BOOL readDigit = NO; + + NSUInteger length = self.length; + NSUInteger index; + for (index = 0; index < length; ++index) + { + unichar character = [self characterAtIndex:index]; + if (!isdigit(character)) + break; + decimal = decimal * 10 + character - '0'; + readDigit = YES; + } + + if (!readDigit) + { + *number = -1; + return self; + } + *number = decimal; + return [self substringFromIndex:index]; +} + +@end + + +@interface HCDescribedAs () +@property (nonatomic, copy, readonly) NSString *descriptionTemplate; +@property (nonatomic, strong, readonly) id matcher; +@property (nonatomic, copy, readonly) NSArray *values; +@end + +@implementation HCDescribedAs + +- (instancetype)initWithDescription:(NSString *)description + forMatcher:(id )matcher + overValues:(NSArray *)templateValues +{ + self = [super init]; + if (self) + { + _descriptionTemplate = [description copy]; + _matcher = matcher; + _values = [templateValues copy]; + } + return self; +} + +- (BOOL)matches:(nullable id)item +{ + return [self.matcher matches:item]; +} + +- (void)describeMismatchOf:(nullable id)item to:(nullable id )mismatchDescription +{ + [self.matcher describeMismatchOf:item to:mismatchDescription]; +} + +- (void)describeTo:(id )description +{ + NSArray *components = [self.descriptionTemplate componentsSeparatedByString:@"%"]; + BOOL firstComponent = YES; + for (NSString *component in components) + { + if (firstComponent) + { + firstComponent = NO; + [description appendText:component]; + } + else + { + [self appendTemplateForComponent:component toDescription:description]; + } + } +} + +- (void)appendTemplateForComponent:(NSString *)component toDescription:(id )description +{ + int index; + NSString *remainder = [component och_getDecimalNumber:&index]; + if (index < 0) + [[description appendText:@"%"] appendText:component]; + else + [[description appendDescriptionOf:self.values[index]] appendText:remainder]; +} + +@end + + +id HC_describedAs(NSString *description, id matcher, ...) +{ + NSMutableArray *valueList = [NSMutableArray array]; + + va_list args; + va_start(args, matcher); + id value = va_arg(args, id); + while (value != nil) + { + [valueList addObject:value]; + value = va_arg(args, id); + } + va_end(args); + + return [[HCDescribedAs alloc] initWithDescription:description + forMatcher:matcher + overValues:valueList]; +} diff --git a/Pods/OCHamcrest/Source/Library/Decorator/HCIs.h b/Pods/OCHamcrest/Source/Library/Decorator/HCIs.h new file mode 100644 index 0000000..5b27f89 --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Decorator/HCIs.h @@ -0,0 +1,55 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import + + +NS_ASSUME_NONNULL_BEGIN + +/*! + * @abstract Decorates another matcher. + */ +@interface HCIs : HCBaseMatcher + +- (instancetype)initWithMatcher:(id )matcher NS_DESIGNATED_INITIALIZER; +- (instancetype)init NS_UNAVAILABLE; + +@end + + +FOUNDATION_EXPORT id HC_is(_Nullable id value); + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract Wraps an existing matcher, or provides a shortcut to the frequently + * used is(equalTo(x)). + * @param value The matcher to satisfy, or an expected value for equalTo matching. + * @discussion + * If valueis a matcher, its behavior is retained, but the test may be slightly more + * expressive. For example: + *
    + *
  • assertThat(\@(value), equalTo(\@5))
  • + *
  • assertThat(\@(value), is(equalTo(\@5)))
  • + *
+ * + * If valueis not a matcher, it is wrapped in an equalTo matcher. This makes the + * following statements equivalent: + *
    + *
  • assertThat(cheese, equalTo(smelly))
  • + *
  • assertThat(cheese, is(equalTo(smelly)))
  • + *
  • assertThat(cheese, is(smelly))
  • + *
+ * + * Choose the style that makes your expression most readable. This will vary depending on context. + * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_is instead. + */ +static inline id is(_Nullable id value) +{ + return HC_is(value); +} +#endif + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Decorator/HCIs.m b/Pods/OCHamcrest/Source/Library/Decorator/HCIs.m new file mode 100644 index 0000000..beb9c2b --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Decorator/HCIs.m @@ -0,0 +1,44 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCIs.h" + +#import "HCWrapInMatcher.h" + + +@interface HCIs () +@property (nonatomic, strong, readonly) id matcher; +@end + +@implementation HCIs + +- (instancetype)initWithMatcher:(id )matcher +{ + self = [super init]; + if (self) + _matcher = matcher; + return self; +} + +- (BOOL)matches:(nullable id)item +{ + return [self.matcher matches:item]; +} + +- (void)describeMismatchOf:(nullable id)item to:(nullable id )mismatchDescription +{ + [self.matcher describeMismatchOf:item to:mismatchDescription]; +} + +- (void)describeTo:(id )description +{ + [description appendDescriptionOf:self.matcher]; +} + +@end + + +id HC_is(_Nullable id value) +{ + return [[HCIs alloc] initWithMatcher:HCWrapInMatcher(value)]; +} diff --git a/Pods/OCHamcrest/Source/Library/Logical/HCAllOf.h b/Pods/OCHamcrest/Source/Library/Logical/HCAllOf.h new file mode 100644 index 0000000..a2630ab --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Logical/HCAllOf.h @@ -0,0 +1,64 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import + + +NS_ASSUME_NONNULL_BEGIN + +/*! + * @abstract Calculates the logical conjunction of multiple matchers. + * @discussion Evaluation is shortcut, so subsequent matchers are not called if an earlier matcher + * returns NO. + */ +@interface HCAllOf : HCDiagnosingMatcher + +- (instancetype)initWithMatchers:(NSArray> *)matchers NS_DESIGNATED_INITIALIZER; +- (instancetype)init NS_UNAVAILABLE; + +@end + + +FOUNDATION_EXPORT id HC_allOfIn(NSArray> *matchers); + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract Creates a matcher that matches when the examined object matches all of the + * specified matchers. + * @param matchers An array of matchers. Any element that is not a matcher is implicitly wrapped in + * an equalTo matcher to check for equality. + * @discussion + * Example
+ *
assertThat(\@"myValue", allOfIn(\@[startsWith(\@"my"), containsSubstring(\@"Val")]))
+ * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_allOfIn instead. + */ +static inline id allOfIn(NSArray *matchers) +{ + return HC_allOfIn(matchers); +} +#endif + + +FOUNDATION_EXPORT id HC_allOf(id matchers, ...) NS_REQUIRES_NIL_TERMINATION; + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract Creates a matcher that matches when the examined object matches all of the + * specified matchers. + * @param matchers... A comma-separated list of matchers ending with nil. Any argument + * that is not a matcher is implicitly wrapped in an equalTo matcher to check for equality. + * @discussion + * Example
+ *
assertThat(\@"myValue", allOf(startsWith(\@"my"), containsSubstring(\@"Val"), nil))
+ * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_allOf instead. + */ +#define allOf(matchers...) HC_allOf(matchers) +#endif + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Logical/HCAllOf.m b/Pods/OCHamcrest/Source/Library/Logical/HCAllOf.m new file mode 100644 index 0000000..a46021f --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Logical/HCAllOf.m @@ -0,0 +1,60 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCAllOf.h" + +#import "HCCollect.h" + + +@interface HCAllOf () +@property (nonatomic, copy, readonly) NSArray> *matchers; +@end + +@implementation HCAllOf + +- (instancetype)initWithMatchers:(NSArray> *)matchers +{ + self = [super init]; + if (self) + _matchers = [matchers copy]; + return self; +} + +- (BOOL)matches:(nullable id)item describingMismatchTo:(id )mismatchDescription +{ + for (id oneMatcher in self.matchers) + { + if (![oneMatcher matches:item]) + { + [[[mismatchDescription appendText:@"instead of "] + appendDescriptionOf:oneMatcher] + appendText:@", "]; + [oneMatcher describeMismatchOf:item to:mismatchDescription]; + return NO; + } + } + return YES; +} + +- (void)describeTo:(id )description +{ + [description appendList:self.matchers start:@"(" separator:@" and " end:@")"]; +} + +@end + + +id HC_allOfIn(NSArray *matchers) +{ + return [[HCAllOf alloc] initWithMatchers:HCWrapIntoMatchers(matchers)]; +} + +id HC_allOf(id matchers, ...) +{ + va_list args; + va_start(args, matchers); + NSArray *array = HCCollectItems(matchers, args); + va_end(args); + + return HC_allOfIn(array); +} diff --git a/Pods/OCHamcrest/Source/Library/Logical/HCAnyOf.h b/Pods/OCHamcrest/Source/Library/Logical/HCAnyOf.h new file mode 100644 index 0000000..00c0295 --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Logical/HCAnyOf.h @@ -0,0 +1,62 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import + + +NS_ASSUME_NONNULL_BEGIN + +/*! + * @abstract Calculates the logical disjunction of multiple matchers. + * @discussion Evaluation is shortcut, so subsequent matchers are not called if an earlier matcher + * returns NO. + */ +@interface HCAnyOf : HCBaseMatcher + +- (instancetype)initWithMatchers:(NSArray> *)matchers NS_DESIGNATED_INITIALIZER; +- (instancetype)init NS_UNAVAILABLE; + +@end + +FOUNDATION_EXPORT id HC_anyOfIn(NSArray *matchers); + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract Creates a matcher that matches when the examined object matches any of the + * specified matchers. + * @param matchers An array of matchers. Any element that is not a matcher is implicitly wrapped in + * an equalTo matcher to check for equality. + * @discussion + * Example
+ *
assertThat(\@"myValue", allOf(\@[startsWith(\@"foo"), containsSubstring(\@"Val")]))
+ * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_anyOf instead. + */ +static inline id anyOfIn(NSArray *matchers) +{ + return HC_anyOfIn(matchers); +} +#endif + +FOUNDATION_EXPORT id HC_anyOf(id matchers, ...) NS_REQUIRES_NIL_TERMINATION; + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract Creates a matcher that matches when the examined object matches any of the + * specified matchers. + * @param matchers... A comma-separated list of matchers ending with nil. Any argument + * that is not a matcher is implicitly wrapped in an equalTo matcher to check for equality. + * @discussion + * Example
+ *
assertThat(\@"myValue", allOf(startsWith(\@"foo"), containsSubstring(\@"Val"), nil))
+ * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_anyOf instead. + */ +#define anyOf(matchers...) HC_anyOf(matchers) +#endif + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Logical/HCAnyOf.m b/Pods/OCHamcrest/Source/Library/Logical/HCAnyOf.m new file mode 100644 index 0000000..26263b8 --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Logical/HCAnyOf.m @@ -0,0 +1,52 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCAnyOf.h" + +#import "HCCollect.h" + + +@interface HCAnyOf () +@property (nonatomic, copy, readonly) NSArray> *matchers; +@end + +@implementation HCAnyOf + +- (instancetype)initWithMatchers:(NSArray> *)matchers +{ + self = [super init]; + if (self) + _matchers = [matchers copy]; + return self; +} + +- (BOOL)matches:(nullable id)item +{ + for (id oneMatcher in self.matchers) + if ([oneMatcher matches:item]) + return YES; + return NO; +} + +- (void)describeTo:(id )description +{ + [description appendList:self.matchers start:@"(" separator:@" or " end:@")"]; +} + +@end + + +id HC_anyOfIn(NSArray *matchers) +{ + return [[HCAnyOf alloc] initWithMatchers:HCWrapIntoMatchers(matchers)]; +} + +id HC_anyOf(id matchers, ...) +{ + va_list args; + va_start(args, matchers); + NSArray *array = HCCollectItems(matchers, args); + va_end(args); + + return HC_anyOfIn(array); +} diff --git a/Pods/OCHamcrest/Source/Library/Logical/HCIsAnything.h b/Pods/OCHamcrest/Source/Library/Logical/HCIsAnything.h new file mode 100644 index 0000000..c6152f3 --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Logical/HCIsAnything.h @@ -0,0 +1,55 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import + + +NS_ASSUME_NONNULL_BEGIN + +/*! + * @abstract Matches anything. + */ +@interface HCIsAnything : HCBaseMatcher + +- (instancetype)init; +- (instancetype)initWithDescription:(NSString *)description NS_DESIGNATED_INITIALIZER; + +@end + + +FOUNDATION_EXPORT id HC_anything(void); + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract Creates a matcher that always matches, regardless of the examined object. + * @discussion + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_anything instead. + */ +static inline id anything(void) +{ + return HC_anything(); +} +#endif + + +FOUNDATION_EXPORT id HC_anythingWithDescription(NSString *description); + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract Creates a matcher that matches anything, regardless of the examined object, but + * describes itself with the specified NSString. + * @param description A meaningful string used to describe this matcher. + * @discussion + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_anything instead. + */ +static inline id anythingWithDescription(NSString *description) +{ + return HC_anythingWithDescription(description); +} +#endif + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Logical/HCIsAnything.m b/Pods/OCHamcrest/Source/Library/Logical/HCIsAnything.m new file mode 100644 index 0000000..fb80dcd --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Logical/HCIsAnything.m @@ -0,0 +1,47 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCIsAnything.h" + + +@implementation HCIsAnything +{ + NSString *_description; +} + +- (instancetype)init +{ + self = [self initWithDescription:@"ANYTHING"]; + return self; +} + +- (instancetype)initWithDescription:(NSString *)description +{ + self = [super init]; + if (self) + _description = [description copy]; + return self; +} + +- (BOOL)matches:(nullable id)item +{ + return YES; +} + +- (void)describeTo:(id )aDescription +{ + [aDescription appendText:_description]; +} + +@end + + +id HC_anything() +{ + return [[HCIsAnything alloc] init]; +} + +id HC_anythingWithDescription(NSString *description) +{ + return [[HCIsAnything alloc] initWithDescription:description]; +} diff --git a/Pods/OCHamcrest/Source/Library/Logical/HCIsNot.h b/Pods/OCHamcrest/Source/Library/Logical/HCIsNot.h new file mode 100644 index 0000000..8e19048 --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Logical/HCIsNot.h @@ -0,0 +1,44 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import + + +NS_ASSUME_NONNULL_BEGIN + +/*! + * @abstract Calculates the logical negation of a matcher. + */ +@interface HCIsNot : HCBaseMatcher + +- (instancetype)initWithMatcher:(id )matcher NS_DESIGNATED_INITIALIZER; +- (instancetype)init NS_UNAVAILABLE; + +@end + + +FOUNDATION_EXPORT id HC_isNot(_Nullable id value); + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract Creates a matcher that wraps an existing matcher, but inverts the logic by which it + * will match. + * @param value The matcher to negate, or an expected value to match for inequality. + * @discussion If value is not a matcher, it is implicitly wrapped in an equalTo + * matcher to check for equality, and thus matches for inequality. + * + * Examples
+ *
assertThat(cheese, isNot(equalTo(smelly)))
+ *
assertThat(cheese, isNot(smelly))
+ * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_isNot instead. + */ +static inline id isNot(_Nullable id value) +{ + return HC_isNot(value); +} +#endif + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Logical/HCIsNot.m b/Pods/OCHamcrest/Source/Library/Logical/HCIsNot.m new file mode 100644 index 0000000..3dd0385 --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Logical/HCIsNot.m @@ -0,0 +1,43 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCIsNot.h" + +#import "HCWrapInMatcher.h" + + +@interface HCIsNot () +@property (nonatomic, strong, readonly) id matcher; +@end + +@implementation HCIsNot + +- (instancetype)initWithMatcher:(id )matcher +{ + self = [super init]; + if (self) + _matcher = matcher; + return self; +} + +- (BOOL)matches:(nullable id)item +{ + return ![self.matcher matches:item]; +} + +- (void)describeTo:(id )description +{ + [[description appendText:@"not "] appendDescriptionOf:self.matcher]; +} + +- (void)describeMismatchOf:(nullable id)item to:(nullable id )mismatchDescription +{ + [self.matcher describeMismatchOf:item to:mismatchDescription]; +} +@end + + +id HC_isNot(_Nullable id value) +{ + return [[HCIsNot alloc] initWithMatcher:HCWrapInMatcher(value)]; +} diff --git a/Pods/OCHamcrest/Source/Library/Number/HCIsCloseTo.h b/Pods/OCHamcrest/Source/Library/Number/HCIsCloseTo.h new file mode 100644 index 0000000..f16cf38 --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Number/HCIsCloseTo.h @@ -0,0 +1,43 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import + + +NS_ASSUME_NONNULL_BEGIN + +/*! + * @abstract Matchers numbers close to a value, within a delta range. + */ +@interface HCIsCloseTo : HCBaseMatcher + +- (instancetype)initWithValue:(double)value delta:(double)delta NS_DESIGNATED_INITIALIZER; +- (instancetype)init NS_UNAVAILABLE; + +@end + + +FOUNDATION_EXPORT id HC_closeTo(double value, double delta); + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract Creates a matcher for NSNumbers that matches when the examined number is close to the + * specified value, within the specified delta. + * @param value The expected value of matching numbers. + * @param delta The delta within which matches will be allowed. + * @discussion Invokes -doubleValue on the examined number to get its value. + * + * Example
+ *
assertThat(\@1.03, closeTo(1.0, 0.03)
+ * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_closeTo instead. + */ +static inline id closeTo(double value, double delta) +{ + return HC_closeTo(value, delta); +} +#endif + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Number/HCIsCloseTo.m b/Pods/OCHamcrest/Source/Library/Number/HCIsCloseTo.m new file mode 100644 index 0000000..2c4fcc9 --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Number/HCIsCloseTo.m @@ -0,0 +1,69 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCIsCloseTo.h" + + +@interface HCIsCloseTo () +@property (nonatomic, assign, readonly) double value; +@property (nonatomic, assign, readonly) double delta; +@end + +@implementation HCIsCloseTo + +- (id)initWithValue:(double)value delta:(double)delta +{ + self = [super init]; + if (self) + { + _value = value; + _delta = delta; + } + return self; +} + +- (BOOL)matches:(nullable id)item +{ + if ([self itemIsNotNumber:item]) + return NO; + + return [self actualDelta:item] <= self.delta; +} + +- (double)actualDelta:(id)item +{ + return fabs([item doubleValue] - self.value); +} + +- (BOOL)itemIsNotNumber:(id)item +{ + return ![item isKindOfClass:[NSNumber class]]; +} + +- (void)describeMismatchOf:(nullable id)item to:(nullable id )mismatchDescription +{ + if ([self itemIsNotNumber:item]) + [super describeMismatchOf:item to:mismatchDescription]; + else + { + [[[mismatchDescription appendDescriptionOf:item] + appendText:@" differed by "] + appendDescriptionOf:@([self actualDelta:item])]; + } +} + +- (void)describeTo:(id )description +{ + [[[[description appendText:@"a numeric value within "] + appendDescriptionOf:@(self.delta)] + appendText:@" of "] + appendDescriptionOf:@(self.value)]; +} + +@end + + +id HC_closeTo(double value, double delta) +{ + return [[HCIsCloseTo alloc] initWithValue:value delta:delta]; +} diff --git a/Pods/OCHamcrest/Source/Library/Number/HCIsEqualToNumber.h b/Pods/OCHamcrest/Source/Library/Number/HCIsEqualToNumber.h new file mode 100644 index 0000000..0f87016 --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Number/HCIsEqualToNumber.h @@ -0,0 +1,289 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import + + +NS_ASSUME_NONNULL_BEGIN + +FOUNDATION_EXPORT id HC_equalToChar(char value); + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract Creates a matcher that matches when the examined object is equal to an NSNumber created + * from the specified char value. + * @param value The char value from which to create an NSNumber. + * @discussion Consider using equalTo(\@(value)) instead. + * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_equalToChar instead. + */ +static inline id equalToChar(char value) +{ + return HC_equalToChar(value); +} +#endif + + +FOUNDATION_EXPORT id HC_equalToDouble(double value); + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract Creates a matcher that matches when the examined object is equal to an NSNumber created + * from the specified double value. + * @param value The double value from which to create an NSNumber. + * @discussion Consider using equalTo(\@(value)) instead. + * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_equalToDouble instead. + */ +static inline id equalToDouble(double value) +{ + return HC_equalToDouble(value); +} +#endif + + +FOUNDATION_EXPORT id HC_equalToFloat(float value); + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract Creates a matcher that matches when the examined object is equal to an NSNumber created + * from the specified float value. + * @param value The float value from which to create an NSNumber. + * @discussion Consider using equalTo(\@(value)) instead. + * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_equalToFloat instead. + */ +static inline id equalToFloat(float value) +{ + return HC_equalToFloat(value); +} +#endif + + +FOUNDATION_EXPORT id HC_equalToInt(int value); + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract Creates a matcher that matches when the examined object is equal to an NSNumber created + * from the specified int value. + * @param value The int value from which to create an NSNumber. + * @discussion Consider using equalTo(\@(value)) instead. + * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_equalToInt instead. + */ +static inline id equalToInt(int value) +{ + return HC_equalToInt(value); +} +#endif + + +FOUNDATION_EXPORT id HC_equalToLong(long value); + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract Creates a matcher that matches when the examined object is equal to an NSNumber created + * from the specified long value. + * @param value The long value from which to create an NSNumber. + * @discussion Consider using equalTo(\@(value)) instead. + * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_equalToLong instead. + */ +static inline id equalToLong(long value) +{ + return HC_equalToLong(value); +} +#endif + + +FOUNDATION_EXPORT id HC_equalToLongLong(long long value); + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract Creates a matcher that matches when the examined object is equal to an NSNumber created + * from the specified long long value. + * @param value The long long value from which to create an NSNumber. + * @discussion Consider using equalTo(\@(value)) instead. + * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_equalToLongLong instead. + */ +static inline id equalToLongLong(long long value) +{ + return HC_equalToLongLong(value); +} +#endif + + +FOUNDATION_EXPORT id HC_equalToShort(short value); + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract Creates a matcher that matches when the examined object is equal to an NSNumber created + * from the specified short value. + * @param value The short value from which to create an NSNumber. + * @discussion Consider using equalTo(\@(value)) instead. + * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_equalToShort instead. + */ +static inline id equalToShort(short value) +{ + return HC_equalToShort(value); +} +#endif + + +FOUNDATION_EXPORT id HC_equalToUnsignedChar(unsigned char value); + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract equalToUnsignedChar(value) - + * Creates a matcher that matches when the examined object is equal to an NSNumber created from the + * specified unsigned char value. + * @param value The unsigned char value from which to create an NSNumber. + * @discussion Consider using equalTo(\@(value)) instead. + * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_equalToUnsignedChar instead. + */ +static inline id equalToUnsignedChar(unsigned char value) +{ + return HC_equalToUnsignedChar(value); +} +#endif + + +FOUNDATION_EXPORT id HC_equalToUnsignedInt(unsigned int value); + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract Creates a matcher that matches when the examined object is equal to an NSNumber created + * from the specified unsigned int value. + * @param value The unsigned int value from which to create an NSNumber. + * @discussion Consider using equalTo(\@(value)) instead. + * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_equalToUnsignedInt instead. + */ +static inline id equalToUnsignedInt(unsigned int value) +{ + return HC_equalToUnsignedInt(value); +} +#endif + + +FOUNDATION_EXPORT id HC_equalToUnsignedLong(unsigned long value); + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract Creates a matcher that matches when the examined object is equal to an NSNumber created + * from the specified unsigned long value. + * @param value The unsigned long value from which to create an NSNumber. + * @discussion Consider using equalTo(\@(value)) instead. + * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_equalToUnsignedLong instead. + */ +static inline id equalToUnsignedLong(unsigned long value) +{ + return HC_equalToUnsignedLong(value); +} +#endif + + +FOUNDATION_EXPORT id HC_equalToUnsignedLongLong(unsigned long long value); + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract Creates a matcher that matches when the examined object is equal to an NSNumber created + * from the specified unsigned long long value. + * @param value The unsigned long long value from which to create an NSNumber. + * @discussion Consider using equalTo(\@(value)) instead. + * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_equalToUnsignedLongLong instead. + */ +static inline id equalToUnsignedLongLong(unsigned long long value) +{ + return HC_equalToUnsignedLongLong(value); +} +#endif + + +FOUNDATION_EXPORT id HC_equalToUnsignedShort(unsigned short value); + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract Creates a matcher that matches when the examined object is equal to an NSNumber created + * from the specified unsigned short value. + * @param value The unsigned short value from which to create an NSNumber. + * @discussion Consider using equalTo(\@(value)) instead. + * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_equalToUnsignedShort instead. + */ +static inline id equalToUnsignedShort(unsigned short value) +{ + return HC_equalToUnsignedShort(value); +} +#endif + + +FOUNDATION_EXPORT id HC_equalToInteger(NSInteger value); + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract Creates a matcher that matches when the examined object is equal to an NSNumber created + * from the specified NSInteger value. + * @param value The NSInteger value from which to create an NSNumber. + * @discussion Consider using equalTo(\@(value)) instead. + * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_equalToInteger instead. + */ +static inline id equalToInteger(NSInteger value) +{ + return HC_equalToInteger(value); +} +#endif + + +FOUNDATION_EXPORT id HC_equalToUnsignedInteger(NSUInteger value); + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract Creates a matcher that matches when the examined object is equal to an NSNumber created + * from the specified NSUInteger value. + * @param value The NSUInteger value from which to create an NSNumber. + * @discussion Consider using equalTo(\@(value)) instead. + * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_equalToUnsignedInteger instead. + */ +static inline id equalToUnsignedInteger(NSUInteger value) +{ + return HC_equalToUnsignedInteger(value); +} +#endif + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Number/HCIsEqualToNumber.m b/Pods/OCHamcrest/Source/Library/Number/HCIsEqualToNumber.m new file mode 100644 index 0000000..8cd7687 --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Number/HCIsEqualToNumber.m @@ -0,0 +1,77 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCIsEqualToNumber.h" + +#import "HCIsEqual.h" + + +FOUNDATION_EXPORT id HC_equalToChar(char value) +{ + return HC_equalTo(@(value)); +} + +FOUNDATION_EXPORT id HC_equalToDouble(double value) +{ + return HC_equalTo(@(value)); +} + +FOUNDATION_EXPORT id HC_equalToFloat(float value) +{ + return HC_equalTo(@(value)); +} + +FOUNDATION_EXPORT id HC_equalToInt(int value) +{ + return HC_equalTo(@(value)); +} + +FOUNDATION_EXPORT id HC_equalToLong(long value) +{ + return HC_equalTo(@(value)); +} + +FOUNDATION_EXPORT id HC_equalToLongLong(long long value) +{ + return HC_equalTo(@(value)); +} + +FOUNDATION_EXPORT id HC_equalToShort(short value) +{ + return HC_equalTo(@(value)); +} + +FOUNDATION_EXPORT id HC_equalToUnsignedChar(unsigned char value) +{ + return HC_equalTo(@(value)); +} + +FOUNDATION_EXPORT id HC_equalToUnsignedInt(unsigned int value) +{ + return HC_equalTo(@(value)); +} + +FOUNDATION_EXPORT id HC_equalToUnsignedLong(unsigned long value) +{ + return HC_equalTo(@(value)); +} + +FOUNDATION_EXPORT id HC_equalToUnsignedLongLong(unsigned long long value) +{ + return HC_equalTo(@(value)); +} + +FOUNDATION_EXPORT id HC_equalToUnsignedShort(unsigned short value) +{ + return HC_equalTo(@(value)); +} + +FOUNDATION_EXPORT id HC_equalToInteger(NSInteger value) +{ + return HC_equalTo(@(value)); +} + +FOUNDATION_EXPORT id HC_equalToUnsignedInteger(NSUInteger value) +{ + return HC_equalTo(@(value)); +} diff --git a/Pods/OCHamcrest/Source/Library/Number/HCIsTrueFalse.h b/Pods/OCHamcrest/Source/Library/Number/HCIsTrueFalse.h new file mode 100644 index 0000000..2e9142f --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Number/HCIsTrueFalse.h @@ -0,0 +1,55 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import + + +NS_ASSUME_NONNULL_BEGIN + +/*! + * @abstract Matches true values. + */ +@interface HCIsTrue : HCBaseMatcher +@end + +/*! + * @abstract Matches false values. + */ +@interface HCIsFalse : HCBaseMatcher +@end + + +FOUNDATION_EXPORT id HC_isTrue(void); + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract Creates a matcher that matches when the examined object is an non-zero NSNumber. + * @discussion + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_isTrue instead. + */ +static inline id isTrue(void) +{ + return HC_isTrue(); +} +#endif + + +FOUNDATION_EXPORT id HC_isFalse(void); + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract Creates a matcher that matches when the examined object is NSNumber zero. + * @discussion + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_isFalse instead. +*/ +static inline id isFalse(void) +{ + return HC_isFalse(); +} +#endif + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Number/HCIsTrueFalse.m b/Pods/OCHamcrest/Source/Library/Number/HCIsTrueFalse.m new file mode 100644 index 0000000..419c73a --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Number/HCIsTrueFalse.m @@ -0,0 +1,55 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCIsTrueFalse.h" + + +@implementation HCIsTrue + +- (BOOL)matches:(nullable id)item +{ + if (![item isKindOfClass:[NSNumber class]]) + return NO; + + return [item boolValue]; +} + +- (void)describeTo:(id )description +{ + [description appendText:@"true (non-zero)"]; +} + +@end + + +FOUNDATION_EXPORT id HC_isTrue(void) +{ + return [[HCIsTrue alloc] init]; +} + + +#pragma mark - + +@implementation HCIsFalse + +- (BOOL)matches:(nullable id)item +{ + if (![item isKindOfClass:[NSNumber class]]) + return NO; + + return ![item boolValue]; +} + +- (void)describeTo:(id )description +{ + [description appendText:@"false (zero)"]; +} + +@end + + +FOUNDATION_EXPORT id HC_isFalse(void) +{ + return [[HCIsFalse alloc] init]; +} + diff --git a/Pods/OCHamcrest/Source/Library/Number/HCNumberAssert.h b/Pods/OCHamcrest/Source/Library/Number/HCNumberAssert.h new file mode 100644 index 0000000..73bb815 --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Number/HCNumberAssert.h @@ -0,0 +1,340 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import + +@protocol HCMatcher; + + +NS_ASSUME_NONNULL_BEGIN + +FOUNDATION_EXPORT void HC_assertThatBoolWithLocation(id testCase, BOOL actual, + id matcher, char const *fileName, int lineNumber); + +#define HC_assertThatBool(actual, matcher) \ + HC_assertThatBoolWithLocation(self, actual, matcher, __FILE__, __LINE__) + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract assertThatBool(actual, matcher) - + * Asserts that BOOL actual value, converted to an NSNumber, satisfies matcher. + * @param actual The BOOL value to convert to an NSNumber for evaluation. + * @param matcher The matcher to satisfy as the expected condition. + * @discussion Consider using assertThat(\@(actual), matcher) instead. + * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_assertThatBool instead. + */ +#define assertThatBool(actual, matcher) HC_assertThatBool(actual, matcher) +#endif + + +FOUNDATION_EXPORT void HC_assertThatCharWithLocation(id testCase, char actual, + id matcher, char const *fileName, int lineNumber); + +#define HC_assertThatChar(actual, matcher) \ + HC_assertThatCharWithLocation(self, actual, matcher, __FILE__, __LINE__) + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract assertThatChar(actual, matcher) - + * Asserts that char actual value, converted to an NSNumber, satisfies matcher. + * @param actual The char value to convert to an NSNumber for evaluation. + * @param matcher The matcher to satisfy as the expected condition. + * @discussion Consider using assertThat(\@(actual), matcher) instead. + * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_assertThatChar instead. + */ +#define assertThatChar(actual, matcher) HC_assertThatChar(actual, matcher) +#endif + + +FOUNDATION_EXPORT void HC_assertThatDoubleWithLocation(id testCase, double actual, + id matcher, char const *fileName, int lineNumber); + +#define HC_assertThatDouble(actual, matcher) \ + HC_assertThatDoubleWithLocation(self, actual, matcher, __FILE__, __LINE__) + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract HC_assertThatDouble(actual, matcher) - + * Asserts that double actual value, converted to an NSNumber, satisfies matcher. + * @param actual The double value to convert to an NSNumber for evaluation. + * @param matcher The matcher to satisfy as the expected condition. + * @discussion Consider using assertThat(\@(actual), matcher) instead. + * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_assertThatDouble instead. + */ +#define assertThatDouble(actual, matcher) HC_assertThatDouble(actual, matcher) +#endif + + +FOUNDATION_EXPORT void HC_assertThatFloatWithLocation(id testCase, float actual, + id matcher, char const *fileName, int lineNumber); + +#define HC_assertThatFloat(actual, matcher) \ + HC_assertThatFloatWithLocation(self, actual, matcher, __FILE__, __LINE__) + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract assertThatFloat(actual, matcher) - + * Asserts that float actual value, converted to an NSNumber, satisfies matcher. + * @param actual The float value to convert to an NSNumber for evaluation. + * @param matcher The matcher to satisfy as the expected condition. + * @discussion Consider using assertThat(\@(actual), matcher) instead. + * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_assertThatFloat instead. + */ +#define assertThatFloat(actual, matcher) HC_assertThatFloat(actual, matcher) +#endif + + +FOUNDATION_EXPORT void HC_assertThatIntWithLocation(id testCase, int actual, + id matcher, char const *fileName, int lineNumber); + +#define HC_assertThatInt(actual, matcher) \ + HC_assertThatIntWithLocation(self, actual, matcher, __FILE__, __LINE__) + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract assertThatInt(actual, matcher) - + * Asserts that int actual value, converted to an NSNumber, satisfies matcher. + * @param actual The int value to convert to an NSNumber for evaluation. + * @param matcher The matcher to satisfy as the expected condition. + * @discussion Consider using assertThat(\@(actual), matcher) instead. + * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_assertThatInt instead. + */ +#define assertThatInt(actual, matcher) HC_assertThatInt(actual, matcher) +#endif + + +FOUNDATION_EXPORT void HC_assertThatLongWithLocation(id testCase, long actual, + id matcher, char const *fileName, int lineNumber); + +#define HC_assertThatLong(actual, matcher) \ + HC_assertThatLongWithLocation(self, actual, matcher, __FILE__, __LINE__) + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract assertThatLong(actual, matcher) - + * Asserts that long actual value, converted to an NSNumber, satisfies matcher. + * @param actual The long value to convert to an NSNumber for evaluation. + * @param matcher The matcher to satisfy as the expected condition. + * @discussion Consider using assertThat(\@(actual), matcher) instead. + * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_assertThatLong instead. + */ +#define assertThatLong(actual, matcher) HC_assertThatLong(actual, matcher) +#endif + + +FOUNDATION_EXPORT void HC_assertThatLongLongWithLocation(id testCase, long long actual, + id matcher, char const *fileName, int lineNumber); + +#define HC_assertThatLongLong(actual, matcher) \ + HC_assertThatLongLongWithLocation(self, actual, matcher, __FILE__, __LINE__) + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract assertThatLongLong(actual, matcher) - + * Asserts that long long actual value, converted to an NSNumber, satisfies matcher. + * @param actual The long long value to convert to an NSNumber for evaluation. + * @param matcher The matcher to satisfy as the expected condition. + * @discussion Consider using assertThat(\@(actual), matcher) instead. + * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_assertThatLongLong instead. + */ +#define assertThatLongLong(actual, matcher) HC_assertThatLongLong(actual, matcher) +#endif + + +FOUNDATION_EXPORT void HC_assertThatShortWithLocation(id testCase, short actual, + id matcher, char const *fileName, int lineNumber); + +#define HC_assertThatShort(actual, matcher) \ + HC_assertThatShortWithLocation(self, actual, matcher, __FILE__, __LINE__) + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract assertThatShort(actual, matcher) - + * Asserts that short actual value, converted to an NSNumber, satisfies matcher. + * @param actual The short value to convert to an NSNumber for evaluation. + * @param matcher The matcher to satisfy as the expected condition. + * @discussion Consider using assertThat(\@(actual), matcher) instead. + * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_assertThatShort instead. + */ +#define assertThatShort(actual, matcher) HC_assertThatShort(actual, matcher) +#endif + + +FOUNDATION_EXPORT void HC_assertThatUnsignedCharWithLocation(id testCase, unsigned char actual, + id matcher, char const *fileName, int lineNumber); + +#define HC_assertThatUnsignedChar(actual, matcher) \ + HC_assertThatUnsignedCharWithLocation(self, actual, matcher, __FILE__, __LINE__) + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract assertThatUnsignedChar(actual, matcher) - + * Asserts that unsigned char actual value, converted to an NSNumber, satisfies matcher. + * @param actual The unsigned char value to convert to an NSNumber for evaluation. + * @param matcher The matcher to satisfy as the expected condition. + * @discussion Consider using assertThat(\@(actual), matcher) instead. + * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_assertThatUnsignedChar instead. + */ +#define assertThatUnsignedChar(actual, matcher) HC_assertThatUnsignedChar(actual, matcher) +#endif + + +FOUNDATION_EXPORT void HC_assertThatUnsignedIntWithLocation(id testCase, unsigned int actual, + id matcher, char const *fileName, int lineNumber); + +#define HC_assertThatUnsignedInt(actual, matcher) \ + HC_assertThatUnsignedIntWithLocation(self, actual, matcher, __FILE__, __LINE__) + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract assertThatUnsignedInt(actual, matcher) - + * Asserts that unsigned int actual value, converted to an NSNumber, satisfies matcher. + * @param actual The unsigned int value to convert to an NSNumber for evaluation. + * @param matcher The matcher to satisfy as the expected condition. + * @discussion Consider using assertThat(\@(actual), matcher) instead. + * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_assertThatUnsignedInt instead. + */ +#define assertThatUnsignedInt(actual, matcher) HC_assertThatUnsignedInt(actual, matcher) +#endif + + +FOUNDATION_EXPORT void HC_assertThatUnsignedLongWithLocation(id testCase, unsigned long actual, + id matcher, char const *fileName, int lineNumber); + +#define HC_assertThatUnsignedLong(actual, matcher) \ + HC_assertThatUnsignedLongWithLocation(self, actual, matcher, __FILE__, __LINE__) + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract assertThatUnsignedLong(actual, matcher) - + * Asserts that unsigned long actual value, converted to an NSNumber, satisfies matcher. + * @param actual The unsigned long value to convert to an NSNumber for evaluation. + * @param matcher The matcher to satisfy as the expected condition. + * @discussion Consider using assertThat(\@(actual), matcher) instead. + * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_assertThatUnsignedLong instead. + */ +#define assertThatUnsignedLong(actual, matcher) HC_assertThatUnsignedLong(actual, matcher) +#endif + + +FOUNDATION_EXPORT void HC_assertThatUnsignedLongLongWithLocation(id testCase, unsigned long long actual, + id matcher, char const *fileName, int lineNumber); + +#define HC_assertThatUnsignedLongLong(actual, matcher) \ + HC_assertThatUnsignedLongLongWithLocation(self, actual, matcher, __FILE__, __LINE__) + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract assertThatUnsignedLongLong(actual, matcher) - + * Asserts that unsigned long long actual value, converted to an NSNumber, satisfies matcher. + * @param actual The unsigned long long value to convert to an NSNumber for evaluation. + * @param matcher The matcher to satisfy as the expected condition. + * @discussion Consider using assertThat(\@(actual), matcher) instead. + * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_assertThatUnsignedLongLong instead. + */ +#define assertThatUnsignedLongLong(actual, matcher) HC_assertThatUnsignedLongLong(actual, matcher) +#endif + + +FOUNDATION_EXPORT void HC_assertThatUnsignedShortWithLocation(id testCase, unsigned short actual, + id matcher, char const *fileName, int lineNumber); + +#define HC_assertThatUnsignedShort(actual, matcher) \ + HC_assertThatUnsignedShortWithLocation(self, actual, matcher, __FILE__, __LINE__) + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract assertThatUnsignedShort(actual, matcher) - + * Asserts that unsigned short actual value, converted to an NSNumber, satisfies matcher. + * @param actual The unsigned short value to convert to an NSNumber for evaluation. + * @param matcher The matcher to satisfy as the expected condition. + * @discussion Consider using assertThat(\@(actual), matcher) instead. + * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_assertThatUnsignedShort instead. + */ +#define assertThatUnsignedShort(actual, matcher) HC_assertThatUnsignedShort(actual, matcher) +#endif + + +FOUNDATION_EXPORT void HC_assertThatIntegerWithLocation(id testCase, NSInteger actual, + id matcher, char const *fileName, int lineNumber); + +#define HC_assertThatInteger(actual, matcher) \ + HC_assertThatIntegerWithLocation(self, actual, matcher, __FILE__, __LINE__) + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract assertThatInteger(actual, matcher) - + * Asserts that NSInteger actual value, converted to an NSNumber, satisfies matcher. + * @param actual The NSInteger value to convert to an NSNumber for evaluation. + * @param matcher The matcher to satisfy as the expected condition. + * @discussion Consider using assertThat(\@(actual), matcher) instead. + * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_assertThatInteger instead. + */ +#define assertThatInteger(actual, matcher) HC_assertThatInteger(actual, matcher) +#endif + + +FOUNDATION_EXPORT void HC_assertThatUnsignedIntegerWithLocation(id testCase, NSUInteger actual, + id matcher, char const *fileName, int lineNumber); + +#define HC_assertThatUnsignedInteger(actual, matcher) \ + HC_assertThatUnsignedIntegerWithLocation(self, actual, matcher, __FILE__, __LINE__) + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract assertThatUnsignedInteger(actual, matcher) - + * Asserts that NSUInteger actual value, converted to an NSNumber, satisfies matcher. + * @param actual The NSUInteger value to convert to an NSNumber for evaluation. + * @param matcher The matcher to satisfy as the expected condition. + * @discussion Consider using assertThat(\@(actual), matcher) instead. + * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_assertThatUnsignedInteger instead. + */ +#define assertThatUnsignedInteger(actual, matcher) HC_assertThatUnsignedInteger(actual, matcher) +#endif + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Number/HCNumberAssert.m b/Pods/OCHamcrest/Source/Library/Number/HCNumberAssert.m new file mode 100644 index 0000000..261d0bf --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Number/HCNumberAssert.m @@ -0,0 +1,97 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCNumberAssert.h" + +#import "HCAssertThat.h" + + +FOUNDATION_EXPORT void HC_assertThatBoolWithLocation(id testCase, BOOL actual, + id matcher, char const * fileName, int lineNumber) +{ + HC_assertThatWithLocation(testCase, @(actual), matcher, fileName, lineNumber); +} + +FOUNDATION_EXPORT void HC_assertThatCharWithLocation(id testCase, char actual, + id matcher, char const * fileName, int lineNumber) +{ + HC_assertThatWithLocation(testCase, @(actual), matcher, fileName, lineNumber); +} + +FOUNDATION_EXPORT void HC_assertThatDoubleWithLocation(id testCase, double actual, + id matcher, char const * fileName, int lineNumber) +{ + HC_assertThatWithLocation(testCase, @(actual), matcher, fileName, lineNumber); +} + +FOUNDATION_EXPORT void HC_assertThatFloatWithLocation(id testCase, float actual, + id matcher, char const * fileName, int lineNumber) +{ + HC_assertThatWithLocation(testCase, @(actual), matcher, fileName, lineNumber); +} + +FOUNDATION_EXPORT void HC_assertThatIntWithLocation(id testCase, int actual, + id matcher, char const * fileName, int lineNumber) +{ + HC_assertThatWithLocation(testCase, @(actual), matcher, fileName, lineNumber); +} + +FOUNDATION_EXPORT void HC_assertThatLongWithLocation(id testCase, long actual, + id matcher, char const * fileName, int lineNumber) +{ + HC_assertThatWithLocation(testCase, @(actual), matcher, fileName, lineNumber); +} + +FOUNDATION_EXPORT void HC_assertThatLongLongWithLocation(id testCase, long long actual, + id matcher, char const * fileName, int lineNumber) +{ + HC_assertThatWithLocation(testCase, @(actual), matcher, fileName, lineNumber); +} + +FOUNDATION_EXPORT void HC_assertThatShortWithLocation(id testCase, short actual, + id matcher, char const * fileName, int lineNumber) +{ + HC_assertThatWithLocation(testCase, @(actual), matcher, fileName, lineNumber); +} + +FOUNDATION_EXPORT void HC_assertThatUnsignedCharWithLocation(id testCase, unsigned char actual, + id matcher, char const * fileName, int lineNumber) +{ + HC_assertThatWithLocation(testCase, @(actual), matcher, fileName, lineNumber); +} + +FOUNDATION_EXPORT void HC_assertThatUnsignedIntWithLocation(id testCase, unsigned int actual, + id matcher, char const * fileName, int lineNumber) +{ + HC_assertThatWithLocation(testCase, @(actual), matcher, fileName, lineNumber); +} + +FOUNDATION_EXPORT void HC_assertThatUnsignedLongWithLocation(id testCase, unsigned long actual, + id matcher, char const * fileName, int lineNumber) +{ + HC_assertThatWithLocation(testCase, @(actual), matcher, fileName, lineNumber); +} + +FOUNDATION_EXPORT void HC_assertThatUnsignedLongLongWithLocation(id testCase, unsigned long long actual, + id matcher, char const * fileName, int lineNumber) +{ + HC_assertThatWithLocation(testCase, @(actual), matcher, fileName, lineNumber); +} + +FOUNDATION_EXPORT void HC_assertThatUnsignedShortWithLocation(id testCase, unsigned short actual, + id matcher, char const * fileName, int lineNumber) +{ + HC_assertThatWithLocation(testCase, @(actual), matcher, fileName, lineNumber); +} + +FOUNDATION_EXPORT void HC_assertThatIntegerWithLocation(id testCase, NSInteger actual, + id matcher, char const * fileName, int lineNumber) +{ + HC_assertThatWithLocation(testCase, @(actual), matcher, fileName, lineNumber); +} + +FOUNDATION_EXPORT void HC_assertThatUnsignedIntegerWithLocation(id testCase, NSUInteger actual, + id matcher, char const * fileName, int lineNumber) +{ + HC_assertThatWithLocation(testCase, @(actual), matcher, fileName, lineNumber); +} diff --git a/Pods/OCHamcrest/Source/Library/Number/HCOrderingComparison.h b/Pods/OCHamcrest/Source/Library/Number/HCOrderingComparison.h new file mode 100644 index 0000000..31e69f0 --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Number/HCOrderingComparison.h @@ -0,0 +1,114 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import + + +NS_ASSUME_NONNULL_BEGIN + +/*! + * @abstract Matches values with -compare:. + */ +@interface HCOrderingComparison : HCBaseMatcher + +- (instancetype)initComparing:(id)expectedValue + minCompare:(NSComparisonResult)min + maxCompare:(NSComparisonResult)max + comparisonDescription:(NSString *)comparisonDescription NS_DESIGNATED_INITIALIZER; +- (instancetype)init NS_UNAVAILABLE; + +@end + + +FOUNDATION_EXPORT id HC_greaterThan(id value); + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract Creates a matcher that matches when the examined object is greater than the specified + * value, as reported by the -compare: method of the examined object. + * @param value The value which, when passed to the -compare: method of the examined + * object, should return NSOrderedAscending. + * @discussion + * Example
+ *
assertThat(\@2, greaterThan(\@1))
+ * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_greaterThan instead. + */ +static inline id greaterThan(id value) +{ + return HC_greaterThan(value); +} +#endif + + +FOUNDATION_EXPORT id HC_greaterThanOrEqualTo(id value); + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract Creates a matcher that matches when the examined object is greater than or equal to the + * specified value, as reported by the -compare: method of the examined object. + * @param value The value which, when passed to the -compare: method of the examined + * object, should return NSOrderedAscending or NSOrderedSame. + * @discussion + * Example
+ *
assertThat(\@1, greaterThanOrEqualTo(\@1))
+ * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_greaterThanOrEqualTo instead. + */ +static inline id greaterThanOrEqualTo(id value) +{ + return HC_greaterThanOrEqualTo(value); +} +#endif + + +FOUNDATION_EXPORT id HC_lessThan(id value); + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract Creates a matcher that matches when the examined object is less than the specified + * value, as reported by the -compare: method of the examined object. + * @param value The value which, when passed to the -compare: method of the examined + * object, should return NSOrderedDescending. + * @discussion + * Example
+ *
assertThat(\@1, lessThan(\@2))
+ * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_lessThan instead. + */ +static inline id lessThan(id value) +{ + return HC_lessThan(value); +} +#endif + + +FOUNDATION_EXPORT id HC_lessThanOrEqualTo(id value); + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract Creates a matcher that matches when the examined object is less than or equal to the + * specified value, as reported by the -compare: method of the examined object. + * @param value The value which, when passed to the -compare: method of the examined + * object, should return NSOrderedDescending or NSOrderedSame. + * @discussion + * Example
+ *
assertThat(\@1, lessThanOrEqualTo(\@1))
+ * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_lessThanOrEqualTo instead. + */ +static inline id lessThanOrEqualTo(id value) +{ + return HC_lessThanOrEqualTo(value); +} +#endif + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Number/HCOrderingComparison.m b/Pods/OCHamcrest/Source/Library/Number/HCOrderingComparison.m new file mode 100644 index 0000000..20356be --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Number/HCOrderingComparison.m @@ -0,0 +1,97 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCOrderingComparison.h" + + +@interface HCOrderingComparison () +@property (nonatomic, strong, readonly) id expected; +@property (nonatomic, assign, readonly) NSComparisonResult minCompare; +@property (nonatomic, assign, readonly) NSComparisonResult maxCompare; +@property (nonatomic, copy, readonly) NSString *comparisonDescription; +@end + +@implementation HCOrderingComparison + +- (instancetype)initComparing:(id)expectedValue + minCompare:(NSComparisonResult)min + maxCompare:(NSComparisonResult)max + comparisonDescription:(NSString *)description +{ + if (![expectedValue respondsToSelector:@selector(compare:)]) + { + @throw [NSException exceptionWithName: @"UncomparableObject" + reason: @"Object must respond to compare:" + userInfo: nil]; + } + + self = [super init]; + if (self) + { + _expected = expectedValue; + _minCompare = min; + _maxCompare = max; + _comparisonDescription = [description copy]; + } + return self; +} + +- (BOOL)matches:(nullable id)item +{ + if (item == nil) + return NO; + + NSComparisonResult compare; + @try + { + compare = [self.expected compare:item]; + } + @catch (NSException *e) + { + return NO; + } + return self.minCompare <= compare && compare <= self.maxCompare; +} + +- (void)describeTo:(id )description +{ + [[[[description appendText:@"a value "] + appendText:self.comparisonDescription] + appendText:@" "] + appendDescriptionOf:self.expected]; +} + +@end + + +id HC_greaterThan(id value) +{ + return [[HCOrderingComparison alloc] initComparing:value + minCompare:NSOrderedAscending + maxCompare:NSOrderedAscending + comparisonDescription:@"greater than"]; +} + +id HC_greaterThanOrEqualTo(id value) +{ + return [[HCOrderingComparison alloc] initComparing:value + minCompare:NSOrderedAscending + maxCompare:NSOrderedSame + comparisonDescription:@"greater than or equal to"]; +} + +id HC_lessThan(id value) +{ + return [[HCOrderingComparison alloc] initComparing:value + minCompare:NSOrderedDescending + maxCompare:NSOrderedDescending + comparisonDescription:@"less than"]; +} + +id HC_lessThanOrEqualTo(id value) +{ + return [[HCOrderingComparison alloc] initComparing:value + minCompare:NSOrderedSame + maxCompare:NSOrderedDescending + comparisonDescription:@"less than or equal to"]; +} diff --git a/Pods/OCHamcrest/Source/Library/Object/HCArgumentCaptor.h b/Pods/OCHamcrest/Source/Library/Object/HCArgumentCaptor.h new file mode 100644 index 0000000..a6cfbd3 --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Object/HCArgumentCaptor.h @@ -0,0 +1,44 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import + + +NS_ASSUME_NONNULL_BEGIN + +/*! + * @abstract Matches anything, capturing all values. + * @discussion This matcher captures all values it was given to match, and always evaluates to + * YES. Use it to capture argument values for further assertions. + * + * Unlike other matchers, this matcher is not idempotent. It should be created outside of any + * expression so that it can be queried for the items it captured. + */ +@interface HCArgumentCaptor : HCIsAnything + +/*! + * @abstract Returns the captured value. + * @discussion If -matches: was called more than once then this property returns the + * last captured value. + * + * If -matches: was never invoked and so no value was captured, this property returns + * nil. But if nil was captured, this property returns NSNull. + */ +@property (nullable, nonatomic, readonly) id value; + +/*! + * @abstract Returns all captured values. + * @discussion Returns an array containing all captured values, in the order in which they were + * captured. nil values are converted to NSNull. + */ +@property (nonatomic, readonly) NSArray *allValues; + +/*! + * @abstract Determines whether subsequent matched values are captured. + * @discussion YES by default. + */ +@property (nonatomic, assign) BOOL captureEnabled; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Object/HCArgumentCaptor.m b/Pods/OCHamcrest/Source/Library/Object/HCArgumentCaptor.m new file mode 100644 index 0000000..11c1a6f --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Object/HCArgumentCaptor.m @@ -0,0 +1,54 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCArgumentCaptor.h" + + +@interface HCArgumentCaptor () +@property (nonatomic, strong, readonly) NSMutableArray *values; +@end + +@implementation HCArgumentCaptor + +@dynamic allValues; +@dynamic value; + +- (instancetype)init +{ + self = [super initWithDescription:@""]; + if (self) + { + _values = [[NSMutableArray alloc] init]; + _captureEnabled = YES; + } + return self; +} + +- (BOOL)matches:(nullable id)item +{ + [self capture:item]; + return [super matches:item]; +} + +- (void)capture:(id)item +{ + if (self.captureEnabled) + { + id value = item ?: [NSNull null]; + [self.values addObject:value]; + } +} + +- (id)value +{ + if (!self.values.count) + return nil; + return self.values.lastObject; +} + +- (NSArray *)allValues +{ + return [self.values copy]; +} + +@end diff --git a/Pods/OCHamcrest/Source/Library/Object/HCClassMatcher.h b/Pods/OCHamcrest/Source/Library/Object/HCClassMatcher.h new file mode 100644 index 0000000..d0d0206 --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Object/HCClassMatcher.h @@ -0,0 +1,18 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import + + +NS_ASSUME_NONNULL_BEGIN + +@interface HCClassMatcher : HCBaseMatcher + +@property (nonatomic, strong, readonly) Class theClass; + +- (instancetype)initWithClass:(Class)aClass NS_DESIGNATED_INITIALIZER; +- (instancetype)init NS_UNAVAILABLE; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Object/HCClassMatcher.m b/Pods/OCHamcrest/Source/Library/Object/HCClassMatcher.m new file mode 100644 index 0000000..05b0c6d --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Object/HCClassMatcher.m @@ -0,0 +1,43 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCClassMatcher.h" + +#import "HCRequireNonNilObject.h" + + +@interface HCClassMatcher (SubclassResponsibility) +- (NSString *)expectation; +@end + + +@implementation HCClassMatcher + +- (instancetype)initWithClass:(Class)aClass +{ + HCRequireNonNilObject(aClass); + + self = [super init]; + if (self) + _theClass = aClass; + return self; +} + +- (void)describeTo:(id )description +{ + [[description appendText:[self expectation]] + appendText:NSStringFromClass(self.theClass)]; +} + +- (void)describeMismatchOf:(nullable id)item to:(nullable id )mismatchDescription +{ + [mismatchDescription appendText:@"was "]; + if (item) + { + [[mismatchDescription appendText:NSStringFromClass([item class])] + appendText:@" instance "]; + } + [mismatchDescription appendDescriptionOf:item]; +} + +@end diff --git a/Pods/OCHamcrest/Source/Library/Object/HCConformsToProtocol.h b/Pods/OCHamcrest/Source/Library/Object/HCConformsToProtocol.h new file mode 100644 index 0000000..337fa47 --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Object/HCConformsToProtocol.h @@ -0,0 +1,42 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt +// Contribution by Todd Farrell + +#import + + +NS_ASSUME_NONNULL_BEGIN + +/*! + * @abstract Matches objects that conform to specified protocol. + */ +@interface HCConformsToProtocol : HCBaseMatcher + +- (instancetype)initWithProtocol:(Protocol *)protocol NS_DESIGNATED_INITIALIZER; +- (instancetype)init NS_UNAVAILABLE; + +@end + + +FOUNDATION_EXPORT id HC_conformsTo(Protocol *aProtocol); + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract Creates a matcher that matches when the examined object conforms to the specified + * protocol. + * @param aProtocol The protocol to compare against as the expected protocol. + * @discussion + * Example
+ *
assertThat(myObject, conformsTo(\@protocol(NSCoding))
+ * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_conformsTo instead. + */ +static inline id conformsTo(Protocol *aProtocol) +{ + return HC_conformsTo(aProtocol); +} +#endif + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Object/HCConformsToProtocol.m b/Pods/OCHamcrest/Source/Library/Object/HCConformsToProtocol.m new file mode 100644 index 0000000..18c70b3 --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Object/HCConformsToProtocol.m @@ -0,0 +1,44 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt +// Contribution by Todd Farrell +// + +#import "HCConformsToProtocol.h" + +#import "HCRequireNonNilObject.h" + + +@interface HCConformsToProtocol () +@property (nonatomic, strong, readonly) Protocol *protocol; +@end + +@implementation HCConformsToProtocol + +- (instancetype)initWithProtocol:(Protocol *)protocol +{ + HCRequireNonNilObject(protocol); + + self = [super init]; + if (self) + _protocol = protocol; + return self; +} + +- (BOOL)matches:(nullable id)item +{ + return [item conformsToProtocol:self.protocol]; +} + +- (void)describeTo:(id )description +{ + [[description appendText:@"an object that conforms to "] + appendText:NSStringFromProtocol(self.protocol)]; +} + +@end + + +id HC_conformsTo(Protocol *aProtocol) +{ + return [[HCConformsToProtocol alloc] initWithProtocol:aProtocol]; +} diff --git a/Pods/OCHamcrest/Source/Library/Object/HCHasDescription.h b/Pods/OCHamcrest/Source/Library/Object/HCHasDescription.h new file mode 100644 index 0000000..85af248 --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Object/HCHasDescription.h @@ -0,0 +1,45 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import + + +NS_ASSUME_NONNULL_BEGIN + +/*! + * @abstract Matches objects whose description satisfies a nested matcher. + */ +@interface HCHasDescription : HCInvocationMatcher + +- (instancetype)initWithDescription:(id )descriptionMatcher NS_DESIGNATED_INITIALIZER; +- (instancetype)initWithInvocation:(NSInvocation *)anInvocation matching:(id )aMatcher NS_UNAVAILABLE; + +@end + + +FOUNDATION_EXPORT id HC_hasDescription(id descriptionMatcher); + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract Creates a matcher that matches when the examined object's -description + * satisfies the specified matcher. + * @param descriptionMatcher The matcher used to verify the description result, or an expected value + * for equalTo matching. + * @discussion If descriptionMatcher is not a matcher, it is implicitly wrapped in + * an equalTo matcher to check for equality. + * + * Examples
+ *
assertThat(myObject, hasDescription(equalTo(\@"foo"))
+ *
assertThat(myObject, hasDescription(\@"foo"))
+ * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_hasDescription instead. + */ +static inline id hasDescription(id descriptionMatcher) +{ + return HC_hasDescription(descriptionMatcher); +} +#endif + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Object/HCHasDescription.m b/Pods/OCHamcrest/Source/Library/Object/HCHasDescription.m new file mode 100644 index 0000000..ba472da --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Object/HCHasDescription.m @@ -0,0 +1,28 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCHasDescription.h" + +#import "HCWrapInMatcher.h" +#import "NSInvocation+OCHamcrest.h" + + +@implementation HCHasDescription + +- (instancetype)initWithDescription:(id )descriptionMatcher +{ + NSInvocation *anInvocation = [NSInvocation och_invocationOnObjectOfType:[NSObject class] + selector:@selector(description)]; + self = [super initWithInvocation:anInvocation matching:descriptionMatcher]; + if (self) + self.shortMismatchDescription = YES; + return self; +} + +@end + + +id HC_hasDescription(id descriptionMatcher) +{ + return [[HCHasDescription alloc] initWithDescription:HCWrapInMatcher(descriptionMatcher)]; +} diff --git a/Pods/OCHamcrest/Source/Library/Object/HCHasProperty.h b/Pods/OCHamcrest/Source/Library/Object/HCHasProperty.h new file mode 100644 index 0000000..a65d272 --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Object/HCHasProperty.h @@ -0,0 +1,47 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt +// Contribution by Justin Shacklette + +#import + + +NS_ASSUME_NONNULL_BEGIN + +/*! + * @abstract Matches objects whose "property" (or simple method) satisfies a nested matcher. + */ +@interface HCHasProperty : HCDiagnosingMatcher + +- (instancetype)initWithProperty:(NSString *)propertyName value:(id )valueMatcher NS_DESIGNATED_INITIALIZER; +- (instancetype)init NS_UNAVAILABLE; + +@end + + +FOUNDATION_EXPORT id HC_hasProperty(NSString *propertyName, _Nullable id valueMatcher); + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract Creates a matcher that matches when the examined object has an instance method with the + * specified name whose return value satisfies the specified matcher. + * @param propertyName The name of an instance method without arguments that returns an object. + * @param valueMatcher The matcher to satisfy for the return value, or an expected value for + * equalTo matching. + * @discussion Note: While this matcher factory is called "hasProperty", it applies to the return + * values of any instance methods without arguments, not just properties. + * + * Examples
+ *
assertThat(person, hasProperty(\@"firstName", equalTo(\@"Joe")))
+ *
assertThat(person, hasProperty(\@"firstName", \@"Joe"))
+ * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_hasProperty instead. + */ +static inline id hasProperty(NSString *propertyName, _Nullable id valueMatcher) +{ + return HC_hasProperty(propertyName, valueMatcher); +} +#endif + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Object/HCHasProperty.m b/Pods/OCHamcrest/Source/Library/Object/HCHasProperty.m new file mode 100644 index 0000000..90c6216 --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Object/HCHasProperty.m @@ -0,0 +1,71 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt +// Contribution by Justin Shacklette + +#import "HCHasProperty.h" + +#import "HCRequireNonNilObject.h" +#import "HCWrapInMatcher.h" +#import "NSInvocation+OCHamcrest.h" + + +@interface HCHasProperty () +@property (nonatomic, copy, readonly) NSString *propertyName; +@property (nonatomic, strong, readonly) id valueMatcher; +@end + +@implementation HCHasProperty + +- (instancetype)initWithProperty:(NSString *)propertyName value:(id )valueMatcher +{ + HCRequireNonNilObject(propertyName); + + self = [super init]; + if (self != nil) + { + _propertyName = [propertyName copy]; + _valueMatcher = valueMatcher; + } + return self; +} + +- (BOOL)matches:(nullable id)item describingMismatchTo:(id )mismatchDescription +{ + SEL propertyGetter = NSSelectorFromString(self.propertyName); + if (![item respondsToSelector:propertyGetter]) + { + [[[[mismatchDescription appendText:@"no "] + appendText:self.propertyName] + appendText:@" on "] + appendDescriptionOf:item]; + return NO; + } + + NSInvocation *getterInvocation = [NSInvocation och_invocationWithTarget:item selector:propertyGetter]; + id propertyValue = [getterInvocation och_invoke]; + BOOL match = [self.valueMatcher matches:propertyValue]; + if (!match) + { + [[[[[mismatchDescription appendText:self.propertyName] + appendText:@" was "] + appendDescriptionOf:propertyValue] + appendText:@" on "] + appendDescriptionOf:item]; + } + return match; +} + +- (void)describeTo:(id )description +{ + [[[[description appendText:@"an object with "] + appendText:self.propertyName] + appendText:@" "] + appendDescriptionOf:self.valueMatcher]; +} +@end + + +id HC_hasProperty(NSString *propertyName, _Nullable id valueMatcher) +{ + return [[HCHasProperty alloc] initWithProperty:propertyName value:HCWrapInMatcher(valueMatcher)]; +} diff --git a/Pods/OCHamcrest/Source/Library/Object/HCIsEqual.h b/Pods/OCHamcrest/Source/Library/Object/HCIsEqual.h new file mode 100644 index 0000000..84d88fe --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Object/HCIsEqual.h @@ -0,0 +1,41 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import + + +NS_ASSUME_NONNULL_BEGIN + +/*! + * @abstract Is the value equal to another value, as tested by the -isEqual: method? + */ +@interface HCIsEqual : HCBaseMatcher + +- (instancetype)initEqualTo:(nullable id)expectedValue NS_DESIGNATED_INITIALIZER; +- (instancetype)init NS_UNAVAILABLE; + +@end + + +FOUNDATION_EXPORT id HC_equalTo(_Nullable id operand); + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract Creates a matcher that matches when the examined object is equal to the specified + * object, as determined by calling the -isEqual: method on the examined object. + * @param operand The object to compare against as the expected value. + * @discussion If the specified operand is nil, then the created matcher will match if + * the examined object itself is nil, or if the examined object's -isEqual: + * method returns YES when passed a nil. + * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_equalTo instead. + */ +static inline id equalTo(_Nullable id operand) +{ + return HC_equalTo(operand); +} +#endif + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Object/HCIsEqual.m b/Pods/OCHamcrest/Source/Library/Object/HCIsEqual.m new file mode 100644 index 0000000..9424926 --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Object/HCIsEqual.m @@ -0,0 +1,46 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCIsEqual.h" + + +@interface HCIsEqual () +@property (nullable, nonatomic, strong, readonly) id expectedValue; +@end + +@implementation HCIsEqual + +- (instancetype)initEqualTo:(nullable id)expectedValue +{ + self = [super init]; + if (self) + _expectedValue = expectedValue; + return self; +} + +- (BOOL)matches:(nullable id)item +{ + if (item == nil) + return self.expectedValue == nil; + return [item isEqual:self.expectedValue]; +} + +- (void)describeTo:(id )description +{ + if ([self.expectedValue conformsToProtocol:@protocol(HCMatcher)]) + { + [[[description appendText:@"<"] + appendDescriptionOf:self.expectedValue] + appendText:@">"]; + } + else + [description appendDescriptionOf:self.expectedValue]; +} + +@end + + +id HC_equalTo(_Nullable id operand) +{ + return [[HCIsEqual alloc] initEqualTo:operand]; +} diff --git a/Pods/OCHamcrest/Source/Library/Object/HCIsInstanceOf.h b/Pods/OCHamcrest/Source/Library/Object/HCIsInstanceOf.h new file mode 100644 index 0000000..d2294ba --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Object/HCIsInstanceOf.h @@ -0,0 +1,37 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import + + +NS_ASSUME_NONNULL_BEGIN + +/*! + * @abstract Matches objects that are of a given class or any subclass. + */ +@interface HCIsInstanceOf : HCClassMatcher +@end + + +FOUNDATION_EXPORT id HC_instanceOf(Class expectedClass); + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract Creates a matcher that matches when the examined object is an instance of, or inherits + * from, the specified class. + * @param expectedClass The class to compare against as the expected class. + * @discussion + * Example
+ *
assertThat(canoe, instanceOf([Canoe class]))
+ * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_instanceOf instead. + */ +static inline id instanceOf(Class expectedClass) +{ + return HC_instanceOf(expectedClass); +} +#endif + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Object/HCIsInstanceOf.m b/Pods/OCHamcrest/Source/Library/Object/HCIsInstanceOf.m new file mode 100644 index 0000000..f51942d --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Object/HCIsInstanceOf.m @@ -0,0 +1,25 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCIsInstanceOf.h" + + +@implementation HCIsInstanceOf + +- (BOOL)matches:(nullable id)item +{ + return [item isKindOfClass:self.theClass]; +} + +- (NSString *)expectation +{ + return @"an instance of "; +} + +@end + + +id HC_instanceOf(Class expectedClass) +{ + return [[HCIsInstanceOf alloc] initWithClass:expectedClass]; +} diff --git a/Pods/OCHamcrest/Source/Library/Object/HCIsNil.h b/Pods/OCHamcrest/Source/Library/Object/HCIsNil.h new file mode 100644 index 0000000..eb917b2 --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Object/HCIsNil.h @@ -0,0 +1,55 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import + + +NS_ASSUME_NONNULL_BEGIN + +/*! + * @abstract Is the value nil? + */ +@interface HCIsNil : HCBaseMatcher +@end + + +FOUNDATION_EXPORT id HC_nilValue(void); + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract Creates a matcher that matches when the examined object is nil. + * @discussion + * Example
+ *
assertThat(myObject, nilValue())
+ * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_nilValue instead. + */ +static inline id nilValue(void) +{ + return HC_nilValue(); +} +#endif + + +FOUNDATION_EXPORT id HC_notNilValue(void); + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract Creates a matcher that matches when the examined object is not nil. + * @discussion + * Example
+ *
assertThat(myObject, notNilValue())
+ * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_notNilValue instead. + */ +static inline id notNilValue(void) +{ + return HC_notNilValue(); +} +#endif + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Object/HCIsNil.m b/Pods/OCHamcrest/Source/Library/Object/HCIsNil.m new file mode 100644 index 0000000..33ce66d --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Object/HCIsNil.m @@ -0,0 +1,32 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCIsNil.h" + +#import "HCIsNot.h" + + +@implementation HCIsNil + +- (BOOL)matches:(nullable id)item +{ + return item == nil; +} + +- (void)describeTo:(id )description +{ + [description appendText:@"nil"]; +} + +@end + + +id HC_nilValue() +{ + return [[HCIsNil alloc] init]; +} + +id HC_notNilValue() +{ + return HC_isNot([[HCIsNil alloc] init]); +} diff --git a/Pods/OCHamcrest/Source/Library/Object/HCIsSame.h b/Pods/OCHamcrest/Source/Library/Object/HCIsSame.h new file mode 100644 index 0000000..e75b0b2 --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Object/HCIsSame.h @@ -0,0 +1,41 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import + + +NS_ASSUME_NONNULL_BEGIN + +/*! + * @abstract Is the value the same object as another value? + */ +@interface HCIsSame : HCBaseMatcher + +- (instancetype)initSameAs:(nullable id)object NS_DESIGNATED_INITIALIZER; +- (instancetype)init NS_UNAVAILABLE; + +@end + + +FOUNDATION_EXPORT id HC_sameInstance(_Nullable id expectedInstance); + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract Creates a matcher that matches only when the examined object is the same instance as + * the specified target object. + * @param expectedInstance The expected instance. + * @discussion + * Example
+ *
assertThat(delegate, sameInstance(expectedDelegate))
+ * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_sameInstance instead. + */ +static inline id sameInstance(_Nullable id expectedInstance) +{ + return HC_sameInstance(expectedInstance); +} +#endif + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Object/HCIsSame.m b/Pods/OCHamcrest/Source/Library/Object/HCIsSame.m new file mode 100644 index 0000000..4517edb --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Object/HCIsSame.m @@ -0,0 +1,46 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCIsSame.h" + + +@interface HCIsSame () +@property (nonatomic, strong, readonly) id object; +@end + +@implementation HCIsSame + +- (instancetype)initSameAs:(nullable id)object +{ + self = [super init]; + if (self) + _object = object; + return self; +} + +- (BOOL)matches:(nullable id)item +{ + return item == self.object; +} + +- (void)describeMismatchOf:(nullable id)item to:(nullable id )mismatchDescription +{ + [mismatchDescription appendText:@"was "]; + if (item) + [mismatchDescription appendText:[NSString stringWithFormat:@"%p ", (__bridge void *)item]]; + [mismatchDescription appendDescriptionOf:item]; +} + +- (void)describeTo:(id )description +{ + [[description appendText:[NSString stringWithFormat:@"same instance as %p ", (__bridge void *)self.object]] + appendDescriptionOf:self.object]; +} + +@end + + +id HC_sameInstance(_Nullable id expectedInstance) +{ + return [[HCIsSame alloc] initSameAs:expectedInstance]; +} diff --git a/Pods/OCHamcrest/Source/Library/Object/HCIsTypeOf.h b/Pods/OCHamcrest/Source/Library/Object/HCIsTypeOf.h new file mode 100644 index 0000000..39b190d --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Object/HCIsTypeOf.h @@ -0,0 +1,37 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import + + +NS_ASSUME_NONNULL_BEGIN + +/*! + * @abstract Matches objects that are of a given class. + */ +@interface HCIsTypeOf : HCClassMatcher +@end + + +FOUNDATION_EXPORT id HC_isA(Class expectedClass); + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract Creates a matcher that matches when the examined object is an instance of the specified + * class, but not of any subclass. + * @param expectedClass The class to compare against as the expected class. + * @discussion + * Example
+ *
assertThat(canoe, isA([Canoe class]))
+ * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_isA instead. + */ +static inline id isA(Class expectedClass) +{ + return HC_isA(expectedClass); +} +#endif + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Object/HCIsTypeOf.m b/Pods/OCHamcrest/Source/Library/Object/HCIsTypeOf.m new file mode 100644 index 0000000..4134842 --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Object/HCIsTypeOf.m @@ -0,0 +1,25 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCIsTypeOf.h" + + +@implementation HCIsTypeOf + +- (BOOL)matches:(nullable id)item +{ + return [item isMemberOfClass:self.theClass]; +} + +- (NSString *)expectation +{ + return @"an exact instance of "; +} + +@end + + +id HC_isA(Class expectedClass) +{ + return [[HCIsTypeOf alloc] initWithClass:expectedClass]; +} diff --git a/Pods/OCHamcrest/Source/Library/Object/HCThrowsException.h b/Pods/OCHamcrest/Source/Library/Object/HCThrowsException.h new file mode 100644 index 0000000..b45b81f --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Object/HCThrowsException.h @@ -0,0 +1,41 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import + + +NS_ASSUME_NONNULL_BEGIN + +/*! + * @abstract Does executing a block throw an exception which satisfies a nested matcher? + */ +@interface HCThrowsException : HCDiagnosingMatcher + +- (id)initWithExceptionMatcher:(id)exceptionMatcher NS_DESIGNATED_INITIALIZER; +- (instancetype)init NS_UNAVAILABLE; + +@end + + +FOUNDATION_EXPORT id HC_throwsException(id exceptionMatcher); + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract Creates a matcher that matches when the examined object is a block which, when + * executed, throws an exception satisfying the specified matcher. + * @param exceptionMatcher The matcher to satisfy when passed the exception. + * @discussion + * Example
+ *
assertThat(^{ [obj somethingBad]; }, throwsException(hasProperty(@"reason", @"EXPECTED REASON")))
+ * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_throwsException instead. + */ +static inline id throwsException(id exceptionMatcher) +{ + return HC_throwsException(exceptionMatcher); +} +#endif + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Object/HCThrowsException.m b/Pods/OCHamcrest/Source/Library/Object/HCThrowsException.m new file mode 100644 index 0000000..407df5b --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Object/HCThrowsException.m @@ -0,0 +1,84 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCThrowsException.h" + + +static void HCRequireMatcher(id obj) +{ + if (![obj conformsToProtocol:@protocol(HCMatcher)]) + { + @throw [NSException exceptionWithName:@"NonMatcher" + reason:@"Must be matcher" + userInfo:nil]; + } +} + + +@interface HCThrowsException() +@property (nonatomic, strong, readonly) id exceptionMatcher; +@end + +@implementation HCThrowsException + +- (id)initWithExceptionMatcher:(id)exceptionMatcher +{ + HCRequireMatcher(exceptionMatcher); + + self = [super init]; + if (self) + _exceptionMatcher = exceptionMatcher; + return self; +} + +- (BOOL)matches:(nullable id)item describingMismatchTo:(id )mismatchDescription +{ + if (![self isBlock:item]) + { + [[mismatchDescription appendText:@"was non-block "] appendDescriptionOf:item]; + return NO; + } + + typedef void (^HCThrowsExceptionBlock)(void); + HCThrowsExceptionBlock block = item; + @try + { + block(); + } + @catch (id exception) + { + BOOL match = [self.exceptionMatcher matches:exception]; + if (!match) + { + [mismatchDescription appendText:@"exception thrown but "]; + [self.exceptionMatcher describeMismatchOf:exception to:mismatchDescription]; + } + return match; + } + + [mismatchDescription appendText:@"no exception thrown"]; + return NO; +} + +- (BOOL)isBlock:(id)item +{ + id block = ^{}; + Class blockClass = [block class]; + while ([blockClass superclass] != [NSObject class]) + blockClass = [blockClass superclass]; + return [item isKindOfClass:blockClass]; +} + +- (void)describeTo:(id )description +{ + [[description appendText:@"a block with no arguments, throwing an exception which is "] + appendDescriptionOf:self.exceptionMatcher]; +} + +@end + + +id HC_throwsException(id exceptionMatcher) +{ + return [[HCThrowsException alloc] initWithExceptionMatcher:exceptionMatcher]; +} diff --git a/Pods/OCHamcrest/Source/Library/Text/HCIsEqualCompressingWhiteSpace.h b/Pods/OCHamcrest/Source/Library/Text/HCIsEqualCompressingWhiteSpace.h new file mode 100644 index 0000000..69c25f0 --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Text/HCIsEqualCompressingWhiteSpace.h @@ -0,0 +1,46 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import + + +NS_ASSUME_NONNULL_BEGIN + +/*! + * @abstract Tests if a string is equal to another string, when whitespace differences are (mostly) ignored. + */ +@interface HCIsEqualCompressingWhiteSpace : HCBaseMatcher + +- (instancetype)initWithString:(NSString *)string NS_DESIGNATED_INITIALIZER; +- (instancetype)init NS_UNAVAILABLE; + +@end + + +FOUNDATION_EXPORT id HC_equalToCompressingWhiteSpace(NSString *expectedString); + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract Creates a matcher for NSStrings that matches when the examined string is equal to the + * specified expected string, when whitespace differences are (mostly) ignored. + * @param expectedString The expected value of matched strings. (Must not be nil.) + * @discussion To be exact, the following whitespace rules are applied: + *
    + *
  • all leading and trailing whitespace of both the expectedString and the examined string are ignored
  • + *
  • any remaining whitespace, appearing within either string, is collapsed to a single space before comparison
  • + *
+ * + * Example
+ *
assertThat(\@"   my\tfoo  bar ", equalToCompressingWhiteSpace(\@" my  foo bar"))
+ * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_equalToCompressingWhiteSpace instead. + */ +static inline id equalToCompressingWhiteSpace(NSString *expectedString) +{ + return HC_equalToCompressingWhiteSpace(expectedString); +} +#endif + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Text/HCIsEqualCompressingWhiteSpace.m b/Pods/OCHamcrest/Source/Library/Text/HCIsEqualCompressingWhiteSpace.m new file mode 100644 index 0000000..711510c --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Text/HCIsEqualCompressingWhiteSpace.m @@ -0,0 +1,62 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCIsEqualCompressingWhiteSpace.h" + +#import "HCRequireNonNilObject.h" + + +static NSString *stripSpaces(NSString *string) +{ + NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"\\s+" + options:0 + error:NULL]; + NSString *modifiedString = [regex stringByReplacingMatchesInString:string + options:0 + range:NSMakeRange(0, string.length) + withTemplate:@" "]; + return [modifiedString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]; +} + + +@interface HCIsEqualCompressingWhiteSpace () +@property (nonatomic, copy, readonly) NSString *originalString; +@property (nonatomic, copy, readonly) NSString *strippedString; +@end + +@implementation HCIsEqualCompressingWhiteSpace + +- (instancetype)initWithString:(NSString *)string +{ + HCRequireNonNilObject(string); + + self = [super init]; + if (self) + { + _originalString = [string copy]; + _strippedString = [stripSpaces(string) copy]; + } + return self; +} + +- (BOOL)matches:(nullable id)item +{ + if (![item isKindOfClass:[NSString class]]) + return NO; + + return [self.strippedString isEqualToString:stripSpaces(item)]; +} + +- (void)describeTo:(id )description +{ + [[description appendDescriptionOf:self.originalString] + appendText:@" ignoring whitespace"]; +} + +@end + + +id HC_equalToCompressingWhiteSpace(NSString *expectedString) +{ + return [[HCIsEqualCompressingWhiteSpace alloc] initWithString:expectedString]; +} diff --git a/Pods/OCHamcrest/Source/Library/Text/HCIsEqualIgnoringCase.h b/Pods/OCHamcrest/Source/Library/Text/HCIsEqualIgnoringCase.h new file mode 100644 index 0000000..32e6df5 --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Text/HCIsEqualIgnoringCase.h @@ -0,0 +1,41 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import + + +NS_ASSUME_NONNULL_BEGIN + +/*! + * @abstract Tests if a string is equal to another string, regardless of the case. + */ +@interface HCIsEqualIgnoringCase : HCBaseMatcher + +- (instancetype)initWithString:(NSString *)string NS_DESIGNATED_INITIALIZER; +- (instancetype)init NS_UNAVAILABLE; + +@end + + +FOUNDATION_EXPORT id HC_equalToIgnoringCase(NSString *expectedString); + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract Creates a matcher for NSStrings that matches when the examined string is equal to the + * specified expected string, ignoring case differences. + * @param expectedString The expected value of matched strings. (Must not be nil.) + * @discussion + * Example
+ *
assertThat(\@"Foo", equalToIgnoringCase(\@"FOO"))
+ * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_equalToIgnoringCase instead. + */ +static inline id equalToIgnoringCase(NSString *expectedString) +{ + return HC_equalToIgnoringCase(expectedString); +} +#endif + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Text/HCIsEqualIgnoringCase.m b/Pods/OCHamcrest/Source/Library/Text/HCIsEqualIgnoringCase.m new file mode 100644 index 0000000..d23f711 --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Text/HCIsEqualIgnoringCase.m @@ -0,0 +1,45 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCIsEqualIgnoringCase.h" + +#import "HCRequireNonNilObject.h" + + +@interface HCIsEqualIgnoringCase () +@property (nonatomic, copy, readonly) NSString *string; +@end + +@implementation HCIsEqualIgnoringCase + +- (instancetype)initWithString:(NSString *)string +{ + HCRequireNonNilObject(string); + + self = [super init]; + if (self) + _string = [string copy]; + return self; +} + +- (BOOL)matches:(nullable id)item +{ + if (![item isKindOfClass:[NSString class]]) + return NO; + + return [self.string caseInsensitiveCompare:item] == NSOrderedSame; +} + +- (void)describeTo:(id )description +{ + [[description appendDescriptionOf:self.string] + appendText:@" ignoring case"]; +} + +@end + + +id HC_equalToIgnoringCase(NSString *expectedString) +{ + return [[HCIsEqualIgnoringCase alloc] initWithString:expectedString]; +} diff --git a/Pods/OCHamcrest/Source/Library/Text/HCStringContains.h b/Pods/OCHamcrest/Source/Library/Text/HCStringContains.h new file mode 100644 index 0000000..61d5fe1 --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Text/HCStringContains.h @@ -0,0 +1,39 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import + + +NS_ASSUME_NONNULL_BEGIN + +/*! + * @abstract Tests if string that contains a substring. + */ +@interface HCStringContains : HCSubstringMatcher +@end + + +FOUNDATION_EXPORT id HC_containsSubstring(NSString *substring); + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract Creates a matcher that matches when the examined object is a string containing the + * specified substring anywhere. + * @param substring The string to search for. (Must not be nil.) + * @discussion The matcher invokes -rangeOfString: on the examined object, passing the + * specified substring and matching if it is found. + * + * Example
+ *
assertThat(\@"myStringOfNote", containsSubstring(\@"ring"))
+ * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_containsSubstring instead. + */ +static inline id containsSubstring(NSString *substring) +{ + return HC_containsSubstring(substring); +} +#endif + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Text/HCStringContains.m b/Pods/OCHamcrest/Source/Library/Text/HCStringContains.m new file mode 100644 index 0000000..a6fb1f2 --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Text/HCStringContains.m @@ -0,0 +1,28 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCStringContains.h" + + +@implementation HCStringContains + +- (BOOL)matches:(nullable id)item +{ + if (![item respondsToSelector:@selector(rangeOfString:)]) + return NO; + + return [item rangeOfString:self.substring].location != NSNotFound; +} + +- (NSString *)relationship +{ + return @"containing"; +} + +@end + + +id HC_containsSubstring(NSString *substring) +{ + return [[HCStringContains alloc] initWithSubstring:substring]; +} diff --git a/Pods/OCHamcrest/Source/Library/Text/HCStringContainsInOrder.h b/Pods/OCHamcrest/Source/Library/Text/HCStringContainsInOrder.h new file mode 100644 index 0000000..4788373 --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Text/HCStringContainsInOrder.h @@ -0,0 +1,62 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import + + +NS_ASSUME_NONNULL_BEGIN + +/*! + * @abstract Tests if string that contains a list of substrings in relative order. + */ +@interface HCStringContainsInOrder : HCBaseMatcher + +- (instancetype)initWithSubstrings:(NSArray *)substrings NS_DESIGNATED_INITIALIZER; +- (instancetype)init NS_UNAVAILABLE; + +@end + + +FOUNDATION_EXPORT id HC_stringContainsInOrderIn(NSArray *substrings); + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract Creates matcher for NSStrings that matches when the examined string contains all of the + * specified substrings, considering the order of their appearance. + * @param substrings An array of strings. + * @discussion + * Example
+ *
assertThat(\@"myfoobarbaz", stringContainsInOrderIn(\@[\@"bar", \@"foo"]))
+ * fails as "foo" occurs before "bar" in the string "myfoobarbaz" + * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_stringContainsInOrderIn instead. + */ +static inline id stringContainsInOrderIn(NSArray *substrings) +{ + return HC_stringContainsInOrderIn(substrings); +} +#endif + + +FOUNDATION_EXPORT id HC_stringContainsInOrder(NSString *substrings, ...) NS_REQUIRES_NIL_TERMINATION; + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract Creates matcher for NSStrings that matches when the examined string contains all of the + * specified substrings, considering the order of their appearance. + * @param substrings... A comma-separated list of strings, ending with nil. + * @discussion + * Example
+ *
assertThat(\@"myfoobarbaz", stringContainsInOrder(\@"bar", \@"foo", nil))
+ * fails as "foo" occurs before "bar" in the string "myfoobarbaz" + * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_stringContainsInOrder instead. + */ +#define stringContainsInOrder(substrings...) HC_stringContainsInOrder(substrings) +#endif + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Text/HCStringContainsInOrder.m b/Pods/OCHamcrest/Source/Library/Text/HCStringContainsInOrder.m new file mode 100644 index 0000000..e1d892f --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Text/HCStringContainsInOrder.m @@ -0,0 +1,78 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCStringContainsInOrder.h" + +#import "HCCollect.h" + + +static void requireElementsToBeStrings(NSArray *array) +{ + for (id element in array) + { + if (![element isKindOfClass:[NSString class]]) + { + @throw [NSException exceptionWithName:@"NotAString" + reason:@"Arguments must be strings" + userInfo:nil]; + } + } +} + + +@interface HCStringContainsInOrder () +@property (nonatomic, copy, readonly) NSArray *substrings; +@end + +@implementation HCStringContainsInOrder + +- (instancetype)initWithSubstrings:(NSArray *)substrings +{ + self = [super init]; + if (self) + { + requireElementsToBeStrings(substrings); + _substrings = [substrings copy]; + } + return self; +} + +- (BOOL)matches:(nullable id)item +{ + if (![item isKindOfClass:[NSString class]]) + return NO; + + NSRange searchRange = NSMakeRange(0, [item length]); + for (NSString *substring in self.substrings) + { + NSRange substringRange = [item rangeOfString:substring options:0 range:searchRange]; + if (substringRange.location == NSNotFound) + return NO; + searchRange.location = substringRange.location + substringRange.length; + searchRange.length = [item length] - searchRange.location; + } + return YES; +} + +- (void)describeTo:(id )description +{ + [description appendList:self.substrings start:@"a string containing " separator:@", " end:@" in order"]; +} + +@end + + +id HC_stringContainsInOrderIn(NSArray *substrings) +{ + return [[HCStringContainsInOrder alloc] initWithSubstrings:substrings]; +} + +id HC_stringContainsInOrder(NSString *substrings, ...) +{ + va_list args; + va_start(args, substrings); + NSArray *array = HCCollectItems(substrings, args); + va_end(args); + + return HC_stringContainsInOrderIn(array); +} diff --git a/Pods/OCHamcrest/Source/Library/Text/HCStringEndsWith.h b/Pods/OCHamcrest/Source/Library/Text/HCStringEndsWith.h new file mode 100644 index 0000000..3c05af1 --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Text/HCStringEndsWith.h @@ -0,0 +1,40 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import + + +NS_ASSUME_NONNULL_BEGIN + +/*! + * @abstract Tests if string ends with a substring. + */ +@interface HCStringEndsWith : HCSubstringMatcher +@end + + +FOUNDATION_EXPORT id HC_endsWith(NSString *suffix); + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract Creates a matcher that matches when the examined object is a string that ends with the + * specified string. + * @param suffix The substring that the returned matcher will expect at the end of any examined + * string. (Must not be nil.) + * @discussion The matcher invokes -hasSuffix: on the examined object, passing the + * specified suffix. + * + * Example
+ *
assertThat(\@"myStringOfNote", endsWith(\@"Note"))
+ * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_endsWith instead. + */ +static inline id endsWith(NSString *suffix) +{ + return HC_endsWith(suffix); +} +#endif + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Text/HCStringEndsWith.m b/Pods/OCHamcrest/Source/Library/Text/HCStringEndsWith.m new file mode 100644 index 0000000..93c888c --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Text/HCStringEndsWith.m @@ -0,0 +1,28 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCStringEndsWith.h" + + +@implementation HCStringEndsWith + +- (BOOL)matches:(nullable id)item +{ + if (![item respondsToSelector:@selector(hasSuffix:)]) + return NO; + + return [item hasSuffix:self.substring]; +} + +- (NSString *)relationship +{ + return @"ending with"; +} + +@end + + +id HC_endsWith(NSString *suffix) +{ + return [[HCStringEndsWith alloc] initWithSubstring:suffix]; +} diff --git a/Pods/OCHamcrest/Source/Library/Text/HCStringStartsWith.h b/Pods/OCHamcrest/Source/Library/Text/HCStringStartsWith.h new file mode 100644 index 0000000..dad29ec --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Text/HCStringStartsWith.h @@ -0,0 +1,40 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import + + +NS_ASSUME_NONNULL_BEGIN + +/*! + * @abstract Tests string starts with a substring. + */ +@interface HCStringStartsWith : HCSubstringMatcher +@end + + +FOUNDATION_EXPORT id HC_startsWith(NSString *prefix); + +#ifndef HC_DISABLE_SHORT_SYNTAX +/*! + * @abstract Creates a matcher that matches when the examined object is a string that starts with + * the specified string. + * @param prefix The substring that the returned matcher will expect at the start of any examined + * string. (Must not be nil.) + * @discussion The matcher invokes -hasPrefix: on the examined object, passing the + * specified prefix. + * + * Example
+ *
assertThat(\@"myStringOfNote", startsWith(\@"my"))
+ * + * Name Clash
+ * In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym + * HC_startsWith instead. + */ +static inline id startsWith(NSString *prefix) +{ + return HC_startsWith(prefix); +} +#endif + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Text/HCStringStartsWith.m b/Pods/OCHamcrest/Source/Library/Text/HCStringStartsWith.m new file mode 100644 index 0000000..981da93 --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Text/HCStringStartsWith.m @@ -0,0 +1,28 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCStringStartsWith.h" + + +@implementation HCStringStartsWith + +- (BOOL)matches:(nullable id)item +{ + if (![item respondsToSelector:@selector(hasPrefix:)]) + return NO; + + return [item hasPrefix:self.substring]; +} + +- (NSString *)relationship +{ + return @"starting with"; +} + +@end + + +id HC_startsWith(NSString *prefix) +{ + return [[HCStringStartsWith alloc] initWithSubstring:prefix]; +} diff --git a/Pods/OCHamcrest/Source/Library/Text/HCSubstringMatcher.h b/Pods/OCHamcrest/Source/Library/Text/HCSubstringMatcher.h new file mode 100644 index 0000000..a7a77ff --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Text/HCSubstringMatcher.h @@ -0,0 +1,18 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import + + +NS_ASSUME_NONNULL_BEGIN + +@interface HCSubstringMatcher : HCBaseMatcher + +@property (nonatomic, copy, readonly) NSString *substring; + +- (instancetype)initWithSubstring:(NSString *)substring NS_DESIGNATED_INITIALIZER; +- (instancetype)init NS_UNAVAILABLE; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/OCHamcrest/Source/Library/Text/HCSubstringMatcher.m b/Pods/OCHamcrest/Source/Library/Text/HCSubstringMatcher.m new file mode 100644 index 0000000..b8d021b --- /dev/null +++ b/Pods/OCHamcrest/Source/Library/Text/HCSubstringMatcher.m @@ -0,0 +1,34 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import "HCSubstringMatcher.h" + +#import "HCRequireNonNilObject.h" + + +@interface HCSubstringMatcher (SubclassResponsibility) +- (NSString *)relationship; +@end + + +@implementation HCSubstringMatcher + +- (instancetype)initWithSubstring:(NSString *)substring +{ + HCRequireNonNilObject(substring); + + self = [super init]; + if (self) + _substring = [substring copy]; + return self; +} + +- (void)describeTo:(id )description +{ + [[[[description appendText:@"a string "] + appendText:[self relationship]] + appendText:@" "] + appendDescriptionOf:self.substring]; +} + +@end diff --git a/Pods/OCHamcrest/Source/OCHamcrest.h b/Pods/OCHamcrest/Source/OCHamcrest.h new file mode 100644 index 0000000..1ddc264 --- /dev/null +++ b/Pods/OCHamcrest/Source/OCHamcrest.h @@ -0,0 +1,54 @@ +// OCHamcrest by Jon Reid, https://qualitycoding.org/ +// Copyright 2017 hamcrest.org. See LICENSE.txt + +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import + +// Carthage workaround: Include transitive public headers +#import +#import +#import +#import +#import diff --git a/Pods/OCTotallyLazy/LICENSE.txt b/Pods/OCTotallyLazy/LICENSE.txt new file mode 100644 index 0000000..d645695 --- /dev/null +++ b/Pods/OCTotallyLazy/LICENSE.txt @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/Pods/OCTotallyLazy/README.markdown b/Pods/OCTotallyLazy/README.markdown new file mode 100644 index 0000000..90b0ee1 --- /dev/null +++ b/Pods/OCTotallyLazy/README.markdown @@ -0,0 +1,130 @@ +## OCTotallyLazy - Functional extensions to Objective-C. + +OCTotallyLazy is a framework that adds functional behaviour to Objective C collection objects, as well as a lazy collection object called Sequence. It's a partial port of Dan Bodart's TotallyLazy Java library, available here: http://code.google.com/p/totallylazy/ + +The best place to look for full behaviour is in the test classes for now, checkout https://github.com/stuartervine/OCTotallyLazy/blob/master/src/test-unit/SequenceTest.m + +### Importing OCTotallyLazy in your code. + + import + +### What's available? + +NSArray + + drop: + dropWhile: + filter: + find: + flatMap: + flatten + fold: with: + foreach: + isEmpty + groupBy: + grouped: + head + headOption + join: + map: + mapWithIndex: + merge: + partition: + reduce: + reverse + splitAt: + splitOn: + splitWhen: + tail + take: + takeWhile: + takeRight: + toString + toString: + toString: separator: end: + zip: + zipWithIndex + + asSequence + asSet + asDictionary + +### Some basic examples. + +Mapping (Sequence, NSArray, partially on NSSet, NSDictionary) + + [sequence(@"one", @"two", @"three", nil) map:^(NSString *item){ + return [item uppercaseString]; + }] + // returns sequence(@"ONE", @"TWO", @"THREE", nil) + + [@[@"one", @[@"two"], @"three"] flatMap:^(NSString *item){ + return [item uppercaseString]; + }]; + // returns array(@"ONE", @"TWO", @"THREE", nil) + +Filtering (Sequence, NSArray, NSSet, NSDictionary) + + [sequence(@"1", @"12", @"123", @"1234", nil) filter:^(NSString *item){ + return item.length > 2; + }] + //returns sequence(@"123", @"1234", nil) + +Options + + [Option option:@"something"]; + //Outputs [Some some:@"something"]; + + [Option option:nil]; + //Outputs [None none]; + + [[Option option:@"something"] map:^(NSString *item){ + return [item uppercaseString]; + }]; + //Outputs [Some some:@"SOMETHING"]; + + [Option option:nil] map:^(NSString *item){ + return [item uppercaseString]; + }]; + //Outputs [None none]; + +### Shorthand, for the totally lazy + +The above examples are still quite noisy. There is shorthand syntax available too. Include the following above the framework import. + + #define TL_SHORTHAND + #define TL_LAMBDA + #define TL_LAMBDA_SHORTHAND + import + +Then you can do fun stuff such as: + + [sequence(num(1), num(2), num(3), nil) find:not(eqTo(num(1))]; //outputs [Some some:num(2)]; + +### Lambda craziness + +Verbose: + + [sequence(@"bob", @"fred", @"wilma", nil) map:^(NSString *item){return [item uppercaseString];}] //outputs sequence(@"BOB", @"FRED", @"WILMA", nil) + +A bit more sane: + + [sequence(@"bob", @"fred", @"wilma", nil) map:lambda(s, [s uppercaseString])] //outputs sequence(@"BOB", @"FRED", @"WILMA", nil) + +A bit mental (but a bit like scala): + + [sequence(@"bob", @"fred", @"wilma", nil) map:_([_ uppercaseString])] //outputs sequence(@"BOB", @"FRED", @"WILMA", nil) + + +### I like it - how do I get it? + +So I'm a bit fed up with using 'libraries' that say, just include our source code in your project, or attach our xcode project to your project. So to use this: + +- Clone the repo. +- Run /build.sh test //optional, but if it fails shout at me! +- Run /build.sh release +- Copy /artifacts/OCTotallyLazy.framework to your external libraries folder. +- Import the framework to your project. +- Jobsa good 'un. + + diff --git a/OCTotallyLazy.framework/Headers/Callables.h b/Pods/OCTotallyLazy/src/main/Callables.h similarity index 100% rename from OCTotallyLazy.framework/Headers/Callables.h rename to Pods/OCTotallyLazy/src/main/Callables.h diff --git a/Pods/OCTotallyLazy/src/main/Callables.m b/Pods/OCTotallyLazy/src/main/Callables.m new file mode 100644 index 0000000..312d849 --- /dev/null +++ b/Pods/OCTotallyLazy/src/main/Callables.m @@ -0,0 +1,29 @@ +#import "Callables.h" + +@implementation Callables ++ (NSString * (^)(NSString *))toUpperCase { + return [^(NSString *item) { return item.uppercaseString; } copy]; +} ++(NSString * (^)(NSString *, NSString *))appendString { + return [^(NSString *left, NSString *right) { return [left stringByAppendingString:right]; } copy]; +} + ++ (ACCUMULATOR_TO_STRING)appendWithSeparator:(NSString *)separator { + return [^(id left, id right) { + return [[[left description] stringByAppendingString:separator] stringByAppendingString:[right description]]; + } copy]; +} + ++ (CALLABLE_TO_STRING)upperCase { + return [^(id item) { + return [item description].uppercaseString; + } copy]; +} + ++ (CALLABLE_TO_NUMBER)increment { + return [^(NSNumber *item) { + return [NSNumber numberWithLong:item.longValue + 1]; + } copy]; + +} +@end \ No newline at end of file diff --git a/OCTotallyLazy.framework/Headers/Coercions.h b/Pods/OCTotallyLazy/src/main/Coercions.h similarity index 78% rename from OCTotallyLazy.framework/Headers/Coercions.h rename to Pods/OCTotallyLazy/src/main/Coercions.h index 28aaf2d..d72e04b 100644 --- a/OCTotallyLazy.framework/Headers/Coercions.h +++ b/Pods/OCTotallyLazy/src/main/Coercions.h @@ -1,7 +1,7 @@ #import #ifdef TL_COERCIONS -static NSNumber *num(int value) { - return [NSNumber numberWithInt:value]; +static NSNumber *num(NSInteger value) { + return [NSNumber numberWithInteger:value]; } static NSNumber *numl(long value) { return [NSNumber numberWithLong:value]; diff --git a/OCTotallyLazy.framework/Headers/EasyEnumerable.h b/Pods/OCTotallyLazy/src/main/EasyEnumerable.h similarity index 100% rename from OCTotallyLazy.framework/Headers/EasyEnumerable.h rename to Pods/OCTotallyLazy/src/main/EasyEnumerable.h diff --git a/Pods/OCTotallyLazy/src/main/EasyEnumerable.m b/Pods/OCTotallyLazy/src/main/EasyEnumerable.m new file mode 100644 index 0000000..2cabd16 --- /dev/null +++ b/Pods/OCTotallyLazy/src/main/EasyEnumerable.m @@ -0,0 +1,21 @@ +#import "EasyEnumerable.h" + + +@implementation EasyEnumerable { + NSEnumerator *(^convertToEnumerator)(); +} +-(EasyEnumerable *)initWith:(NSEnumerator *(^)())aConvertToEnumerator { + self = [super init]; + convertToEnumerator = [aConvertToEnumerator copy]; + return self; +} + ++(EasyEnumerable *)with:(NSEnumerator *(^)())aConvertToEnumerator { + return [[EasyEnumerable alloc] initWith:aConvertToEnumerator]; +} + +- (NSEnumerator *)toEnumerator { + return convertToEnumerator(); +} + +@end \ No newline at end of file diff --git a/OCTotallyLazy.framework/Headers/Enumerable.h b/Pods/OCTotallyLazy/src/main/Enumerable.h similarity index 100% rename from OCTotallyLazy.framework/Headers/Enumerable.h rename to Pods/OCTotallyLazy/src/main/Enumerable.h diff --git a/OCTotallyLazy.framework/Headers/Flattenable.h b/Pods/OCTotallyLazy/src/main/Flattenable.h similarity index 100% rename from OCTotallyLazy.framework/Headers/Flattenable.h rename to Pods/OCTotallyLazy/src/main/Flattenable.h diff --git a/OCTotallyLazy.framework/Headers/Foldable.h b/Pods/OCTotallyLazy/src/main/Foldable.h similarity index 100% rename from OCTotallyLazy.framework/Headers/Foldable.h rename to Pods/OCTotallyLazy/src/main/Foldable.h diff --git a/OCTotallyLazy.framework/Headers/Group.h b/Pods/OCTotallyLazy/src/main/Group.h similarity index 81% rename from OCTotallyLazy.framework/Headers/Group.h rename to Pods/OCTotallyLazy/src/main/Group.h index 61cf74d..b808a63 100644 --- a/OCTotallyLazy.framework/Headers/Group.h +++ b/Pods/OCTotallyLazy/src/main/Group.h @@ -2,10 +2,10 @@ #import "Sequence.h" @interface Group : Sequence -@property(nonatomic) id key; +@property(nonatomic, strong) id key; - (Group *)initWithKey:(id)aKey enumerable:(id )anEnumerable; + (Group *)group:(id)key enumerable:(id )enumerable; -@end \ No newline at end of file +@end diff --git a/Pods/OCTotallyLazy/src/main/Group.m b/Pods/OCTotallyLazy/src/main/Group.m new file mode 100644 index 0000000..e08f70a --- /dev/null +++ b/Pods/OCTotallyLazy/src/main/Group.m @@ -0,0 +1,19 @@ +#import "Group.h" + +@implementation Group +@synthesize key; + + +- (Group *)initWithKey:(id )aKey enumerable:(id )anEnumerable { + self = [super initWith:anEnumerable]; + if (self) { + self.key = aKey; + } + return self; +} + + ++(Group *)group:(id)key enumerable:(id)enumerable { + return [[Group alloc] initWithKey:key enumerable:enumerable]; +} +@end \ No newline at end of file diff --git a/OCTotallyLazy.framework/Headers/Mappable.h b/Pods/OCTotallyLazy/src/main/Mappable.h similarity index 100% rename from OCTotallyLazy.framework/Headers/Mappable.h rename to Pods/OCTotallyLazy/src/main/Mappable.h diff --git a/OCTotallyLazy.framework/Headers/MemoisedSequence.h b/Pods/OCTotallyLazy/src/main/MemoisedSequence.h similarity index 100% rename from OCTotallyLazy.framework/Headers/MemoisedSequence.h rename to Pods/OCTotallyLazy/src/main/MemoisedSequence.h diff --git a/Pods/OCTotallyLazy/src/main/MemoisedSequence.m b/Pods/OCTotallyLazy/src/main/MemoisedSequence.m new file mode 100644 index 0000000..686d104 --- /dev/null +++ b/Pods/OCTotallyLazy/src/main/MemoisedSequence.m @@ -0,0 +1,24 @@ +#import "MemoisedSequence.h" + +@implementation MemoisedSequence { + NSMutableArray *memory; +} + ++ (Sequence *)with:(id )enumerable { + return [[MemoisedSequence alloc] initWith:enumerable]; +} + +- (Sequence *)initWith:(id )enumerator { + self = [super initWith:enumerator]; + if (self) { + memory = [NSMutableArray array]; + } + return self; +} + +- (NSEnumerator *)toEnumerator { + return [MemoisedEnumerator with:[super toEnumerator] memory:memory]; +} + + +@end \ No newline at end of file diff --git a/OCTotallyLazy.framework/Headers/NSArray+OCTotallyLazy.h b/Pods/OCTotallyLazy/src/main/NSArray+OCTotallyLazy.h similarity index 100% rename from OCTotallyLazy.framework/Headers/NSArray+OCTotallyLazy.h rename to Pods/OCTotallyLazy/src/main/NSArray+OCTotallyLazy.h diff --git a/Pods/OCTotallyLazy/src/main/NSArray+OCTotallyLazy.m b/Pods/OCTotallyLazy/src/main/NSArray+OCTotallyLazy.m new file mode 100644 index 0000000..198f878 --- /dev/null +++ b/Pods/OCTotallyLazy/src/main/NSArray+OCTotallyLazy.m @@ -0,0 +1,208 @@ +#import +#import "NSArray+OCTotallyLazy.h" + +@implementation NSArray (OCTotallyLazy) + +- (NSArray *)add:(id)value { + return [self join:sequence(value, nil)]; +} + +- (NSArray *)cons:(id)value { + return [array(value, nil) join:self]; +} + +- (NSArray *)drop:(int)n { + return [[[self asSequence] drop:n] asArray]; +} + +- (NSArray *)dropWhile:(BOOL (^)(id))funcBlock { + return [[[self asSequence] dropWhile:funcBlock] asArray]; +} + +- (NSArray *)filter:(BOOL (^)(id))filterBlock { + return [[[self asSequence] filter:filterBlock] asArray]; +} + +- (NSArray *)flatMap:(id (^)(id))functorBlock { + return [[[self asSequence] flatMap:functorBlock] asArray]; +} + +- (NSArray *)flatten { + return [[[self asSequence] flatten] asArray]; +} + +- (Option *)find:(BOOL (^)(id))filterBlock { + return [[self asSequence] find:filterBlock]; +} + +- (id)fold:(id)value with:(id (^)(id, id))functorBlock { + id accumulator = value; + for (id item in self) { + accumulator = functorBlock(accumulator, item); + } + return accumulator; +} + +- (void)foreach:(void (^)(id))funcBlock { + for (id item in self) { + funcBlock(item); + } +} + +- (BOOL)isEmpty { + return self.count == 0; +} + +- (NSArray *)groupBy:(FUNCTION1)groupingBlock { + NSMutableDictionary *keysAndValues = [NSMutableDictionary dictionary]; + NSMutableArray *keys = [NSMutableArray array]; + NSMutableArray *nilKeyItems = [NSMutableArray array]; + [self foreach:^(id item) { + id key = groupingBlock(item); + if (key) { + if (![keys containsObject:key]) { + [keys addObject:key]; + [keysAndValues setObject:[NSMutableArray array] forKey:key]; + } + [[keysAndValues objectForKey:key] addObject:item]; + } else { + [nilKeyItems addObject:item]; + } + }]; + NSArray *keyedGroups = [keys map:^(id key) { + return [Group group:key enumerable:[keysAndValues objectForKey:key]]; + }]; + NSArray *unkeyedGroups = [nilKeyItems map:^(id item) { + return [Group group:nil enumerable:array(item, nil)]; + }]; +// return keyedGroups; + return [keyedGroups arrayByAddingObjectsFromArray:unkeyedGroups]; +} + +- (NSArray *)grouped:(int)n { + return [[[self asSequence] grouped:n] asArray]; +} + +- (id)head { + return [[self asSequence] head]; +} + +- (Option *)headOption { + return [[self asSequence] headOption]; +} + +- (NSArray *)join:(id )toJoin { + return [[[self asSequence] join:toJoin] asArray]; +} + +- (id)map:(id (^)(id))funcBlock { + return [[[self asSequence] map:funcBlock] asArray]; +} + +- (id)mapWithIndex:(id (^)(id, NSInteger))funcBlock { + return [[[self asSequence] mapWithIndex:funcBlock] asArray]; +} + +- (NSArray *)merge:(NSArray *)toMerge { + return [[[self asSequence] merge:[toMerge asSequence]] asArray]; +} + +- (Pair *)partition:(BOOL (^)(id))filterBlock { + Pair *partitioned = [[self asSequence] partition:filterBlock]; + return [Pair left:[partitioned.left asArray] right:[partitioned.right asArray]]; +} + +- (id)reduce:(id (^)(id, id))functorBlock { + return [self isEmpty] ? nil : [[self tail] fold:[self head] with:functorBlock]; +} + +- (NSArray *)reverse { + NSMutableArray *collectedArray = [[NSMutableArray alloc] init]; + NSEnumerator *reversed = [self reverseObjectEnumerator]; + id object; + while ((object = reversed.nextObject)) { + [collectedArray addObject:object]; + } + return collectedArray; +} + +- (Pair *)splitAt:(int)splitIndex { + return [self splitWhen:TL_not(TL_countTo(splitIndex))]; +} + +- (Pair *)splitOn:(id)splitItem { + return [self splitWhen:TL_equalTo(splitItem)]; +} + +- (Pair *)splitWhen:(BOOL (^)(id))predicate { + Pair *partition = [self partition:TL_whileTrue(TL_not(predicate))]; + return [Pair left:partition.left right:[partition.right tail]]; +} + +- (NSArray *)tail { + return [[[self asSequence] tail] asArray]; +// return [self takeRight:[self count] - 1]; +} + +- (NSArray *)take:(int)n { + return [[[self asSequence] take:n] asArray]; +} + +- (NSArray *)takeWhile:(BOOL (^)(id))funcBlock { + return [[[self asSequence] takeWhile:funcBlock] asArray]; +} + +- (NSArray *)takeRight:(int)n { + int toTake = (n > [self count]) ? [self count] : (NSUInteger) n; + return [self subarrayWithRange:NSMakeRange([self count] - toTake, (NSUInteger) toTake)]; +} + +- (NSEnumerator *)toEnumerator { + return [self objectEnumerator]; +} + +- (NSString *)toString { + return [self toString:@""]; +} + +- (NSString *)toString:(NSString *)separator { + return [self reduce:TL_appendWithSeparator(separator)]; +} + +- (NSString *)toString:(NSString *)start separator:(NSString *)separator end:(NSString *)end { + return [[start stringByAppendingString:[self toString:separator]] stringByAppendingString:end]; +} + +- (NSArray *)zip:(NSArray *)otherArray { + return [[[self asSequence] zip:[otherArray asSequence]] asArray]; +} + +- (NSArray *)zipWithIndex { + return [[[self asSequence] zipWithIndex] asArray]; +} + +- (Sequence *)asSequence { + return [Sequence with:self]; +} + +- (NSSet *)asSet { + return [[self asSequence] asSet]; +} + +- (NSArray *)asArray { + return self; +} + +- (NSDictionary *)asDictionary { + Pair *keysAndValues = [self partition:TL_alternate(YES)]; + NSArray *keys = keysAndValues.left; + NSArray *values = keysAndValues.right; + values = [values take:[keys count]]; + keys = [keys take:[values count]]; + NSEnumerator *valueEnumerator = [keysAndValues.right objectEnumerator]; + return [keys fold:[NSMutableDictionary dictionary] with:^(NSMutableDictionary *accumulator, id key) { + [accumulator setObject:[valueEnumerator nextObject] forKey:key]; + return accumulator; + }]; +} +@end \ No newline at end of file diff --git a/OCTotallyLazy.framework/Headers/NSDictionary+OCTotallyLazy.h b/Pods/OCTotallyLazy/src/main/NSDictionary+OCTotallyLazy.h similarity index 100% rename from OCTotallyLazy.framework/Headers/NSDictionary+OCTotallyLazy.h rename to Pods/OCTotallyLazy/src/main/NSDictionary+OCTotallyLazy.h diff --git a/Pods/OCTotallyLazy/src/main/NSDictionary+OCTotallyLazy.m b/Pods/OCTotallyLazy/src/main/NSDictionary+OCTotallyLazy.m new file mode 100644 index 0000000..3a237c0 --- /dev/null +++ b/Pods/OCTotallyLazy/src/main/NSDictionary+OCTotallyLazy.m @@ -0,0 +1,40 @@ +#import +#import "NSDictionary+OCTotallyLazy.h" + +@implementation NSDictionary (Functional) + +- (NSMutableDictionary * (^)(NSMutableDictionary *, id))addObjectForKey { + return [^(NSMutableDictionary *dict, id key) { + [dict setObject:[self objectForKey:key] forKey:key]; + return dict; + } copy]; +} + +- (NSDictionary *)filterKeys:(BOOL (^)(id))filterBlock { + return [[[self allKeys] filter:filterBlock] fold:[NSMutableDictionary dictionary] with:[self addObjectForKey]]; +} + +- (NSDictionary *)filterValues:(BOOL (^)(id))filterBlock { + return [[[self allValues] filter:filterBlock] fold:[NSMutableDictionary dictionary] with:^(NSMutableDictionary *dict, id value) { + [[self allKeysForObject:value] fold:dict with:[self addObjectForKey]]; + return dict; + }]; +} + +- (void)foreach:(void (^)(id, id))funcBlock { + [[self allKeys] foreach:^(id key){funcBlock(key, [self objectForKey:key]);}]; +} + +- (id)map:(NSArray * (^)(id key, id value))funcBlock { + return [[[[self allKeys] map:^(id key){return funcBlock(key, [self objectForKey:key]);}] flatten] asDictionary]; +} + +- (id)mapValues:(id (^)(id))funcBlock { + return dictionary([[self allKeys] asSequence], [[[self allValues] asSequence] map:funcBlock]); +} + +- (Option *)optionForKey:(id)key { + return option([self objectForKey:key]); +} + +@end \ No newline at end of file diff --git a/OCTotallyLazy.framework/Headers/NSSet+OCTotallyLazy.h b/Pods/OCTotallyLazy/src/main/NSSet+OCTotallyLazy.h similarity index 100% rename from OCTotallyLazy.framework/Headers/NSSet+OCTotallyLazy.h rename to Pods/OCTotallyLazy/src/main/NSSet+OCTotallyLazy.h diff --git a/Pods/OCTotallyLazy/src/main/NSSet+OCTotallyLazy.m b/Pods/OCTotallyLazy/src/main/NSSet+OCTotallyLazy.m new file mode 100644 index 0000000..dc09981 --- /dev/null +++ b/Pods/OCTotallyLazy/src/main/NSSet+OCTotallyLazy.m @@ -0,0 +1,55 @@ +#import "NSSet+OCTotallyLazy.h" +#import "Sequence.h" + +@implementation NSSet (Functional) + +- (Option *)find:(PREDICATE)filterBlock { + return [[self asSequence] find:filterBlock]; +} + +- (NSSet *)filter:(BOOL (^)(id))filterBlock { + return [[[self asSequence] filter:filterBlock] asSet]; +} + +- (id)fold:(id)value with:(id (^)(id, id))functorBlock { + return [[self asSequence] fold:value with:functorBlock]; +} + +- (NSSet *)groupBy:(FUNCTION1)groupingBlock { + return [[[self asSequence] groupBy:groupingBlock] asSet]; +} + +- (id)head { + return [[self asSequence] head]; +} + +- (Option *)headOption { + return [[self asSequence] headOption]; +} + +- (NSSet *)join:(NSSet *)toJoin { + return [[[self asSequence] join:[toJoin asSequence]] asSet]; +} + +- (id)map:(id (^)(id))funcBlock { + return [[[self asSequence] map:funcBlock] asSet]; +} + +- (id)reduce:(id (^)(id, id))functorBlock { + return [[self asSequence] reduce:functorBlock]; +} + +- (Sequence *)asSequence { + return [Sequence with:self]; +} + +- (NSArray *)asArray { + return [[self asSequence] asArray]; +} + +- (NSEnumerator *)toEnumerator { + return [self objectEnumerator]; +} + + +@end \ No newline at end of file diff --git a/OCTotallyLazy.framework/Headers/NoSuchElementException.h b/Pods/OCTotallyLazy/src/main/NoSuchElementException.h similarity index 100% rename from OCTotallyLazy.framework/Headers/NoSuchElementException.h rename to Pods/OCTotallyLazy/src/main/NoSuchElementException.h diff --git a/Pods/OCTotallyLazy/src/main/NoSuchElementException.m b/Pods/OCTotallyLazy/src/main/NoSuchElementException.m new file mode 100644 index 0000000..4f03999 --- /dev/null +++ b/Pods/OCTotallyLazy/src/main/NoSuchElementException.m @@ -0,0 +1,5 @@ +#import "NoSuchElementException.h" + +@implementation NoSuchElementException + +@end \ No newline at end of file diff --git a/OCTotallyLazy.framework/Headers/None.h b/Pods/OCTotallyLazy/src/main/None.h similarity index 100% rename from OCTotallyLazy.framework/Headers/None.h rename to Pods/OCTotallyLazy/src/main/None.h diff --git a/Pods/OCTotallyLazy/src/main/None.m b/Pods/OCTotallyLazy/src/main/None.m new file mode 100644 index 0000000..558d39f --- /dev/null +++ b/Pods/OCTotallyLazy/src/main/None.m @@ -0,0 +1,63 @@ +#import "None.h" +#import "NoSuchElementException.h" +#import "Some.h" +#import "Sequence.h" +#import "EmptyEnumerator.h" + +@implementation None ++ (Option *)none { + return [[None alloc] init]; +} + +- (BOOL)isEmpty { + return TRUE; +} + +- (id)get { + [NoSuchElementException raise:@"Cannot get value of None" format:@"Cannot get value of None"]; + return nil; +} + +- (id)getOrElse:(id)other { + return other; +} + +- (id)getOrInvoke:(id (^)())funcBlock { + return funcBlock(); +} + +- (BOOL)isEqual:(id)otherObject { + return [otherObject isKindOfClass:[None class]]; +} + +- (id)flatMap:(id (^)(id))funcBlock { + return [None none]; +} + +- (void)maybe:(void (^)(id))invokeWhenSomeBlock { + //Do nothing +} + +- (id)map:(id (^)(id))funcBlock { + return [None none]; +} + +- (id)fold:(id)seed with:(id (^)(id, id))functorBlock { + return [Some some:seed]; +} + +- (id)copyWithZone:(NSZone *)zone { + return [None none]; +} + +- (NSEnumerator *)toEnumerator { + return [EmptyEnumerator emptyEnumerator]; +} + +- (Sequence *)asSequence { + return sequence(nil); +} + + + +@end \ No newline at end of file diff --git a/OCTotallyLazy.framework/Headers/OCTotallyLazy.h b/Pods/OCTotallyLazy/src/main/OCTotallyLazy.h similarity index 100% rename from OCTotallyLazy.framework/Headers/OCTotallyLazy.h rename to Pods/OCTotallyLazy/src/main/OCTotallyLazy.h diff --git a/OCTotallyLazy.framework/Headers/Option.h b/Pods/OCTotallyLazy/src/main/Option.h similarity index 100% rename from OCTotallyLazy.framework/Headers/Option.h rename to Pods/OCTotallyLazy/src/main/Option.h diff --git a/Pods/OCTotallyLazy/src/main/Option.m b/Pods/OCTotallyLazy/src/main/Option.m new file mode 100644 index 0000000..0751aa9 --- /dev/null +++ b/Pods/OCTotallyLazy/src/main/Option.m @@ -0,0 +1,70 @@ +#import "Option.h" +#import "None.h" +#import "Some.h" +#import "Sequence.h" + +@implementation Option + +- (Sequence *)asSequence { + [NSException raise:@"Unsupported" format:@"Unsupported"]; + return nil; +} + ++ (id)option:(id)value { + return (value == nil) ? [None none] : [Some some:value]; +} + +- (BOOL)isEmpty { + [NSException raise:@"Unsupported" format:@"Unsupported"]; + return FALSE; +} + +- (id)flatMap:(id (^)(id))funcBlock { + [NSException raise:@"Unsupported" format:@"Unsupported"]; + return nil; +} + +- (id)fold:(id)value with:(id (^)(id, id))functorBlock { + [NSException raise:@"Unsupported" format:@"Unsupported"]; + return nil; +} + +- (id)get { + [NSException raise:@"Unsupported" format:@"Unsupported"]; + return nil; +} + +- (id)getOrElse:(id)other { + [NSException raise:@"Unsupported" format:@"Unsupported"]; + return nil; +} + +- (id)getOrInvoke:(id (^)())funcBlock { + [NSException raise:@"Unsupported" format:@"Unsupported"]; + return nil; +} + +- (id)map:(id (^)(id))funcBlock { + [NSException raise:@"Unsupported" format:@"Unsupported"]; + return nil; +} + +- (void)maybe:(void (^)(id))invokeWhenSomeBlock { + [NSException raise:@"Unsupported" format:@"Unsupported"]; +} + +- (NSEnumerator *)toEnumerator { + [NSException raise:@"Unsupported" format:@"Unsupported"]; + return nil; +} + +- (Option *)flatten { + return [self isEmpty] ? [None none] : [[[self asSequence] flatten] headOption]; +} + +- (id)copyWithZone:(NSZone *)zone { + [NSException raise:@"Unsupported" format:@"Unsupported"]; + return nil; +} + +@end \ No newline at end of file diff --git a/OCTotallyLazy.framework/Headers/Pair.h b/Pods/OCTotallyLazy/src/main/Pair.h similarity index 100% rename from OCTotallyLazy.framework/Headers/Pair.h rename to Pods/OCTotallyLazy/src/main/Pair.h diff --git a/Pods/OCTotallyLazy/src/main/Pair.m b/Pods/OCTotallyLazy/src/main/Pair.m new file mode 100644 index 0000000..2d07e5d --- /dev/null +++ b/Pods/OCTotallyLazy/src/main/Pair.m @@ -0,0 +1,41 @@ +#import "Pair.h" + +@implementation Pair { + +@private + id _left; + id _right; +} +@synthesize left = _left; +@synthesize right = _right; + +- (Pair *)initWithLeft:(id)aLeft right:(id)aRight { + self = [super init]; + _left = aLeft; + _right = aRight; + return self; +} + +- (Sequence *)toSequence { + return sequence(_left, _right, nil); +} + ++ (Pair *)left:(id)aLeft right:(id)aRight { + return [[Pair alloc] initWithLeft:aLeft right:aRight]; +} + +- (BOOL)isEqual:(id)object { + if (![object isKindOfClass:[Pair class]] || object == nil) { + return FALSE; + } + Pair *otherObject = object; + return [otherObject.left isEqual: self.left] && [otherObject.right isEqual: self.right]; +} + +-(NSString *)description { + return [NSString stringWithFormat:@"[Pair left:(%@) right:(%@)]", [self.left description], [self.right description]]; +} + + + +@end \ No newline at end of file diff --git a/OCTotallyLazy.framework/Headers/Queue.h b/Pods/OCTotallyLazy/src/main/Queue.h similarity index 100% rename from OCTotallyLazy.framework/Headers/Queue.h rename to Pods/OCTotallyLazy/src/main/Queue.h diff --git a/Pods/OCTotallyLazy/src/main/Queue.m b/Pods/OCTotallyLazy/src/main/Queue.m new file mode 100644 index 0000000..c7ccbd9 --- /dev/null +++ b/Pods/OCTotallyLazy/src/main/Queue.m @@ -0,0 +1,39 @@ +#import +#import "Queue.h" + + +@implementation Queue { + NSMutableArray *queue; +} + +- (id)init { + self = [super init]; + if (self) { + queue = [[NSMutableArray alloc] init]; + } + return self; +} + + +- (BOOL)isEmpty { + return [queue isEmpty]; +} + +- (id)remove { + if ([self isEmpty]) { + return nil; + } + id item = [queue objectAtIndex:0]; + [queue removeObjectAtIndex:0]; + return item; +} + +- (void)add:(id)item { + [queue addObject:item]; +} + ++(Queue *)queue { + return [[Queue alloc]init]; +} + +@end \ No newline at end of file diff --git a/OCTotallyLazy.framework/Headers/Range.h b/Pods/OCTotallyLazy/src/main/Range.h similarity index 100% rename from OCTotallyLazy.framework/Headers/Range.h rename to Pods/OCTotallyLazy/src/main/Range.h diff --git a/Pods/OCTotallyLazy/src/main/Range.m b/Pods/OCTotallyLazy/src/main/Range.m new file mode 100644 index 0000000..28367fc --- /dev/null +++ b/Pods/OCTotallyLazy/src/main/Range.m @@ -0,0 +1,22 @@ +#import "Range.h" +#import "EasyEnumerable.h" +#import "EnumerateEnumerator.h" +#import "Callables.h" +#import "Predicates.h" + + +@implementation Range + ++ (EasyEnumerable *)incrementingEnumerator:(NSNumber *)start { + return [EasyEnumerable with:^{ return [EnumerateEnumerator withCallable:TL_increment() seed:start]; }]; +} + ++ (Sequence *)range:(NSNumber *)start { + return [Sequence with:[self incrementingEnumerator:start]]; +} + ++ (Sequence *)range:(NSNumber *)start end:(NSNumber *)end { + return [[Sequence with:[self incrementingEnumerator:start]] takeWhile:TL_lessThanOrEqualTo(end)]; +} + +@end \ No newline at end of file diff --git a/OCTotallyLazy.framework/Headers/Sequence.h b/Pods/OCTotallyLazy/src/main/Sequence.h similarity index 100% rename from OCTotallyLazy.framework/Headers/Sequence.h rename to Pods/OCTotallyLazy/src/main/Sequence.h diff --git a/Pods/OCTotallyLazy/src/main/Sequence.m b/Pods/OCTotallyLazy/src/main/Sequence.m new file mode 100644 index 0000000..7635eea --- /dev/null +++ b/Pods/OCTotallyLazy/src/main/Sequence.m @@ -0,0 +1,270 @@ +#define TL_COERCIONS + +#import "NSEnumerator+OCTotallyLazy.h" +#import "PairEnumerator.h" +#import "MemoisedEnumerator.h" +#import "MemoisedSequence.h" +#import "RepeatEnumerator.h" +#import "EasyEnumerable.h" +#import "Callables.h" +#import "GroupedEnumerator.h" +#import "Pair.h" +#import "Range.h" +#import "PartitionEnumerator.h" +#import "OCTotallyLazy.h" +#import "MergeEnumerator.h" + +@implementation Sequence { + id enumerable; + NSEnumerator *forwardOnlyEnumerator; +} + +- (Sequence *)initWith:(id )anEnumerable { + self = [super init]; + enumerable = anEnumerable; + forwardOnlyEnumerator = [enumerable toEnumerator]; + return self; +} + + +- (NSUInteger)countByEnumeratingWithState:(NSFastEnumerationState *)state objects:(__unsafe_unretained id[])buffer count:(NSUInteger)len { + return [forwardOnlyEnumerator countByEnumeratingWithState:state objects:buffer count:len]; +} + +- (Sequence *)add:(id)value { + return [self join:sequence(value, nil)]; +} + +- (Sequence *)cons:(id)value { + return [sequence(value, nil) join:self]; +} + +- (Sequence *)drop:(int)toDrop { + return [Sequence with:[EasyEnumerable with:^{ + return [[self toEnumerator] drop:toDrop]; + }]]; +} + +- (Sequence *)dropWhile:(BOOL (^)(id))funcBlock { + return [Sequence with:[EasyEnumerable with:^{ + return [[self toEnumerator] dropWhile:funcBlock]; + }]]; +} + +- (id)first { + return [self head]; +} + +- (Sequence *)flatMap:(id (^)(id))funcBlock { + return [Sequence with:[EasyEnumerable with:^{ + return [[[self toEnumerator] map:funcBlock] flatten]; + }]]; +} + +- (Sequence *)filter:(BOOL (^)(id))predicate { + return [Sequence with:[EasyEnumerable with:^{ + return [[self toEnumerator] filter:predicate]; + }]]; +} + +- (Option *)find:(BOOL (^)(id))predicate { + return [[self toEnumerator] find:predicate]; +} + +- (Sequence *)flatten { + return [Sequence with:[EasyEnumerable with:^{ + return [[self toEnumerator] flatten]; + }]]; +} + +- (id)fold:(id)value with:(id (^)(id, id))functorBlock { + return [[self asArray] fold:value with:functorBlock]; +} + +- (void)foreach:(void (^)(id))funcBlock { + [[self asArray] foreach:funcBlock]; +} + +- (Sequence *)grouped:(int)n { + return [Sequence with:[EasyEnumerable with:^{ + return [GroupedEnumerator with:[self toEnumerator] groupSize:n]; + }]]; +} + +- (Sequence *)groupBy:(FUNCTION1)groupingBlock { + return [[[self asArray] groupBy:groupingBlock] asSequence]; +} + +- (id)head { + id item = [self toEnumerator].nextObject; + if (item == nil) { + [NSException raise:@"NoSuchElementException" format:@"Expected a sequence with at least one element, but sequence was empty."]; + } + return item; +} + +- (Option *)headOption { + return option([self toEnumerator].nextObject); +} + +- (Sequence *)join:(id )toJoin { + return [sequence(self, toJoin, nil) flatten]; +} + +- (Sequence *)map:(id (^)(id))funcBlock { + return [Sequence with:[EasyEnumerable with:^{ + return [[self toEnumerator] map:funcBlock]; + }]]; +} + +- (Sequence *)mapWithIndex:(id (^)(id, NSInteger))funcBlock { + return [[self zipWithIndex] map:^(Pair *itemAndIndex) { + return funcBlock(itemAndIndex.left, [itemAndIndex.right intValue]); + }]; +} + +- (Sequence *)merge:(Sequence *)toMerge { + return [[Sequence with:[EasyEnumerable with:^{ + return [MergeEnumerator with:[self toEnumerator] toMerge:[toMerge toEnumerator]]; + }]] flatten]; +} + +- (Pair *)partition:(BOOL (^)(id))predicate { + Queue *matched = [Queue queue]; + Queue *unmatched = [Queue queue]; + NSEnumerator *underlyingEnumerator = [self toEnumerator]; + Sequence *leftSequence = memoiseSeq([EasyEnumerable with:^{ + return [PartitionEnumerator with:underlyingEnumerator + predicate:predicate + matched:matched + unmatched:unmatched]; + }]); + Sequence *rightSequence = memoiseSeq([EasyEnumerable with:^{ + return [PartitionEnumerator with:underlyingEnumerator + predicate:TL_not(predicate) + matched:unmatched + unmatched:matched]; + }]); + return [Pair left:leftSequence right:rightSequence]; +} + +- (id)reduce:(id (^)(id, id))functorBlock { + return [[self asArray] reduce:functorBlock]; +} + +- (id)second { + return [[self tail] head]; +} + +- (Pair *)splitAt:(int)splitIndex { + return [self splitWhen:TL_not(TL_countTo(splitIndex))]; +} + +- (Pair *)splitOn:(id)splitItem { + return [self splitWhen:TL_equalTo(splitItem)]; +} + +- (Pair *)splitWhen:(BOOL (^)(id))predicate { + Pair *partitioned = [self partition:TL_whileTrue(TL_not(predicate))]; + return [Pair left:partitioned.left right:[partitioned.right tail]]; +} + +- (Sequence *)tail { + return [Sequence with:[EasyEnumerable with:^{ + NSEnumerator *const anEnumerator = [self toEnumerator]; + [anEnumerator nextObject]; + return anEnumerator; + }]]; +} + +- (Sequence *)take:(int)n { + return [Sequence with:[EasyEnumerable with:^{ + return [[self toEnumerator] take:n]; + }]]; +} + +- (Sequence *)takeWhile:(BOOL (^)(id))funcBlock { + return [Sequence with:[EasyEnumerable with:^{ + return [[self toEnumerator] takeWhile:funcBlock]; + }]]; +} + +- (NSDictionary *)toDictionary:(id (^)(id))valueBlock { + return [self fold:[NSMutableDictionary dictionary] with:^(NSMutableDictionary *accumulator, id item) { + if ([accumulator objectForKey:item] == nil) { + [accumulator setObject:valueBlock(item) forKey:item]; + } + return accumulator; + }]; +} + +- (NSString *)toString { + return [self toString:@""]; +} + +- (NSString *)toString:(NSString *)separator { + return [self reduce:TL_appendWithSeparator(separator)]; +} + +- (NSString *)toString:(NSString *)start separator:(NSString *)separator end:(NSString *)end { + return [[start stringByAppendingString:[self toString:separator]] stringByAppendingString:end]; +} + +- (Sequence *)zip:(Sequence *)otherSequence { + return [Sequence with:[EasyEnumerable with:^{ + return [PairEnumerator withLeft:[self toEnumerator] right:[otherSequence toEnumerator]]; + }]]; +} + +- (Sequence *)zipWithIndex { + return [self zip:[Range range:[NSNumber numberWithInt:0]]]; +} + +- (Sequence *)cycle { + return [Sequence with:[EasyEnumerable with:^{ + return [RepeatEnumerator with:[MemoisedEnumerator with:[self toEnumerator]]]; + }]]; +} + ++ (Sequence *)with:(id )enumerable { + return [[Sequence alloc] initWith:enumerable]; +} + +- (NSDictionary *)asDictionary { + return [[self asArray] asDictionary]; +} + +- (NSArray *)asArray { + NSEnumerator *itemsEnumerator = [self toEnumerator]; + NSMutableArray *collect = [NSMutableArray array]; + id object; + while ((object = [itemsEnumerator nextObject]) != nil) { + [collect addObject:object]; + } + return collect; +} + +- (NSSet *)asSet { + return [NSSet setWithArray:[self asArray]]; +} + +- (NSString *)description { + NSEnumerator *itemsEnumerator = [self toEnumerator]; + NSString *description = @"Sequence ["; + int count = 3; + id item; + while (count > 0 && (item = itemsEnumerator.nextObject)) { + description = [description stringByAppendingFormat:@"%@, ", item]; + count--; + } + if ([itemsEnumerator nextObject] != nil) { + description = [description stringByAppendingString:@"..."]; + } + return [description stringByAppendingString:@"]"]; +} + +- (NSEnumerator *)toEnumerator { + return [enumerable toEnumerator]; +} + +@end \ No newline at end of file diff --git a/OCTotallyLazy.framework/Headers/Some.h b/Pods/OCTotallyLazy/src/main/Some.h similarity index 100% rename from OCTotallyLazy.framework/Headers/Some.h rename to Pods/OCTotallyLazy/src/main/Some.h diff --git a/Pods/OCTotallyLazy/src/main/Some.m b/Pods/OCTotallyLazy/src/main/Some.m new file mode 100644 index 0000000..b27f58f --- /dev/null +++ b/Pods/OCTotallyLazy/src/main/Some.m @@ -0,0 +1,70 @@ +#import "Some.h" +#import "Sequence.h" +#import "SingleValueEnumerator.h" + +@implementation Some { + id value; +} + +-(Option *)initWithValue:(id )aValue { + self = [super init]; + value = aValue; + return self; +} + ++ (Option *)some:(id)value { + return [[Some alloc] initWithValue: value]; +} + +- (BOOL)isEmpty { + return FALSE; +} + +- (BOOL)isEqual:(id)otherObject { + if (![otherObject isKindOfClass:[Some class]]) { + return FALSE; + } + return [[otherObject get] isEqual:[self get]]; +} + +- (id)get { + return value; +} + +- (id)getOrElse:(id)other { + return value; +} + +- (id)getOrInvoke:(id (^)())funcBlock { + return value; +} + +- (id)map:(id (^)(id))funcBlock { + return [Some some:funcBlock(value)]; +} + +- (id)flatMap:(id (^)(id))funcBlock { + return [[self flatten] map:funcBlock]; +} + +- (id)fold:(id)seed with:(id (^)(id, id))functorBlock { + return [Some some:functorBlock(seed, value)]; +} + +- (Sequence *)asSequence { + return sequence(value, nil); +} + +- (NSEnumerator *)toEnumerator { + return [SingleValueEnumerator singleValue:value]; +} + +- (id)copyWithZone:(NSZone *)zone { + return [Some some:value]; +} + +- (void)maybe:(void (^)(id))invokeWhenSomeBlock { + invokeWhenSomeBlock(value); +} + +@end \ No newline at end of file diff --git a/OCTotallyLazy.framework/Headers/Types.h b/Pods/OCTotallyLazy/src/main/Types.h similarity index 100% rename from OCTotallyLazy.framework/Headers/Types.h rename to Pods/OCTotallyLazy/src/main/Types.h diff --git a/OCTotallyLazy.framework/Headers/EmptyEnumerator.h b/Pods/OCTotallyLazy/src/main/enumerators/EmptyEnumerator.h similarity index 100% rename from OCTotallyLazy.framework/Headers/EmptyEnumerator.h rename to Pods/OCTotallyLazy/src/main/enumerators/EmptyEnumerator.h diff --git a/Pods/OCTotallyLazy/src/main/enumerators/EmptyEnumerator.m b/Pods/OCTotallyLazy/src/main/enumerators/EmptyEnumerator.m new file mode 100644 index 0000000..9982425 --- /dev/null +++ b/Pods/OCTotallyLazy/src/main/enumerators/EmptyEnumerator.m @@ -0,0 +1,14 @@ +#import "EmptyEnumerator.h" + + +@implementation EmptyEnumerator + ++ (NSEnumerator *)emptyEnumerator { + return [[EmptyEnumerator alloc] init]; +} + +- (id)nextObject { + return nil; +} + +@end \ No newline at end of file diff --git a/OCTotallyLazy.framework/Headers/EnumerateEnumerator.h b/Pods/OCTotallyLazy/src/main/enumerators/EnumerateEnumerator.h similarity index 100% rename from OCTotallyLazy.framework/Headers/EnumerateEnumerator.h rename to Pods/OCTotallyLazy/src/main/enumerators/EnumerateEnumerator.h diff --git a/Pods/OCTotallyLazy/src/main/enumerators/EnumerateEnumerator.m b/Pods/OCTotallyLazy/src/main/enumerators/EnumerateEnumerator.m new file mode 100644 index 0000000..6d9c0a9 --- /dev/null +++ b/Pods/OCTotallyLazy/src/main/enumerators/EnumerateEnumerator.m @@ -0,0 +1,27 @@ +#import "EnumerateEnumerator.h" + + +@implementation EnumerateEnumerator { + id (^callableFunc)(id); + id seed; +} + +- (EnumerateEnumerator *)initWithCallable:(id (^)(id))aCallableFunc seed:(id)aSeed { + self = [super init]; + callableFunc = [aCallableFunc copy]; + seed = aSeed; + return self; +} + +- (id)nextObject { + id result = seed; + seed = callableFunc(seed); + return result; +} + + ++ (EnumerateEnumerator *)withCallable:(id (^)(id))callableFunc seed:(id)aSeed { + return [[EnumerateEnumerator alloc] initWithCallable:callableFunc seed:aSeed]; +} + +@end \ No newline at end of file diff --git a/OCTotallyLazy.framework/Headers/FilterEnumerator.h b/Pods/OCTotallyLazy/src/main/enumerators/FilterEnumerator.h similarity index 100% rename from OCTotallyLazy.framework/Headers/FilterEnumerator.h rename to Pods/OCTotallyLazy/src/main/enumerators/FilterEnumerator.h diff --git a/Pods/OCTotallyLazy/src/main/enumerators/FilterEnumerator.m b/Pods/OCTotallyLazy/src/main/enumerators/FilterEnumerator.m new file mode 100644 index 0000000..a70ddb3 --- /dev/null +++ b/Pods/OCTotallyLazy/src/main/enumerators/FilterEnumerator.m @@ -0,0 +1,32 @@ +#import "FilterEnumerator.h" + + +@implementation FilterEnumerator { + NSEnumerator *enumerator; + BOOL (^filterBlock)(id); +} + +- (FilterEnumerator *)initWithEnumerator:(NSEnumerator *)anEnumerator andFilter:(BOOL (^)(id))aFilterBlock { + self = [super init]; + enumerator = anEnumerator; + filterBlock = [aFilterBlock copy]; + return self; +} + ++ (NSEnumerator *)withEnumerator:(NSEnumerator *)enumerator andFilter:(BOOL (^)(id))filterBlock { + return [[FilterEnumerator alloc] initWithEnumerator:enumerator andFilter:filterBlock]; +} + +- (id)nextObject { + id item; + while((item = [enumerator nextObject])) { + if(filterBlock(item)) { + return item; + } + } + return nil; +} + + + +@end \ No newline at end of file diff --git a/OCTotallyLazy.framework/Headers/FlattenEnumerator.h b/Pods/OCTotallyLazy/src/main/enumerators/FlattenEnumerator.h similarity index 100% rename from OCTotallyLazy.framework/Headers/FlattenEnumerator.h rename to Pods/OCTotallyLazy/src/main/enumerators/FlattenEnumerator.h diff --git a/Pods/OCTotallyLazy/src/main/enumerators/FlattenEnumerator.m b/Pods/OCTotallyLazy/src/main/enumerators/FlattenEnumerator.m new file mode 100644 index 0000000..cc4e365 --- /dev/null +++ b/Pods/OCTotallyLazy/src/main/enumerators/FlattenEnumerator.m @@ -0,0 +1,35 @@ +#import "FlattenEnumerator.h" +#import "EmptyEnumerator.h" +#import "Enumerable.h" + +@implementation FlattenEnumerator { + NSEnumerator *enumerator; + NSEnumerator *currentEnumerator; +} + +- (FlattenEnumerator *)initWithEnumerator:(NSEnumerator *)anEnumerator { + self = [super init]; + enumerator = anEnumerator; + currentEnumerator = [EmptyEnumerator emptyEnumerator]; + return self; +} + + +- (id)nextObject { + id item; + while((item = [currentEnumerator nextObject]) == nil) { + id nextItem = [enumerator nextObject]; + if ([nextItem respondsToSelector:@selector(toEnumerator)]) { + currentEnumerator = [FlattenEnumerator withEnumerator:[nextItem toEnumerator]]; + continue; + } + return nextItem; + } + return item; +} + ++ (NSEnumerator *)withEnumerator:(NSEnumerator *)enumerator { + return [[FlattenEnumerator alloc] initWithEnumerator:enumerator]; +} + +@end \ No newline at end of file diff --git a/OCTotallyLazy.framework/Headers/GroupedEnumerator.h b/Pods/OCTotallyLazy/src/main/enumerators/GroupedEnumerator.h similarity index 100% rename from OCTotallyLazy.framework/Headers/GroupedEnumerator.h rename to Pods/OCTotallyLazy/src/main/enumerators/GroupedEnumerator.h diff --git a/Pods/OCTotallyLazy/src/main/enumerators/GroupedEnumerator.m b/Pods/OCTotallyLazy/src/main/enumerators/GroupedEnumerator.m new file mode 100644 index 0000000..f961c1b --- /dev/null +++ b/Pods/OCTotallyLazy/src/main/enumerators/GroupedEnumerator.m @@ -0,0 +1,34 @@ +#import +#import "GroupedEnumerator.h" + + +@implementation GroupedEnumerator { + NSEnumerator *enumerator; + int groupSize; +} + +- (GroupedEnumerator *)initWithEnumerator:(NSEnumerator *)anEnumerator groupSize:(int)aGroupSize { + self = [super init]; + enumerator = anEnumerator; + groupSize = aGroupSize; + return self; +} + +- (id)nextObject { + int position = 0; + id item; + NSMutableArray *collect = [NSMutableArray array]; + while(position < groupSize && (item = enumerator.nextObject) != nil) { + [collect addObject:item]; + position++; + } + + return (position == 0) ? nil : collect; +} + + ++ (GroupedEnumerator *)with:(NSEnumerator *)enumerator groupSize:(int)groupSize { + return [[GroupedEnumerator alloc] initWithEnumerator:enumerator groupSize:groupSize]; + +} +@end \ No newline at end of file diff --git a/OCTotallyLazy.framework/Headers/MapEnumerator.h b/Pods/OCTotallyLazy/src/main/enumerators/MapEnumerator.h similarity index 100% rename from OCTotallyLazy.framework/Headers/MapEnumerator.h rename to Pods/OCTotallyLazy/src/main/enumerators/MapEnumerator.h diff --git a/Pods/OCTotallyLazy/src/main/enumerators/MapEnumerator.m b/Pods/OCTotallyLazy/src/main/enumerators/MapEnumerator.m new file mode 100644 index 0000000..a58552c --- /dev/null +++ b/Pods/OCTotallyLazy/src/main/enumerators/MapEnumerator.m @@ -0,0 +1,28 @@ +#import +#import "MapEnumerator.h" + + +@implementation MapEnumerator { + NSEnumerator *enumerator; + id (^func)(id); +} + +- (MapEnumerator *)initWithEnumerator:(NSEnumerator *)anEnumerator andFunction:(id (^)(id))aFunc { + self = [super init]; + enumerator = anEnumerator; + func = [aFunc copy]; + return self; +} + ++ (NSEnumerator *)withEnumerator:(NSEnumerator *)enumerator andFunction:(id (^)(id))func { + return [[MapEnumerator alloc] initWithEnumerator:enumerator andFunction:func]; +} + +- (id)nextObject { + id item = [enumerator nextObject]; + return (item == nil) ? nil : [item conformsToProtocol:@protocol(Mappable)] ? [item map:func] : func(item); +} + + + +@end \ No newline at end of file diff --git a/OCTotallyLazy.framework/Headers/MemoisedEnumerator.h b/Pods/OCTotallyLazy/src/main/enumerators/MemoisedEnumerator.h similarity index 100% rename from OCTotallyLazy.framework/Headers/MemoisedEnumerator.h rename to Pods/OCTotallyLazy/src/main/enumerators/MemoisedEnumerator.h diff --git a/Pods/OCTotallyLazy/src/main/enumerators/MemoisedEnumerator.m b/Pods/OCTotallyLazy/src/main/enumerators/MemoisedEnumerator.m new file mode 100644 index 0000000..0368744 --- /dev/null +++ b/Pods/OCTotallyLazy/src/main/enumerators/MemoisedEnumerator.m @@ -0,0 +1,68 @@ +#import "MemoisedEnumerator.h" + + +@implementation MemoisedEnumerator { + NSEnumerator *enumerator; + NSMutableArray *memory; + NSInteger position; +} + +- (int)previousIndex { + return position - 1; +} + +- (int)nextIndex { + return position; +} + +- (id)previousObject { + return position > 0 ? [memory objectAtIndex:(NSUInteger) --position] : nil; +} + +- (BOOL)hasCachedAnswer { + return position < [memory count]; +} + +- (id)cachedAnswer:(NSInteger)index { + return [memory objectAtIndex:(NSUInteger) index]; +} + +- (id)nextObject { + if ([self hasCachedAnswer]) { + return [self cachedAnswer:position++]; + } + id item = [enumerator nextObject]; + if (item != nil) { + [memory addObject:item]; + position++; + return item; + } + return nil; +} + +- (MemoisedEnumerator *)initWith:(NSEnumerator *)anEnumerator memory:(NSMutableArray *)aMemory { + self = [super init]; + enumerator = anEnumerator; + memory = aMemory; + position = 0; + return self; +} + + +- (id)firstObject { + position = 0; + return [self nextObject]; +} + +- (void)reset { + +} + ++ (MemoisedEnumerator *)with:(NSEnumerator *)enumerator { + return [[MemoisedEnumerator alloc] initWith:enumerator memory:[NSMutableArray array]]; +} + ++ (MemoisedEnumerator *)with:(NSEnumerator *)enumerator memory:(NSMutableArray *)memory { + return [[MemoisedEnumerator alloc] initWith:enumerator memory:memory]; +} +@end \ No newline at end of file diff --git a/OCTotallyLazy.framework/Headers/MergeEnumerator.h b/Pods/OCTotallyLazy/src/main/enumerators/MergeEnumerator.h similarity index 100% rename from OCTotallyLazy.framework/Headers/MergeEnumerator.h rename to Pods/OCTotallyLazy/src/main/enumerators/MergeEnumerator.h diff --git a/Pods/OCTotallyLazy/src/main/enumerators/MergeEnumerator.m b/Pods/OCTotallyLazy/src/main/enumerators/MergeEnumerator.m new file mode 100644 index 0000000..3ca4d98 --- /dev/null +++ b/Pods/OCTotallyLazy/src/main/enumerators/MergeEnumerator.m @@ -0,0 +1,31 @@ +#import "MergeEnumerator.h" +#import "Pair.h" + + +@implementation MergeEnumerator { + NSEnumerator *left; + NSEnumerator *right; +} + +- (MergeEnumerator *)initWith:(NSEnumerator *)leftEnumerator toMerge:(NSEnumerator *)rightEnumerator { + self = [super init]; + left = leftEnumerator; + right = rightEnumerator; + return self; +} + +- (id)nextObject { + id leftItem = [Option option:[left nextObject]]; + id rightItem = [Option option:[right nextObject]]; + if([leftItem isEmpty] && [rightItem isEmpty]) { + return nil; + } + return sequence(leftItem, rightItem, nil); +} + + ++ (MergeEnumerator *)with:(NSEnumerator *)leftEnumerator toMerge:(NSEnumerator *)rightEnumerator { + return [[MergeEnumerator alloc] initWith:leftEnumerator toMerge:rightEnumerator]; +} + +@end \ No newline at end of file diff --git a/OCTotallyLazy.framework/Headers/NSEnumerator+OCTotallyLazy.h b/Pods/OCTotallyLazy/src/main/enumerators/NSEnumerator+OCTotallyLazy.h similarity index 100% rename from OCTotallyLazy.framework/Headers/NSEnumerator+OCTotallyLazy.h rename to Pods/OCTotallyLazy/src/main/enumerators/NSEnumerator+OCTotallyLazy.h diff --git a/Pods/OCTotallyLazy/src/main/enumerators/NSEnumerator+OCTotallyLazy.m b/Pods/OCTotallyLazy/src/main/enumerators/NSEnumerator+OCTotallyLazy.m new file mode 100644 index 0000000..93b45e2 --- /dev/null +++ b/Pods/OCTotallyLazy/src/main/enumerators/NSEnumerator+OCTotallyLazy.m @@ -0,0 +1,48 @@ +#import "NSEnumerator+OCTotallyLazy.h" +#import "FlattenEnumerator.h" +#import "MapEnumerator.h" +#import "FilterEnumerator.h" +#import "Some.h" +#import "None.h" +#import "TakeWhileEnumerator.h" + +@implementation NSEnumerator (OCTotallyLazy) + +- (NSEnumerator *)drop:(int)toDrop { + return [self dropWhile:TL_countTo(toDrop)]; +} + +- (NSEnumerator *)dropWhile:(PREDICATE)predicate { + return [self filter:TL_not(TL_whileTrue(predicate))]; +} + +- (NSEnumerator *)filter:(PREDICATE)predicate { + return [FilterEnumerator withEnumerator:self andFilter:predicate]; +} + +- (Option *)find:(PREDICATE)predicate { + for(id item in self) { + if (predicate(item)) { + return [Some some:item]; + } + } + return [None none]; +} + +-(NSEnumerator *)flatten { + return [FlattenEnumerator withEnumerator:self]; +} + +- (NSEnumerator *)map:(id (^)(id))func { + return [MapEnumerator withEnumerator:self andFunction:func]; +} + +- (NSEnumerator *)take:(int)n { + return [self takeWhile:TL_countTo(n)]; +} + +- (NSEnumerator *)takeWhile:(BOOL (^)(id))predicate { + return [TakeWhileEnumerator with:self predicate:TL_whileTrue(predicate)]; +} + +@end \ No newline at end of file diff --git a/OCTotallyLazy.framework/Headers/PairEnumerator.h b/Pods/OCTotallyLazy/src/main/enumerators/PairEnumerator.h similarity index 100% rename from OCTotallyLazy.framework/Headers/PairEnumerator.h rename to Pods/OCTotallyLazy/src/main/enumerators/PairEnumerator.h diff --git a/Pods/OCTotallyLazy/src/main/enumerators/PairEnumerator.m b/Pods/OCTotallyLazy/src/main/enumerators/PairEnumerator.m new file mode 100644 index 0000000..533fa79 --- /dev/null +++ b/Pods/OCTotallyLazy/src/main/enumerators/PairEnumerator.m @@ -0,0 +1,31 @@ +#import "PairEnumerator.h" +#import "Pair.h" + + +@implementation PairEnumerator { + NSEnumerator *left; + NSEnumerator *right; +} +- (PairEnumerator *)initWithLeft:(NSEnumerator *)leftEnumerator right:(NSEnumerator *)rightEnumerator { + self = [super init]; + left = leftEnumerator; + right = rightEnumerator; + return self; +} + +- (id)nextObject { + id leftItem; + id rightItem; + while(((leftItem = [left nextObject]) != nil) && ((rightItem = [right nextObject]) != nil)){ + return [Pair left:leftItem right:rightItem]; + } + return nil; +} + + + ++ (PairEnumerator *)withLeft:(NSEnumerator *)leftEnumerator right:(NSEnumerator *)rightEnumerator { + return [[PairEnumerator alloc] initWithLeft:leftEnumerator right:rightEnumerator]; +} + +@end \ No newline at end of file diff --git a/OCTotallyLazy.framework/Headers/PartitionEnumerator.h b/Pods/OCTotallyLazy/src/main/enumerators/PartitionEnumerator.h similarity index 100% rename from OCTotallyLazy.framework/Headers/PartitionEnumerator.h rename to Pods/OCTotallyLazy/src/main/enumerators/PartitionEnumerator.h diff --git a/Pods/OCTotallyLazy/src/main/enumerators/PartitionEnumerator.m b/Pods/OCTotallyLazy/src/main/enumerators/PartitionEnumerator.m new file mode 100644 index 0000000..7170834 --- /dev/null +++ b/Pods/OCTotallyLazy/src/main/enumerators/PartitionEnumerator.m @@ -0,0 +1,40 @@ +#import "PartitionEnumerator.h" +#import "Queue.h" + + +@implementation PartitionEnumerator { + NSEnumerator *underlyingEnumerator; + PREDICATE predicate; + Queue *matched; + Queue *unmatched; +} + +- (id)nextObject { + if(![matched isEmpty]) { + return [matched remove]; + } + id result = [underlyingEnumerator nextObject]; + if (result == nil) { + return nil; + } + if (predicate(result)) { + return result; + } + [unmatched add:result]; + return [self nextObject]; +} + +- (PartitionEnumerator *)initWith:(NSEnumerator *)anEnumerator predicate:(PREDICATE)aPredicate matched:(Queue *)aMatched unmatched:(Queue *)anUnmatched { + self = [super init]; + underlyingEnumerator = anEnumerator; + predicate = [aPredicate copy]; + matched = aMatched; + unmatched = anUnmatched; + return self; +} + + ++ (PartitionEnumerator *)with:(NSEnumerator *)enumerator predicate:(PREDICATE)predicate matched:(Queue *)matched unmatched:(Queue *)unmatched { + return [[PartitionEnumerator alloc] initWith:enumerator predicate:predicate matched:matched unmatched:unmatched]; +} +@end \ No newline at end of file diff --git a/OCTotallyLazy.framework/Headers/RepeatEnumerator.h b/Pods/OCTotallyLazy/src/main/enumerators/RepeatEnumerator.h similarity index 100% rename from OCTotallyLazy.framework/Headers/RepeatEnumerator.h rename to Pods/OCTotallyLazy/src/main/enumerators/RepeatEnumerator.h diff --git a/Pods/OCTotallyLazy/src/main/enumerators/RepeatEnumerator.m b/Pods/OCTotallyLazy/src/main/enumerators/RepeatEnumerator.m new file mode 100644 index 0000000..159917f --- /dev/null +++ b/Pods/OCTotallyLazy/src/main/enumerators/RepeatEnumerator.m @@ -0,0 +1,23 @@ +#import "RepeatEnumerator.h" +#import "MemoisedEnumerator.h" + + +@implementation RepeatEnumerator { + MemoisedEnumerator *enumerator; +} +- (RepeatEnumerator *)initWith:(MemoisedEnumerator *)anEnumerator { + self = [super init]; + enumerator = anEnumerator; + return self; +} + +- (id)nextObject { + id item = [enumerator nextObject]; + return (item == nil) ? [enumerator firstObject] : item; +} + + ++ (RepeatEnumerator *)with:(MemoisedEnumerator *)anEnumerator { + return [[RepeatEnumerator alloc] initWith:anEnumerator]; +} +@end \ No newline at end of file diff --git a/OCTotallyLazy.framework/Headers/SingleValueEnumerator.h b/Pods/OCTotallyLazy/src/main/enumerators/SingleValueEnumerator.h similarity index 100% rename from OCTotallyLazy.framework/Headers/SingleValueEnumerator.h rename to Pods/OCTotallyLazy/src/main/enumerators/SingleValueEnumerator.h diff --git a/Pods/OCTotallyLazy/src/main/enumerators/SingleValueEnumerator.m b/Pods/OCTotallyLazy/src/main/enumerators/SingleValueEnumerator.m new file mode 100644 index 0000000..155d216 --- /dev/null +++ b/Pods/OCTotallyLazy/src/main/enumerators/SingleValueEnumerator.m @@ -0,0 +1,29 @@ +#import "SingleValueEnumerator.h" + + +@implementation SingleValueEnumerator { + id value; + BOOL valueRetrieved; +} +- (SingleValueEnumerator *)initWithValue:(id)aValue { + self = [super init]; + value = aValue; + valueRetrieved = FALSE; + return self; + +} + ++ (SingleValueEnumerator *)singleValue:(id)value { + return [[SingleValueEnumerator alloc] initWithValue:value]; +} + +- (id)nextObject { + if (valueRetrieved) { + return nil; + } + valueRetrieved = TRUE; + return value; +} + + +@end \ No newline at end of file diff --git a/OCTotallyLazy.framework/Headers/TakeWhileEnumerator.h b/Pods/OCTotallyLazy/src/main/enumerators/TakeWhileEnumerator.h similarity index 100% rename from OCTotallyLazy.framework/Headers/TakeWhileEnumerator.h rename to Pods/OCTotallyLazy/src/main/enumerators/TakeWhileEnumerator.h diff --git a/Pods/OCTotallyLazy/src/main/enumerators/TakeWhileEnumerator.m b/Pods/OCTotallyLazy/src/main/enumerators/TakeWhileEnumerator.m new file mode 100644 index 0000000..214d907 --- /dev/null +++ b/Pods/OCTotallyLazy/src/main/enumerators/TakeWhileEnumerator.m @@ -0,0 +1,29 @@ +#import +#import "TakeWhileEnumerator.h" + + +@implementation TakeWhileEnumerator { + NSEnumerator *enumerator; + + BOOL (^predicate)(id); + +} + +- (NSEnumerator *)initWith:(NSEnumerator *)anEnumerator predicate:(PREDICATE)aPredicate { + self = [super init]; + enumerator = anEnumerator; + predicate = aPredicate; + return self; + +} + +- (id)nextObject { + id item = [enumerator nextObject]; + return predicate(item) ? item : nil; +} + + ++ (NSEnumerator *)with:(NSEnumerator *)anEnumerator predicate:(PREDICATE)predicate { + return [[TakeWhileEnumerator alloc] initWith:anEnumerator predicate:predicate]; +} +@end \ No newline at end of file diff --git a/OCTotallyLazy.framework/Headers/Function1.h b/Pods/OCTotallyLazy/src/main/functions/Function1.h similarity index 100% rename from OCTotallyLazy.framework/Headers/Function1.h rename to Pods/OCTotallyLazy/src/main/functions/Function1.h diff --git a/Pods/OCTotallyLazy/src/main/functions/Function1.m b/Pods/OCTotallyLazy/src/main/functions/Function1.m new file mode 100644 index 0000000..661ca8b --- /dev/null +++ b/Pods/OCTotallyLazy/src/main/functions/Function1.m @@ -0,0 +1,21 @@ +#import "Function1.h" + +@interface Function1() +@property(nonatomic, copy) FUNCTION1 f1Block; +@end + +@implementation Function1 + +- (id)initF1:(FUNCTION1)f1Block { + self = [super init]; + if (self) { + self.f1Block = f1Block; + } + return self; +} + +- (id)apply:(id)argument1 { + return self.f1Block(argument1); +} + +@end \ No newline at end of file diff --git a/OCTotallyLazy.framework/Headers/Function2.h b/Pods/OCTotallyLazy/src/main/functions/Function2.h similarity index 100% rename from OCTotallyLazy.framework/Headers/Function2.h rename to Pods/OCTotallyLazy/src/main/functions/Function2.h diff --git a/Pods/OCTotallyLazy/src/main/functions/Function2.m b/Pods/OCTotallyLazy/src/main/functions/Function2.m new file mode 100644 index 0000000..42fcd09 --- /dev/null +++ b/Pods/OCTotallyLazy/src/main/functions/Function2.m @@ -0,0 +1,24 @@ +#import "Function2.h" +#import "Function1.h" + +@interface Function2() +@property (nonatomic, copy) FUNCTION2 f2Block; +@end + +@implementation Function2 + +- (id)initF2:(FUNCTION2)f2Block { + self = [super init]; + if (self) { + self.f2Block = f2Block; + } + return self; +} + +-(Function1 *)apply:(id)argument1 { + return [[Function1 alloc] initF1:^(id argument2) { + return self.f2Block(argument1, argument2); + }]; +} + +@end \ No newline at end of file diff --git a/OCTotallyLazy.framework/Headers/Functions.h b/Pods/OCTotallyLazy/src/main/functions/Functions.h similarity index 100% rename from OCTotallyLazy.framework/Headers/Functions.h rename to Pods/OCTotallyLazy/src/main/functions/Functions.h diff --git a/Pods/OCTotallyLazy/src/main/functions/Functions.m b/Pods/OCTotallyLazy/src/main/functions/Functions.m new file mode 100644 index 0000000..f93adca --- /dev/null +++ b/Pods/OCTotallyLazy/src/main/functions/Functions.m @@ -0,0 +1,20 @@ +#import "Functions.h" + + +@implementation Functions + ++(Function2 *)f2:(FUNCTION2)f2Block { + return [[Function2 alloc] initF2:f2Block]; +} + ++(Function1 *)f1:(FUNCTION1)f1Block { + return [[Function1 alloc] initF1:f1Block]; +} + ++ (Function1 *)compose:(Function1 *)a and:(Function1 *)b { + return [Functions f1:^(id argument) { + return [b apply:[a apply:argument]]; + }]; +} + +@end \ No newline at end of file diff --git a/OCTotallyLazy.framework/Headers/Numbers.h b/Pods/OCTotallyLazy/src/main/numbers/Numbers.h similarity index 100% rename from OCTotallyLazy.framework/Headers/Numbers.h rename to Pods/OCTotallyLazy/src/main/numbers/Numbers.h diff --git a/Pods/OCTotallyLazy/src/main/numbers/Numbers.m b/Pods/OCTotallyLazy/src/main/numbers/Numbers.m new file mode 100644 index 0000000..74d0efc --- /dev/null +++ b/Pods/OCTotallyLazy/src/main/numbers/Numbers.m @@ -0,0 +1,67 @@ +#import +#import "Numbers.h" + +@implementation Numbers ++ (FUNCTION2)sum { + return [^(NSNumber *a, NSNumber *b) { + return [NSNumber numberWithDouble:a.doubleValue + b.doubleValue]; + } copy]; +} + ++ (FUNCTION2)average { + __block int count = 1; + return [^(NSNumber *previousAverage, NSNumber *number) { + count++; + return [NSNumber numberWithDouble:previousAverage.doubleValue + ((number.doubleValue - previousAverage.doubleValue)/count)]; + } copy]; +} + ++ (FUNCTION2)multiplyBy { + return [^(NSNumber *a, NSNumber *b) { + return [NSNumber numberWithDouble:a.doubleValue * b.doubleValue]; + } copy]; +} + ++ (FUNCTION1)multiplyBy:(NSNumber *)multiplier { + return [^(NSNumber *number) { + return [NSNumber numberWithDouble:number.doubleValue * multiplier.doubleValue]; + } copy]; + +} + ++ (FUNCTION2)divideBy { + return [^(NSNumber *a, NSNumber *b) { + return [NSNumber numberWithDouble:a.doubleValue / b.doubleValue]; + } copy]; +} + ++ (FUNCTION1)divideBy:(NSNumber *)divisor { + return [^(NSNumber *number) { + return [NSNumber numberWithDouble:number.doubleValue / divisor.doubleValue]; + } copy]; +} + ++ (FUNCTION2)add { + return [^(NSNumber *a, NSNumber *b) { + return [NSNumber numberWithDouble:a.doubleValue + b.doubleValue]; + } copy]; +} + ++ (FUNCTION1)add:(NSNumber *)addition { + return [^(NSNumber *number) { + return [NSNumber numberWithDouble:number.doubleValue + addition.doubleValue]; + } copy]; +} + ++ (FUNCTION2)subtract { + return [^(NSNumber *a, NSNumber *b) { + return [NSNumber numberWithDouble:a.doubleValue - b.doubleValue]; + } copy]; +} + ++ (FUNCTION1)substract:(NSNumber *)subtractor { + return [^(NSNumber *number) { + return [NSNumber numberWithDouble:number.doubleValue - subtractor.doubleValue]; + } copy]; +} +@end \ No newline at end of file diff --git a/OCTotallyLazy.framework/Headers/Predicates.h b/Pods/OCTotallyLazy/src/main/predicates/Predicates.h similarity index 100% rename from OCTotallyLazy.framework/Headers/Predicates.h rename to Pods/OCTotallyLazy/src/main/predicates/Predicates.h diff --git a/Pods/OCTotallyLazy/src/main/predicates/Predicates.m b/Pods/OCTotallyLazy/src/main/predicates/Predicates.m new file mode 100644 index 0000000..fc56c21 --- /dev/null +++ b/Pods/OCTotallyLazy/src/main/predicates/Predicates.m @@ -0,0 +1,84 @@ +#import "Predicates.h" + +@implementation Predicates ++ (PREDICATE)alternate:(BOOL)startState { + __block BOOL state = !startState; + return [^(id item) { + state = !state; + return state; + } copy]; +} + ++ (PREDICATE)andLeft:(PREDICATE)left withRight:(PREDICATE)right { + return [^(id item) { + return left(item) && right(item); + } copy]; +} + ++ (PREDICATE)orLeft:(PREDICATE)left withRight:(PREDICATE)right { + return [^(id item) { + return left(item) || right(item); + } copy]; +} + ++ (PREDICATE)countTo:(int)n { + __block int count = n; + return [^(id item) { + return (count-- > 0); + } copy]; +} + ++ (PREDICATE)containedIn:(NSArray *)existing { + return [^(id item) { return [existing containsObject:item];} copy]; +} + ++ (PREDICATE)containsString:(NSString *)toMatch { + return [^(id item) { return [[item description] rangeOfString:toMatch].length > 0;} copy]; +} + ++ (PREDICATE)equalTo:(id)comparable { + return [^(id item) { return (BOOL)[item isEqual:comparable]; } copy]; +} + ++ (PREDICATE)everyNth:(int)n { + __block int count = 0; + return [^(id item) { + count++; + if (count == n) { + count = 0; + return TRUE; + } + return FALSE; + } copy]; +} + ++ (PREDICATE)greaterThan:(NSNumber *)comparable { + return [^(NSNumber *item) { return item.doubleValue > comparable.doubleValue;} copy]; +} + ++ (PREDICATE)lessThan:(NSNumber *)comparable { + return [^(NSNumber *item) { return item.doubleValue < comparable.doubleValue;} copy]; +} + ++ (PREDICATE)lessThanOrEqualTo:(NSNumber *)comparable { + return [^(NSNumber *item) { return item.doubleValue <= comparable.doubleValue;} copy]; +} + ++ (PREDICATE)not:(PREDICATE)predicate { + return [^(id item) { + return !predicate(item); + } copy]; +} + ++ (PREDICATE)startsWith:(NSString *)prefix { + return [^(NSString *item) { return [item hasPrefix:prefix];} copy]; +} + ++ (PREDICATE)whileTrue:(PREDICATE)predicate { + __block BOOL boolState = TRUE; + return [^(id item) { + boolState = boolState && predicate(item); + return boolState; + } copy]; +} +@end \ No newline at end of file diff --git a/Pods/Pods.xcodeproj/project.pbxproj b/Pods/Pods.xcodeproj/project.pbxproj new file mode 100644 index 0000000..5b7c8e9 --- /dev/null +++ b/Pods/Pods.xcodeproj/project.pbxproj @@ -0,0 +1,1641 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 00AA7D0EB2742099B9BC87920F0AA8B6 /* HCGenericTestFailureReporter.h in Headers */ = {isa = PBXBuildFile; fileRef = EEC5ABF14FA780A914D5EEC747366AA5 /* HCGenericTestFailureReporter.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 01E533A85968A9A98199BED53EE078B7 /* RepeatEnumerator.m in Sources */ = {isa = PBXBuildFile; fileRef = 323B1A5DD39C883E208049025679FACC /* RepeatEnumerator.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 022C8A2548127C088B2E6F2AAE05C2F7 /* HCSubstringMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 4276D63C7F4044A9E73D735DB1DA2C7C /* HCSubstringMatcher.m */; }; + 03050EDADD65B6B375B33ED2C25B2A35 /* HCIsCollectionContainingInOrder.h in Headers */ = {isa = PBXBuildFile; fileRef = F754BA2A5FEC8DF29433083579F4D04C /* HCIsCollectionContainingInOrder.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 03B003DBAAA7039E7FD6CB76367ABEB6 /* Function2.h in Headers */ = {isa = PBXBuildFile; fileRef = AE9A02D5D09962E9FAA861A4A73D3337 /* Function2.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 04FB04D0D8AB9ED25DB726F8C1FC1E83 /* Foldable.h in Headers */ = {isa = PBXBuildFile; fileRef = 8ABB54DF51371944A4529ABBE1EAC4B3 /* Foldable.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 06E8864973918E8686BC6AD3A4D6E4C2 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6604A7D69453B4569E4E4827FB9155A9 /* Foundation.framework */; }; + 075EFF9773449A1183431E69CDE388F9 /* HCRunloopRunner.h in Headers */ = {isa = PBXBuildFile; fileRef = C095C311FBC6821650959FAFD5101888 /* HCRunloopRunner.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 0775D317659539AF28CD2AF839015E65 /* NSInvocation+OCHamcrest.m in Sources */ = {isa = PBXBuildFile; fileRef = 793E13D04C57364B40CBE7148EB5F444 /* NSInvocation+OCHamcrest.m */; }; + 0807FC2B0839A6597854038D4CB96B1E /* HCIntReturnGetter.m in Sources */ = {isa = PBXBuildFile; fileRef = D6EF87B5D2A8AC7E56B2322829114426 /* HCIntReturnGetter.m */; }; + 091C475642698A764E4743D6A1B109F3 /* HCDescribedAs.h in Headers */ = {isa = PBXBuildFile; fileRef = 5603404F8A83C6F48E56547DFFF3B6E1 /* HCDescribedAs.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 095A770DFC6A66FDA4E44D2248AE5A41 /* HCFloatReturnGetter.h in Headers */ = {isa = PBXBuildFile; fileRef = 07D9656D9F587ED414B1EACADB33DB17 /* HCFloatReturnGetter.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 09A99EC7EF2C612F6B58A01AABBCC6BD /* HCIsDictionaryContaining.m in Sources */ = {isa = PBXBuildFile; fileRef = EAC57BF44012D59A778C51606A8A1E0B /* HCIsDictionaryContaining.m */; }; + 09FD24E9BA5A82B49DC864204C87A769 /* HCThrowsException.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B48F27951291ACFC9890B40FC613CC2 /* HCThrowsException.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0F3E6BB237F85A096F5BE93730D741EA /* HCCharReturnGetter.h in Headers */ = {isa = PBXBuildFile; fileRef = 61143870BB032C7426E8DFE957636CF8 /* HCCharReturnGetter.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 0F83944F720385C478D3EC37284BA221 /* HCAllOf.m in Sources */ = {isa = PBXBuildFile; fileRef = AA8BAABB0EA078E84287A08C39FA1322 /* HCAllOf.m */; }; + 108213B1CDDB7C2ED74E22CE81FAFE01 /* HCIsTypeOf.h in Headers */ = {isa = PBXBuildFile; fileRef = 681F403B3FDBB63B0178160405AC69DA /* HCIsTypeOf.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 108633472DCD234828BCC18B81365C75 /* EnumerateEnumerator.h in Headers */ = {isa = PBXBuildFile; fileRef = A8D87EDBB6E93F7777A16A589278CA7B /* EnumerateEnumerator.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 10A919492D37D3ED515E8B3DE3887909 /* Predicates.m in Sources */ = {isa = PBXBuildFile; fileRef = 109C8C5E0171B9F0F5CCC0C9DEBA8948 /* Predicates.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 13B05051B1A10848ACA3F4050B3D9BB7 /* Pair.h in Headers */ = {isa = PBXBuildFile; fileRef = 37E62CA92531E3318194FFC025572BAE /* Pair.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 151FCD844C5355BE927C266D30CCC145 /* HCLongReturnGetter.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D6754C38A6D64F62E23BED8109F4E91 /* HCLongReturnGetter.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 160A201ADE809A67502F84B2A0220087 /* HCHasCount.h in Headers */ = {isa = PBXBuildFile; fileRef = FE023ACBF38AE62CF530EE5D8C476976 /* HCHasCount.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 181CECBD0C564EB943377CE91D66F1EF /* HCAssertThat.m in Sources */ = {isa = PBXBuildFile; fileRef = 03C63E17F363B5D07096ABD6751C2F30 /* HCAssertThat.m */; }; + 181EED324749CD2D5BABEBDCFBDB45DB /* Numbers.h in Headers */ = {isa = PBXBuildFile; fileRef = 55FE956639ED2430126C866B0973007E /* Numbers.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1D4ABBB14B5A787423B5F23D03656630 /* HCXCTestFailureReporter.m in Sources */ = {isa = PBXBuildFile; fileRef = 2C8AE9E474BE00173A56C141858F6D37 /* HCXCTestFailureReporter.m */; }; + 1D76E5FE5FE2543913DA132DC3199789 /* HCLongReturnGetter.m in Sources */ = {isa = PBXBuildFile; fileRef = 573ECB96B91ED23311A8C7C1F3E42355 /* HCLongReturnGetter.m */; }; + 1DF7D331C7B545215F26F16AD1BB7B5F /* Numbers.m in Sources */ = {isa = PBXBuildFile; fileRef = 794B0C5249F7694479D6ED6FD57A50C9 /* Numbers.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 1F10FC092D9F76E371228118AE4A3481 /* Callables.m in Sources */ = {isa = PBXBuildFile; fileRef = 9DE94E620D02D007857E6FECF686D142 /* Callables.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 1F6507C4DC7B9BC5DDD223229C3995B3 /* HCIsAnything.h in Headers */ = {isa = PBXBuildFile; fileRef = 61345F372863558DCB1EC70A2C2E5793 /* HCIsAnything.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 20934A2659EF0E72A74B0C1244F4DCEE /* OCTotallyLazy-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = B01F339EB2C1C21781E382FE95A2FD96 /* OCTotallyLazy-dummy.m */; }; + 21397D2A0C3686174D1E31B404101125 /* HCDoubleReturnGetter.h in Headers */ = {isa = PBXBuildFile; fileRef = 493248C332DD1E04E8259FF5B4A32ECC /* HCDoubleReturnGetter.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 21E3C5DB6A5B227A52DFD172602A6DAA /* HCUnsignedShortReturnGetter.h in Headers */ = {isa = PBXBuildFile; fileRef = F2A93879D8A1D9892FAEA4FCAC23BF68 /* HCUnsignedShortReturnGetter.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 22667E8CDAEDCEF418400920AB8992C5 /* HCUnsignedShortReturnGetter.m in Sources */ = {isa = PBXBuildFile; fileRef = 53A7200D6B401E64A53532621D6953C0 /* HCUnsignedShortReturnGetter.m */; }; + 227B7F7DCFC58B0BC446278D495CB877 /* Some.h in Headers */ = {isa = PBXBuildFile; fileRef = 875211007DE1B98D14E5281279A9586F /* Some.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 22B702A6BCC9F0FAC7A7D9DF8A5650F5 /* HCBaseMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 55BFF8917514566108F990D684D0D2C8 /* HCBaseMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2378B551E8CB22EB7C1D27C628B1F018 /* HCGenericTestFailureReporter.m in Sources */ = {isa = PBXBuildFile; fileRef = 1EF13B2E0F7192C22FA85C3BD2404A3B /* HCGenericTestFailureReporter.m */; }; + 2417816E6CEA2B0E4FC99AE41640242F /* HCMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = E964347C00FB550A2E69E5420C903B4E /* HCMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 27B237E419D11AFABA4FFD46F1C05438 /* NoSuchElementException.h in Headers */ = {isa = PBXBuildFile; fileRef = F2950E5EC9BE31C9C532871223E9EB07 /* NoSuchElementException.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 27F1450D622576712FAD6CA41BA6A953 /* NSDictionary+OCTotallyLazy.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E613009509F8D03C482CCBAC2274C3E /* NSDictionary+OCTotallyLazy.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 2B393C8CC5F0368429F2E9AF02690E65 /* HCIsEqualIgnoringCase.m in Sources */ = {isa = PBXBuildFile; fileRef = 47EACC88A023A8B0B27F26ECCE3C2140 /* HCIsEqualIgnoringCase.m */; }; + 2BB9048F2106FF46928E5BE3CA13EFD5 /* Sequence.h in Headers */ = {isa = PBXBuildFile; fileRef = B803AF1ACAA2399997FFB7EB96404FEB /* Sequence.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2E72918C98918609F85844E32901560D /* HCIsEqual.h in Headers */ = {isa = PBXBuildFile; fileRef = 307F92AB94D808DA71722996A104B487 /* HCIsEqual.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2EB30AAEEFD2690F6DBBFC961A60B9CC /* Coercions.h in Headers */ = {isa = PBXBuildFile; fileRef = 4191C7E4E9A69A2DEA9E7BE4F3D45FC0 /* Coercions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2ED63220C96024BA69C74C9F6711F948 /* HCIsCollectionContaining.m in Sources */ = {isa = PBXBuildFile; fileRef = 2D4F181EAA6171EF7A2568144204856F /* HCIsCollectionContaining.m */; }; + 2F8EFA2BB04F32CBA5D65DD22347B7F2 /* HCConformsToProtocol.m in Sources */ = {isa = PBXBuildFile; fileRef = 04783C998707749B0263C886C07C4915 /* HCConformsToProtocol.m */; }; + 3005288A96890D8DA44AE8082F8B144D /* HCIsDictionaryContainingEntries.m in Sources */ = {isa = PBXBuildFile; fileRef = E11C09970B1ABDA96040D8C1F8DAB887 /* HCIsDictionaryContainingEntries.m */; }; + 30AC8352FE6DC9288EEA2843BD47F50B /* HCTestFailureReporter.m in Sources */ = {isa = PBXBuildFile; fileRef = AA9CB89F28A81F1250F2A5E44CEE0FB9 /* HCTestFailureReporter.m */; }; + 3285E513AC174013F26E00F1155D398D /* SingleValueEnumerator.m in Sources */ = {isa = PBXBuildFile; fileRef = 17AD614A05C6892DCF4E608F27222655 /* SingleValueEnumerator.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 33FCB4D66747E80E5E7D4960139BBA3A /* HCUnsignedLongLongReturnGetter.h in Headers */ = {isa = PBXBuildFile; fileRef = FC0A6D2DB6B05A4AEE9A31BBA0369B83 /* HCUnsignedLongLongReturnGetter.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 34D94EF9C0F388973DA7E3888176BC5A /* HCDescribedAs.m in Sources */ = {isa = PBXBuildFile; fileRef = 73D6C5AC2879BBAD0DC015F9ECBB9B27 /* HCDescribedAs.m */; }; + 35355C6BC7F2B2239A6F39E925B2170F /* HCStringContains.h in Headers */ = {isa = PBXBuildFile; fileRef = E7943F3479C6FE02A27EF550FD6A3CB8 /* HCStringContains.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3748D78487C75A8F801171ED0FC36D82 /* HCIsDictionaryContaining.h in Headers */ = {isa = PBXBuildFile; fileRef = AF2CE21D9E9BDAB69725544752705725 /* HCIsDictionaryContaining.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 37A5ACBC4C7D2DE4F22793ACC4A18ABC /* HCObjectReturnGetter.h in Headers */ = {isa = PBXBuildFile; fileRef = CFC0D71799671D5684C40FDB175FED55 /* HCObjectReturnGetter.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 380D6AF7401645D987999B641BE9336B /* TakeWhileEnumerator.h in Headers */ = {isa = PBXBuildFile; fileRef = A0EB0E6E77257F23785882761E0482F7 /* TakeWhileEnumerator.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3847F748DDA107CA469327F9B559B033 /* HCIsEmptyCollection.h in Headers */ = {isa = PBXBuildFile; fileRef = D9336C6E98F5D7A7E6CA708F53A1BE41 /* HCIsEmptyCollection.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 38E408E294DECD3514C14342202DC8B3 /* FilterEnumerator.h in Headers */ = {isa = PBXBuildFile; fileRef = F0EAACC2AF77D57579573501D00DAC7B /* FilterEnumerator.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 38F3334DDAB8561E1F9EA2EDA0421221 /* Some.m in Sources */ = {isa = PBXBuildFile; fileRef = E36F5D7B75A87F501F17EE0878D05045 /* Some.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 3A3BC20A2B71BB48F16CEAC8C635D7E7 /* HCInvocationMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 5A1D9AD37994F0EAA4C0C5335F01B837 /* HCInvocationMatcher.m */; }; + 3A5F2CC7E9347C9800D985CF9E2A3386 /* Callables.h in Headers */ = {isa = PBXBuildFile; fileRef = DE2A701F9D39DC74F5E40191C6835808 /* Callables.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3C26E9D180D59C3C712495E0A45505CC /* HCUnsignedLongReturnGetter.m in Sources */ = {isa = PBXBuildFile; fileRef = D7785584605275CD93D5ED677CDACF28 /* HCUnsignedLongReturnGetter.m */; }; + 3EB2DB2C50A35F0CAA1DA4BECB24FEC3 /* Group.h in Headers */ = {isa = PBXBuildFile; fileRef = 436548257D23D068A36CF39D8AD6DE40 /* Group.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3FA6F90D2C62D8C0AF6A3BBA340A9197 /* HCTestFailureReporterChain.m in Sources */ = {isa = PBXBuildFile; fileRef = E40E4AA66F4CF1825B6AC37BA12033C3 /* HCTestFailureReporterChain.m */; }; + 3FFEA182F810DFEA15D509B3C71CB963 /* PartitionEnumerator.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C441764D002739F579FBA820A8959A5 /* PartitionEnumerator.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 40433F794DBDEEF942DBAEC3A7F2F57A /* HCCharReturnGetter.m in Sources */ = {isa = PBXBuildFile; fileRef = 84C54BD4D9DAD6F6CFC7721CA0C65DBC /* HCCharReturnGetter.m */; }; + 42469565212E5536B1F1512F83B2AA5D /* GroupedEnumerator.m in Sources */ = {isa = PBXBuildFile; fileRef = A21EA0EBDEE878A34C8AD0FD487464A5 /* GroupedEnumerator.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 443EEEBB90045FCD73E535D82166CD13 /* NSInvocation+OCHamcrest.h in Headers */ = {isa = PBXBuildFile; fileRef = AAED264844E414AB9B6D25EB6D60E362 /* NSInvocation+OCHamcrest.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 44AA0A0750382444C4C1EE22726336A5 /* OCHamcrest.h in Headers */ = {isa = PBXBuildFile; fileRef = 6DA0C458EA2C820DCF5EF06390B46830 /* OCHamcrest.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4677E0547846CC3D5E88F903DE6D54CE /* HCIsEqualIgnoringCase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8EC8C37B8811BB19F63FDD2F2C765130 /* HCIsEqualIgnoringCase.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 482600958B3CD00E7FA6CEF381A18E2F /* HCIsCollectionContainingInAnyOrder.h in Headers */ = {isa = PBXBuildFile; fileRef = 216359FDEBFC5D207BECFC8F16C0A7E3 /* HCIsCollectionContainingInAnyOrder.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 49032645B4D78E47CAAC12D13D473FF2 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6604A7D69453B4569E4E4827FB9155A9 /* Foundation.framework */; }; + 4A63351069C0D952B81FF27FC4691D1A /* Mappable.h in Headers */ = {isa = PBXBuildFile; fileRef = EF8C1E19F98B3E655587B336067CE1A2 /* Mappable.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4AA4DB1E5F810AD0209C8EA2C05BCB2E /* HCRequireNonNilObject.m in Sources */ = {isa = PBXBuildFile; fileRef = EB6E25DFA539CB405E0F08D7A4CD2CAD /* HCRequireNonNilObject.m */; }; + 4B15464728C5BF64ED59A92E0A9FD7CD /* HCUnsignedLongLongReturnGetter.m in Sources */ = {isa = PBXBuildFile; fileRef = 64536B0FC71EFC0F70FF9FDE295C406E /* HCUnsignedLongLongReturnGetter.m */; }; + 4D4B917C68C02C18A38CE9B758D9722A /* HCIsNil.m in Sources */ = {isa = PBXBuildFile; fileRef = 6D248372F00B176BAB1D4BE7A13CBAB9 /* HCIsNil.m */; }; + 4F6639AE8A91D05E0D92AC789632BEED /* NSArray+OCTotallyLazy.h in Headers */ = {isa = PBXBuildFile; fileRef = 85945C5A6A65C27B377EF40CFA35571B /* NSArray+OCTotallyLazy.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 504636D1F52ED3CC094405EAB70EBF60 /* HCIsSame.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A7E5C2A5F9B4079FE328FFF2361BEAA /* HCIsSame.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 505D4D0201B6801CE2617C97D21913C2 /* NSArray+OCTotallyLazy.m in Sources */ = {isa = PBXBuildFile; fileRef = D03B24DA53F2488D1EA1EE0F4635D89B /* NSArray+OCTotallyLazy.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 50E28311ECD0CCD8FE9F0C76E159424D /* HCCollect.m in Sources */ = {isa = PBXBuildFile; fileRef = F8F2E22161EEA605022C5EA1097AFB75 /* HCCollect.m */; }; + 50F34472DEA3B761915E4F16C5CF597A /* HCStringEndsWith.h in Headers */ = {isa = PBXBuildFile; fileRef = 6077AA0342F26BF5CF5369FE2CC09DA6 /* HCStringEndsWith.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 51A595A0D747550023DDDC52FCFFDD34 /* HCIs.h in Headers */ = {isa = PBXBuildFile; fileRef = 5B5EA20E022D929DEBFE033F15EECD08 /* HCIs.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 520B56F656E117BCF622C1F0348C54C0 /* HCIsDictionaryContainingValue.h in Headers */ = {isa = PBXBuildFile; fileRef = 57CF706D01CD48AD27A7D1003EDCA5E9 /* HCIsDictionaryContainingValue.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 523D204877C540D4AD0BB27557F2542B /* HCArgumentCaptor.h in Headers */ = {isa = PBXBuildFile; fileRef = B8D6E1DB356CED8461518ACD5E88D47C /* HCArgumentCaptor.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5248B64EBD68E46C2B7249A880BC5CF1 /* HCDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 14CE8850039E3B874D2E5E5149EE6F87 /* HCDescription.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 52F1A4E78E7D6B828B2F64B1A1B2F630 /* HCIsEqual.m in Sources */ = {isa = PBXBuildFile; fileRef = 50ED338216DA76141CA829E05DB91901 /* HCIsEqual.m */; }; + 5439B3FC5273FEC2F95B5F94953CEB95 /* HCIsTypeOf.m in Sources */ = {isa = PBXBuildFile; fileRef = 168479F8ADECF7BF1D324CBCE72E712E /* HCIsTypeOf.m */; }; + 571721D73C9120D684D25B46202968B9 /* HCStringDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 62DE20E0F024BC864799A0D3B91C7CAE /* HCStringDescription.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 58B91D59689EAF1A401BBD79014103A4 /* FlattenEnumerator.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F5F9C5C4BB17494C0DAC81C23DEBE46 /* FlattenEnumerator.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 58DE67301D844F88AEEFF22F50B50BB4 /* HCIsEqualCompressingWhiteSpace.m in Sources */ = {isa = PBXBuildFile; fileRef = E85581796C96EE0CC94F47B286693B56 /* HCIsEqualCompressingWhiteSpace.m */; }; + 5A1C892A751072E3215DF739785C3C9D /* HCBaseDescription.m in Sources */ = {isa = PBXBuildFile; fileRef = 36F3960669085F68F58076E7CD9C493A /* HCBaseDescription.m */; }; + 5AAE23F8AEBAB2D5A01F839DED878D5D /* PartitionEnumerator.m in Sources */ = {isa = PBXBuildFile; fileRef = 2376BEAC912FEBF295CFF9DEFB54E8BB /* PartitionEnumerator.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 5B3FDA0DFFD446937082B953291B18EA /* NSEnumerator+OCTotallyLazy.h in Headers */ = {isa = PBXBuildFile; fileRef = F5530E027F4C64360AD6A3898A762745 /* NSEnumerator+OCTotallyLazy.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C0E3680435D477EDDFF5F426AA15DBC /* HCRequireNonNilObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BE3F07782289BD1776D29E49A263A69 /* HCRequireNonNilObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5D6AACBDC690057A71508062B5E2D27E /* HCIsCollectionOnlyContaining.m in Sources */ = {isa = PBXBuildFile; fileRef = 1B9FEABA55DB5E9771EFC1B545F524F6 /* HCIsCollectionOnlyContaining.m */; }; + 60170D8CEE3BA8886464FB0F2F562C5F /* HCIsCollectionContainingInRelativeOrder.m in Sources */ = {isa = PBXBuildFile; fileRef = 2BA5026D8DE2724CB42D43C3742F3437 /* HCIsCollectionContainingInRelativeOrder.m */; }; + 60FC33748AD0D0CEACFE49B992DC76A3 /* HCHasProperty.m in Sources */ = {isa = PBXBuildFile; fileRef = 924C09FB057C4A4039BD89F2D41EB919 /* HCHasProperty.m */; }; + 63D10169AD67B22D56FAE04F009A9236 /* EasyEnumerable.h in Headers */ = {isa = PBXBuildFile; fileRef = 79454564A5EEE6342033D98AF444C3EB /* EasyEnumerable.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 63D30A9B7FBE489F3060F3B948316AE5 /* HCIsInstanceOf.m in Sources */ = {isa = PBXBuildFile; fileRef = B792B5D782A9CA653BC2022206CA2FCB /* HCIsInstanceOf.m */; }; + 66462E8727F0BC1872D70EDD9A6781CE /* HCIsNot.m in Sources */ = {isa = PBXBuildFile; fileRef = DD0B722215F0A041DEA2FBF475C0E114 /* HCIsNot.m */; }; + 68336F5C1407C1674CB4E20E6E2E611C /* NSDictionary+OCTotallyLazy.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E4D2E84890776DD51B228F420E679C2 /* NSDictionary+OCTotallyLazy.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 68CE9E2D75324A2B567906AD1BE389BF /* EasyEnumerable.m in Sources */ = {isa = PBXBuildFile; fileRef = EF247325CB5E03DA2CF1E697125EEE04 /* EasyEnumerable.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 68EE70194866244272C32F578B40A825 /* HCTestFailure.h in Headers */ = {isa = PBXBuildFile; fileRef = 034503ACD5CC192B54D8A636D4BF8633 /* HCTestFailure.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 68FE8B53B027FAEE3BA6EDA24662AE0A /* HCWrapInMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 5DF8E2A66D3D84CF9610D3B10CEB0C24 /* HCWrapInMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6A2DD2B93A873F2D1AD48290D395CE91 /* HCUnsignedCharReturnGetter.m in Sources */ = {isa = PBXBuildFile; fileRef = A388D0EDA003F7C0C4D590968DC67EBA /* HCUnsignedCharReturnGetter.m */; }; + 6A373C900176B2C16F6F9C1AFC88EDC0 /* HCSelfDescribing.h in Headers */ = {isa = PBXBuildFile; fileRef = 0B811ED77F1F07BEA8AEC81820774004 /* HCSelfDescribing.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6ABF6690CDD8A313EF5EE2D75C45B59E /* NSSet+OCTotallyLazy.h in Headers */ = {isa = PBXBuildFile; fileRef = FEB2E2544609AA12DA405E7440E28419 /* NSSet+OCTotallyLazy.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6ADA0A3D209458EE1EE448CBB16F5687 /* MemoisedSequence.m in Sources */ = {isa = PBXBuildFile; fileRef = 08D0616A1B7BAF2AC96B386C14109700 /* MemoisedSequence.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 6BDC5BDC97C8A1F0BD65F4129CD45329 /* HCConformsToProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 6009A42FE0AAE6367E98BE81C9F47F8D /* HCConformsToProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6C728509330E0E38BE078718F534245F /* None.m in Sources */ = {isa = PBXBuildFile; fileRef = 98439BB1DCA5AA61542F28CF6CA5EF2C /* None.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 71CBF7CFBC4E6DDA37666E0CFD2F8528 /* HCIsDictionaryContainingEntries.h in Headers */ = {isa = PBXBuildFile; fileRef = 57CBEC4EAE06C37A85647E4517066485 /* HCIsDictionaryContainingEntries.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7263FD6C1C9A342180716EFF5AD50A7C /* NoSuchElementException.m in Sources */ = {isa = PBXBuildFile; fileRef = 82A4FEB3EB6D20B5966E8D408A77D6F9 /* NoSuchElementException.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 72B46B0DEE3A136FEF0E699F8A4B9A07 /* HCReturnValueGetter.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BA41699DC57D9AD9C473772121F469B /* HCReturnValueGetter.m */; }; + 72CF0ECD59174095F1AECD4A20B4C96D /* Pair.m in Sources */ = {isa = PBXBuildFile; fileRef = DE1ADA51EA48F1D059CC9559813B1007 /* Pair.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 72E34EBE268A1F944CF6D19BD90B9BD0 /* HCBoolReturnGetter.h in Headers */ = {isa = PBXBuildFile; fileRef = D5F7C5306CA28FAE5794220BFF82F696 /* HCBoolReturnGetter.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 74B8F80A9496E922CAF1E157CFC79AD6 /* MergeEnumerator.h in Headers */ = {isa = PBXBuildFile; fileRef = BB5A84BE40E72AA69EF286843C5ABBC8 /* MergeEnumerator.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7681D42A1D7F09D90BA3343F1344E365 /* MergeEnumerator.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D46C50D5E5EE03F2C0E620BAB71FF4D /* MergeEnumerator.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 787C2CF062EB1C1F54F944208910EDEF /* Range.h in Headers */ = {isa = PBXBuildFile; fileRef = 23F69EBA4053C7DD2FDC0D6E22BD25DA /* Range.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 79228A43A1E24FA04CFE8E85ABD7750A /* HCDiagnosingMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = DF894BE8185F52AA8B6B2E3A2EA0EAC7 /* HCDiagnosingMatcher.m */; }; + 793791281793B9BAAFF88CAEED033372 /* HCLongLongReturnGetter.h in Headers */ = {isa = PBXBuildFile; fileRef = AD8022F414033100F15F21F50DAA891C /* HCLongLongReturnGetter.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 7A44F750D727FDB7C693780E1FEEE95F /* HCIntReturnGetter.h in Headers */ = {isa = PBXBuildFile; fileRef = 027BB3C33346A0D2A062C478C6ACEFCD /* HCIntReturnGetter.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 7AB1DA6A685DFA9A5FFCAF103336533D /* HCObjectReturnGetter.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D8ED8E61F12BD95F11D996743DA5893 /* HCObjectReturnGetter.m */; }; + 7ADBA41ADAB8CF1FF4FE57EE5CD5685B /* HCIsIn.m in Sources */ = {isa = PBXBuildFile; fileRef = 6B87A871F955E955BC3124AB6A587DC9 /* HCIsIn.m */; }; + 7E0D49328D9277CDA3A4633899AACA9C /* SingleValueEnumerator.h in Headers */ = {isa = PBXBuildFile; fileRef = 2DEF96F4C6B7D808B5B8DCD10537548A /* SingleValueEnumerator.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7E59C7C270D6E569B0FACCFF9F71A21A /* Function2.m in Sources */ = {isa = PBXBuildFile; fileRef = 97FA8623D909A1559098614FD8DE6F9C /* Function2.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 7E932ABF6BB71C31576D512FC1900974 /* PairEnumerator.h in Headers */ = {isa = PBXBuildFile; fileRef = 1711B620DAB55BFCCDF55A29916D1F8B /* PairEnumerator.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 831B2B473636258B33DDB78A51C9B0B7 /* Functions.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E7D1704D93FAA761D593E3684C9CAA5 /* Functions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8418D537708DEE0ACAD768F46C4CC009 /* HCIsCollectionContainingInRelativeOrder.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C898CEED4EA3507C36D381D1D5D7668 /* HCIsCollectionContainingInRelativeOrder.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8649B8895BAA0ADAC1BE84FB0209038E /* PairEnumerator.m in Sources */ = {isa = PBXBuildFile; fileRef = 802A03E0B4D63CA8ECCFB27CD158F027 /* PairEnumerator.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 883933EC1623C09901E0D90D68924B84 /* HCIsDictionaryContainingKey.h in Headers */ = {isa = PBXBuildFile; fileRef = 3739F19562912171756917999493682E /* HCIsDictionaryContainingKey.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8AF257E177757AA16FDC496C235D9A76 /* HCBaseDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = FC794B29F0EA0ECFECC4E857AEC5938D /* HCBaseDescription.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8BDABAB60A8ECAE98DB6809D3DAD00F7 /* HCUnsignedIntReturnGetter.m in Sources */ = {isa = PBXBuildFile; fileRef = B79E0AC9FA0840FCDA990FA644898D56 /* HCUnsignedIntReturnGetter.m */; }; + 8C1F01E889E5E1401987289B2DA37EF3 /* HCWrapInMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = BC65205862D34F464750DE1792997D85 /* HCWrapInMatcher.m */; }; + 8C927264ECC037CE804CD91FAA348E30 /* Option.h in Headers */ = {isa = PBXBuildFile; fileRef = 51994E2F573E22443C00FA2DDD2C2129 /* Option.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8F253D19B6989A4C47A6CC41C6EC489A /* HCDoubleReturnGetter.m in Sources */ = {isa = PBXBuildFile; fileRef = AA5F7F7A5025E95160271EB28678A526 /* HCDoubleReturnGetter.m */; }; + 8FF54618E7C747A9027A833C6A15698E /* Function1.m in Sources */ = {isa = PBXBuildFile; fileRef = FA77F52781DEC1C877E709AE0D9F7C27 /* Function1.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 918223EDD9F228F8A1D692717DFDEE01 /* HCBaseMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = A9F3402290A28AEC68D5A96AEB2671C1 /* HCBaseMatcher.m */; }; + 927D5AC908E4122C2336D2936806B590 /* RepeatEnumerator.h in Headers */ = {isa = PBXBuildFile; fileRef = B7C061EB9D675638C5D3D3030D5DD4DE /* RepeatEnumerator.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 934B46D1AD29CA8748EB84731D651A19 /* HCXCTestFailureReporter.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BF120364822BB26830ED94477F25965 /* HCXCTestFailureReporter.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 93A8EEB35CA6178F3CE2693D8140A654 /* NSSet+OCTotallyLazy.m in Sources */ = {isa = PBXBuildFile; fileRef = 05E3D5504379F79E661E8946BB5B9646 /* NSSet+OCTotallyLazy.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 93CFD6EC78CC1928393B4FF964B05E33 /* HCIsAnything.m in Sources */ = {isa = PBXBuildFile; fileRef = 450CB7EB81CBA429C1D6F7344198CA3C /* HCIsAnything.m */; }; + 94A46F2AC545672D6D6D59FB6C63B3F4 /* HCEvery.h in Headers */ = {isa = PBXBuildFile; fileRef = 804CAFB3EF9F722C30FC5771E4248BF0 /* HCEvery.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 94FA28F1F8121EAD6E2B82D26F1527B4 /* HCReturnValueGetter.h in Headers */ = {isa = PBXBuildFile; fileRef = 4072A6D2E8EADB404F7E6CD0195DFB33 /* HCReturnValueGetter.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 959A2A31C6C766BAAB1D56751E309E85 /* HCInvocationMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = D78CC5B1BC9C0035667693FACEEA240B /* HCInvocationMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 96D795B77FF5B407AB600B0D8F70540F /* HCAssertThat.h in Headers */ = {isa = PBXBuildFile; fileRef = 4CD1614438E270EC5897EDEA6C6E56EA /* HCAssertThat.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 97C4EDA53AE9D2B8599E4E40758023F9 /* HCIsNil.h in Headers */ = {isa = PBXBuildFile; fileRef = 984B01728C20987C0955B4AF6C56F1A6 /* HCIsNil.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 996BA786FEE0836944CB6B33F961DC0C /* MapEnumerator.m in Sources */ = {isa = PBXBuildFile; fileRef = A206DBB84DE53AEA6F2F9FB32E19BBD2 /* MapEnumerator.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 9D2FA4C3C10DB753C98EF89A3EBAE968 /* Sequence.m in Sources */ = {isa = PBXBuildFile; fileRef = 1177F7055C546126909863A1ACDF30CA /* Sequence.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 9EC5B406455365AA51738FB21EA3D5DE /* Enumerable.h in Headers */ = {isa = PBXBuildFile; fileRef = 9FCD205B19F60D1AB4BC485070B760B1 /* Enumerable.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9FB173074C4C122DD52954B3E662E07E /* HCIsInstanceOf.h in Headers */ = {isa = PBXBuildFile; fileRef = ADBA8F9109207B685CDE908C5007812D /* HCIsInstanceOf.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9FE46E371DE1ABAAB75CFB84055A398E /* HCIsSame.m in Sources */ = {isa = PBXBuildFile; fileRef = A22D70A105262DA161BD584EC8766BBF /* HCIsSame.m */; }; + A0918619348752EDB3CE21627B42587D /* OCTotallyLazy.h in Headers */ = {isa = PBXBuildFile; fileRef = 2AC9F2FCE821669ACB82C6FC3FE142D8 /* OCTotallyLazy.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A2D50BC62277FDFCDCE49D03BCE4AEB0 /* HCCollect.h in Headers */ = {isa = PBXBuildFile; fileRef = CEFD7C16F9CB43CA488265932CE99E36 /* HCCollect.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A309E9CC1495740D8E97DB8ECF37ECF9 /* HCHasDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 9ADA65EA1EFA88C3EF148E2D833CBCD9 /* HCHasDescription.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A366D409BC7E3011DD32DE061ABA0A9E /* Pods-UnitTests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 1503994294ADFEA75EF253B710B9FE7E /* Pods-UnitTests-dummy.m */; }; + A627CDD8FF1ED0215C015FE1FB6DC46F /* HCStringEndsWith.m in Sources */ = {isa = PBXBuildFile; fileRef = D588456748421060055171928D97B0FA /* HCStringEndsWith.m */; }; + A92431BF46FCF19530F6EFD8B923F2E0 /* HCHasProperty.h in Headers */ = {isa = PBXBuildFile; fileRef = AE910F993FB13C416945914A460F4B5A /* HCHasProperty.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AC53A3CF006340BA3CD4CDA9A218A17C /* Flattenable.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AE3139A7A47F27366779CF9037F966F /* Flattenable.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AFD62E72EC16582EEAE1BA37FE08E118 /* HCOrderingComparison.m in Sources */ = {isa = PBXBuildFile; fileRef = B857525B7863C387CCB7AA509E0EE3D9 /* HCOrderingComparison.m */; }; + B0D81AB50C5D1B65E0D6F405CC703513 /* None.h in Headers */ = {isa = PBXBuildFile; fileRef = 530B068042E3FDB24FE783BBC28CEF5A /* None.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B0EF3A76F242ED4488A080C65BC551ED /* HCReturnTypeHandlerChain.h in Headers */ = {isa = PBXBuildFile; fileRef = C37AF7CE042BDC1C7F60E8A50DD77CE1 /* HCReturnTypeHandlerChain.h */; settings = {ATTRIBUTES = (Private, ); }; }; + B21CE4EE0FB3C67A343C64DB1A66B46C /* HCThrowsException.m in Sources */ = {isa = PBXBuildFile; fileRef = DF2B4B5F360DB074103A849D8E1580A1 /* HCThrowsException.m */; }; + B461A4DF620AF5EE42FDE46388A6D27C /* OCHamcrest-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 591FCE02DABBAD04D1ACE3D88ADA8E00 /* OCHamcrest-dummy.m */; }; + B4E6183EBA754F2560BCB39671D749D9 /* HCHasCount.m in Sources */ = {isa = PBXBuildFile; fileRef = BD01A80B901DB9BC71399F1D7242000C /* HCHasCount.m */; }; + B55F529C75C06C634B69DE0A2F2636FD /* HCAllOf.h in Headers */ = {isa = PBXBuildFile; fileRef = 05928E486229DD68D8FED173D3FF7BE9 /* HCAllOf.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B5B3ABA08C2A184CBDC371829B6A6DD9 /* TakeWhileEnumerator.m in Sources */ = {isa = PBXBuildFile; fileRef = 36712F86F405AC48D385640417132A9F /* TakeWhileEnumerator.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + B7B482EC3A6D8835E5DCAB3B585D5F37 /* HCEvery.m in Sources */ = {isa = PBXBuildFile; fileRef = 76AD24D910AC35CA788261A38FC314AD /* HCEvery.m */; }; + B8DBDA42190564E6F192DB42604C027C /* EmptyEnumerator.h in Headers */ = {isa = PBXBuildFile; fileRef = AB96052FF6CD7FFEF1B62878D7866A2F /* EmptyEnumerator.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BC35E114B1BB85AB705DE6D738D6687C /* HCIsDictionaryContainingValue.m in Sources */ = {isa = PBXBuildFile; fileRef = DE5CF1853E1A27596CBA1860C3E2CF23 /* HCIsDictionaryContainingValue.m */; }; + BD54FECF20F0E42850FDA6BC939A6D22 /* HCStringStartsWith.h in Headers */ = {isa = PBXBuildFile; fileRef = BB75EA9F355C48E7D84D2C671B458E95 /* HCStringStartsWith.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BF522830CFA583BF365A2057E14006AE /* HCIsCollectionContaining.h in Headers */ = {isa = PBXBuildFile; fileRef = CC2C81AF298ECF235C34E822062CBAB9 /* HCIsCollectionContaining.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BF802C238ECD14DB714823B4BB11063E /* HCNumberAssert.h in Headers */ = {isa = PBXBuildFile; fileRef = 4CA06137FF6698733502203EC4FED399 /* HCNumberAssert.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C00E797911002F79E9EA05AB5E29366F /* HCUnsignedLongReturnGetter.h in Headers */ = {isa = PBXBuildFile; fileRef = AC988EF457EC1BF7637B8B36E68A2D8C /* HCUnsignedLongReturnGetter.h */; settings = {ATTRIBUTES = (Private, ); }; }; + C05D04DB2093D0859089256C6510081E /* NSEnumerator+OCTotallyLazy.m in Sources */ = {isa = PBXBuildFile; fileRef = 3922575C7FBB92C55FEC8DBABB076EE0 /* NSEnumerator+OCTotallyLazy.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + C0A83FDDBFD30DDAD8D0FF34A543A0A1 /* HCReturnTypeHandlerChain.m in Sources */ = {isa = PBXBuildFile; fileRef = C92E9D5F34E15412AC6245456E98379F /* HCReturnTypeHandlerChain.m */; }; + C0C20A56916E46927E894F42740924DD /* HCIsEqualCompressingWhiteSpace.h in Headers */ = {isa = PBXBuildFile; fileRef = DF3C19004C4EA7E7580CB53A3524D9A8 /* HCIsEqualCompressingWhiteSpace.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C21899B9BC45BCDC22468C626EAA913D /* Pods-Group Works-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 30F1E8A5E023FE2980386CEBDD74123A /* Pods-Group Works-dummy.m */; }; + C2344B694D92938A47D5176E7A2888A1 /* HCHasDescription.m in Sources */ = {isa = PBXBuildFile; fileRef = D6160848AAADBA8F315BC0F8F5699EB9 /* HCHasDescription.m */; }; + C2DB2DD71D5FF65C3C11B177E74FCA99 /* HCClassMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 58939EF3FA72A88176CDBC3E614CF5FB /* HCClassMatcher.m */; }; + C3EB0A8A110A552C99785787A90C6048 /* Function1.h in Headers */ = {isa = PBXBuildFile; fileRef = AC7B0579F77C27DB7DA7122EBFCB6C11 /* Function1.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C482D613FF8EC7E9AB358F63FC4452DE /* HCBoolReturnGetter.m in Sources */ = {isa = PBXBuildFile; fileRef = FC3E5274735976DD3ED3EA574B0E5097 /* HCBoolReturnGetter.m */; }; + C4EFC06E77A30C77E6038303235274FE /* HCSenTestFailureReporter.m in Sources */ = {isa = PBXBuildFile; fileRef = 7FD19ADBA1D29DD656E6DE999924C687 /* HCSenTestFailureReporter.m */; }; + C51F559C29CDAA28882E074DF83621DA /* HCIsTrueFalse.h in Headers */ = {isa = PBXBuildFile; fileRef = F4DCB1FBF8FF715FB702F1157C016D57 /* HCIsTrueFalse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C5AB285569224A4A78CAC2D6DAFF5D17 /* HCLongLongReturnGetter.m in Sources */ = {isa = PBXBuildFile; fileRef = F2FF1E6B7C525AB587D4B13ACE351712 /* HCLongLongReturnGetter.m */; }; + C71D4F3D3C9F68E9E0CB50D4B2D7342D /* HCStringContainsInOrder.h in Headers */ = {isa = PBXBuildFile; fileRef = 64453DE83BEA46C2ECC3D435645E9FDC /* HCStringContainsInOrder.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C7FF47391AC3AC1C7EFB9B65F2BA5573 /* HCOrderingComparison.h in Headers */ = {isa = PBXBuildFile; fileRef = 83A1D0DABE7621650AEBE3533ABAA21C /* HCOrderingComparison.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C8E5699A7E22ADE2A201C80E953455B7 /* HCStringContains.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D8140469132BD54D6D579B29E44BB9F /* HCStringContains.m */; }; + CB926D27F1575F2467664A78F51C5A64 /* HCSubstringMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 24049712267279295F3A06E4A1D53245 /* HCSubstringMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CBB89C2D94195A735C923D4D7E9ABA27 /* MapEnumerator.h in Headers */ = {isa = PBXBuildFile; fileRef = 924C2E0F5B48146BA1DFC776B06FD10A /* MapEnumerator.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CC861938CEC776F19E54CE239ED299B2 /* Option.m in Sources */ = {isa = PBXBuildFile; fileRef = FFE9999BFF5172CFBCADCC708AA10574 /* Option.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + CC98099A62CC1C4CE77EC11EDDEC95D8 /* Range.m in Sources */ = {isa = PBXBuildFile; fileRef = 3025BA1F03CDA5B60D004C8DEC1B1EE6 /* Range.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + CCA7F786752F6AA5589A5EB1708C4715 /* HCIsCollectionOnlyContaining.h in Headers */ = {isa = PBXBuildFile; fileRef = A29B5B5F54060F8A8B0194E7712B1FFE /* HCIsCollectionOnlyContaining.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CD5E247FD8A778FD2F3F95EAF523B7CC /* HCIsEqualToNumber.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F77FA456B771AFBD42EBF17D648BAE2 /* HCIsEqualToNumber.m */; }; + CDC83487E92DDA255E770BC25515C493 /* HCDiagnosingMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FF03DE783B6727DAAD4B3B31909E035 /* HCDiagnosingMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CE2F2B053480BD559603594777AC7E16 /* Queue.m in Sources */ = {isa = PBXBuildFile; fileRef = 233E254A8EAF3D49D1142200AC11FCF4 /* Queue.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + CED459354E0DA3256395E23ACF84CAB2 /* HCIsNot.h in Headers */ = {isa = PBXBuildFile; fileRef = C5BAA91117A42926CFF883498A89396A /* HCIsNot.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CFC983F31FE03792FBB448A3108AD590 /* FlattenEnumerator.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BA44F1D534686E5611DA2F8CF3ABD0E /* FlattenEnumerator.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + D1A4C11B1058A749F8C63EC874DAB39B /* MemoisedEnumerator.h in Headers */ = {isa = PBXBuildFile; fileRef = 5E5B4D77504C490AF10CBB84291FE44B /* MemoisedEnumerator.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D31B816CFD40961DA3F5D991B412D10E /* HCIsTrueFalse.m in Sources */ = {isa = PBXBuildFile; fileRef = AF96D2655A86F29CC4308B7C88C07CB5 /* HCIsTrueFalse.m */; }; + D5B6EBDBDBB35D37A4065BFEF8EF360B /* Group.m in Sources */ = {isa = PBXBuildFile; fileRef = BB053B383FB175F2F1C8F33DEA83836C /* Group.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + D6B7ECDD01D1C3D405BADBFD90DE2263 /* HCIs.m in Sources */ = {isa = PBXBuildFile; fileRef = 6F6B6FAB7C97DDAEB8B349A4418E0BBF /* HCIs.m */; }; + D7BA08E0F03B34471654AF9C80826590 /* HCAnyOf.h in Headers */ = {isa = PBXBuildFile; fileRef = 44500A64D9A6FF5589AD8EBB637A07C1 /* HCAnyOf.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D8E06A3A891F9846C83C71DB834BA778 /* Predicates.h in Headers */ = {isa = PBXBuildFile; fileRef = 1D6E786B57995DD0C572F1D7A1381EE3 /* Predicates.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D918057EDC0F913FB2189882E1C4F416 /* HCStringContainsInOrder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79DCB284BBB8A8433E847D6536BA8DFE /* HCStringContainsInOrder.m */; }; + DCA96AA803955D0D93183A79868CD228 /* HCIsIn.h in Headers */ = {isa = PBXBuildFile; fileRef = 83EB2559EA1BE5DB4B18280EE7D64B6F /* HCIsIn.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DF30039166416C87A644F4C5401E0412 /* HCStringDescription.m in Sources */ = {isa = PBXBuildFile; fileRef = A5BA185B29435458E714D716CEAAABD8 /* HCStringDescription.m */; }; + DFB7F0445FAC83CCD9AD70BAFCBF9F46 /* Types.h in Headers */ = {isa = PBXBuildFile; fileRef = 3C6EBA84F05B51328C1EFB58AB642226 /* Types.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E3D246BB3F487AB28A0DD5771B27B1EC /* Functions.m in Sources */ = {isa = PBXBuildFile; fileRef = 2E8CD4D82434A601052595EB3DBE5F8A /* Functions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + E4291A4EC98C6A47894373C3137BD165 /* HCRunloopRunner.m in Sources */ = {isa = PBXBuildFile; fileRef = B65C1CEF8E3FEB986D90E82039B50608 /* HCRunloopRunner.m */; }; + E4F6AB85AB4D06EF77AEC34AFE18FB71 /* HCSenTestFailureReporter.h in Headers */ = {isa = PBXBuildFile; fileRef = D3C615C626A6F71FC2DADD26F12EAF5A /* HCSenTestFailureReporter.h */; settings = {ATTRIBUTES = (Private, ); }; }; + E6378C37407A605D9B2669ABE4B0C160 /* HCIsEqualToNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = 256D950DA3E61DC8EC814450C8FE29DF /* HCIsEqualToNumber.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E657088EDBD2A22235FE1B92301535A7 /* Queue.h in Headers */ = {isa = PBXBuildFile; fileRef = 720BB86DCA786548867A21DC914D2338 /* Queue.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E6F19CBDCA8AA34E91CB6D2B201FF0A2 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6604A7D69453B4569E4E4827FB9155A9 /* Foundation.framework */; }; + E8E83EFDE67BEA503DA66DB23AC36730 /* HCArgumentCaptor.m in Sources */ = {isa = PBXBuildFile; fileRef = 11F3A392EE19EEF6F855AF4BB9B88396 /* HCArgumentCaptor.m */; }; + E930BD124E225782E79E60E478E07202 /* HCIsCollectionContainingInOrder.m in Sources */ = {isa = PBXBuildFile; fileRef = B2E4FD6D7B8EBEDF6C07F33500227A9E /* HCIsCollectionContainingInOrder.m */; }; + E94C7F819B9722FCE87C421B10A04540 /* HCIsDictionaryContainingKey.m in Sources */ = {isa = PBXBuildFile; fileRef = 36DBC534414B9F75E319768C7EC3087B /* HCIsDictionaryContainingKey.m */; }; + E9D610594E2EAB121A47ECE5531B0888 /* EnumerateEnumerator.m in Sources */ = {isa = PBXBuildFile; fileRef = BF4B05AD051D8322651506AB0EF5198C /* EnumerateEnumerator.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + EA36A6ECF441620A4EE6FA5E5BB01612 /* HCIsCloseTo.m in Sources */ = {isa = PBXBuildFile; fileRef = 6312D756291B9C2D928AB9B849A8E6A8 /* HCIsCloseTo.m */; }; + EAEA9771E179C19B1DEAE160A20888F0 /* HCClassMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = D809566835B0171531673A7023FC0F75 /* HCClassMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + ECEA4A414DC118AAD5919FBEB36CB3A3 /* HCNumberAssert.m in Sources */ = {isa = PBXBuildFile; fileRef = F236590D0461B985B5A07C4E7C43782C /* HCNumberAssert.m */; }; + ED9222885C1FC627C9036CD3E626369E /* FilterEnumerator.m in Sources */ = {isa = PBXBuildFile; fileRef = 2F42716A5892C1646E85767FC31B2659 /* FilterEnumerator.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + EEE0AC9789EA2632A6945903582A6491 /* HCFloatReturnGetter.m in Sources */ = {isa = PBXBuildFile; fileRef = 6F16EA0C2EDAFE16351244FBC81798AA /* HCFloatReturnGetter.m */; }; + F20DD3569825A89C541519E973C191A5 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6604A7D69453B4569E4E4827FB9155A9 /* Foundation.framework */; }; + F217CECE6B6FD4791458C60E46285D28 /* HCShortReturnGetter.h in Headers */ = {isa = PBXBuildFile; fileRef = 75828C0B1DA131EAA4BBC887177F4A34 /* HCShortReturnGetter.h */; settings = {ATTRIBUTES = (Private, ); }; }; + F26C0AD2F6B0AE517FF98FF673409148 /* HCStringStartsWith.m in Sources */ = {isa = PBXBuildFile; fileRef = CE109A40B15F9C18DBF56883942FB3CD /* HCStringStartsWith.m */; }; + F30F241577F02577E1674FE115B787B5 /* MemoisedSequence.h in Headers */ = {isa = PBXBuildFile; fileRef = F50193D277E948EA5EE25CFD51ECA26C /* MemoisedSequence.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F350A95F663806577DABDBC206844D7C /* HCTestFailureReporterChain.h in Headers */ = {isa = PBXBuildFile; fileRef = 253B2BECDE9B954FF61DA9550F239269 /* HCTestFailureReporterChain.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F42DEB9287149FBEC30C96C0344D0B10 /* HCIsCloseTo.h in Headers */ = {isa = PBXBuildFile; fileRef = EA9A60C1D89ED74FB178397D6070477A /* HCIsCloseTo.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F4A43546DD33C4076998738A4BF5D8C4 /* HCIsEmptyCollection.m in Sources */ = {isa = PBXBuildFile; fileRef = F84824C6F6D141F0C4EF5F48E36DE2D0 /* HCIsEmptyCollection.m */; }; + F6C7E7053C3B4229E79E1277C85D56AE /* HCTestFailure.m in Sources */ = {isa = PBXBuildFile; fileRef = 14CF6A1041AD7D3228ABB9EA2EECB901 /* HCTestFailure.m */; }; + F7C1484FD83F6DB82AF3823FD1A89AA2 /* EmptyEnumerator.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D8C9F8018B2ECA81C3B48A85FDC05D4 /* EmptyEnumerator.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + F851556734A1D4B34C85EFD1C404D6EA /* HCIsCollectionContainingInAnyOrder.m in Sources */ = {isa = PBXBuildFile; fileRef = 193DA7A6821E072C96BD0D9B68597E43 /* HCIsCollectionContainingInAnyOrder.m */; }; + F882D84B5E0678B5D90EACCC0F65C30A /* GroupedEnumerator.h in Headers */ = {isa = PBXBuildFile; fileRef = 97D31B363CB5508245B5C0FA56B44C7C /* GroupedEnumerator.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F90ED912F2C4E0A45D59989A96F3D0DF /* HCShortReturnGetter.m in Sources */ = {isa = PBXBuildFile; fileRef = 4367FA4333D7A3FAE063C7CB5B403CC8 /* HCShortReturnGetter.m */; }; + FB8FCA8FE9F99E0A7DC3CECF1EF710C3 /* HCUnsignedIntReturnGetter.h in Headers */ = {isa = PBXBuildFile; fileRef = 7938BF806B824E061206F58E4498D411 /* HCUnsignedIntReturnGetter.h */; settings = {ATTRIBUTES = (Private, ); }; }; + FC6669D4CE3D660048A5AC6F9C293A36 /* HCTestFailureReporter.h in Headers */ = {isa = PBXBuildFile; fileRef = 72421B7DA9BBDB444BB4507C89463E1E /* HCTestFailureReporter.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FE7E68BA5FF8961D7CE0414C9D288ED4 /* MemoisedEnumerator.m in Sources */ = {isa = PBXBuildFile; fileRef = 4771B8ABD610808B0CB6710F1BDDB354 /* MemoisedEnumerator.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + FEF95A7A09440090BC48F8F163A80F62 /* HCAnyOf.m in Sources */ = {isa = PBXBuildFile; fileRef = 30AFD80B76314979C8EBBE53ABF2375A /* HCAnyOf.m */; }; + FF0B2BB7CE4C1BB1B1214FE060306F86 /* HCUnsignedCharReturnGetter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F5D73AF67E846D64C331B3B7A54C661 /* HCUnsignedCharReturnGetter.h */; settings = {ATTRIBUTES = (Private, ); }; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 50C4DB046D53B22852B6D988EE3C6B6B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = 58B3E9A70CFB997362BCF1A913180B62; + remoteInfo = OCTotallyLazy; + }; + A8DC2E90E991F2C21E646E749C744CF1 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = 2A023507EAD85F40065A236BE2F30BD4; + remoteInfo = OCHamcrest; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 027BB3C33346A0D2A062C478C6ACEFCD /* HCIntReturnGetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCIntReturnGetter.h; path = Source/Core/Helpers/ReturnValueGetters/HCIntReturnGetter.h; sourceTree = ""; }; + 034503ACD5CC192B54D8A636D4BF8633 /* HCTestFailure.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCTestFailure.h; path = Source/Core/Helpers/TestFailureReporters/HCTestFailure.h; sourceTree = ""; }; + 03C63E17F363B5D07096ABD6751C2F30 /* HCAssertThat.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCAssertThat.m; path = Source/Core/HCAssertThat.m; sourceTree = ""; }; + 04783C998707749B0263C886C07C4915 /* HCConformsToProtocol.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCConformsToProtocol.m; path = Source/Library/Object/HCConformsToProtocol.m; sourceTree = ""; }; + 05928E486229DD68D8FED173D3FF7BE9 /* HCAllOf.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCAllOf.h; path = Source/Library/Logical/HCAllOf.h; sourceTree = ""; }; + 05E3D5504379F79E661E8946BB5B9646 /* NSSet+OCTotallyLazy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSSet+OCTotallyLazy.m"; path = "src/main/NSSet+OCTotallyLazy.m"; sourceTree = ""; }; + 07D9656D9F587ED414B1EACADB33DB17 /* HCFloatReturnGetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCFloatReturnGetter.h; path = Source/Core/Helpers/ReturnValueGetters/HCFloatReturnGetter.h; sourceTree = ""; }; + 08D0616A1B7BAF2AC96B386C14109700 /* MemoisedSequence.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MemoisedSequence.m; path = src/main/MemoisedSequence.m; sourceTree = ""; }; + 0B811ED77F1F07BEA8AEC81820774004 /* HCSelfDescribing.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCSelfDescribing.h; path = Source/Core/HCSelfDescribing.h; sourceTree = ""; }; + 0E4D2E84890776DD51B228F420E679C2 /* NSDictionary+OCTotallyLazy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSDictionary+OCTotallyLazy.h"; path = "src/main/NSDictionary+OCTotallyLazy.h"; sourceTree = ""; }; + 0F1D7503A9392C237001016B3F4BA60B /* Pods-Group Works-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-Group Works-acknowledgements.markdown"; sourceTree = ""; }; + 0F2463F248C8A9E3A8FCF9747C2C2F1D /* libPods-Group Works.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libPods-Group Works.a"; path = "libPods-Group Works.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 109C8C5E0171B9F0F5CCC0C9DEBA8948 /* Predicates.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = Predicates.m; path = src/main/predicates/Predicates.m; sourceTree = ""; }; + 1177F7055C546126909863A1ACDF30CA /* Sequence.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = Sequence.m; path = src/main/Sequence.m; sourceTree = ""; }; + 11F3A392EE19EEF6F855AF4BB9B88396 /* HCArgumentCaptor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCArgumentCaptor.m; path = Source/Library/Object/HCArgumentCaptor.m; sourceTree = ""; }; + 14CE8850039E3B874D2E5E5149EE6F87 /* HCDescription.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCDescription.h; path = Source/Core/HCDescription.h; sourceTree = ""; }; + 14CF6A1041AD7D3228ABB9EA2EECB901 /* HCTestFailure.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCTestFailure.m; path = Source/Core/Helpers/TestFailureReporters/HCTestFailure.m; sourceTree = ""; }; + 1503994294ADFEA75EF253B710B9FE7E /* Pods-UnitTests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-UnitTests-dummy.m"; sourceTree = ""; }; + 168479F8ADECF7BF1D324CBCE72E712E /* HCIsTypeOf.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCIsTypeOf.m; path = Source/Library/Object/HCIsTypeOf.m; sourceTree = ""; }; + 1711B620DAB55BFCCDF55A29916D1F8B /* PairEnumerator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PairEnumerator.h; path = src/main/enumerators/PairEnumerator.h; sourceTree = ""; }; + 17AD614A05C6892DCF4E608F27222655 /* SingleValueEnumerator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SingleValueEnumerator.m; path = src/main/enumerators/SingleValueEnumerator.m; sourceTree = ""; }; + 193DA7A6821E072C96BD0D9B68597E43 /* HCIsCollectionContainingInAnyOrder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCIsCollectionContainingInAnyOrder.m; path = Source/Library/Collection/HCIsCollectionContainingInAnyOrder.m; sourceTree = ""; }; + 1B9FEABA55DB5E9771EFC1B545F524F6 /* HCIsCollectionOnlyContaining.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCIsCollectionOnlyContaining.m; path = Source/Library/Collection/HCIsCollectionOnlyContaining.m; sourceTree = ""; }; + 1D46C50D5E5EE03F2C0E620BAB71FF4D /* MergeEnumerator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MergeEnumerator.m; path = src/main/enumerators/MergeEnumerator.m; sourceTree = ""; }; + 1D6E786B57995DD0C572F1D7A1381EE3 /* Predicates.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Predicates.h; path = src/main/predicates/Predicates.h; sourceTree = ""; }; + 1E286FEDFC94EEE40B08DE264328CE06 /* Pods-UnitTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-UnitTests.release.xcconfig"; sourceTree = ""; }; + 1E7D1704D93FAA761D593E3684C9CAA5 /* Functions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Functions.h; path = src/main/functions/Functions.h; sourceTree = ""; }; + 1EF13B2E0F7192C22FA85C3BD2404A3B /* HCGenericTestFailureReporter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCGenericTestFailureReporter.m; path = Source/Core/Helpers/TestFailureReporters/HCGenericTestFailureReporter.m; sourceTree = ""; }; + 1F77FA456B771AFBD42EBF17D648BAE2 /* HCIsEqualToNumber.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCIsEqualToNumber.m; path = Source/Library/Number/HCIsEqualToNumber.m; sourceTree = ""; }; + 216359FDEBFC5D207BECFC8F16C0A7E3 /* HCIsCollectionContainingInAnyOrder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCIsCollectionContainingInAnyOrder.h; path = Source/Library/Collection/HCIsCollectionContainingInAnyOrder.h; sourceTree = ""; }; + 233E254A8EAF3D49D1142200AC11FCF4 /* Queue.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = Queue.m; path = src/main/Queue.m; sourceTree = ""; }; + 2376BEAC912FEBF295CFF9DEFB54E8BB /* PartitionEnumerator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PartitionEnumerator.m; path = src/main/enumerators/PartitionEnumerator.m; sourceTree = ""; }; + 23F69EBA4053C7DD2FDC0D6E22BD25DA /* Range.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Range.h; path = src/main/Range.h; sourceTree = ""; }; + 24049712267279295F3A06E4A1D53245 /* HCSubstringMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCSubstringMatcher.h; path = Source/Library/Text/HCSubstringMatcher.h; sourceTree = ""; }; + 253B2BECDE9B954FF61DA9550F239269 /* HCTestFailureReporterChain.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCTestFailureReporterChain.h; path = Source/Core/Helpers/TestFailureReporters/HCTestFailureReporterChain.h; sourceTree = ""; }; + 256D950DA3E61DC8EC814450C8FE29DF /* HCIsEqualToNumber.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCIsEqualToNumber.h; path = Source/Library/Number/HCIsEqualToNumber.h; sourceTree = ""; }; + 2AC9F2FCE821669ACB82C6FC3FE142D8 /* OCTotallyLazy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OCTotallyLazy.h; path = src/main/OCTotallyLazy.h; sourceTree = ""; }; + 2B89694451C00B133BFA8F4E5EA3DDC5 /* Pods-Group Works.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Group Works.release.xcconfig"; sourceTree = ""; }; + 2BA5026D8DE2724CB42D43C3742F3437 /* HCIsCollectionContainingInRelativeOrder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCIsCollectionContainingInRelativeOrder.m; path = Source/Library/Collection/HCIsCollectionContainingInRelativeOrder.m; sourceTree = ""; }; + 2C8AE9E474BE00173A56C141858F6D37 /* HCXCTestFailureReporter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCXCTestFailureReporter.m; path = Source/Core/Helpers/TestFailureReporters/HCXCTestFailureReporter.m; sourceTree = ""; }; + 2D4F181EAA6171EF7A2568144204856F /* HCIsCollectionContaining.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCIsCollectionContaining.m; path = Source/Library/Collection/HCIsCollectionContaining.m; sourceTree = ""; }; + 2DEF96F4C6B7D808B5B8DCD10537548A /* SingleValueEnumerator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SingleValueEnumerator.h; path = src/main/enumerators/SingleValueEnumerator.h; sourceTree = ""; }; + 2E8CD4D82434A601052595EB3DBE5F8A /* Functions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = Functions.m; path = src/main/functions/Functions.m; sourceTree = ""; }; + 2F42716A5892C1646E85767FC31B2659 /* FilterEnumerator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FilterEnumerator.m; path = src/main/enumerators/FilterEnumerator.m; sourceTree = ""; }; + 3025BA1F03CDA5B60D004C8DEC1B1EE6 /* Range.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = Range.m; path = src/main/Range.m; sourceTree = ""; }; + 307F92AB94D808DA71722996A104B487 /* HCIsEqual.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCIsEqual.h; path = Source/Library/Object/HCIsEqual.h; sourceTree = ""; }; + 30AFD80B76314979C8EBBE53ABF2375A /* HCAnyOf.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCAnyOf.m; path = Source/Library/Logical/HCAnyOf.m; sourceTree = ""; }; + 30F1E8A5E023FE2980386CEBDD74123A /* Pods-Group Works-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Group Works-dummy.m"; sourceTree = ""; }; + 323B1A5DD39C883E208049025679FACC /* RepeatEnumerator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RepeatEnumerator.m; path = src/main/enumerators/RepeatEnumerator.m; sourceTree = ""; }; + 36712F86F405AC48D385640417132A9F /* TakeWhileEnumerator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = TakeWhileEnumerator.m; path = src/main/enumerators/TakeWhileEnumerator.m; sourceTree = ""; }; + 36DBC534414B9F75E319768C7EC3087B /* HCIsDictionaryContainingKey.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCIsDictionaryContainingKey.m; path = Source/Library/Collection/HCIsDictionaryContainingKey.m; sourceTree = ""; }; + 36F3960669085F68F58076E7CD9C493A /* HCBaseDescription.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCBaseDescription.m; path = Source/Core/HCBaseDescription.m; sourceTree = ""; }; + 3739F19562912171756917999493682E /* HCIsDictionaryContainingKey.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCIsDictionaryContainingKey.h; path = Source/Library/Collection/HCIsDictionaryContainingKey.h; sourceTree = ""; }; + 37E62CA92531E3318194FFC025572BAE /* Pair.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Pair.h; path = src/main/Pair.h; sourceTree = ""; }; + 3922575C7FBB92C55FEC8DBABB076EE0 /* NSEnumerator+OCTotallyLazy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSEnumerator+OCTotallyLazy.m"; path = "src/main/enumerators/NSEnumerator+OCTotallyLazy.m"; sourceTree = ""; }; + 3A7E5C2A5F9B4079FE328FFF2361BEAA /* HCIsSame.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCIsSame.h; path = Source/Library/Object/HCIsSame.h; sourceTree = ""; }; + 3AE3139A7A47F27366779CF9037F966F /* Flattenable.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Flattenable.h; path = src/main/Flattenable.h; sourceTree = ""; }; + 3B48F27951291ACFC9890B40FC613CC2 /* HCThrowsException.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCThrowsException.h; path = Source/Library/Object/HCThrowsException.h; sourceTree = ""; }; + 3C6EBA84F05B51328C1EFB58AB642226 /* Types.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Types.h; path = src/main/Types.h; sourceTree = ""; }; + 3DFA24F63239F921ECF3A08E842AEFAC /* Pods-UnitTests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-UnitTests-frameworks.sh"; sourceTree = ""; }; + 4072A6D2E8EADB404F7E6CD0195DFB33 /* HCReturnValueGetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCReturnValueGetter.h; path = Source/Core/Helpers/ReturnValueGetters/HCReturnValueGetter.h; sourceTree = ""; }; + 4191C7E4E9A69A2DEA9E7BE4F3D45FC0 /* Coercions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Coercions.h; path = src/main/Coercions.h; sourceTree = ""; }; + 4276D63C7F4044A9E73D735DB1DA2C7C /* HCSubstringMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCSubstringMatcher.m; path = Source/Library/Text/HCSubstringMatcher.m; sourceTree = ""; }; + 436548257D23D068A36CF39D8AD6DE40 /* Group.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Group.h; path = src/main/Group.h; sourceTree = ""; }; + 4367FA4333D7A3FAE063C7CB5B403CC8 /* HCShortReturnGetter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCShortReturnGetter.m; path = Source/Core/Helpers/ReturnValueGetters/HCShortReturnGetter.m; sourceTree = ""; }; + 44196081E451304FBF0479B04F6DBAAB /* Pods-Group Works-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-Group Works-resources.sh"; sourceTree = ""; }; + 44500A64D9A6FF5589AD8EBB637A07C1 /* HCAnyOf.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCAnyOf.h; path = Source/Library/Logical/HCAnyOf.h; sourceTree = ""; }; + 450CB7EB81CBA429C1D6F7344198CA3C /* HCIsAnything.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCIsAnything.m; path = Source/Library/Logical/HCIsAnything.m; sourceTree = ""; }; + 4771B8ABD610808B0CB6710F1BDDB354 /* MemoisedEnumerator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MemoisedEnumerator.m; path = src/main/enumerators/MemoisedEnumerator.m; sourceTree = ""; }; + 47EACC88A023A8B0B27F26ECCE3C2140 /* HCIsEqualIgnoringCase.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCIsEqualIgnoringCase.m; path = Source/Library/Text/HCIsEqualIgnoringCase.m; sourceTree = ""; }; + 493248C332DD1E04E8259FF5B4A32ECC /* HCDoubleReturnGetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCDoubleReturnGetter.h; path = Source/Core/Helpers/ReturnValueGetters/HCDoubleReturnGetter.h; sourceTree = ""; }; + 4BF120364822BB26830ED94477F25965 /* HCXCTestFailureReporter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCXCTestFailureReporter.h; path = Source/Core/Helpers/TestFailureReporters/HCXCTestFailureReporter.h; sourceTree = ""; }; + 4C441764D002739F579FBA820A8959A5 /* PartitionEnumerator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PartitionEnumerator.h; path = src/main/enumerators/PartitionEnumerator.h; sourceTree = ""; }; + 4CA06137FF6698733502203EC4FED399 /* HCNumberAssert.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCNumberAssert.h; path = Source/Library/Number/HCNumberAssert.h; sourceTree = ""; }; + 4CD1614438E270EC5897EDEA6C6E56EA /* HCAssertThat.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCAssertThat.h; path = Source/Core/HCAssertThat.h; sourceTree = ""; }; + 50ED338216DA76141CA829E05DB91901 /* HCIsEqual.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCIsEqual.m; path = Source/Library/Object/HCIsEqual.m; sourceTree = ""; }; + 51994E2F573E22443C00FA2DDD2C2129 /* Option.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Option.h; path = src/main/Option.h; sourceTree = ""; }; + 530B068042E3FDB24FE783BBC28CEF5A /* None.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = None.h; path = src/main/None.h; sourceTree = ""; }; + 53A7200D6B401E64A53532621D6953C0 /* HCUnsignedShortReturnGetter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCUnsignedShortReturnGetter.m; path = Source/Core/Helpers/ReturnValueGetters/HCUnsignedShortReturnGetter.m; sourceTree = ""; }; + 55BFF8917514566108F990D684D0D2C8 /* HCBaseMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCBaseMatcher.h; path = Source/Core/HCBaseMatcher.h; sourceTree = ""; }; + 55FE956639ED2430126C866B0973007E /* Numbers.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Numbers.h; path = src/main/numbers/Numbers.h; sourceTree = ""; }; + 5603404F8A83C6F48E56547DFFF3B6E1 /* HCDescribedAs.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCDescribedAs.h; path = Source/Library/Decorator/HCDescribedAs.h; sourceTree = ""; }; + 573ECB96B91ED23311A8C7C1F3E42355 /* HCLongReturnGetter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCLongReturnGetter.m; path = Source/Core/Helpers/ReturnValueGetters/HCLongReturnGetter.m; sourceTree = ""; }; + 57CBEC4EAE06C37A85647E4517066485 /* HCIsDictionaryContainingEntries.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCIsDictionaryContainingEntries.h; path = Source/Library/Collection/HCIsDictionaryContainingEntries.h; sourceTree = ""; }; + 57CF706D01CD48AD27A7D1003EDCA5E9 /* HCIsDictionaryContainingValue.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCIsDictionaryContainingValue.h; path = Source/Library/Collection/HCIsDictionaryContainingValue.h; sourceTree = ""; }; + 58939EF3FA72A88176CDBC3E614CF5FB /* HCClassMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCClassMatcher.m; path = Source/Library/Object/HCClassMatcher.m; sourceTree = ""; }; + 591FCE02DABBAD04D1ACE3D88ADA8E00 /* OCHamcrest-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "OCHamcrest-dummy.m"; sourceTree = ""; }; + 5A1D9AD37994F0EAA4C0C5335F01B837 /* HCInvocationMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCInvocationMatcher.m; path = Source/Core/Helpers/HCInvocationMatcher.m; sourceTree = ""; }; + 5B5EA20E022D929DEBFE033F15EECD08 /* HCIs.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCIs.h; path = Source/Library/Decorator/HCIs.h; sourceTree = ""; }; + 5BA41699DC57D9AD9C473772121F469B /* HCReturnValueGetter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCReturnValueGetter.m; path = Source/Core/Helpers/ReturnValueGetters/HCReturnValueGetter.m; sourceTree = ""; }; + 5C898CEED4EA3507C36D381D1D5D7668 /* HCIsCollectionContainingInRelativeOrder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCIsCollectionContainingInRelativeOrder.h; path = Source/Library/Collection/HCIsCollectionContainingInRelativeOrder.h; sourceTree = ""; }; + 5D6754C38A6D64F62E23BED8109F4E91 /* HCLongReturnGetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCLongReturnGetter.h; path = Source/Core/Helpers/ReturnValueGetters/HCLongReturnGetter.h; sourceTree = ""; }; + 5D8C9F8018B2ECA81C3B48A85FDC05D4 /* EmptyEnumerator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EmptyEnumerator.m; path = src/main/enumerators/EmptyEnumerator.m; sourceTree = ""; }; + 5DF8E2A66D3D84CF9610D3B10CEB0C24 /* HCWrapInMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCWrapInMatcher.h; path = Source/Core/Helpers/HCWrapInMatcher.h; sourceTree = ""; }; + 5E5B4D77504C490AF10CBB84291FE44B /* MemoisedEnumerator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MemoisedEnumerator.h; path = src/main/enumerators/MemoisedEnumerator.h; sourceTree = ""; }; + 6009A42FE0AAE6367E98BE81C9F47F8D /* HCConformsToProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCConformsToProtocol.h; path = Source/Library/Object/HCConformsToProtocol.h; sourceTree = ""; }; + 6077AA0342F26BF5CF5369FE2CC09DA6 /* HCStringEndsWith.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCStringEndsWith.h; path = Source/Library/Text/HCStringEndsWith.h; sourceTree = ""; }; + 6095EFA411B436890C86CA0201C0C6A0 /* libOCTotallyLazy.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = libOCTotallyLazy.a; path = libOCTotallyLazy.a; sourceTree = BUILT_PRODUCTS_DIR; }; + 61143870BB032C7426E8DFE957636CF8 /* HCCharReturnGetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCCharReturnGetter.h; path = Source/Core/Helpers/ReturnValueGetters/HCCharReturnGetter.h; sourceTree = ""; }; + 61345F372863558DCB1EC70A2C2E5793 /* HCIsAnything.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCIsAnything.h; path = Source/Library/Logical/HCIsAnything.h; sourceTree = ""; }; + 61A2A49871CC77E3F508472C440B2E40 /* Pods-UnitTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-UnitTests.debug.xcconfig"; sourceTree = ""; }; + 62DE20E0F024BC864799A0D3B91C7CAE /* HCStringDescription.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCStringDescription.h; path = Source/Core/HCStringDescription.h; sourceTree = ""; }; + 6312D756291B9C2D928AB9B849A8E6A8 /* HCIsCloseTo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCIsCloseTo.m; path = Source/Library/Number/HCIsCloseTo.m; sourceTree = ""; }; + 641667C2A7E03DAB327D9C9BBF89CF67 /* Pods-UnitTests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-UnitTests-acknowledgements.plist"; sourceTree = ""; }; + 64453DE83BEA46C2ECC3D435645E9FDC /* HCStringContainsInOrder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCStringContainsInOrder.h; path = Source/Library/Text/HCStringContainsInOrder.h; sourceTree = ""; }; + 64536B0FC71EFC0F70FF9FDE295C406E /* HCUnsignedLongLongReturnGetter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCUnsignedLongLongReturnGetter.m; path = Source/Core/Helpers/ReturnValueGetters/HCUnsignedLongLongReturnGetter.m; sourceTree = ""; }; + 6604A7D69453B4569E4E4827FB9155A9 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; + 681F403B3FDBB63B0178160405AC69DA /* HCIsTypeOf.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCIsTypeOf.h; path = Source/Library/Object/HCIsTypeOf.h; sourceTree = ""; }; + 6B87A871F955E955BC3124AB6A587DC9 /* HCIsIn.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCIsIn.m; path = Source/Library/Collection/HCIsIn.m; sourceTree = ""; }; + 6CBA94790A7A14D38E11062B9EECF2E1 /* libOCHamcrest.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = libOCHamcrest.a; path = libOCHamcrest.a; sourceTree = BUILT_PRODUCTS_DIR; }; + 6D248372F00B176BAB1D4BE7A13CBAB9 /* HCIsNil.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCIsNil.m; path = Source/Library/Object/HCIsNil.m; sourceTree = ""; }; + 6DA0C458EA2C820DCF5EF06390B46830 /* OCHamcrest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OCHamcrest.h; path = Source/OCHamcrest.h; sourceTree = ""; }; + 6F16EA0C2EDAFE16351244FBC81798AA /* HCFloatReturnGetter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCFloatReturnGetter.m; path = Source/Core/Helpers/ReturnValueGetters/HCFloatReturnGetter.m; sourceTree = ""; }; + 6F6B6FAB7C97DDAEB8B349A4418E0BBF /* HCIs.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCIs.m; path = Source/Library/Decorator/HCIs.m; sourceTree = ""; }; + 71F8B924DC95FACDB45666328A6D0C0F /* Pods-UnitTests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-UnitTests-acknowledgements.markdown"; sourceTree = ""; }; + 720BB86DCA786548867A21DC914D2338 /* Queue.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Queue.h; path = src/main/Queue.h; sourceTree = ""; }; + 72421B7DA9BBDB444BB4507C89463E1E /* HCTestFailureReporter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCTestFailureReporter.h; path = Source/Core/Helpers/TestFailureReporters/HCTestFailureReporter.h; sourceTree = ""; }; + 73D6C5AC2879BBAD0DC015F9ECBB9B27 /* HCDescribedAs.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCDescribedAs.m; path = Source/Library/Decorator/HCDescribedAs.m; sourceTree = ""; }; + 75828C0B1DA131EAA4BBC887177F4A34 /* HCShortReturnGetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCShortReturnGetter.h; path = Source/Core/Helpers/ReturnValueGetters/HCShortReturnGetter.h; sourceTree = ""; }; + 76AD24D910AC35CA788261A38FC314AD /* HCEvery.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCEvery.m; path = Source/Library/Collection/HCEvery.m; sourceTree = ""; }; + 7938BF806B824E061206F58E4498D411 /* HCUnsignedIntReturnGetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCUnsignedIntReturnGetter.h; path = Source/Core/Helpers/ReturnValueGetters/HCUnsignedIntReturnGetter.h; sourceTree = ""; }; + 793E13D04C57364B40CBE7148EB5F444 /* NSInvocation+OCHamcrest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSInvocation+OCHamcrest.m"; path = "Source/Core/Helpers/NSInvocation+OCHamcrest.m"; sourceTree = ""; }; + 79454564A5EEE6342033D98AF444C3EB /* EasyEnumerable.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EasyEnumerable.h; path = src/main/EasyEnumerable.h; sourceTree = ""; }; + 794B0C5249F7694479D6ED6FD57A50C9 /* Numbers.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = Numbers.m; path = src/main/numbers/Numbers.m; sourceTree = ""; }; + 79DCB284BBB8A8433E847D6536BA8DFE /* HCStringContainsInOrder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCStringContainsInOrder.m; path = Source/Library/Text/HCStringContainsInOrder.m; sourceTree = ""; }; + 7D8140469132BD54D6D579B29E44BB9F /* HCStringContains.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCStringContains.m; path = Source/Library/Text/HCStringContains.m; sourceTree = ""; }; + 7D8ED8E61F12BD95F11D996743DA5893 /* HCObjectReturnGetter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCObjectReturnGetter.m; path = Source/Core/Helpers/ReturnValueGetters/HCObjectReturnGetter.m; sourceTree = ""; }; + 7E613009509F8D03C482CCBAC2274C3E /* NSDictionary+OCTotallyLazy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSDictionary+OCTotallyLazy.m"; path = "src/main/NSDictionary+OCTotallyLazy.m"; sourceTree = ""; }; + 7F9CEE33E072E2070189C7FDF5E4626A /* OCTotallyLazy.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = OCTotallyLazy.xcconfig; sourceTree = ""; }; + 7FD19ADBA1D29DD656E6DE999924C687 /* HCSenTestFailureReporter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCSenTestFailureReporter.m; path = Source/Core/Helpers/TestFailureReporters/HCSenTestFailureReporter.m; sourceTree = ""; }; + 802A03E0B4D63CA8ECCFB27CD158F027 /* PairEnumerator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PairEnumerator.m; path = src/main/enumerators/PairEnumerator.m; sourceTree = ""; }; + 804CAFB3EF9F722C30FC5771E4248BF0 /* HCEvery.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCEvery.h; path = Source/Library/Collection/HCEvery.h; sourceTree = ""; }; + 82A4FEB3EB6D20B5966E8D408A77D6F9 /* NoSuchElementException.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = NoSuchElementException.m; path = src/main/NoSuchElementException.m; sourceTree = ""; }; + 83A1D0DABE7621650AEBE3533ABAA21C /* HCOrderingComparison.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCOrderingComparison.h; path = Source/Library/Number/HCOrderingComparison.h; sourceTree = ""; }; + 83EB2559EA1BE5DB4B18280EE7D64B6F /* HCIsIn.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCIsIn.h; path = Source/Library/Collection/HCIsIn.h; sourceTree = ""; }; + 84C54BD4D9DAD6F6CFC7721CA0C65DBC /* HCCharReturnGetter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCCharReturnGetter.m; path = Source/Core/Helpers/ReturnValueGetters/HCCharReturnGetter.m; sourceTree = ""; }; + 85945C5A6A65C27B377EF40CFA35571B /* NSArray+OCTotallyLazy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSArray+OCTotallyLazy.h"; path = "src/main/NSArray+OCTotallyLazy.h"; sourceTree = ""; }; + 875211007DE1B98D14E5281279A9586F /* Some.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Some.h; path = src/main/Some.h; sourceTree = ""; }; + 87B85CFBC8BDDCFEA7F192DF0ABC25EB /* OCHamcrest.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = OCHamcrest.xcconfig; sourceTree = ""; }; + 8ABB54DF51371944A4529ABBE1EAC4B3 /* Foldable.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Foldable.h; path = src/main/Foldable.h; sourceTree = ""; }; + 8BE3F07782289BD1776D29E49A263A69 /* HCRequireNonNilObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCRequireNonNilObject.h; path = Source/Core/Helpers/HCRequireNonNilObject.h; sourceTree = ""; }; + 8EC8C37B8811BB19F63FDD2F2C765130 /* HCIsEqualIgnoringCase.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCIsEqualIgnoringCase.h; path = Source/Library/Text/HCIsEqualIgnoringCase.h; sourceTree = ""; }; + 8F5D73AF67E846D64C331B3B7A54C661 /* HCUnsignedCharReturnGetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCUnsignedCharReturnGetter.h; path = Source/Core/Helpers/ReturnValueGetters/HCUnsignedCharReturnGetter.h; sourceTree = ""; }; + 8FF03DE783B6727DAAD4B3B31909E035 /* HCDiagnosingMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCDiagnosingMatcher.h; path = Source/Core/HCDiagnosingMatcher.h; sourceTree = ""; }; + 924C09FB057C4A4039BD89F2D41EB919 /* HCHasProperty.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCHasProperty.m; path = Source/Library/Object/HCHasProperty.m; sourceTree = ""; }; + 924C2E0F5B48146BA1DFC776B06FD10A /* MapEnumerator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MapEnumerator.h; path = src/main/enumerators/MapEnumerator.h; sourceTree = ""; }; + 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 97D31B363CB5508245B5C0FA56B44C7C /* GroupedEnumerator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GroupedEnumerator.h; path = src/main/enumerators/GroupedEnumerator.h; sourceTree = ""; }; + 97FA8623D909A1559098614FD8DE6F9C /* Function2.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = Function2.m; path = src/main/functions/Function2.m; sourceTree = ""; }; + 98439BB1DCA5AA61542F28CF6CA5EF2C /* None.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = None.m; path = src/main/None.m; sourceTree = ""; }; + 984B01728C20987C0955B4AF6C56F1A6 /* HCIsNil.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCIsNil.h; path = Source/Library/Object/HCIsNil.h; sourceTree = ""; }; + 9ADA65EA1EFA88C3EF148E2D833CBCD9 /* HCHasDescription.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCHasDescription.h; path = Source/Library/Object/HCHasDescription.h; sourceTree = ""; }; + 9BA44F1D534686E5611DA2F8CF3ABD0E /* FlattenEnumerator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FlattenEnumerator.m; path = src/main/enumerators/FlattenEnumerator.m; sourceTree = ""; }; + 9DE94E620D02D007857E6FECF686D142 /* Callables.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = Callables.m; path = src/main/Callables.m; sourceTree = ""; }; + 9F5F9C5C4BB17494C0DAC81C23DEBE46 /* FlattenEnumerator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FlattenEnumerator.h; path = src/main/enumerators/FlattenEnumerator.h; sourceTree = ""; }; + 9FCD205B19F60D1AB4BC485070B760B1 /* Enumerable.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Enumerable.h; path = src/main/Enumerable.h; sourceTree = ""; }; + A0EB0E6E77257F23785882761E0482F7 /* TakeWhileEnumerator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TakeWhileEnumerator.h; path = src/main/enumerators/TakeWhileEnumerator.h; sourceTree = ""; }; + A206DBB84DE53AEA6F2F9FB32E19BBD2 /* MapEnumerator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MapEnumerator.m; path = src/main/enumerators/MapEnumerator.m; sourceTree = ""; }; + A21EA0EBDEE878A34C8AD0FD487464A5 /* GroupedEnumerator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GroupedEnumerator.m; path = src/main/enumerators/GroupedEnumerator.m; sourceTree = ""; }; + A22D70A105262DA161BD584EC8766BBF /* HCIsSame.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCIsSame.m; path = Source/Library/Object/HCIsSame.m; sourceTree = ""; }; + A29B5B5F54060F8A8B0194E7712B1FFE /* HCIsCollectionOnlyContaining.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCIsCollectionOnlyContaining.h; path = Source/Library/Collection/HCIsCollectionOnlyContaining.h; sourceTree = ""; }; + A388D0EDA003F7C0C4D590968DC67EBA /* HCUnsignedCharReturnGetter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCUnsignedCharReturnGetter.m; path = Source/Core/Helpers/ReturnValueGetters/HCUnsignedCharReturnGetter.m; sourceTree = ""; }; + A5BA185B29435458E714D716CEAAABD8 /* HCStringDescription.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCStringDescription.m; path = Source/Core/HCStringDescription.m; sourceTree = ""; }; + A8D87EDBB6E93F7777A16A589278CA7B /* EnumerateEnumerator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EnumerateEnumerator.h; path = src/main/enumerators/EnumerateEnumerator.h; sourceTree = ""; }; + A9F3402290A28AEC68D5A96AEB2671C1 /* HCBaseMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCBaseMatcher.m; path = Source/Core/HCBaseMatcher.m; sourceTree = ""; }; + AA5F7F7A5025E95160271EB28678A526 /* HCDoubleReturnGetter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCDoubleReturnGetter.m; path = Source/Core/Helpers/ReturnValueGetters/HCDoubleReturnGetter.m; sourceTree = ""; }; + AA8BAABB0EA078E84287A08C39FA1322 /* HCAllOf.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCAllOf.m; path = Source/Library/Logical/HCAllOf.m; sourceTree = ""; }; + AA9CB89F28A81F1250F2A5E44CEE0FB9 /* HCTestFailureReporter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCTestFailureReporter.m; path = Source/Core/Helpers/TestFailureReporters/HCTestFailureReporter.m; sourceTree = ""; }; + AAED264844E414AB9B6D25EB6D60E362 /* NSInvocation+OCHamcrest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSInvocation+OCHamcrest.h"; path = "Source/Core/Helpers/NSInvocation+OCHamcrest.h"; sourceTree = ""; }; + AB96052FF6CD7FFEF1B62878D7866A2F /* EmptyEnumerator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EmptyEnumerator.h; path = src/main/enumerators/EmptyEnumerator.h; sourceTree = ""; }; + AC7B0579F77C27DB7DA7122EBFCB6C11 /* Function1.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Function1.h; path = src/main/functions/Function1.h; sourceTree = ""; }; + AC988EF457EC1BF7637B8B36E68A2D8C /* HCUnsignedLongReturnGetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCUnsignedLongReturnGetter.h; path = Source/Core/Helpers/ReturnValueGetters/HCUnsignedLongReturnGetter.h; sourceTree = ""; }; + AD8022F414033100F15F21F50DAA891C /* HCLongLongReturnGetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCLongLongReturnGetter.h; path = Source/Core/Helpers/ReturnValueGetters/HCLongLongReturnGetter.h; sourceTree = ""; }; + ADBA8F9109207B685CDE908C5007812D /* HCIsInstanceOf.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCIsInstanceOf.h; path = Source/Library/Object/HCIsInstanceOf.h; sourceTree = ""; }; + AE910F993FB13C416945914A460F4B5A /* HCHasProperty.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCHasProperty.h; path = Source/Library/Object/HCHasProperty.h; sourceTree = ""; }; + AE9A02D5D09962E9FAA861A4A73D3337 /* Function2.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Function2.h; path = src/main/functions/Function2.h; sourceTree = ""; }; + AF2CE21D9E9BDAB69725544752705725 /* HCIsDictionaryContaining.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCIsDictionaryContaining.h; path = Source/Library/Collection/HCIsDictionaryContaining.h; sourceTree = ""; }; + AF96D2655A86F29CC4308B7C88C07CB5 /* HCIsTrueFalse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCIsTrueFalse.m; path = Source/Library/Number/HCIsTrueFalse.m; sourceTree = ""; }; + B01F339EB2C1C21781E382FE95A2FD96 /* OCTotallyLazy-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "OCTotallyLazy-dummy.m"; sourceTree = ""; }; + B2E4FD6D7B8EBEDF6C07F33500227A9E /* HCIsCollectionContainingInOrder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCIsCollectionContainingInOrder.m; path = Source/Library/Collection/HCIsCollectionContainingInOrder.m; sourceTree = ""; }; + B65C1CEF8E3FEB986D90E82039B50608 /* HCRunloopRunner.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCRunloopRunner.m; path = Source/Core/Helpers/HCRunloopRunner.m; sourceTree = ""; }; + B792B5D782A9CA653BC2022206CA2FCB /* HCIsInstanceOf.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCIsInstanceOf.m; path = Source/Library/Object/HCIsInstanceOf.m; sourceTree = ""; }; + B79E0AC9FA0840FCDA990FA644898D56 /* HCUnsignedIntReturnGetter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCUnsignedIntReturnGetter.m; path = Source/Core/Helpers/ReturnValueGetters/HCUnsignedIntReturnGetter.m; sourceTree = ""; }; + B7C061EB9D675638C5D3D3030D5DD4DE /* RepeatEnumerator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RepeatEnumerator.h; path = src/main/enumerators/RepeatEnumerator.h; sourceTree = ""; }; + B803AF1ACAA2399997FFB7EB96404FEB /* Sequence.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Sequence.h; path = src/main/Sequence.h; sourceTree = ""; }; + B857525B7863C387CCB7AA509E0EE3D9 /* HCOrderingComparison.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCOrderingComparison.m; path = Source/Library/Number/HCOrderingComparison.m; sourceTree = ""; }; + B8D6E1DB356CED8461518ACD5E88D47C /* HCArgumentCaptor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCArgumentCaptor.h; path = Source/Library/Object/HCArgumentCaptor.h; sourceTree = ""; }; + BAF037784B3EAE28113EFBC4E7BDA741 /* OCHamcrest-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "OCHamcrest-prefix.pch"; sourceTree = ""; }; + BB053B383FB175F2F1C8F33DEA83836C /* Group.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = Group.m; path = src/main/Group.m; sourceTree = ""; }; + BB5A84BE40E72AA69EF286843C5ABBC8 /* MergeEnumerator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MergeEnumerator.h; path = src/main/enumerators/MergeEnumerator.h; sourceTree = ""; }; + BB75EA9F355C48E7D84D2C671B458E95 /* HCStringStartsWith.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCStringStartsWith.h; path = Source/Library/Text/HCStringStartsWith.h; sourceTree = ""; }; + BC65205862D34F464750DE1792997D85 /* HCWrapInMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCWrapInMatcher.m; path = Source/Core/Helpers/HCWrapInMatcher.m; sourceTree = ""; }; + BD01A80B901DB9BC71399F1D7242000C /* HCHasCount.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCHasCount.m; path = Source/Library/Collection/HCHasCount.m; sourceTree = ""; }; + BD3A85E8698191AD11C7064F2E93D332 /* libPods-UnitTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libPods-UnitTests.a"; path = "libPods-UnitTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + BF4B05AD051D8322651506AB0EF5198C /* EnumerateEnumerator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EnumerateEnumerator.m; path = src/main/enumerators/EnumerateEnumerator.m; sourceTree = ""; }; + BFD0DAC0A6494D271CC8F2F9CB48CC63 /* OCTotallyLazy-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "OCTotallyLazy-prefix.pch"; sourceTree = ""; }; + C095C311FBC6821650959FAFD5101888 /* HCRunloopRunner.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCRunloopRunner.h; path = Source/Core/Helpers/HCRunloopRunner.h; sourceTree = ""; }; + C37AF7CE042BDC1C7F60E8A50DD77CE1 /* HCReturnTypeHandlerChain.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCReturnTypeHandlerChain.h; path = Source/Core/Helpers/ReturnValueGetters/HCReturnTypeHandlerChain.h; sourceTree = ""; }; + C5BAA91117A42926CFF883498A89396A /* HCIsNot.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCIsNot.h; path = Source/Library/Logical/HCIsNot.h; sourceTree = ""; }; + C92E9D5F34E15412AC6245456E98379F /* HCReturnTypeHandlerChain.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCReturnTypeHandlerChain.m; path = Source/Core/Helpers/ReturnValueGetters/HCReturnTypeHandlerChain.m; sourceTree = ""; }; + C98EAA865952702DD476E5B4A1EDDBD2 /* Pods-UnitTests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-UnitTests-resources.sh"; sourceTree = ""; }; + CC2C81AF298ECF235C34E822062CBAB9 /* HCIsCollectionContaining.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCIsCollectionContaining.h; path = Source/Library/Collection/HCIsCollectionContaining.h; sourceTree = ""; }; + CE109A40B15F9C18DBF56883942FB3CD /* HCStringStartsWith.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCStringStartsWith.m; path = Source/Library/Text/HCStringStartsWith.m; sourceTree = ""; }; + CEFD7C16F9CB43CA488265932CE99E36 /* HCCollect.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCCollect.h; path = Source/Core/Helpers/HCCollect.h; sourceTree = ""; }; + CFC0D71799671D5684C40FDB175FED55 /* HCObjectReturnGetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCObjectReturnGetter.h; path = Source/Core/Helpers/ReturnValueGetters/HCObjectReturnGetter.h; sourceTree = ""; }; + D03B24DA53F2488D1EA1EE0F4635D89B /* NSArray+OCTotallyLazy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSArray+OCTotallyLazy.m"; path = "src/main/NSArray+OCTotallyLazy.m"; sourceTree = ""; }; + D3C615C626A6F71FC2DADD26F12EAF5A /* HCSenTestFailureReporter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCSenTestFailureReporter.h; path = Source/Core/Helpers/TestFailureReporters/HCSenTestFailureReporter.h; sourceTree = ""; }; + D588456748421060055171928D97B0FA /* HCStringEndsWith.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCStringEndsWith.m; path = Source/Library/Text/HCStringEndsWith.m; sourceTree = ""; }; + D5F7C5306CA28FAE5794220BFF82F696 /* HCBoolReturnGetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCBoolReturnGetter.h; path = Source/Core/Helpers/ReturnValueGetters/HCBoolReturnGetter.h; sourceTree = ""; }; + D6160848AAADBA8F315BC0F8F5699EB9 /* HCHasDescription.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCHasDescription.m; path = Source/Library/Object/HCHasDescription.m; sourceTree = ""; }; + D6EF87B5D2A8AC7E56B2322829114426 /* HCIntReturnGetter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCIntReturnGetter.m; path = Source/Core/Helpers/ReturnValueGetters/HCIntReturnGetter.m; sourceTree = ""; }; + D7785584605275CD93D5ED677CDACF28 /* HCUnsignedLongReturnGetter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCUnsignedLongReturnGetter.m; path = Source/Core/Helpers/ReturnValueGetters/HCUnsignedLongReturnGetter.m; sourceTree = ""; }; + D7805CD70ADA6A443754E8E28DA0E1F2 /* Pods-Group Works.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Group Works.debug.xcconfig"; sourceTree = ""; }; + D78CC5B1BC9C0035667693FACEEA240B /* HCInvocationMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCInvocationMatcher.h; path = Source/Core/Helpers/HCInvocationMatcher.h; sourceTree = ""; }; + D809566835B0171531673A7023FC0F75 /* HCClassMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCClassMatcher.h; path = Source/Library/Object/HCClassMatcher.h; sourceTree = ""; }; + D9336C6E98F5D7A7E6CA708F53A1BE41 /* HCIsEmptyCollection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCIsEmptyCollection.h; path = Source/Library/Collection/HCIsEmptyCollection.h; sourceTree = ""; }; + DD0B722215F0A041DEA2FBF475C0E114 /* HCIsNot.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCIsNot.m; path = Source/Library/Logical/HCIsNot.m; sourceTree = ""; }; + DE1ADA51EA48F1D059CC9559813B1007 /* Pair.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = Pair.m; path = src/main/Pair.m; sourceTree = ""; }; + DE2A701F9D39DC74F5E40191C6835808 /* Callables.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Callables.h; path = src/main/Callables.h; sourceTree = ""; }; + DE5CF1853E1A27596CBA1860C3E2CF23 /* HCIsDictionaryContainingValue.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCIsDictionaryContainingValue.m; path = Source/Library/Collection/HCIsDictionaryContainingValue.m; sourceTree = ""; }; + DF2B4B5F360DB074103A849D8E1580A1 /* HCThrowsException.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCThrowsException.m; path = Source/Library/Object/HCThrowsException.m; sourceTree = ""; }; + DF3C19004C4EA7E7580CB53A3524D9A8 /* HCIsEqualCompressingWhiteSpace.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCIsEqualCompressingWhiteSpace.h; path = Source/Library/Text/HCIsEqualCompressingWhiteSpace.h; sourceTree = ""; }; + DF894BE8185F52AA8B6B2E3A2EA0EAC7 /* HCDiagnosingMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCDiagnosingMatcher.m; path = Source/Core/HCDiagnosingMatcher.m; sourceTree = ""; }; + E11C09970B1ABDA96040D8C1F8DAB887 /* HCIsDictionaryContainingEntries.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCIsDictionaryContainingEntries.m; path = Source/Library/Collection/HCIsDictionaryContainingEntries.m; sourceTree = ""; }; + E36F5D7B75A87F501F17EE0878D05045 /* Some.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = Some.m; path = src/main/Some.m; sourceTree = ""; }; + E40E4AA66F4CF1825B6AC37BA12033C3 /* HCTestFailureReporterChain.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCTestFailureReporterChain.m; path = Source/Core/Helpers/TestFailureReporters/HCTestFailureReporterChain.m; sourceTree = ""; }; + E7943F3479C6FE02A27EF550FD6A3CB8 /* HCStringContains.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCStringContains.h; path = Source/Library/Text/HCStringContains.h; sourceTree = ""; }; + E85581796C96EE0CC94F47B286693B56 /* HCIsEqualCompressingWhiteSpace.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCIsEqualCompressingWhiteSpace.m; path = Source/Library/Text/HCIsEqualCompressingWhiteSpace.m; sourceTree = ""; }; + E964347C00FB550A2E69E5420C903B4E /* HCMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCMatcher.h; path = Source/Core/HCMatcher.h; sourceTree = ""; }; + EA9A60C1D89ED74FB178397D6070477A /* HCIsCloseTo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCIsCloseTo.h; path = Source/Library/Number/HCIsCloseTo.h; sourceTree = ""; }; + EAC57BF44012D59A778C51606A8A1E0B /* HCIsDictionaryContaining.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCIsDictionaryContaining.m; path = Source/Library/Collection/HCIsDictionaryContaining.m; sourceTree = ""; }; + EB6E25DFA539CB405E0F08D7A4CD2CAD /* HCRequireNonNilObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCRequireNonNilObject.m; path = Source/Core/Helpers/HCRequireNonNilObject.m; sourceTree = ""; }; + EE717CEFC7D89476B840B3DFBD74B499 /* Pods-Group Works-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-Group Works-acknowledgements.plist"; sourceTree = ""; }; + EEC5ABF14FA780A914D5EEC747366AA5 /* HCGenericTestFailureReporter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCGenericTestFailureReporter.h; path = Source/Core/Helpers/TestFailureReporters/HCGenericTestFailureReporter.h; sourceTree = ""; }; + EF247325CB5E03DA2CF1E697125EEE04 /* EasyEnumerable.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EasyEnumerable.m; path = src/main/EasyEnumerable.m; sourceTree = ""; }; + EF8C1E19F98B3E655587B336067CE1A2 /* Mappable.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Mappable.h; path = src/main/Mappable.h; sourceTree = ""; }; + F0EAACC2AF77D57579573501D00DAC7B /* FilterEnumerator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FilterEnumerator.h; path = src/main/enumerators/FilterEnumerator.h; sourceTree = ""; }; + F236590D0461B985B5A07C4E7C43782C /* HCNumberAssert.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCNumberAssert.m; path = Source/Library/Number/HCNumberAssert.m; sourceTree = ""; }; + F25784D29CEDB1A686710561A3A77CF6 /* Pods-Group Works-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-Group Works-frameworks.sh"; sourceTree = ""; }; + F2950E5EC9BE31C9C532871223E9EB07 /* NoSuchElementException.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NoSuchElementException.h; path = src/main/NoSuchElementException.h; sourceTree = ""; }; + F2A93879D8A1D9892FAEA4FCAC23BF68 /* HCUnsignedShortReturnGetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCUnsignedShortReturnGetter.h; path = Source/Core/Helpers/ReturnValueGetters/HCUnsignedShortReturnGetter.h; sourceTree = ""; }; + F2FF1E6B7C525AB587D4B13ACE351712 /* HCLongLongReturnGetter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCLongLongReturnGetter.m; path = Source/Core/Helpers/ReturnValueGetters/HCLongLongReturnGetter.m; sourceTree = ""; }; + F4DCB1FBF8FF715FB702F1157C016D57 /* HCIsTrueFalse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCIsTrueFalse.h; path = Source/Library/Number/HCIsTrueFalse.h; sourceTree = ""; }; + F50193D277E948EA5EE25CFD51ECA26C /* MemoisedSequence.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MemoisedSequence.h; path = src/main/MemoisedSequence.h; sourceTree = ""; }; + F5530E027F4C64360AD6A3898A762745 /* NSEnumerator+OCTotallyLazy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSEnumerator+OCTotallyLazy.h"; path = "src/main/enumerators/NSEnumerator+OCTotallyLazy.h"; sourceTree = ""; }; + F754BA2A5FEC8DF29433083579F4D04C /* HCIsCollectionContainingInOrder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCIsCollectionContainingInOrder.h; path = Source/Library/Collection/HCIsCollectionContainingInOrder.h; sourceTree = ""; }; + F84824C6F6D141F0C4EF5F48E36DE2D0 /* HCIsEmptyCollection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCIsEmptyCollection.m; path = Source/Library/Collection/HCIsEmptyCollection.m; sourceTree = ""; }; + F8F2E22161EEA605022C5EA1097AFB75 /* HCCollect.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCCollect.m; path = Source/Core/Helpers/HCCollect.m; sourceTree = ""; }; + FA77F52781DEC1C877E709AE0D9F7C27 /* Function1.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = Function1.m; path = src/main/functions/Function1.m; sourceTree = ""; }; + FC0A6D2DB6B05A4AEE9A31BBA0369B83 /* HCUnsignedLongLongReturnGetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCUnsignedLongLongReturnGetter.h; path = Source/Core/Helpers/ReturnValueGetters/HCUnsignedLongLongReturnGetter.h; sourceTree = ""; }; + FC3E5274735976DD3ED3EA574B0E5097 /* HCBoolReturnGetter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCBoolReturnGetter.m; path = Source/Core/Helpers/ReturnValueGetters/HCBoolReturnGetter.m; sourceTree = ""; }; + FC794B29F0EA0ECFECC4E857AEC5938D /* HCBaseDescription.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCBaseDescription.h; path = Source/Core/HCBaseDescription.h; sourceTree = ""; }; + FE023ACBF38AE62CF530EE5D8C476976 /* HCHasCount.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCHasCount.h; path = Source/Library/Collection/HCHasCount.h; sourceTree = ""; }; + FEB2E2544609AA12DA405E7440E28419 /* NSSet+OCTotallyLazy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSSet+OCTotallyLazy.h"; path = "src/main/NSSet+OCTotallyLazy.h"; sourceTree = ""; }; + FFE9999BFF5172CFBCADCC708AA10574 /* Option.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = Option.m; path = src/main/Option.m; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 4428CE549E4FD1C962EA0A093F84BFD5 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + E6F19CBDCA8AA34E91CB6D2B201FF0A2 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 6D1BCAF37C9D0477C42ABFCC978D07AF /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 06E8864973918E8686BC6AD3A4D6E4C2 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 80C0F28A243AEF78BB34528381A49D27 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 49032645B4D78E47CAAC12D13D473FF2 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E2684B796CD50EC9C62AABFBE227D7AF /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F20DD3569825A89C541519E973C191A5 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 06BED2EE648B12898AF513CFA3CC8AE8 /* OCTotallyLazy */ = { + isa = PBXGroup; + children = ( + DE2A701F9D39DC74F5E40191C6835808 /* Callables.h */, + 9DE94E620D02D007857E6FECF686D142 /* Callables.m */, + 4191C7E4E9A69A2DEA9E7BE4F3D45FC0 /* Coercions.h */, + 79454564A5EEE6342033D98AF444C3EB /* EasyEnumerable.h */, + EF247325CB5E03DA2CF1E697125EEE04 /* EasyEnumerable.m */, + AB96052FF6CD7FFEF1B62878D7866A2F /* EmptyEnumerator.h */, + 5D8C9F8018B2ECA81C3B48A85FDC05D4 /* EmptyEnumerator.m */, + 9FCD205B19F60D1AB4BC485070B760B1 /* Enumerable.h */, + A8D87EDBB6E93F7777A16A589278CA7B /* EnumerateEnumerator.h */, + BF4B05AD051D8322651506AB0EF5198C /* EnumerateEnumerator.m */, + F0EAACC2AF77D57579573501D00DAC7B /* FilterEnumerator.h */, + 2F42716A5892C1646E85767FC31B2659 /* FilterEnumerator.m */, + 3AE3139A7A47F27366779CF9037F966F /* Flattenable.h */, + 9F5F9C5C4BB17494C0DAC81C23DEBE46 /* FlattenEnumerator.h */, + 9BA44F1D534686E5611DA2F8CF3ABD0E /* FlattenEnumerator.m */, + 8ABB54DF51371944A4529ABBE1EAC4B3 /* Foldable.h */, + AC7B0579F77C27DB7DA7122EBFCB6C11 /* Function1.h */, + FA77F52781DEC1C877E709AE0D9F7C27 /* Function1.m */, + AE9A02D5D09962E9FAA861A4A73D3337 /* Function2.h */, + 97FA8623D909A1559098614FD8DE6F9C /* Function2.m */, + 1E7D1704D93FAA761D593E3684C9CAA5 /* Functions.h */, + 2E8CD4D82434A601052595EB3DBE5F8A /* Functions.m */, + 436548257D23D068A36CF39D8AD6DE40 /* Group.h */, + BB053B383FB175F2F1C8F33DEA83836C /* Group.m */, + 97D31B363CB5508245B5C0FA56B44C7C /* GroupedEnumerator.h */, + A21EA0EBDEE878A34C8AD0FD487464A5 /* GroupedEnumerator.m */, + 924C2E0F5B48146BA1DFC776B06FD10A /* MapEnumerator.h */, + A206DBB84DE53AEA6F2F9FB32E19BBD2 /* MapEnumerator.m */, + EF8C1E19F98B3E655587B336067CE1A2 /* Mappable.h */, + 5E5B4D77504C490AF10CBB84291FE44B /* MemoisedEnumerator.h */, + 4771B8ABD610808B0CB6710F1BDDB354 /* MemoisedEnumerator.m */, + F50193D277E948EA5EE25CFD51ECA26C /* MemoisedSequence.h */, + 08D0616A1B7BAF2AC96B386C14109700 /* MemoisedSequence.m */, + BB5A84BE40E72AA69EF286843C5ABBC8 /* MergeEnumerator.h */, + 1D46C50D5E5EE03F2C0E620BAB71FF4D /* MergeEnumerator.m */, + 530B068042E3FDB24FE783BBC28CEF5A /* None.h */, + 98439BB1DCA5AA61542F28CF6CA5EF2C /* None.m */, + F2950E5EC9BE31C9C532871223E9EB07 /* NoSuchElementException.h */, + 82A4FEB3EB6D20B5966E8D408A77D6F9 /* NoSuchElementException.m */, + 85945C5A6A65C27B377EF40CFA35571B /* NSArray+OCTotallyLazy.h */, + D03B24DA53F2488D1EA1EE0F4635D89B /* NSArray+OCTotallyLazy.m */, + 0E4D2E84890776DD51B228F420E679C2 /* NSDictionary+OCTotallyLazy.h */, + 7E613009509F8D03C482CCBAC2274C3E /* NSDictionary+OCTotallyLazy.m */, + F5530E027F4C64360AD6A3898A762745 /* NSEnumerator+OCTotallyLazy.h */, + 3922575C7FBB92C55FEC8DBABB076EE0 /* NSEnumerator+OCTotallyLazy.m */, + FEB2E2544609AA12DA405E7440E28419 /* NSSet+OCTotallyLazy.h */, + 05E3D5504379F79E661E8946BB5B9646 /* NSSet+OCTotallyLazy.m */, + 55FE956639ED2430126C866B0973007E /* Numbers.h */, + 794B0C5249F7694479D6ED6FD57A50C9 /* Numbers.m */, + 2AC9F2FCE821669ACB82C6FC3FE142D8 /* OCTotallyLazy.h */, + 51994E2F573E22443C00FA2DDD2C2129 /* Option.h */, + FFE9999BFF5172CFBCADCC708AA10574 /* Option.m */, + 37E62CA92531E3318194FFC025572BAE /* Pair.h */, + DE1ADA51EA48F1D059CC9559813B1007 /* Pair.m */, + 1711B620DAB55BFCCDF55A29916D1F8B /* PairEnumerator.h */, + 802A03E0B4D63CA8ECCFB27CD158F027 /* PairEnumerator.m */, + 4C441764D002739F579FBA820A8959A5 /* PartitionEnumerator.h */, + 2376BEAC912FEBF295CFF9DEFB54E8BB /* PartitionEnumerator.m */, + 1D6E786B57995DD0C572F1D7A1381EE3 /* Predicates.h */, + 109C8C5E0171B9F0F5CCC0C9DEBA8948 /* Predicates.m */, + 720BB86DCA786548867A21DC914D2338 /* Queue.h */, + 233E254A8EAF3D49D1142200AC11FCF4 /* Queue.m */, + 23F69EBA4053C7DD2FDC0D6E22BD25DA /* Range.h */, + 3025BA1F03CDA5B60D004C8DEC1B1EE6 /* Range.m */, + B7C061EB9D675638C5D3D3030D5DD4DE /* RepeatEnumerator.h */, + 323B1A5DD39C883E208049025679FACC /* RepeatEnumerator.m */, + B803AF1ACAA2399997FFB7EB96404FEB /* Sequence.h */, + 1177F7055C546126909863A1ACDF30CA /* Sequence.m */, + 2DEF96F4C6B7D808B5B8DCD10537548A /* SingleValueEnumerator.h */, + 17AD614A05C6892DCF4E608F27222655 /* SingleValueEnumerator.m */, + 875211007DE1B98D14E5281279A9586F /* Some.h */, + E36F5D7B75A87F501F17EE0878D05045 /* Some.m */, + A0EB0E6E77257F23785882761E0482F7 /* TakeWhileEnumerator.h */, + 36712F86F405AC48D385640417132A9F /* TakeWhileEnumerator.m */, + 3C6EBA84F05B51328C1EFB58AB642226 /* Types.h */, + 4303C16FD0455C609CA4AF14B5839725 /* Support Files */, + ); + name = OCTotallyLazy; + path = OCTotallyLazy; + sourceTree = ""; + }; + 3D4CD345C0E40E035CEE112458CE6E50 /* Pods */ = { + isa = PBXGroup; + children = ( + BFF7F584B044230EC834346CCE944E11 /* OCHamcrest */, + 06BED2EE648B12898AF513CFA3CC8AE8 /* OCTotallyLazy */, + ); + name = Pods; + sourceTree = ""; + }; + 4303C16FD0455C609CA4AF14B5839725 /* Support Files */ = { + isa = PBXGroup; + children = ( + 7F9CEE33E072E2070189C7FDF5E4626A /* OCTotallyLazy.xcconfig */, + B01F339EB2C1C21781E382FE95A2FD96 /* OCTotallyLazy-dummy.m */, + BFD0DAC0A6494D271CC8F2F9CB48CC63 /* OCTotallyLazy-prefix.pch */, + ); + name = "Support Files"; + path = "../Target Support Files/OCTotallyLazy"; + sourceTree = ""; + }; + 50969791BDBF0A8F78839D908B15462B /* Pods-Group Works */ = { + isa = PBXGroup; + children = ( + 0F1D7503A9392C237001016B3F4BA60B /* Pods-Group Works-acknowledgements.markdown */, + EE717CEFC7D89476B840B3DFBD74B499 /* Pods-Group Works-acknowledgements.plist */, + 30F1E8A5E023FE2980386CEBDD74123A /* Pods-Group Works-dummy.m */, + F25784D29CEDB1A686710561A3A77CF6 /* Pods-Group Works-frameworks.sh */, + 44196081E451304FBF0479B04F6DBAAB /* Pods-Group Works-resources.sh */, + D7805CD70ADA6A443754E8E28DA0E1F2 /* Pods-Group Works.debug.xcconfig */, + 2B89694451C00B133BFA8F4E5EA3DDC5 /* Pods-Group Works.release.xcconfig */, + ); + name = "Pods-Group Works"; + path = "Target Support Files/Pods-Group Works"; + sourceTree = ""; + }; + 623DA4EFCFFDB69718E1B72D2497DD7D /* Products */ = { + isa = PBXGroup; + children = ( + 6CBA94790A7A14D38E11062B9EECF2E1 /* libOCHamcrest.a */, + 6095EFA411B436890C86CA0201C0C6A0 /* libOCTotallyLazy.a */, + 0F2463F248C8A9E3A8FCF9747C2C2F1D /* libPods-Group Works.a */, + BD3A85E8698191AD11C7064F2E93D332 /* libPods-UnitTests.a */, + ); + name = Products; + sourceTree = ""; + }; + 7DB346D0F39D3F0E887471402A8071AB = { + isa = PBXGroup; + children = ( + 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */, + BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */, + 3D4CD345C0E40E035CEE112458CE6E50 /* Pods */, + 623DA4EFCFFDB69718E1B72D2497DD7D /* Products */, + BE8C90821728C54EE4D2E844B36B8606 /* Targets Support Files */, + ); + sourceTree = ""; + }; + 9E3D4E9B14080DBFDBCF72208923B656 /* Pods-UnitTests */ = { + isa = PBXGroup; + children = ( + 71F8B924DC95FACDB45666328A6D0C0F /* Pods-UnitTests-acknowledgements.markdown */, + 641667C2A7E03DAB327D9C9BBF89CF67 /* Pods-UnitTests-acknowledgements.plist */, + 1503994294ADFEA75EF253B710B9FE7E /* Pods-UnitTests-dummy.m */, + 3DFA24F63239F921ECF3A08E842AEFAC /* Pods-UnitTests-frameworks.sh */, + C98EAA865952702DD476E5B4A1EDDBD2 /* Pods-UnitTests-resources.sh */, + 61A2A49871CC77E3F508472C440B2E40 /* Pods-UnitTests.debug.xcconfig */, + 1E286FEDFC94EEE40B08DE264328CE06 /* Pods-UnitTests.release.xcconfig */, + ); + name = "Pods-UnitTests"; + path = "Target Support Files/Pods-UnitTests"; + sourceTree = ""; + }; + BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */ = { + isa = PBXGroup; + children = ( + D35AF013A5F0BAD4F32504907A52519E /* iOS */, + ); + name = Frameworks; + sourceTree = ""; + }; + BE8C90821728C54EE4D2E844B36B8606 /* Targets Support Files */ = { + isa = PBXGroup; + children = ( + 50969791BDBF0A8F78839D908B15462B /* Pods-Group Works */, + 9E3D4E9B14080DBFDBCF72208923B656 /* Pods-UnitTests */, + ); + name = "Targets Support Files"; + sourceTree = ""; + }; + BFF7F584B044230EC834346CCE944E11 /* OCHamcrest */ = { + isa = PBXGroup; + children = ( + 05928E486229DD68D8FED173D3FF7BE9 /* HCAllOf.h */, + AA8BAABB0EA078E84287A08C39FA1322 /* HCAllOf.m */, + 44500A64D9A6FF5589AD8EBB637A07C1 /* HCAnyOf.h */, + 30AFD80B76314979C8EBBE53ABF2375A /* HCAnyOf.m */, + B8D6E1DB356CED8461518ACD5E88D47C /* HCArgumentCaptor.h */, + 11F3A392EE19EEF6F855AF4BB9B88396 /* HCArgumentCaptor.m */, + 4CD1614438E270EC5897EDEA6C6E56EA /* HCAssertThat.h */, + 03C63E17F363B5D07096ABD6751C2F30 /* HCAssertThat.m */, + FC794B29F0EA0ECFECC4E857AEC5938D /* HCBaseDescription.h */, + 36F3960669085F68F58076E7CD9C493A /* HCBaseDescription.m */, + 55BFF8917514566108F990D684D0D2C8 /* HCBaseMatcher.h */, + A9F3402290A28AEC68D5A96AEB2671C1 /* HCBaseMatcher.m */, + D5F7C5306CA28FAE5794220BFF82F696 /* HCBoolReturnGetter.h */, + FC3E5274735976DD3ED3EA574B0E5097 /* HCBoolReturnGetter.m */, + 61143870BB032C7426E8DFE957636CF8 /* HCCharReturnGetter.h */, + 84C54BD4D9DAD6F6CFC7721CA0C65DBC /* HCCharReturnGetter.m */, + D809566835B0171531673A7023FC0F75 /* HCClassMatcher.h */, + 58939EF3FA72A88176CDBC3E614CF5FB /* HCClassMatcher.m */, + CEFD7C16F9CB43CA488265932CE99E36 /* HCCollect.h */, + F8F2E22161EEA605022C5EA1097AFB75 /* HCCollect.m */, + 6009A42FE0AAE6367E98BE81C9F47F8D /* HCConformsToProtocol.h */, + 04783C998707749B0263C886C07C4915 /* HCConformsToProtocol.m */, + 5603404F8A83C6F48E56547DFFF3B6E1 /* HCDescribedAs.h */, + 73D6C5AC2879BBAD0DC015F9ECBB9B27 /* HCDescribedAs.m */, + 14CE8850039E3B874D2E5E5149EE6F87 /* HCDescription.h */, + 8FF03DE783B6727DAAD4B3B31909E035 /* HCDiagnosingMatcher.h */, + DF894BE8185F52AA8B6B2E3A2EA0EAC7 /* HCDiagnosingMatcher.m */, + 493248C332DD1E04E8259FF5B4A32ECC /* HCDoubleReturnGetter.h */, + AA5F7F7A5025E95160271EB28678A526 /* HCDoubleReturnGetter.m */, + 804CAFB3EF9F722C30FC5771E4248BF0 /* HCEvery.h */, + 76AD24D910AC35CA788261A38FC314AD /* HCEvery.m */, + 07D9656D9F587ED414B1EACADB33DB17 /* HCFloatReturnGetter.h */, + 6F16EA0C2EDAFE16351244FBC81798AA /* HCFloatReturnGetter.m */, + EEC5ABF14FA780A914D5EEC747366AA5 /* HCGenericTestFailureReporter.h */, + 1EF13B2E0F7192C22FA85C3BD2404A3B /* HCGenericTestFailureReporter.m */, + FE023ACBF38AE62CF530EE5D8C476976 /* HCHasCount.h */, + BD01A80B901DB9BC71399F1D7242000C /* HCHasCount.m */, + 9ADA65EA1EFA88C3EF148E2D833CBCD9 /* HCHasDescription.h */, + D6160848AAADBA8F315BC0F8F5699EB9 /* HCHasDescription.m */, + AE910F993FB13C416945914A460F4B5A /* HCHasProperty.h */, + 924C09FB057C4A4039BD89F2D41EB919 /* HCHasProperty.m */, + 027BB3C33346A0D2A062C478C6ACEFCD /* HCIntReturnGetter.h */, + D6EF87B5D2A8AC7E56B2322829114426 /* HCIntReturnGetter.m */, + D78CC5B1BC9C0035667693FACEEA240B /* HCInvocationMatcher.h */, + 5A1D9AD37994F0EAA4C0C5335F01B837 /* HCInvocationMatcher.m */, + 5B5EA20E022D929DEBFE033F15EECD08 /* HCIs.h */, + 6F6B6FAB7C97DDAEB8B349A4418E0BBF /* HCIs.m */, + 61345F372863558DCB1EC70A2C2E5793 /* HCIsAnything.h */, + 450CB7EB81CBA429C1D6F7344198CA3C /* HCIsAnything.m */, + EA9A60C1D89ED74FB178397D6070477A /* HCIsCloseTo.h */, + 6312D756291B9C2D928AB9B849A8E6A8 /* HCIsCloseTo.m */, + CC2C81AF298ECF235C34E822062CBAB9 /* HCIsCollectionContaining.h */, + 2D4F181EAA6171EF7A2568144204856F /* HCIsCollectionContaining.m */, + 216359FDEBFC5D207BECFC8F16C0A7E3 /* HCIsCollectionContainingInAnyOrder.h */, + 193DA7A6821E072C96BD0D9B68597E43 /* HCIsCollectionContainingInAnyOrder.m */, + F754BA2A5FEC8DF29433083579F4D04C /* HCIsCollectionContainingInOrder.h */, + B2E4FD6D7B8EBEDF6C07F33500227A9E /* HCIsCollectionContainingInOrder.m */, + 5C898CEED4EA3507C36D381D1D5D7668 /* HCIsCollectionContainingInRelativeOrder.h */, + 2BA5026D8DE2724CB42D43C3742F3437 /* HCIsCollectionContainingInRelativeOrder.m */, + A29B5B5F54060F8A8B0194E7712B1FFE /* HCIsCollectionOnlyContaining.h */, + 1B9FEABA55DB5E9771EFC1B545F524F6 /* HCIsCollectionOnlyContaining.m */, + AF2CE21D9E9BDAB69725544752705725 /* HCIsDictionaryContaining.h */, + EAC57BF44012D59A778C51606A8A1E0B /* HCIsDictionaryContaining.m */, + 57CBEC4EAE06C37A85647E4517066485 /* HCIsDictionaryContainingEntries.h */, + E11C09970B1ABDA96040D8C1F8DAB887 /* HCIsDictionaryContainingEntries.m */, + 3739F19562912171756917999493682E /* HCIsDictionaryContainingKey.h */, + 36DBC534414B9F75E319768C7EC3087B /* HCIsDictionaryContainingKey.m */, + 57CF706D01CD48AD27A7D1003EDCA5E9 /* HCIsDictionaryContainingValue.h */, + DE5CF1853E1A27596CBA1860C3E2CF23 /* HCIsDictionaryContainingValue.m */, + D9336C6E98F5D7A7E6CA708F53A1BE41 /* HCIsEmptyCollection.h */, + F84824C6F6D141F0C4EF5F48E36DE2D0 /* HCIsEmptyCollection.m */, + 307F92AB94D808DA71722996A104B487 /* HCIsEqual.h */, + 50ED338216DA76141CA829E05DB91901 /* HCIsEqual.m */, + DF3C19004C4EA7E7580CB53A3524D9A8 /* HCIsEqualCompressingWhiteSpace.h */, + E85581796C96EE0CC94F47B286693B56 /* HCIsEqualCompressingWhiteSpace.m */, + 8EC8C37B8811BB19F63FDD2F2C765130 /* HCIsEqualIgnoringCase.h */, + 47EACC88A023A8B0B27F26ECCE3C2140 /* HCIsEqualIgnoringCase.m */, + 256D950DA3E61DC8EC814450C8FE29DF /* HCIsEqualToNumber.h */, + 1F77FA456B771AFBD42EBF17D648BAE2 /* HCIsEqualToNumber.m */, + 83EB2559EA1BE5DB4B18280EE7D64B6F /* HCIsIn.h */, + 6B87A871F955E955BC3124AB6A587DC9 /* HCIsIn.m */, + ADBA8F9109207B685CDE908C5007812D /* HCIsInstanceOf.h */, + B792B5D782A9CA653BC2022206CA2FCB /* HCIsInstanceOf.m */, + 984B01728C20987C0955B4AF6C56F1A6 /* HCIsNil.h */, + 6D248372F00B176BAB1D4BE7A13CBAB9 /* HCIsNil.m */, + C5BAA91117A42926CFF883498A89396A /* HCIsNot.h */, + DD0B722215F0A041DEA2FBF475C0E114 /* HCIsNot.m */, + 3A7E5C2A5F9B4079FE328FFF2361BEAA /* HCIsSame.h */, + A22D70A105262DA161BD584EC8766BBF /* HCIsSame.m */, + F4DCB1FBF8FF715FB702F1157C016D57 /* HCIsTrueFalse.h */, + AF96D2655A86F29CC4308B7C88C07CB5 /* HCIsTrueFalse.m */, + 681F403B3FDBB63B0178160405AC69DA /* HCIsTypeOf.h */, + 168479F8ADECF7BF1D324CBCE72E712E /* HCIsTypeOf.m */, + AD8022F414033100F15F21F50DAA891C /* HCLongLongReturnGetter.h */, + F2FF1E6B7C525AB587D4B13ACE351712 /* HCLongLongReturnGetter.m */, + 5D6754C38A6D64F62E23BED8109F4E91 /* HCLongReturnGetter.h */, + 573ECB96B91ED23311A8C7C1F3E42355 /* HCLongReturnGetter.m */, + E964347C00FB550A2E69E5420C903B4E /* HCMatcher.h */, + 4CA06137FF6698733502203EC4FED399 /* HCNumberAssert.h */, + F236590D0461B985B5A07C4E7C43782C /* HCNumberAssert.m */, + CFC0D71799671D5684C40FDB175FED55 /* HCObjectReturnGetter.h */, + 7D8ED8E61F12BD95F11D996743DA5893 /* HCObjectReturnGetter.m */, + 83A1D0DABE7621650AEBE3533ABAA21C /* HCOrderingComparison.h */, + B857525B7863C387CCB7AA509E0EE3D9 /* HCOrderingComparison.m */, + 8BE3F07782289BD1776D29E49A263A69 /* HCRequireNonNilObject.h */, + EB6E25DFA539CB405E0F08D7A4CD2CAD /* HCRequireNonNilObject.m */, + C37AF7CE042BDC1C7F60E8A50DD77CE1 /* HCReturnTypeHandlerChain.h */, + C92E9D5F34E15412AC6245456E98379F /* HCReturnTypeHandlerChain.m */, + 4072A6D2E8EADB404F7E6CD0195DFB33 /* HCReturnValueGetter.h */, + 5BA41699DC57D9AD9C473772121F469B /* HCReturnValueGetter.m */, + C095C311FBC6821650959FAFD5101888 /* HCRunloopRunner.h */, + B65C1CEF8E3FEB986D90E82039B50608 /* HCRunloopRunner.m */, + 0B811ED77F1F07BEA8AEC81820774004 /* HCSelfDescribing.h */, + D3C615C626A6F71FC2DADD26F12EAF5A /* HCSenTestFailureReporter.h */, + 7FD19ADBA1D29DD656E6DE999924C687 /* HCSenTestFailureReporter.m */, + 75828C0B1DA131EAA4BBC887177F4A34 /* HCShortReturnGetter.h */, + 4367FA4333D7A3FAE063C7CB5B403CC8 /* HCShortReturnGetter.m */, + E7943F3479C6FE02A27EF550FD6A3CB8 /* HCStringContains.h */, + 7D8140469132BD54D6D579B29E44BB9F /* HCStringContains.m */, + 64453DE83BEA46C2ECC3D435645E9FDC /* HCStringContainsInOrder.h */, + 79DCB284BBB8A8433E847D6536BA8DFE /* HCStringContainsInOrder.m */, + 62DE20E0F024BC864799A0D3B91C7CAE /* HCStringDescription.h */, + A5BA185B29435458E714D716CEAAABD8 /* HCStringDescription.m */, + 6077AA0342F26BF5CF5369FE2CC09DA6 /* HCStringEndsWith.h */, + D588456748421060055171928D97B0FA /* HCStringEndsWith.m */, + BB75EA9F355C48E7D84D2C671B458E95 /* HCStringStartsWith.h */, + CE109A40B15F9C18DBF56883942FB3CD /* HCStringStartsWith.m */, + 24049712267279295F3A06E4A1D53245 /* HCSubstringMatcher.h */, + 4276D63C7F4044A9E73D735DB1DA2C7C /* HCSubstringMatcher.m */, + 034503ACD5CC192B54D8A636D4BF8633 /* HCTestFailure.h */, + 14CF6A1041AD7D3228ABB9EA2EECB901 /* HCTestFailure.m */, + 72421B7DA9BBDB444BB4507C89463E1E /* HCTestFailureReporter.h */, + AA9CB89F28A81F1250F2A5E44CEE0FB9 /* HCTestFailureReporter.m */, + 253B2BECDE9B954FF61DA9550F239269 /* HCTestFailureReporterChain.h */, + E40E4AA66F4CF1825B6AC37BA12033C3 /* HCTestFailureReporterChain.m */, + 3B48F27951291ACFC9890B40FC613CC2 /* HCThrowsException.h */, + DF2B4B5F360DB074103A849D8E1580A1 /* HCThrowsException.m */, + 8F5D73AF67E846D64C331B3B7A54C661 /* HCUnsignedCharReturnGetter.h */, + A388D0EDA003F7C0C4D590968DC67EBA /* HCUnsignedCharReturnGetter.m */, + 7938BF806B824E061206F58E4498D411 /* HCUnsignedIntReturnGetter.h */, + B79E0AC9FA0840FCDA990FA644898D56 /* HCUnsignedIntReturnGetter.m */, + FC0A6D2DB6B05A4AEE9A31BBA0369B83 /* HCUnsignedLongLongReturnGetter.h */, + 64536B0FC71EFC0F70FF9FDE295C406E /* HCUnsignedLongLongReturnGetter.m */, + AC988EF457EC1BF7637B8B36E68A2D8C /* HCUnsignedLongReturnGetter.h */, + D7785584605275CD93D5ED677CDACF28 /* HCUnsignedLongReturnGetter.m */, + F2A93879D8A1D9892FAEA4FCAC23BF68 /* HCUnsignedShortReturnGetter.h */, + 53A7200D6B401E64A53532621D6953C0 /* HCUnsignedShortReturnGetter.m */, + 5DF8E2A66D3D84CF9610D3B10CEB0C24 /* HCWrapInMatcher.h */, + BC65205862D34F464750DE1792997D85 /* HCWrapInMatcher.m */, + 4BF120364822BB26830ED94477F25965 /* HCXCTestFailureReporter.h */, + 2C8AE9E474BE00173A56C141858F6D37 /* HCXCTestFailureReporter.m */, + AAED264844E414AB9B6D25EB6D60E362 /* NSInvocation+OCHamcrest.h */, + 793E13D04C57364B40CBE7148EB5F444 /* NSInvocation+OCHamcrest.m */, + 6DA0C458EA2C820DCF5EF06390B46830 /* OCHamcrest.h */, + C134D18A8D26A07ACC1EB854DA341D36 /* Support Files */, + ); + name = OCHamcrest; + path = OCHamcrest; + sourceTree = ""; + }; + C134D18A8D26A07ACC1EB854DA341D36 /* Support Files */ = { + isa = PBXGroup; + children = ( + 87B85CFBC8BDDCFEA7F192DF0ABC25EB /* OCHamcrest.xcconfig */, + 591FCE02DABBAD04D1ACE3D88ADA8E00 /* OCHamcrest-dummy.m */, + BAF037784B3EAE28113EFBC4E7BDA741 /* OCHamcrest-prefix.pch */, + ); + name = "Support Files"; + path = "../Target Support Files/OCHamcrest"; + sourceTree = ""; + }; + D35AF013A5F0BAD4F32504907A52519E /* iOS */ = { + isa = PBXGroup; + children = ( + 6604A7D69453B4569E4E4827FB9155A9 /* Foundation.framework */, + ); + name = iOS; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + 3B102CB771F2A4EB2A9D877124017675 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + B55F529C75C06C634B69DE0A2F2636FD /* HCAllOf.h in Headers */, + D7BA08E0F03B34471654AF9C80826590 /* HCAnyOf.h in Headers */, + 523D204877C540D4AD0BB27557F2542B /* HCArgumentCaptor.h in Headers */, + 96D795B77FF5B407AB600B0D8F70540F /* HCAssertThat.h in Headers */, + 8AF257E177757AA16FDC496C235D9A76 /* HCBaseDescription.h in Headers */, + 22B702A6BCC9F0FAC7A7D9DF8A5650F5 /* HCBaseMatcher.h in Headers */, + 72E34EBE268A1F944CF6D19BD90B9BD0 /* HCBoolReturnGetter.h in Headers */, + 0F3E6BB237F85A096F5BE93730D741EA /* HCCharReturnGetter.h in Headers */, + EAEA9771E179C19B1DEAE160A20888F0 /* HCClassMatcher.h in Headers */, + A2D50BC62277FDFCDCE49D03BCE4AEB0 /* HCCollect.h in Headers */, + 6BDC5BDC97C8A1F0BD65F4129CD45329 /* HCConformsToProtocol.h in Headers */, + 091C475642698A764E4743D6A1B109F3 /* HCDescribedAs.h in Headers */, + 5248B64EBD68E46C2B7249A880BC5CF1 /* HCDescription.h in Headers */, + CDC83487E92DDA255E770BC25515C493 /* HCDiagnosingMatcher.h in Headers */, + 21397D2A0C3686174D1E31B404101125 /* HCDoubleReturnGetter.h in Headers */, + 94A46F2AC545672D6D6D59FB6C63B3F4 /* HCEvery.h in Headers */, + 095A770DFC6A66FDA4E44D2248AE5A41 /* HCFloatReturnGetter.h in Headers */, + 00AA7D0EB2742099B9BC87920F0AA8B6 /* HCGenericTestFailureReporter.h in Headers */, + 160A201ADE809A67502F84B2A0220087 /* HCHasCount.h in Headers */, + A309E9CC1495740D8E97DB8ECF37ECF9 /* HCHasDescription.h in Headers */, + A92431BF46FCF19530F6EFD8B923F2E0 /* HCHasProperty.h in Headers */, + 7A44F750D727FDB7C693780E1FEEE95F /* HCIntReturnGetter.h in Headers */, + 959A2A31C6C766BAAB1D56751E309E85 /* HCInvocationMatcher.h in Headers */, + 51A595A0D747550023DDDC52FCFFDD34 /* HCIs.h in Headers */, + 1F6507C4DC7B9BC5DDD223229C3995B3 /* HCIsAnything.h in Headers */, + F42DEB9287149FBEC30C96C0344D0B10 /* HCIsCloseTo.h in Headers */, + BF522830CFA583BF365A2057E14006AE /* HCIsCollectionContaining.h in Headers */, + 482600958B3CD00E7FA6CEF381A18E2F /* HCIsCollectionContainingInAnyOrder.h in Headers */, + 03050EDADD65B6B375B33ED2C25B2A35 /* HCIsCollectionContainingInOrder.h in Headers */, + 8418D537708DEE0ACAD768F46C4CC009 /* HCIsCollectionContainingInRelativeOrder.h in Headers */, + CCA7F786752F6AA5589A5EB1708C4715 /* HCIsCollectionOnlyContaining.h in Headers */, + 3748D78487C75A8F801171ED0FC36D82 /* HCIsDictionaryContaining.h in Headers */, + 71CBF7CFBC4E6DDA37666E0CFD2F8528 /* HCIsDictionaryContainingEntries.h in Headers */, + 883933EC1623C09901E0D90D68924B84 /* HCIsDictionaryContainingKey.h in Headers */, + 520B56F656E117BCF622C1F0348C54C0 /* HCIsDictionaryContainingValue.h in Headers */, + 3847F748DDA107CA469327F9B559B033 /* HCIsEmptyCollection.h in Headers */, + 2E72918C98918609F85844E32901560D /* HCIsEqual.h in Headers */, + C0C20A56916E46927E894F42740924DD /* HCIsEqualCompressingWhiteSpace.h in Headers */, + 4677E0547846CC3D5E88F903DE6D54CE /* HCIsEqualIgnoringCase.h in Headers */, + E6378C37407A605D9B2669ABE4B0C160 /* HCIsEqualToNumber.h in Headers */, + DCA96AA803955D0D93183A79868CD228 /* HCIsIn.h in Headers */, + 9FB173074C4C122DD52954B3E662E07E /* HCIsInstanceOf.h in Headers */, + 97C4EDA53AE9D2B8599E4E40758023F9 /* HCIsNil.h in Headers */, + CED459354E0DA3256395E23ACF84CAB2 /* HCIsNot.h in Headers */, + 504636D1F52ED3CC094405EAB70EBF60 /* HCIsSame.h in Headers */, + C51F559C29CDAA28882E074DF83621DA /* HCIsTrueFalse.h in Headers */, + 108213B1CDDB7C2ED74E22CE81FAFE01 /* HCIsTypeOf.h in Headers */, + 793791281793B9BAAFF88CAEED033372 /* HCLongLongReturnGetter.h in Headers */, + 151FCD844C5355BE927C266D30CCC145 /* HCLongReturnGetter.h in Headers */, + 2417816E6CEA2B0E4FC99AE41640242F /* HCMatcher.h in Headers */, + BF802C238ECD14DB714823B4BB11063E /* HCNumberAssert.h in Headers */, + 37A5ACBC4C7D2DE4F22793ACC4A18ABC /* HCObjectReturnGetter.h in Headers */, + C7FF47391AC3AC1C7EFB9B65F2BA5573 /* HCOrderingComparison.h in Headers */, + 5C0E3680435D477EDDFF5F426AA15DBC /* HCRequireNonNilObject.h in Headers */, + B0EF3A76F242ED4488A080C65BC551ED /* HCReturnTypeHandlerChain.h in Headers */, + 94FA28F1F8121EAD6E2B82D26F1527B4 /* HCReturnValueGetter.h in Headers */, + 075EFF9773449A1183431E69CDE388F9 /* HCRunloopRunner.h in Headers */, + 6A373C900176B2C16F6F9C1AFC88EDC0 /* HCSelfDescribing.h in Headers */, + E4F6AB85AB4D06EF77AEC34AFE18FB71 /* HCSenTestFailureReporter.h in Headers */, + F217CECE6B6FD4791458C60E46285D28 /* HCShortReturnGetter.h in Headers */, + 35355C6BC7F2B2239A6F39E925B2170F /* HCStringContains.h in Headers */, + C71D4F3D3C9F68E9E0CB50D4B2D7342D /* HCStringContainsInOrder.h in Headers */, + 571721D73C9120D684D25B46202968B9 /* HCStringDescription.h in Headers */, + 50F34472DEA3B761915E4F16C5CF597A /* HCStringEndsWith.h in Headers */, + BD54FECF20F0E42850FDA6BC939A6D22 /* HCStringStartsWith.h in Headers */, + CB926D27F1575F2467664A78F51C5A64 /* HCSubstringMatcher.h in Headers */, + 68EE70194866244272C32F578B40A825 /* HCTestFailure.h in Headers */, + FC6669D4CE3D660048A5AC6F9C293A36 /* HCTestFailureReporter.h in Headers */, + F350A95F663806577DABDBC206844D7C /* HCTestFailureReporterChain.h in Headers */, + 09FD24E9BA5A82B49DC864204C87A769 /* HCThrowsException.h in Headers */, + FF0B2BB7CE4C1BB1B1214FE060306F86 /* HCUnsignedCharReturnGetter.h in Headers */, + FB8FCA8FE9F99E0A7DC3CECF1EF710C3 /* HCUnsignedIntReturnGetter.h in Headers */, + 33FCB4D66747E80E5E7D4960139BBA3A /* HCUnsignedLongLongReturnGetter.h in Headers */, + C00E797911002F79E9EA05AB5E29366F /* HCUnsignedLongReturnGetter.h in Headers */, + 21E3C5DB6A5B227A52DFD172602A6DAA /* HCUnsignedShortReturnGetter.h in Headers */, + 68FE8B53B027FAEE3BA6EDA24662AE0A /* HCWrapInMatcher.h in Headers */, + 934B46D1AD29CA8748EB84731D651A19 /* HCXCTestFailureReporter.h in Headers */, + 443EEEBB90045FCD73E535D82166CD13 /* NSInvocation+OCHamcrest.h in Headers */, + 44AA0A0750382444C4C1EE22726336A5 /* OCHamcrest.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 5CCD2DAA3E3FA4F76C7873D2E5887F6F /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 3A5F2CC7E9347C9800D985CF9E2A3386 /* Callables.h in Headers */, + 2EB30AAEEFD2690F6DBBFC961A60B9CC /* Coercions.h in Headers */, + 63D10169AD67B22D56FAE04F009A9236 /* EasyEnumerable.h in Headers */, + B8DBDA42190564E6F192DB42604C027C /* EmptyEnumerator.h in Headers */, + 9EC5B406455365AA51738FB21EA3D5DE /* Enumerable.h in Headers */, + 108633472DCD234828BCC18B81365C75 /* EnumerateEnumerator.h in Headers */, + 38E408E294DECD3514C14342202DC8B3 /* FilterEnumerator.h in Headers */, + AC53A3CF006340BA3CD4CDA9A218A17C /* Flattenable.h in Headers */, + 58B91D59689EAF1A401BBD79014103A4 /* FlattenEnumerator.h in Headers */, + 04FB04D0D8AB9ED25DB726F8C1FC1E83 /* Foldable.h in Headers */, + C3EB0A8A110A552C99785787A90C6048 /* Function1.h in Headers */, + 03B003DBAAA7039E7FD6CB76367ABEB6 /* Function2.h in Headers */, + 831B2B473636258B33DDB78A51C9B0B7 /* Functions.h in Headers */, + 3EB2DB2C50A35F0CAA1DA4BECB24FEC3 /* Group.h in Headers */, + F882D84B5E0678B5D90EACCC0F65C30A /* GroupedEnumerator.h in Headers */, + CBB89C2D94195A735C923D4D7E9ABA27 /* MapEnumerator.h in Headers */, + 4A63351069C0D952B81FF27FC4691D1A /* Mappable.h in Headers */, + D1A4C11B1058A749F8C63EC874DAB39B /* MemoisedEnumerator.h in Headers */, + F30F241577F02577E1674FE115B787B5 /* MemoisedSequence.h in Headers */, + 74B8F80A9496E922CAF1E157CFC79AD6 /* MergeEnumerator.h in Headers */, + B0D81AB50C5D1B65E0D6F405CC703513 /* None.h in Headers */, + 27B237E419D11AFABA4FFD46F1C05438 /* NoSuchElementException.h in Headers */, + 4F6639AE8A91D05E0D92AC789632BEED /* NSArray+OCTotallyLazy.h in Headers */, + 68336F5C1407C1674CB4E20E6E2E611C /* NSDictionary+OCTotallyLazy.h in Headers */, + 5B3FDA0DFFD446937082B953291B18EA /* NSEnumerator+OCTotallyLazy.h in Headers */, + 6ABF6690CDD8A313EF5EE2D75C45B59E /* NSSet+OCTotallyLazy.h in Headers */, + 181EED324749CD2D5BABEBDCFBDB45DB /* Numbers.h in Headers */, + A0918619348752EDB3CE21627B42587D /* OCTotallyLazy.h in Headers */, + 8C927264ECC037CE804CD91FAA348E30 /* Option.h in Headers */, + 13B05051B1A10848ACA3F4050B3D9BB7 /* Pair.h in Headers */, + 7E932ABF6BB71C31576D512FC1900974 /* PairEnumerator.h in Headers */, + 3FFEA182F810DFEA15D509B3C71CB963 /* PartitionEnumerator.h in Headers */, + D8E06A3A891F9846C83C71DB834BA778 /* Predicates.h in Headers */, + E657088EDBD2A22235FE1B92301535A7 /* Queue.h in Headers */, + 787C2CF062EB1C1F54F944208910EDEF /* Range.h in Headers */, + 927D5AC908E4122C2336D2936806B590 /* RepeatEnumerator.h in Headers */, + 2BB9048F2106FF46928E5BE3CA13EFD5 /* Sequence.h in Headers */, + 7E0D49328D9277CDA3A4633899AACA9C /* SingleValueEnumerator.h in Headers */, + 227B7F7DCFC58B0BC446278D495CB877 /* Some.h in Headers */, + 380D6AF7401645D987999B641BE9336B /* TakeWhileEnumerator.h in Headers */, + DFB7F0445FAC83CCD9AD70BAFCBF9F46 /* Types.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + 2A023507EAD85F40065A236BE2F30BD4 /* OCHamcrest */ = { + isa = PBXNativeTarget; + buildConfigurationList = 6DA4F4B25E5B2D50D4B771BDF244DD5A /* Build configuration list for PBXNativeTarget "OCHamcrest" */; + buildPhases = ( + 95E9274A6A123033A3DA7FE43DAC83EA /* Sources */, + E2684B796CD50EC9C62AABFBE227D7AF /* Frameworks */, + 3B102CB771F2A4EB2A9D877124017675 /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = OCHamcrest; + productName = OCHamcrest; + productReference = 6CBA94790A7A14D38E11062B9EECF2E1 /* libOCHamcrest.a */; + productType = "com.apple.product-type.library.static"; + }; + 3C5C0A08E759FD7C25069EAAF019DAE3 /* Pods-UnitTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 62E5221493F4645D6E35487D999C2068 /* Build configuration list for PBXNativeTarget "Pods-UnitTests" */; + buildPhases = ( + 93947227DC61C992323F0F87588ED9A7 /* Sources */, + 4428CE549E4FD1C962EA0A093F84BFD5 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Pods-UnitTests"; + productName = "Pods-UnitTests"; + productReference = BD3A85E8698191AD11C7064F2E93D332 /* libPods-UnitTests.a */; + productType = "com.apple.product-type.library.static"; + }; + 58B3E9A70CFB997362BCF1A913180B62 /* OCTotallyLazy */ = { + isa = PBXNativeTarget; + buildConfigurationList = 2A306C8F1E890CF8956435EBA5F389C9 /* Build configuration list for PBXNativeTarget "OCTotallyLazy" */; + buildPhases = ( + D4BBF73F66905FBCB17CF29278A12F25 /* Sources */, + 80C0F28A243AEF78BB34528381A49D27 /* Frameworks */, + 5CCD2DAA3E3FA4F76C7873D2E5887F6F /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = OCTotallyLazy; + productName = OCTotallyLazy; + productReference = 6095EFA411B436890C86CA0201C0C6A0 /* libOCTotallyLazy.a */; + productType = "com.apple.product-type.library.static"; + }; + 63DF4D7539369C42C3F824B54CEFE732 /* Pods-Group Works */ = { + isa = PBXNativeTarget; + buildConfigurationList = C7CD2DE54B1DD8367979D25F25015AFD /* Build configuration list for PBXNativeTarget "Pods-Group Works" */; + buildPhases = ( + ED1DEAE689A2CA86E9E3EF6610B20EE2 /* Sources */, + 6D1BCAF37C9D0477C42ABFCC978D07AF /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 6C47C7CD005243C3A8E083670D112FAC /* PBXTargetDependency */, + 53635E63E4C6494B5235AE4E74E0F054 /* PBXTargetDependency */, + ); + name = "Pods-Group Works"; + productName = "Pods-Group Works"; + productReference = 0F2463F248C8A9E3A8FCF9747C2C2F1D /* libPods-Group Works.a */; + productType = "com.apple.product-type.library.static"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D41D8CD98F00B204E9800998ECF8427E /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 0830; + LastUpgradeCheck = 0700; + }; + buildConfigurationList = 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = 7DB346D0F39D3F0E887471402A8071AB; + productRefGroup = 623DA4EFCFFDB69718E1B72D2497DD7D /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 2A023507EAD85F40065A236BE2F30BD4 /* OCHamcrest */, + 58B3E9A70CFB997362BCF1A913180B62 /* OCTotallyLazy */, + 63DF4D7539369C42C3F824B54CEFE732 /* Pods-Group Works */, + 3C5C0A08E759FD7C25069EAAF019DAE3 /* Pods-UnitTests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXSourcesBuildPhase section */ + 93947227DC61C992323F0F87588ED9A7 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + A366D409BC7E3011DD32DE061ABA0A9E /* Pods-UnitTests-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 95E9274A6A123033A3DA7FE43DAC83EA /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 0F83944F720385C478D3EC37284BA221 /* HCAllOf.m in Sources */, + FEF95A7A09440090BC48F8F163A80F62 /* HCAnyOf.m in Sources */, + E8E83EFDE67BEA503DA66DB23AC36730 /* HCArgumentCaptor.m in Sources */, + 181CECBD0C564EB943377CE91D66F1EF /* HCAssertThat.m in Sources */, + 5A1C892A751072E3215DF739785C3C9D /* HCBaseDescription.m in Sources */, + 918223EDD9F228F8A1D692717DFDEE01 /* HCBaseMatcher.m in Sources */, + C482D613FF8EC7E9AB358F63FC4452DE /* HCBoolReturnGetter.m in Sources */, + 40433F794DBDEEF942DBAEC3A7F2F57A /* HCCharReturnGetter.m in Sources */, + C2DB2DD71D5FF65C3C11B177E74FCA99 /* HCClassMatcher.m in Sources */, + 50E28311ECD0CCD8FE9F0C76E159424D /* HCCollect.m in Sources */, + 2F8EFA2BB04F32CBA5D65DD22347B7F2 /* HCConformsToProtocol.m in Sources */, + 34D94EF9C0F388973DA7E3888176BC5A /* HCDescribedAs.m in Sources */, + 79228A43A1E24FA04CFE8E85ABD7750A /* HCDiagnosingMatcher.m in Sources */, + 8F253D19B6989A4C47A6CC41C6EC489A /* HCDoubleReturnGetter.m in Sources */, + B7B482EC3A6D8835E5DCAB3B585D5F37 /* HCEvery.m in Sources */, + EEE0AC9789EA2632A6945903582A6491 /* HCFloatReturnGetter.m in Sources */, + 2378B551E8CB22EB7C1D27C628B1F018 /* HCGenericTestFailureReporter.m in Sources */, + B4E6183EBA754F2560BCB39671D749D9 /* HCHasCount.m in Sources */, + C2344B694D92938A47D5176E7A2888A1 /* HCHasDescription.m in Sources */, + 60FC33748AD0D0CEACFE49B992DC76A3 /* HCHasProperty.m in Sources */, + 0807FC2B0839A6597854038D4CB96B1E /* HCIntReturnGetter.m in Sources */, + 3A3BC20A2B71BB48F16CEAC8C635D7E7 /* HCInvocationMatcher.m in Sources */, + D6B7ECDD01D1C3D405BADBFD90DE2263 /* HCIs.m in Sources */, + 93CFD6EC78CC1928393B4FF964B05E33 /* HCIsAnything.m in Sources */, + EA36A6ECF441620A4EE6FA5E5BB01612 /* HCIsCloseTo.m in Sources */, + 2ED63220C96024BA69C74C9F6711F948 /* HCIsCollectionContaining.m in Sources */, + F851556734A1D4B34C85EFD1C404D6EA /* HCIsCollectionContainingInAnyOrder.m in Sources */, + E930BD124E225782E79E60E478E07202 /* HCIsCollectionContainingInOrder.m in Sources */, + 60170D8CEE3BA8886464FB0F2F562C5F /* HCIsCollectionContainingInRelativeOrder.m in Sources */, + 5D6AACBDC690057A71508062B5E2D27E /* HCIsCollectionOnlyContaining.m in Sources */, + 09A99EC7EF2C612F6B58A01AABBCC6BD /* HCIsDictionaryContaining.m in Sources */, + 3005288A96890D8DA44AE8082F8B144D /* HCIsDictionaryContainingEntries.m in Sources */, + E94C7F819B9722FCE87C421B10A04540 /* HCIsDictionaryContainingKey.m in Sources */, + BC35E114B1BB85AB705DE6D738D6687C /* HCIsDictionaryContainingValue.m in Sources */, + F4A43546DD33C4076998738A4BF5D8C4 /* HCIsEmptyCollection.m in Sources */, + 52F1A4E78E7D6B828B2F64B1A1B2F630 /* HCIsEqual.m in Sources */, + 58DE67301D844F88AEEFF22F50B50BB4 /* HCIsEqualCompressingWhiteSpace.m in Sources */, + 2B393C8CC5F0368429F2E9AF02690E65 /* HCIsEqualIgnoringCase.m in Sources */, + CD5E247FD8A778FD2F3F95EAF523B7CC /* HCIsEqualToNumber.m in Sources */, + 7ADBA41ADAB8CF1FF4FE57EE5CD5685B /* HCIsIn.m in Sources */, + 63D30A9B7FBE489F3060F3B948316AE5 /* HCIsInstanceOf.m in Sources */, + 4D4B917C68C02C18A38CE9B758D9722A /* HCIsNil.m in Sources */, + 66462E8727F0BC1872D70EDD9A6781CE /* HCIsNot.m in Sources */, + 9FE46E371DE1ABAAB75CFB84055A398E /* HCIsSame.m in Sources */, + D31B816CFD40961DA3F5D991B412D10E /* HCIsTrueFalse.m in Sources */, + 5439B3FC5273FEC2F95B5F94953CEB95 /* HCIsTypeOf.m in Sources */, + C5AB285569224A4A78CAC2D6DAFF5D17 /* HCLongLongReturnGetter.m in Sources */, + 1D76E5FE5FE2543913DA132DC3199789 /* HCLongReturnGetter.m in Sources */, + ECEA4A414DC118AAD5919FBEB36CB3A3 /* HCNumberAssert.m in Sources */, + 7AB1DA6A685DFA9A5FFCAF103336533D /* HCObjectReturnGetter.m in Sources */, + AFD62E72EC16582EEAE1BA37FE08E118 /* HCOrderingComparison.m in Sources */, + 4AA4DB1E5F810AD0209C8EA2C05BCB2E /* HCRequireNonNilObject.m in Sources */, + C0A83FDDBFD30DDAD8D0FF34A543A0A1 /* HCReturnTypeHandlerChain.m in Sources */, + 72B46B0DEE3A136FEF0E699F8A4B9A07 /* HCReturnValueGetter.m in Sources */, + E4291A4EC98C6A47894373C3137BD165 /* HCRunloopRunner.m in Sources */, + C4EFC06E77A30C77E6038303235274FE /* HCSenTestFailureReporter.m in Sources */, + F90ED912F2C4E0A45D59989A96F3D0DF /* HCShortReturnGetter.m in Sources */, + C8E5699A7E22ADE2A201C80E953455B7 /* HCStringContains.m in Sources */, + D918057EDC0F913FB2189882E1C4F416 /* HCStringContainsInOrder.m in Sources */, + DF30039166416C87A644F4C5401E0412 /* HCStringDescription.m in Sources */, + A627CDD8FF1ED0215C015FE1FB6DC46F /* HCStringEndsWith.m in Sources */, + F26C0AD2F6B0AE517FF98FF673409148 /* HCStringStartsWith.m in Sources */, + 022C8A2548127C088B2E6F2AAE05C2F7 /* HCSubstringMatcher.m in Sources */, + F6C7E7053C3B4229E79E1277C85D56AE /* HCTestFailure.m in Sources */, + 30AC8352FE6DC9288EEA2843BD47F50B /* HCTestFailureReporter.m in Sources */, + 3FA6F90D2C62D8C0AF6A3BBA340A9197 /* HCTestFailureReporterChain.m in Sources */, + B21CE4EE0FB3C67A343C64DB1A66B46C /* HCThrowsException.m in Sources */, + 6A2DD2B93A873F2D1AD48290D395CE91 /* HCUnsignedCharReturnGetter.m in Sources */, + 8BDABAB60A8ECAE98DB6809D3DAD00F7 /* HCUnsignedIntReturnGetter.m in Sources */, + 4B15464728C5BF64ED59A92E0A9FD7CD /* HCUnsignedLongLongReturnGetter.m in Sources */, + 3C26E9D180D59C3C712495E0A45505CC /* HCUnsignedLongReturnGetter.m in Sources */, + 22667E8CDAEDCEF418400920AB8992C5 /* HCUnsignedShortReturnGetter.m in Sources */, + 8C1F01E889E5E1401987289B2DA37EF3 /* HCWrapInMatcher.m in Sources */, + 1D4ABBB14B5A787423B5F23D03656630 /* HCXCTestFailureReporter.m in Sources */, + 0775D317659539AF28CD2AF839015E65 /* NSInvocation+OCHamcrest.m in Sources */, + B461A4DF620AF5EE42FDE46388A6D27C /* OCHamcrest-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D4BBF73F66905FBCB17CF29278A12F25 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 1F10FC092D9F76E371228118AE4A3481 /* Callables.m in Sources */, + 68CE9E2D75324A2B567906AD1BE389BF /* EasyEnumerable.m in Sources */, + F7C1484FD83F6DB82AF3823FD1A89AA2 /* EmptyEnumerator.m in Sources */, + E9D610594E2EAB121A47ECE5531B0888 /* EnumerateEnumerator.m in Sources */, + ED9222885C1FC627C9036CD3E626369E /* FilterEnumerator.m in Sources */, + CFC983F31FE03792FBB448A3108AD590 /* FlattenEnumerator.m in Sources */, + 8FF54618E7C747A9027A833C6A15698E /* Function1.m in Sources */, + 7E59C7C270D6E569B0FACCFF9F71A21A /* Function2.m in Sources */, + E3D246BB3F487AB28A0DD5771B27B1EC /* Functions.m in Sources */, + D5B6EBDBDBB35D37A4065BFEF8EF360B /* Group.m in Sources */, + 42469565212E5536B1F1512F83B2AA5D /* GroupedEnumerator.m in Sources */, + 996BA786FEE0836944CB6B33F961DC0C /* MapEnumerator.m in Sources */, + FE7E68BA5FF8961D7CE0414C9D288ED4 /* MemoisedEnumerator.m in Sources */, + 6ADA0A3D209458EE1EE448CBB16F5687 /* MemoisedSequence.m in Sources */, + 7681D42A1D7F09D90BA3343F1344E365 /* MergeEnumerator.m in Sources */, + 6C728509330E0E38BE078718F534245F /* None.m in Sources */, + 7263FD6C1C9A342180716EFF5AD50A7C /* NoSuchElementException.m in Sources */, + 505D4D0201B6801CE2617C97D21913C2 /* NSArray+OCTotallyLazy.m in Sources */, + 27F1450D622576712FAD6CA41BA6A953 /* NSDictionary+OCTotallyLazy.m in Sources */, + C05D04DB2093D0859089256C6510081E /* NSEnumerator+OCTotallyLazy.m in Sources */, + 93A8EEB35CA6178F3CE2693D8140A654 /* NSSet+OCTotallyLazy.m in Sources */, + 1DF7D331C7B545215F26F16AD1BB7B5F /* Numbers.m in Sources */, + 20934A2659EF0E72A74B0C1244F4DCEE /* OCTotallyLazy-dummy.m in Sources */, + CC861938CEC776F19E54CE239ED299B2 /* Option.m in Sources */, + 72CF0ECD59174095F1AECD4A20B4C96D /* Pair.m in Sources */, + 8649B8895BAA0ADAC1BE84FB0209038E /* PairEnumerator.m in Sources */, + 5AAE23F8AEBAB2D5A01F839DED878D5D /* PartitionEnumerator.m in Sources */, + 10A919492D37D3ED515E8B3DE3887909 /* Predicates.m in Sources */, + CE2F2B053480BD559603594777AC7E16 /* Queue.m in Sources */, + CC98099A62CC1C4CE77EC11EDDEC95D8 /* Range.m in Sources */, + 01E533A85968A9A98199BED53EE078B7 /* RepeatEnumerator.m in Sources */, + 9D2FA4C3C10DB753C98EF89A3EBAE968 /* Sequence.m in Sources */, + 3285E513AC174013F26E00F1155D398D /* SingleValueEnumerator.m in Sources */, + 38F3334DDAB8561E1F9EA2EDA0421221 /* Some.m in Sources */, + B5B3ABA08C2A184CBDC371829B6A6DD9 /* TakeWhileEnumerator.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + ED1DEAE689A2CA86E9E3EF6610B20EE2 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + C21899B9BC45BCDC22468C626EAA913D /* Pods-Group Works-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 53635E63E4C6494B5235AE4E74E0F054 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = OCTotallyLazy; + target = 58B3E9A70CFB997362BCF1A913180B62 /* OCTotallyLazy */; + targetProxy = 50C4DB046D53B22852B6D988EE3C6B6B /* PBXContainerItemProxy */; + }; + 6C47C7CD005243C3A8E083670D112FAC /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = OCHamcrest; + target = 2A023507EAD85F40065A236BE2F30BD4 /* OCHamcrest */; + targetProxy = A8DC2E90E991F2C21E646E749C744CF1 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 27A052B71AFA5B1A83AB880CC7E603BC /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGNING_REQUIRED = NO; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "POD_CONFIGURATION_DEBUG=1", + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/; + STRIP_INSTALLED_PRODUCT = NO; + SYMROOT = "${SRCROOT}/../build"; + }; + name = Debug; + }; + 2D8BCA1E3FB92993F50A2BC27F8E110E /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 2B89694451C00B133BFA8F4E5EA3DDC5 /* Pods-Group Works.release.xcconfig */; + buildSettings = { + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + IPHONEOS_DEPLOYMENT_TARGET = 9.3; + MACH_O_TYPE = staticlib; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 4C7F1A5AC5389C0595C17CFFAEDE32FA /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 1E286FEDFC94EEE40B08DE264328CE06 /* Pods-UnitTests.release.xcconfig */; + buildSettings = { + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MACH_O_TYPE = staticlib; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 626E60038EDE30FEEE684D10509FB046 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = D7805CD70ADA6A443754E8E28DA0E1F2 /* Pods-Group Works.debug.xcconfig */; + buildSettings = { + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + IPHONEOS_DEPLOYMENT_TARGET = 9.3; + MACH_O_TYPE = staticlib; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 64B49EEEEA179D211579254ACF624AE7 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 61A2A49871CC77E3F508472C440B2E40 /* Pods-UnitTests.debug.xcconfig */; + buildSettings = { + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MACH_O_TYPE = staticlib; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 6FACE7443F45DE049111BDB60AB0DC98 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 87B85CFBC8BDDCFEA7F192DF0ABC25EB /* OCHamcrest.xcconfig */; + buildSettings = { + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + GCC_PREFIX_HEADER = "Target Support Files/OCHamcrest/OCHamcrest-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRIVATE_HEADERS_FOLDER_PATH = ""; + PUBLIC_HEADERS_FOLDER_PATH = ""; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 74046420739F07043D0D46BA20D057FC /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7F9CEE33E072E2070189C7FDF5E4626A /* OCTotallyLazy.xcconfig */; + buildSettings = { + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + GCC_PREFIX_HEADER = "Target Support Files/OCTotallyLazy/OCTotallyLazy-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 5.0; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRIVATE_HEADERS_FOLDER_PATH = ""; + PUBLIC_HEADERS_FOLDER_PATH = ""; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + A733DEBC1738C344247909CB11474C3E /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7F9CEE33E072E2070189C7FDF5E4626A /* OCTotallyLazy.xcconfig */; + buildSettings = { + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + GCC_PREFIX_HEADER = "Target Support Files/OCTotallyLazy/OCTotallyLazy-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 5.0; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRIVATE_HEADERS_FOLDER_PATH = ""; + PUBLIC_HEADERS_FOLDER_PATH = ""; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + B254DAA6CF0CE39F4A3D11B90A7E059A /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGNING_REQUIRED = NO; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREPROCESSOR_DEFINITIONS = ( + "POD_CONFIGURATION_RELEASE=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/; + STRIP_INSTALLED_PRODUCT = NO; + SYMROOT = "${SRCROOT}/../build"; + }; + name = Release; + }; + B8606F1E549FFA009248A20589BB88AD /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 87B85CFBC8BDDCFEA7F192DF0ABC25EB /* OCHamcrest.xcconfig */; + buildSettings = { + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + GCC_PREFIX_HEADER = "Target Support Files/OCHamcrest/OCHamcrest-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRIVATE_HEADERS_FOLDER_PATH = ""; + PUBLIC_HEADERS_FOLDER_PATH = ""; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 2A306C8F1E890CF8956435EBA5F389C9 /* Build configuration list for PBXNativeTarget "OCTotallyLazy" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 74046420739F07043D0D46BA20D057FC /* Debug */, + A733DEBC1738C344247909CB11474C3E /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 27A052B71AFA5B1A83AB880CC7E603BC /* Debug */, + B254DAA6CF0CE39F4A3D11B90A7E059A /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 62E5221493F4645D6E35487D999C2068 /* Build configuration list for PBXNativeTarget "Pods-UnitTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 64B49EEEEA179D211579254ACF624AE7 /* Debug */, + 4C7F1A5AC5389C0595C17CFFAEDE32FA /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 6DA4F4B25E5B2D50D4B771BDF244DD5A /* Build configuration list for PBXNativeTarget "OCHamcrest" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 6FACE7443F45DE049111BDB60AB0DC98 /* Debug */, + B8606F1E549FFA009248A20589BB88AD /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + C7CD2DE54B1DD8367979D25F25015AFD /* Build configuration list for PBXNativeTarget "Pods-Group Works" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 626E60038EDE30FEEE684D10509FB046 /* Debug */, + 2D8BCA1E3FB92993F50A2BC27F8E110E /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = D41D8CD98F00B204E9800998ECF8427E /* Project object */; +} diff --git a/Pods/Target Support Files/OCHamcrest/OCHamcrest-dummy.m b/Pods/Target Support Files/OCHamcrest/OCHamcrest-dummy.m new file mode 100644 index 0000000..a0a4cff --- /dev/null +++ b/Pods/Target Support Files/OCHamcrest/OCHamcrest-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_OCHamcrest : NSObject +@end +@implementation PodsDummy_OCHamcrest +@end diff --git a/Pods/Target Support Files/OCHamcrest/OCHamcrest-prefix.pch b/Pods/Target Support Files/OCHamcrest/OCHamcrest-prefix.pch new file mode 100644 index 0000000..beb2a24 --- /dev/null +++ b/Pods/Target Support Files/OCHamcrest/OCHamcrest-prefix.pch @@ -0,0 +1,12 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + diff --git a/Pods/Target Support Files/OCHamcrest/OCHamcrest.xcconfig b/Pods/Target Support Files/OCHamcrest/OCHamcrest.xcconfig new file mode 100644 index 0000000..8719fa3 --- /dev/null +++ b/Pods/Target Support Files/OCHamcrest/OCHamcrest.xcconfig @@ -0,0 +1,9 @@ +CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/OCHamcrest +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/OCHamcrest" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/OCHamcrest" "${PODS_ROOT}/Headers/Public/OCTotallyLazy" +PODS_BUILD_DIR = $BUILD_DIR +PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/OCHamcrest +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES diff --git a/Pods/Target Support Files/OCTotallyLazy/OCTotallyLazy-dummy.m b/Pods/Target Support Files/OCTotallyLazy/OCTotallyLazy-dummy.m new file mode 100644 index 0000000..39f9806 --- /dev/null +++ b/Pods/Target Support Files/OCTotallyLazy/OCTotallyLazy-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_OCTotallyLazy : NSObject +@end +@implementation PodsDummy_OCTotallyLazy +@end diff --git a/Pods/Target Support Files/OCTotallyLazy/OCTotallyLazy-prefix.pch b/Pods/Target Support Files/OCTotallyLazy/OCTotallyLazy-prefix.pch new file mode 100644 index 0000000..beb2a24 --- /dev/null +++ b/Pods/Target Support Files/OCTotallyLazy/OCTotallyLazy-prefix.pch @@ -0,0 +1,12 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + diff --git a/Pods/Target Support Files/OCTotallyLazy/OCTotallyLazy.xcconfig b/Pods/Target Support Files/OCTotallyLazy/OCTotallyLazy.xcconfig new file mode 100644 index 0000000..71232f5 --- /dev/null +++ b/Pods/Target Support Files/OCTotallyLazy/OCTotallyLazy.xcconfig @@ -0,0 +1,9 @@ +CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/OCTotallyLazy +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/OCTotallyLazy" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/OCHamcrest" "${PODS_ROOT}/Headers/Public/OCTotallyLazy" +PODS_BUILD_DIR = $BUILD_DIR +PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/OCTotallyLazy +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES diff --git a/Pods/Target Support Files/Pods-Group Works/Pods-Group Works-acknowledgements.markdown b/Pods/Target Support Files/Pods-Group Works/Pods-Group Works-acknowledgements.markdown new file mode 100644 index 0000000..1cbedfc --- /dev/null +++ b/Pods/Target Support Files/Pods-Group Works/Pods-Group Works-acknowledgements.markdown @@ -0,0 +1,226 @@ +# Acknowledgements +This application makes use of the following third party libraries: + +## OCHamcrest + +OCHamcrest by Jon Reid, https://qualitycoding.org/ +Copyright 2017 hamcrest.org +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 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. + +Neither the name of Hamcrest nor the names of its 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 OWNER 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. + +(BSD License) + + +## OCTotallyLazy + + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +Generated by CocoaPods - https://cocoapods.org diff --git a/Pods/Target Support Files/Pods-Group Works/Pods-Group Works-acknowledgements.plist b/Pods/Target Support Files/Pods-Group Works/Pods-Group Works-acknowledgements.plist new file mode 100644 index 0000000..06fdba0 --- /dev/null +++ b/Pods/Target Support Files/Pods-Group Works/Pods-Group Works-acknowledgements.plist @@ -0,0 +1,264 @@ + + + + + PreferenceSpecifiers + + + FooterText + This application makes use of the following third party libraries: + Title + Acknowledgements + Type + PSGroupSpecifier + + + FooterText + OCHamcrest by Jon Reid, https://qualitycoding.org/ +Copyright 2017 hamcrest.org +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 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. + +Neither the name of Hamcrest nor the names of its 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 OWNER 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. + +(BSD License) + + License + BSD + Title + OCHamcrest + Type + PSGroupSpecifier + + + FooterText + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + License + Apache License, Version 2.0 + Title + OCTotallyLazy + Type + PSGroupSpecifier + + + FooterText + Generated by CocoaPods - https://cocoapods.org + Title + + Type + PSGroupSpecifier + + + StringsTable + Acknowledgements + Title + Acknowledgements + + diff --git a/Pods/Target Support Files/Pods-Group Works/Pods-Group Works-dummy.m b/Pods/Target Support Files/Pods-Group Works/Pods-Group Works-dummy.m new file mode 100644 index 0000000..4f5079a --- /dev/null +++ b/Pods/Target Support Files/Pods-Group Works/Pods-Group Works-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_Group_Works : NSObject +@end +@implementation PodsDummy_Pods_Group_Works +@end diff --git a/Pods/Target Support Files/Pods-Group Works/Pods-Group Works-frameworks.sh b/Pods/Target Support Files/Pods-Group Works/Pods-Group Works-frameworks.sh new file mode 100755 index 0000000..0f29f13 --- /dev/null +++ b/Pods/Target Support Files/Pods-Group Works/Pods-Group Works-frameworks.sh @@ -0,0 +1,92 @@ +#!/bin/sh +set -e + +echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" +mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + +SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" + +install_framework() +{ + if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then + local source="${BUILT_PRODUCTS_DIR}/$1" + elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then + local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")" + elif [ -r "$1" ]; then + local source="$1" + fi + + local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + + if [ -L "${source}" ]; then + echo "Symlinked..." + source="$(readlink "${source}")" + fi + + # use filter instead of exclude so missing patterns dont' throw errors + echo "rsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" + rsync -av --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" + + local basename + basename="$(basename -s .framework "$1")" + binary="${destination}/${basename}.framework/${basename}" + if ! [ -r "$binary" ]; then + binary="${destination}/${basename}" + fi + + # Strip invalid architectures so "fat" simulator / device frameworks work on device + if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then + strip_invalid_archs "$binary" + fi + + # Resign the code if required by the build settings to avoid unstable apps + code_sign_if_enabled "${destination}/$(basename "$1")" + + # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. + if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then + local swift_runtime_libs + swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u && exit ${PIPESTATUS[0]}) + for lib in $swift_runtime_libs; do + echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" + rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" + code_sign_if_enabled "${destination}/${lib}" + done + fi +} + +# Signs a framework with the provided identity +code_sign_if_enabled() { + if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then + # Use the current code_sign_identitiy + echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" + local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements '$1'" + + if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then + code_sign_cmd="$code_sign_cmd &" + fi + echo "$code_sign_cmd" + eval "$code_sign_cmd" + fi +} + +# Strip invalid architectures +strip_invalid_archs() { + binary="$1" + # Get architectures for current file + archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | rev)" + stripped="" + for arch in $archs; do + if ! [[ "${VALID_ARCHS}" == *"$arch"* ]]; then + # Strip non-valid architectures in-place + lipo -remove "$arch" -output "$binary" "$binary" || exit 1 + stripped="$stripped $arch" + fi + done + if [[ "$stripped" ]]; then + echo "Stripped $binary of architectures:$stripped" + fi +} + +if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then + wait +fi diff --git a/Pods/Target Support Files/Pods-Group Works/Pods-Group Works-resources.sh b/Pods/Target Support Files/Pods-Group Works/Pods-Group Works-resources.sh new file mode 100755 index 0000000..aed060f --- /dev/null +++ b/Pods/Target Support Files/Pods-Group Works/Pods-Group Works-resources.sh @@ -0,0 +1,102 @@ +#!/bin/sh +set -e + +mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + +RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt +> "$RESOURCES_TO_COPY" + +XCASSET_FILES=() + +case "${TARGETED_DEVICE_FAMILY}" in + 1,2) + TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" + ;; + 1) + TARGET_DEVICE_ARGS="--target-device iphone" + ;; + 2) + TARGET_DEVICE_ARGS="--target-device ipad" + ;; + 3) + TARGET_DEVICE_ARGS="--target-device tv" + ;; + 4) + TARGET_DEVICE_ARGS="--target-device watch" + ;; + *) + TARGET_DEVICE_ARGS="--target-device mac" + ;; +esac + +install_resource() +{ + if [[ "$1" = /* ]] ; then + RESOURCE_PATH="$1" + else + RESOURCE_PATH="${PODS_ROOT}/$1" + fi + if [[ ! -e "$RESOURCE_PATH" ]] ; then + cat << EOM +error: Resource "$RESOURCE_PATH" not found. Run 'pod install' to update the copy resources script. +EOM + exit 1 + fi + case $RESOURCE_PATH in + *.storyboard) + echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" + ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} + ;; + *.xib) + echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" + ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} + ;; + *.framework) + echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + echo "rsync -av $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + rsync -av "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + ;; + *.xcdatamodel) + echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" + xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom" + ;; + *.xcdatamodeld) + echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" + xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd" + ;; + *.xcmappingmodel) + echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" + xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm" + ;; + *.xcassets) + ABSOLUTE_XCASSET_FILE="$RESOURCE_PATH" + XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE") + ;; + *) + echo "$RESOURCE_PATH" + echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY" + ;; + esac +} + +mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then + mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +fi +rm -f "$RESOURCES_TO_COPY" + +if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "$XCASSET_FILES" ] +then + # Find all other xcassets (this unfortunately includes those of path pods and other targets). + OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d) + while read line; do + if [[ $line != "${PODS_ROOT}*" ]]; then + XCASSET_FILES+=("$line") + fi + done <<<"$OTHER_XCASSETS" + + printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +fi diff --git a/Pods/Target Support Files/Pods-Group Works/Pods-Group Works.debug.xcconfig b/Pods/Target Support Files/Pods-Group Works/Pods-Group Works.debug.xcconfig new file mode 100644 index 0000000..538ab8a --- /dev/null +++ b/Pods/Target Support Files/Pods-Group Works/Pods-Group Works.debug.xcconfig @@ -0,0 +1,9 @@ +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/OCHamcrest" "${PODS_ROOT}/Headers/Public/OCTotallyLazy" +LIBRARY_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/OCHamcrest" "$PODS_CONFIGURATION_BUILD_DIR/OCTotallyLazy" +OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/OCHamcrest" -isystem "${PODS_ROOT}/Headers/Public/OCTotallyLazy" +OTHER_LDFLAGS = $(inherited) -ObjC -l"OCHamcrest" -l"OCTotallyLazy" +PODS_BUILD_DIR = $BUILD_DIR +PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods diff --git a/Pods/Target Support Files/Pods-Group Works/Pods-Group Works.release.xcconfig b/Pods/Target Support Files/Pods-Group Works/Pods-Group Works.release.xcconfig new file mode 100644 index 0000000..538ab8a --- /dev/null +++ b/Pods/Target Support Files/Pods-Group Works/Pods-Group Works.release.xcconfig @@ -0,0 +1,9 @@ +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/OCHamcrest" "${PODS_ROOT}/Headers/Public/OCTotallyLazy" +LIBRARY_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/OCHamcrest" "$PODS_CONFIGURATION_BUILD_DIR/OCTotallyLazy" +OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/OCHamcrest" -isystem "${PODS_ROOT}/Headers/Public/OCTotallyLazy" +OTHER_LDFLAGS = $(inherited) -ObjC -l"OCHamcrest" -l"OCTotallyLazy" +PODS_BUILD_DIR = $BUILD_DIR +PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods diff --git a/Pods/Target Support Files/Pods-UnitTests/Pods-UnitTests-acknowledgements.markdown b/Pods/Target Support Files/Pods-UnitTests/Pods-UnitTests-acknowledgements.markdown new file mode 100644 index 0000000..102af75 --- /dev/null +++ b/Pods/Target Support Files/Pods-UnitTests/Pods-UnitTests-acknowledgements.markdown @@ -0,0 +1,3 @@ +# Acknowledgements +This application makes use of the following third party libraries: +Generated by CocoaPods - https://cocoapods.org diff --git a/Pods/Target Support Files/Pods-UnitTests/Pods-UnitTests-acknowledgements.plist b/Pods/Target Support Files/Pods-UnitTests/Pods-UnitTests-acknowledgements.plist new file mode 100644 index 0000000..7acbad1 --- /dev/null +++ b/Pods/Target Support Files/Pods-UnitTests/Pods-UnitTests-acknowledgements.plist @@ -0,0 +1,29 @@ + + + + + PreferenceSpecifiers + + + FooterText + This application makes use of the following third party libraries: + Title + Acknowledgements + Type + PSGroupSpecifier + + + FooterText + Generated by CocoaPods - https://cocoapods.org + Title + + Type + PSGroupSpecifier + + + StringsTable + Acknowledgements + Title + Acknowledgements + + diff --git a/Pods/Target Support Files/Pods-UnitTests/Pods-UnitTests-dummy.m b/Pods/Target Support Files/Pods-UnitTests/Pods-UnitTests-dummy.m new file mode 100644 index 0000000..21f7e28 --- /dev/null +++ b/Pods/Target Support Files/Pods-UnitTests/Pods-UnitTests-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_UnitTests : NSObject +@end +@implementation PodsDummy_Pods_UnitTests +@end diff --git a/Pods/Target Support Files/Pods-UnitTests/Pods-UnitTests-frameworks.sh b/Pods/Target Support Files/Pods-UnitTests/Pods-UnitTests-frameworks.sh new file mode 100755 index 0000000..0f29f13 --- /dev/null +++ b/Pods/Target Support Files/Pods-UnitTests/Pods-UnitTests-frameworks.sh @@ -0,0 +1,92 @@ +#!/bin/sh +set -e + +echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" +mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + +SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" + +install_framework() +{ + if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then + local source="${BUILT_PRODUCTS_DIR}/$1" + elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then + local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")" + elif [ -r "$1" ]; then + local source="$1" + fi + + local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + + if [ -L "${source}" ]; then + echo "Symlinked..." + source="$(readlink "${source}")" + fi + + # use filter instead of exclude so missing patterns dont' throw errors + echo "rsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" + rsync -av --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" + + local basename + basename="$(basename -s .framework "$1")" + binary="${destination}/${basename}.framework/${basename}" + if ! [ -r "$binary" ]; then + binary="${destination}/${basename}" + fi + + # Strip invalid architectures so "fat" simulator / device frameworks work on device + if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then + strip_invalid_archs "$binary" + fi + + # Resign the code if required by the build settings to avoid unstable apps + code_sign_if_enabled "${destination}/$(basename "$1")" + + # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. + if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then + local swift_runtime_libs + swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u && exit ${PIPESTATUS[0]}) + for lib in $swift_runtime_libs; do + echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" + rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" + code_sign_if_enabled "${destination}/${lib}" + done + fi +} + +# Signs a framework with the provided identity +code_sign_if_enabled() { + if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then + # Use the current code_sign_identitiy + echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" + local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements '$1'" + + if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then + code_sign_cmd="$code_sign_cmd &" + fi + echo "$code_sign_cmd" + eval "$code_sign_cmd" + fi +} + +# Strip invalid architectures +strip_invalid_archs() { + binary="$1" + # Get architectures for current file + archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | rev)" + stripped="" + for arch in $archs; do + if ! [[ "${VALID_ARCHS}" == *"$arch"* ]]; then + # Strip non-valid architectures in-place + lipo -remove "$arch" -output "$binary" "$binary" || exit 1 + stripped="$stripped $arch" + fi + done + if [[ "$stripped" ]]; then + echo "Stripped $binary of architectures:$stripped" + fi +} + +if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then + wait +fi diff --git a/Pods/Target Support Files/Pods-UnitTests/Pods-UnitTests-resources.sh b/Pods/Target Support Files/Pods-UnitTests/Pods-UnitTests-resources.sh new file mode 100755 index 0000000..aed060f --- /dev/null +++ b/Pods/Target Support Files/Pods-UnitTests/Pods-UnitTests-resources.sh @@ -0,0 +1,102 @@ +#!/bin/sh +set -e + +mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + +RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt +> "$RESOURCES_TO_COPY" + +XCASSET_FILES=() + +case "${TARGETED_DEVICE_FAMILY}" in + 1,2) + TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" + ;; + 1) + TARGET_DEVICE_ARGS="--target-device iphone" + ;; + 2) + TARGET_DEVICE_ARGS="--target-device ipad" + ;; + 3) + TARGET_DEVICE_ARGS="--target-device tv" + ;; + 4) + TARGET_DEVICE_ARGS="--target-device watch" + ;; + *) + TARGET_DEVICE_ARGS="--target-device mac" + ;; +esac + +install_resource() +{ + if [[ "$1" = /* ]] ; then + RESOURCE_PATH="$1" + else + RESOURCE_PATH="${PODS_ROOT}/$1" + fi + if [[ ! -e "$RESOURCE_PATH" ]] ; then + cat << EOM +error: Resource "$RESOURCE_PATH" not found. Run 'pod install' to update the copy resources script. +EOM + exit 1 + fi + case $RESOURCE_PATH in + *.storyboard) + echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" + ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} + ;; + *.xib) + echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" + ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} + ;; + *.framework) + echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + echo "rsync -av $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + rsync -av "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + ;; + *.xcdatamodel) + echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" + xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom" + ;; + *.xcdatamodeld) + echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" + xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd" + ;; + *.xcmappingmodel) + echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" + xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm" + ;; + *.xcassets) + ABSOLUTE_XCASSET_FILE="$RESOURCE_PATH" + XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE") + ;; + *) + echo "$RESOURCE_PATH" + echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY" + ;; + esac +} + +mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then + mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +fi +rm -f "$RESOURCES_TO_COPY" + +if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "$XCASSET_FILES" ] +then + # Find all other xcassets (this unfortunately includes those of path pods and other targets). + OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d) + while read line; do + if [[ $line != "${PODS_ROOT}*" ]]; then + XCASSET_FILES+=("$line") + fi + done <<<"$OTHER_XCASSETS" + + printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +fi diff --git a/Pods/Target Support Files/Pods-UnitTests/Pods-UnitTests.debug.xcconfig b/Pods/Target Support Files/Pods-UnitTests/Pods-UnitTests.debug.xcconfig new file mode 100644 index 0000000..80093fc --- /dev/null +++ b/Pods/Target Support Files/Pods-UnitTests/Pods-UnitTests.debug.xcconfig @@ -0,0 +1,8 @@ +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/OCHamcrest" "${PODS_ROOT}/Headers/Public/OCTotallyLazy" +OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/OCHamcrest" -isystem "${PODS_ROOT}/Headers/Public/OCTotallyLazy" +OTHER_LDFLAGS = $(inherited) -ObjC +PODS_BUILD_DIR = $BUILD_DIR +PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods diff --git a/Pods/Target Support Files/Pods-UnitTests/Pods-UnitTests.release.xcconfig b/Pods/Target Support Files/Pods-UnitTests/Pods-UnitTests.release.xcconfig new file mode 100644 index 0000000..80093fc --- /dev/null +++ b/Pods/Target Support Files/Pods-UnitTests/Pods-UnitTests.release.xcconfig @@ -0,0 +1,8 @@ +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/OCHamcrest" "${PODS_ROOT}/Headers/Public/OCTotallyLazy" +OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/OCHamcrest" -isystem "${PODS_ROOT}/Headers/Public/OCTotallyLazy" +OTHER_LDFLAGS = $(inherited) -ObjC +PODS_BUILD_DIR = $BUILD_DIR +PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods diff --git a/Storyboard.storyboard b/Storyboard.storyboard index d6a16aa..5087878 100644 --- a/Storyboard.storyboard +++ b/Storyboard.storyboard @@ -1,106 +1,123 @@ - - + + + + + - + + + + + + + + - + - - + + + + - + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + @@ -113,19 +130,18 @@ - - + + - + - + - - + + - - + @@ -136,7 +152,7 @@ - + @@ -159,38 +175,44 @@ + + + + - + - + + - + - - - - - - + + + + + + @@ -211,13 +233,16 @@ + + - - - - - - - + + + + + + + - + - - - - + + + + - - - + - - + + - + - - + + - - + @@ -287,27 +309,32 @@ - + + + + + - + - + + - + - - - - + + + + @@ -324,6 +351,7 @@ + @@ -338,23 +366,28 @@ + + + + - + - + + - + - - - - + + + + @@ -366,39 +399,45 @@ - + + + + + - + - + + - + - - - - - - + + + + + + @@ -413,13 +452,16 @@ + + - - - - - - - + + + + + + + - + - - - - + + + + - - @@ -458,23 +498,28 @@ + + + + - + - + + - + - - - - + + + + @@ -490,58 +535,8 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file + diff --git a/UnitTests/UnitTests-Info.plist b/UnitTests/UnitTests-Info.plist index ff73f3a..169b6f7 100644 --- a/UnitTests/UnitTests-Info.plist +++ b/UnitTests/UnitTests-Info.plist @@ -7,7 +7,7 @@ CFBundleExecutable ${EXECUTABLE_NAME} CFBundleIdentifier - com.barkingminds.${PRODUCT_NAME:rfc1034identifier} + $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleInfoDictionaryVersion 6.0 CFBundlePackageType