diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index c67da6b..0000000
--- a/.gitignore
+++ /dev/null
@@ -1,21 +0,0 @@
-# xcode
-build/*
-*.pbxuser
-!default.pbxuser
-*.mode1v3
-!default.mode1v3
-*.mode2v3
-!default.mode2v3
-*.perspectivev3
-!default.perspectivev3
-*.xcworkspace
-!default.xcworkspace
-xcuserdata
-profile
-*.moved-aside
-*.swp
-_site
-!Objection.xcworkspace
-run
-pkg
-.DS_Store
diff --git a/.gitmodules b/.gitmodules
deleted file mode 100644
index e1893a2..0000000
--- a/.gitmodules
+++ /dev/null
@@ -1,6 +0,0 @@
-[submodule "Vendor/Quick"]
- path = Vendor/Quick
- url = https://github.com/Quick/Quick.git
-[submodule "Vendor/Nimble"]
- path = Vendor/Nimble
- url = https://github.com/Quick/Nimble.git
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index 4269642..0000000
--- a/.travis.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-language: objective-c
-script: rake specs:all
-osx_image: xcode6.4
-install:
- - bundle install
diff --git a/CHANGELOG.md b/CHANGELOG.md
deleted file mode 100644
index ae4d4c9..0000000
--- a/CHANGELOG.md
+++ /dev/null
@@ -1,28 +0,0 @@
-# 1.4
-
-**[Breaking changes](#breaking-changes)**
-
-Nothing in this version has changed that would cause those that are upgrading from 1.3.1 any problems
-
-**[Changes](#changes)**
-
-1. Providers can be defined as a singletons, which means that Objection will save the first value generated by the provider.
-2. Fixed an issue where an object that is registered as a singleton in a module could not be an _eager singleton_
-
-# 1.6
-
-**[Breaking changes](#breaking-changes)**
-
-Nothing in this version has changed that would cause those that are upgrading from 1.4 any problems
-
-**[Changes](#changes)**
-
-1. Ad-Hoc initializers can be used via the JSObjectionInjector and JSObjectFactory
-
-# 1.6.1
-
-**[Changes](#changes)**
-
-1. Fixed build issues in XCode 6.4 and updated Nimble & Quick testing libraries
-2. Improved test output via xcpretty
-3. Fixed regression raised in issue #94 (https://github.com/atomicobject/objection/issues/94)
diff --git a/CNAME b/CNAME
new file mode 100644
index 0000000..feca691
--- /dev/null
+++ b/CNAME
@@ -0,0 +1 @@
+objection-framework.org
\ No newline at end of file
diff --git a/Gemfile b/Gemfile
deleted file mode 100644
index 287a778..0000000
--- a/Gemfile
+++ /dev/null
@@ -1,2 +0,0 @@
-source "http://rubygems.org"
-gem "xcpretty"
diff --git a/Gemfile.lock b/Gemfile.lock
deleted file mode 100644
index 6d21670..0000000
--- a/Gemfile.lock
+++ /dev/null
@@ -1,10 +0,0 @@
-GEM
- remote: http://rubygems.org/
- specs:
- xcpretty (0.1.10)
-
-PLATFORMS
- ruby
-
-DEPENDENCIES
- xcpretty
diff --git a/LICENSE b/LICENSE
deleted file mode 100644
index 26c9253..0000000
--- a/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License
-
-Copyright (c) 2012-2013 Justin DeWind
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
diff --git a/Objection-Info.plist b/Objection-Info.plist
deleted file mode 100644
index 27fe5f3..0000000
--- a/Objection-Info.plist
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
- CFBundleDevelopmentRegion
- English
- CFBundleExecutable
- ${EXECUTABLE_NAME}
- CFBundleIdentifier
- com.atomicobject.${PRODUCT_NAME:rfc1.44identifier}
- CFBundleInfoDictionaryVersion
- 6.0
- CFBundlePackageType
- FMWK
- CFBundleShortVersionString
- 1.6.1
- CFBundleSignature
- ATOM
- CFBundleVersion
- 1.6.1
-
-
diff --git a/Objection.podspec b/Objection.podspec
deleted file mode 100644
index 8327689..0000000
--- a/Objection.podspec
+++ /dev/null
@@ -1,14 +0,0 @@
-Pod::Spec.new do |s|
- s.name = 'Objection'
- s.version = '1.6.1'
- s.summary = 'A lightweight dependency injection framework for Objective-C.'
- s.author = { 'Justin DeWind' => 'dewind@atomicobject.com' }
- s.source = { :git => 'https://github.com/atomicobject/objection.git', :tag => "#{s.version}" }
- s.homepage = 'http://www.objection-framework.org'
- s.source_files = 'Source'
- s.license = { :type => "MIT" }
- s.requires_arc = true
-
- s.ios.deployment_target = '7.0'
- s.osx.deployment_target = '10.8'
-end
diff --git a/Objection.xcodeproj/project.pbxproj b/Objection.xcodeproj/project.pbxproj
deleted file mode 100644
index 0bb450a..0000000
--- a/Objection.xcodeproj/project.pbxproj
+++ /dev/null
@@ -1,1414 +0,0 @@
-// !$*UTF8*$!
-{
- archiveVersion = 1;
- classes = {
- };
- objectVersion = 46;
- objects = {
-
-/* Begin PBXAggregateTarget section */
- 4B25BE4A1291C43400821DC1 /* Objection-iOS */ = {
- isa = PBXAggregateTarget;
- buildConfigurationList = 4B25BE4D1291C45200821DC1 /* Build configuration list for PBXAggregateTarget "Objection-iOS" */;
- buildPhases = (
- 4B25BE4F1291C4FB00821DC1 /* Build Static Libs */,
- 4B25BE511291C51E00821DC1 /* Build Universal Lib */,
- 4B25BE571291C58800821DC1 /* Copy Header Files */,
- );
- dependencies = (
- );
- name = "Objection-iOS";
- productName = "Objection-iPhone";
- };
-/* End PBXAggregateTarget section */
-
-/* Begin PBXBuildFile section */
- 4B2D26A01AC1E54400FF802F /* Nimble.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4B833A881AC1B5FE00C84F00 /* Nimble.framework */; };
- 4B2D26A11AC1E54400FF802F /* Quick.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4B833A951AC1B60C00C84F00 /* Quick.framework */; };
- 4B42580A13F56CC0006BC001 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AACBBE490F95108600F1A2B1 /* Foundation.framework */; };
- 4B42581113F56CC1006BC001 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 4B42580F13F56CC1006BC001 /* InfoPlist.strings */; };
- 4B42585A13F56D41006BC001 /* Fixtures.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BF451AC12919CAD006EB2D5 /* Fixtures.m */; };
- 4B42585B13F56D41006BC001 /* SpecHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B53482E12F31E93000480AB /* SpecHelper.m */; };
- 4B42585C13F56D41006BC001 /* ModuleFixtures.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B81F90C135D0ACF00221A88 /* ModuleFixtures.m */; };
- 4B42585D13F56D41006BC001 /* BasicUsageSpecs.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BF4516B129199AF006EB2D5 /* BasicUsageSpecs.m */; };
- 4B42585E13F56D41006BC001 /* InjectionErrorsSpecs.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BF451E21291AD28006EB2D5 /* InjectionErrorsSpecs.m */; };
- 4B42585F13F56D41006BC001 /* InheritanceSpecs.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B7300D712AA8F3400903427 /* InheritanceSpecs.m */; };
- 4B42586013F56D41006BC001 /* ModuleUsageSpecs.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B95819612AE593F00CBF1EB /* ModuleUsageSpecs.m */; };
- 4B42586113F56D41006BC001 /* JSObjectionProviderEntry.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B81F8DC135D06C200221A88 /* JSObjectionProviderEntry.m */; };
- 4B42586213F56D41006BC001 /* JSObjectionEntry.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B4B21A71342B79E00833077 /* JSObjectionEntry.m */; };
- 4B42586313F56D41006BC001 /* NSObject+Objection.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B53471812F316A4000480AB /* NSObject+Objection.m */; };
- 4B42586413F56D41006BC001 /* JSObjectionUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B496E6A12B0F3E50053F2A3 /* JSObjectionUtils.m */; };
- 4B42586513F56D41006BC001 /* JSObjectionInjectorEntry.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BED511E12AA8BCC00CA6B36 /* JSObjectionInjectorEntry.m */; };
- 4B42586613F56D42006BC001 /* JSObjectionInjector.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BED511F12AA8BCC00CA6B36 /* JSObjectionInjector.m */; };
- 4B42586713F56D42006BC001 /* JSObjectionBindingEntry.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BED512012AA8BCC00CA6B36 /* JSObjectionBindingEntry.m */; };
- 4B42586813F56D42006BC001 /* JSObjectionModule.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B957EC512ADE03900CBF1EB /* JSObjectionModule.m */; };
- 4B42586913F56D42006BC001 /* JSObjection.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B9D310213DF613500C81C45 /* JSObjection.m */; };
- 4B42586C13F56D96006BC001 /* InjectionErrorFixtures.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B25BD4A1291BBE700821DC1 /* InjectionErrorFixtures.m */; };
- 4B42587713F56EA3006BC001 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4B42587613F56EA3006BC001 /* Cocoa.framework */; };
- 4B42588113F56EA3006BC001 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 4B42587F13F56EA3006BC001 /* InfoPlist.strings */; };
- 4B4258CD13F56F44006BC001 /* Fixtures.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BF451AC12919CAD006EB2D5 /* Fixtures.m */; };
- 4B4258CE13F56F44006BC001 /* InjectionErrorFixtures.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B25BD4A1291BBE700821DC1 /* InjectionErrorFixtures.m */; };
- 4B4258CF13F56F45006BC001 /* SpecHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B53482E12F31E93000480AB /* SpecHelper.m */; };
- 4B4258D013F56F45006BC001 /* ModuleFixtures.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B81F90C135D0ACF00221A88 /* ModuleFixtures.m */; };
- 4B4258D113F56F45006BC001 /* BasicUsageSpecs.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BF4516B129199AF006EB2D5 /* BasicUsageSpecs.m */; };
- 4B4258D213F56F45006BC001 /* InjectionErrorsSpecs.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BF451E21291AD28006EB2D5 /* InjectionErrorsSpecs.m */; };
- 4B4258D313F56F45006BC001 /* InheritanceSpecs.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B7300D712AA8F3400903427 /* InheritanceSpecs.m */; };
- 4B4258D413F56F45006BC001 /* ModuleUsageSpecs.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B95819612AE593F00CBF1EB /* ModuleUsageSpecs.m */; };
- 4B4258D513F56F45006BC001 /* JSObjectionProviderEntry.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B81F8DC135D06C200221A88 /* JSObjectionProviderEntry.m */; };
- 4B4258D613F56F45006BC001 /* JSObjectionEntry.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B4B21A71342B79E00833077 /* JSObjectionEntry.m */; };
- 4B4258D713F56F45006BC001 /* NSObject+Objection.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B53471812F316A4000480AB /* NSObject+Objection.m */; };
- 4B4258D813F56F45006BC001 /* JSObjectionUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B496E6A12B0F3E50053F2A3 /* JSObjectionUtils.m */; };
- 4B4258D913F56F45006BC001 /* JSObjectionInjectorEntry.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BED511E12AA8BCC00CA6B36 /* JSObjectionInjectorEntry.m */; };
- 4B4258DA13F56F45006BC001 /* JSObjectionInjector.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BED511F12AA8BCC00CA6B36 /* JSObjectionInjector.m */; };
- 4B4258DB13F56F45006BC001 /* JSObjectionBindingEntry.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BED512012AA8BCC00CA6B36 /* JSObjectionBindingEntry.m */; };
- 4B4258DC13F56F45006BC001 /* JSObjectionModule.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B957EC512ADE03900CBF1EB /* JSObjectionModule.m */; };
- 4B4258DD13F56F45006BC001 /* JSObjection.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B9D310213DF613500C81C45 /* JSObjection.m */; };
- 4B4258DF13F56F51006BC001 /* OCHamcrest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4B4258DE13F56F51006BC001 /* OCHamcrest.framework */; };
- 4B4289311567F3EC004F73D3 /* InitializerSpecs.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B4289301567F3EC004F73D3 /* InitializerSpecs.m */; };
- 4B4289321567F3EC004F73D3 /* InitializerSpecs.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B4289301567F3EC004F73D3 /* InitializerSpecs.m */; };
- 4B428935156806E6004F73D3 /* InitializerFixtures.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B428934156806E6004F73D3 /* InitializerFixtures.m */; };
- 4B428936156806E6004F73D3 /* InitializerFixtures.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B428934156806E6004F73D3 /* InitializerFixtures.m */; };
- 4B496E6C12B0F3E50053F2A3 /* JSObjectionUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B496E6A12B0F3E50053F2A3 /* JSObjectionUtils.m */; };
- 4B496E6D12B0F3E50053F2A3 /* JSObjectionUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B496E6A12B0F3E50053F2A3 /* JSObjectionUtils.m */; };
- 4B4B21A41342B78E00833077 /* JSObjectionEntry.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B4B21A31342B78E00833077 /* JSObjectionEntry.h */; };
- 4B4B21A51342B78E00833077 /* JSObjectionEntry.h in Copy Header Files */ = {isa = PBXBuildFile; fileRef = 4B4B21A31342B78E00833077 /* JSObjectionEntry.h */; };
- 4B4B21A61342B78E00833077 /* JSObjectionEntry.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B4B21A31342B78E00833077 /* JSObjectionEntry.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 4B4B21A91342B79E00833077 /* JSObjectionEntry.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B4B21A71342B79E00833077 /* JSObjectionEntry.m */; };
- 4B4B21AC1342B79E00833077 /* JSObjectionEntry.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B4B21A71342B79E00833077 /* JSObjectionEntry.m */; };
- 4B4F7B5814577AB50064EBFB /* JSObjectFactory.h in Copy Header Files */ = {isa = PBXBuildFile; fileRef = 4BE7875E145647EF00BD705E /* JSObjectFactory.h */; };
- 4B53383317AC1420004BDF83 /* JSObjectionRuntimePropertyReflector.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B53383117AC1420004BDF83 /* JSObjectionRuntimePropertyReflector.h */; };
- 4B53383417AC1420004BDF83 /* JSObjectionRuntimePropertyReflector.h in Copy Header Files */ = {isa = PBXBuildFile; fileRef = 4B53383117AC1420004BDF83 /* JSObjectionRuntimePropertyReflector.h */; };
- 4B53383517AC1420004BDF83 /* JSObjectionRuntimePropertyReflector.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B53383117AC1420004BDF83 /* JSObjectionRuntimePropertyReflector.h */; };
- 4B53383617AC1420004BDF83 /* JSObjectionRuntimePropertyReflector.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B53383217AC1420004BDF83 /* JSObjectionRuntimePropertyReflector.m */; };
- 4B53383717AC1420004BDF83 /* JSObjectionRuntimePropertyReflector.m in Copy Header Files */ = {isa = PBXBuildFile; fileRef = 4B53383217AC1420004BDF83 /* JSObjectionRuntimePropertyReflector.m */; };
- 4B53383817AC1420004BDF83 /* JSObjectionRuntimePropertyReflector.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B53383217AC1420004BDF83 /* JSObjectionRuntimePropertyReflector.m */; };
- 4B53383917AC1420004BDF83 /* JSObjectionRuntimePropertyReflector.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B53383217AC1420004BDF83 /* JSObjectionRuntimePropertyReflector.m */; };
- 4B53383A17AC1420004BDF83 /* JSObjectionRuntimePropertyReflector.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B53383217AC1420004BDF83 /* JSObjectionRuntimePropertyReflector.m */; };
- 4B53471112F3165F000480AB /* NSObject+Objection.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B53470E12F3165F000480AB /* NSObject+Objection.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 4B53471312F3165F000480AB /* NSObject+Objection.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B53470E12F3165F000480AB /* NSObject+Objection.h */; };
- 4B53471512F31660000480AB /* NSObject+Objection.h in Copy Header Files */ = {isa = PBXBuildFile; fileRef = 4B53470E12F3165F000480AB /* NSObject+Objection.h */; };
- 4B53471A12F316A4000480AB /* NSObject+Objection.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B53471812F316A4000480AB /* NSObject+Objection.m */; };
- 4B53471B12F316A4000480AB /* NSObject+Objection.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B53471812F316A4000480AB /* NSObject+Objection.m */; };
- 4B75FA771AC1E3FD00060FE1 /* Stub.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B75FA761AC1E3FD00060FE1 /* Stub.swift */; };
- 4B75FA781AC1E3FD00060FE1 /* Stub.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B75FA761AC1E3FD00060FE1 /* Stub.swift */; };
- 4B81F8D0135D06A300221A88 /* JSObjectionProviderEntry.h in Copy Header Files */ = {isa = PBXBuildFile; fileRef = 4B81F8CE135D06A300221A88 /* JSObjectionProviderEntry.h */; };
- 4B81F8D2135D06A300221A88 /* JSObjectionProviderEntry.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B81F8CE135D06A300221A88 /* JSObjectionProviderEntry.h */; };
- 4B81F8D5135D06A300221A88 /* JSObjectionProviderEntry.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B81F8CE135D06A300221A88 /* JSObjectionProviderEntry.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 4B81F8DE135D06C200221A88 /* JSObjectionProviderEntry.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B81F8DC135D06C200221A88 /* JSObjectionProviderEntry.m */; };
- 4B81F8E0135D06C200221A88 /* JSObjectionProviderEntry.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B81F8DC135D06C200221A88 /* JSObjectionProviderEntry.m */; };
- 4B81FA3A135D245B00221A88 /* Objection.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B957EE612ADE26500CBF1EB /* Objection.h */; };
- 4B81FA3B135D245B00221A88 /* JSObjectionInjectorEntry.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BED512F12AA8BF300CA6B36 /* JSObjectionInjectorEntry.h */; };
- 4B81FA3C135D245B00221A88 /* JSObjectionInjector.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BED513012AA8BF300CA6B36 /* JSObjectionInjector.h */; };
- 4B81FA3D135D245B00221A88 /* JSObjectionBindingEntry.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BED513112AA8BF300CA6B36 /* JSObjectionBindingEntry.h */; };
- 4B81FA3E135D245B00221A88 /* JSObjectionModule.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B957EC212ADDFC500CBF1EB /* JSObjectionModule.h */; };
- 4B833AA11AC1B62200C84F00 /* Quick.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4B833A951AC1B60C00C84F00 /* Quick.framework */; };
- 4B833AA61AC1BFCB00C84F00 /* Nimble.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4B833A841AC1B5FE00C84F00 /* Nimble.framework */; };
- 4B83A7E41A1FC19000C59E05 /* OCHamcrestIOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4B83A7E31A1FC19000C59E05 /* OCHamcrestIOS.framework */; };
- 4B8899FA1AC1EB7C00B548E9 /* OCHamcrest.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = 4B4258DE13F56F51006BC001 /* OCHamcrest.framework */; };
- 4B957EC312ADDFC500CBF1EB /* JSObjectionModule.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B957EC212ADDFC500CBF1EB /* JSObjectionModule.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 4B957EC712ADE03900CBF1EB /* JSObjectionModule.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B957EC512ADE03900CBF1EB /* JSObjectionModule.m */; };
- 4B957EC812ADE05D00CBF1EB /* JSObjectionModule.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B957EC512ADE03900CBF1EB /* JSObjectionModule.m */; };
- 4B957EE712ADE26500CBF1EB /* Objection.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B957EE612ADE26500CBF1EB /* Objection.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 4B9582C212AE753800CBF1EB /* Objection.h in Copy Header Files */ = {isa = PBXBuildFile; fileRef = 4B957EE612ADE26500CBF1EB /* Objection.h */; };
- 4B9582C312AE755000CBF1EB /* JSObjectionModule.h in Copy Header Files */ = {isa = PBXBuildFile; fileRef = 4B957EC212ADDFC500CBF1EB /* JSObjectionModule.h */; };
- 4B9D30FF13DF5FAC00C81C45 /* JSObjectionUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B9D30FE13DF5FAC00C81C45 /* JSObjectionUtils.h */; };
- 4B9D310013DF5FAC00C81C45 /* JSObjectionUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B9D30FE13DF5FAC00C81C45 /* JSObjectionUtils.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 4B9D310313DF613600C81C45 /* JSObjection.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B9D310113DF613500C81C45 /* JSObjection.h */; };
- 4B9D310413DF613600C81C45 /* JSObjection.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B9D310113DF613500C81C45 /* JSObjection.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 4B9D310513DF613600C81C45 /* JSObjection.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B9D310213DF613500C81C45 /* JSObjection.m */; };
- 4B9D310713DF613600C81C45 /* JSObjection.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B9D310213DF613500C81C45 /* JSObjection.m */; };
- 4B9D311413DF79FE00C81C45 /* JSObjectionUtils.h in Copy Header Files */ = {isa = PBXBuildFile; fileRef = 4B9D30FE13DF5FAC00C81C45 /* JSObjectionUtils.h */; };
- 4B9D311513DF79FE00C81C45 /* JSObjection.h in Copy Header Files */ = {isa = PBXBuildFile; fileRef = 4B9D310113DF613500C81C45 /* JSObjection.h */; };
- 4BA6DD1F12AAB3CD00CFFD70 /* JSObjectionInjectorEntry.h in Copy Header Files */ = {isa = PBXBuildFile; fileRef = 4BED512F12AA8BF300CA6B36 /* JSObjectionInjectorEntry.h */; };
- 4BA6DD2012AAB3CD00CFFD70 /* JSObjectionInjector.h in Copy Header Files */ = {isa = PBXBuildFile; fileRef = 4BED513012AA8BF300CA6B36 /* JSObjectionInjector.h */; };
- 4BA6DD2112AAB3CD00CFFD70 /* JSObjectionBindingEntry.h in Copy Header Files */ = {isa = PBXBuildFile; fileRef = 4BED513112AA8BF300CA6B36 /* JSObjectionBindingEntry.h */; };
- 4BB07D751668679A00D9BA1E /* AddAndRemoveModulesSpecs.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BB07D741668679A00D9BA1E /* AddAndRemoveModulesSpecs.m */; };
- 4BB07D761668679A00D9BA1E /* AddAndRemoveModulesSpecs.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BB07D741668679A00D9BA1E /* AddAndRemoveModulesSpecs.m */; };
- 4BE78760145647EF00BD705E /* JSObjectFactory.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BE7875E145647EF00BD705E /* JSObjectFactory.h */; };
- 4BE78761145647EF00BD705E /* JSObjectFactory.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BE7875E145647EF00BD705E /* JSObjectFactory.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 4BE78762145647EF00BD705E /* JSObjectFactory.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BE7875F145647EF00BD705E /* JSObjectFactory.m */; };
- 4BE78763145647EF00BD705E /* JSObjectFactory.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BE7875F145647EF00BD705E /* JSObjectFactory.m */; };
- 4BE78764145647EF00BD705E /* JSObjectFactory.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BE7875F145647EF00BD705E /* JSObjectFactory.m */; };
- 4BE78765145647EF00BD705E /* JSObjectFactory.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BE7875F145647EF00BD705E /* JSObjectFactory.m */; };
- 4BED512412AA8BCC00CA6B36 /* JSObjectionInjectorEntry.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BED511E12AA8BCC00CA6B36 /* JSObjectionInjectorEntry.m */; };
- 4BED512512AA8BCC00CA6B36 /* JSObjectionInjector.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BED511F12AA8BCC00CA6B36 /* JSObjectionInjector.m */; };
- 4BED512612AA8BCC00CA6B36 /* JSObjectionBindingEntry.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BED512012AA8BCC00CA6B36 /* JSObjectionBindingEntry.m */; };
- 4BED512A12AA8BCC00CA6B36 /* JSObjectionInjectorEntry.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BED511E12AA8BCC00CA6B36 /* JSObjectionInjectorEntry.m */; };
- 4BED512B12AA8BCC00CA6B36 /* JSObjectionInjector.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BED511F12AA8BCC00CA6B36 /* JSObjectionInjector.m */; };
- 4BED512C12AA8BCC00CA6B36 /* JSObjectionBindingEntry.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BED512012AA8BCC00CA6B36 /* JSObjectionBindingEntry.m */; };
- 4BED513212AA8BF300CA6B36 /* JSObjectionInjectorEntry.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BED512F12AA8BF300CA6B36 /* JSObjectionInjectorEntry.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 4BED513312AA8BF300CA6B36 /* JSObjectionInjector.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BED513012AA8BF300CA6B36 /* JSObjectionInjector.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 4BED513412AA8BF300CA6B36 /* JSObjectionBindingEntry.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BED513112AA8BF300CA6B36 /* JSObjectionBindingEntry.h */; settings = {ATTRIBUTES = (Public, ); }; };
- D2AAC07E0554694100DB5193 /* CircularDependencySpecs.m in Sources */ = {isa = PBXBuildFile; fileRef = D2AAC07E0554694100DB5192 /* CircularDependencySpecs.m */; };
- D2AAC07E0554694100DB5194 /* CircularDependencySpecs.m in Sources */ = {isa = PBXBuildFile; fileRef = D2AAC07E0554694100DB5192 /* CircularDependencySpecs.m */; };
- D2AAC07E0554694100DB5196 /* CircularDependencyFixtures.m in Sources */ = {isa = PBXBuildFile; fileRef = D2AAC07E0554694100DB5195 /* CircularDependencyFixtures.m */; };
- D2AAC07E0554694100DB5197 /* CircularDependencyFixtures.m in Sources */ = {isa = PBXBuildFile; fileRef = D2AAC07E0554694100DB5195 /* CircularDependencyFixtures.m */; };
-/* End PBXBuildFile section */
-
-/* Begin PBXContainerItemProxy section */
- 4B2D269C1AC1E53B00FF802F /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 4B833A8B1AC1B60C00C84F00 /* Quick.xcodeproj */;
- proxyType = 1;
- remoteGlobalIDString = DAEB6B8D1943873100289F44;
- remoteInfo = "Quick-OSX";
- };
- 4B2D269E1AC1E53B00FF802F /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 4B833A7C1AC1B5FE00C84F00 /* Nimble.xcodeproj */;
- proxyType = 1;
- remoteGlobalIDString = 1F925EAC195C0D6300ED456B;
- remoteInfo = "Nimble-OSX";
- };
- 4B833A831AC1B5FE00C84F00 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 4B833A7C1AC1B5FE00C84F00 /* Nimble.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 1F1A74291940169200FFFC47;
- remoteInfo = "Nimble-iOS";
- };
- 4B833A851AC1B5FE00C84F00 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 4B833A7C1AC1B5FE00C84F00 /* Nimble.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 1F1A74341940169200FFFC47;
- remoteInfo = "Nimble-iOSTests";
- };
- 4B833A871AC1B5FE00C84F00 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 4B833A7C1AC1B5FE00C84F00 /* Nimble.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 1F925EAD195C0D6300ED456B;
- remoteInfo = "Nimble-OSX";
- };
- 4B833A891AC1B5FE00C84F00 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 4B833A7C1AC1B5FE00C84F00 /* Nimble.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 1F925EB7195C0D6300ED456B;
- remoteInfo = "Nimble-OSXTests";
- };
- 4B833A941AC1B60C00C84F00 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 4B833A8B1AC1B60C00C84F00 /* Quick.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = DAEB6B8E1943873100289F44;
- remoteInfo = "Quick-OSX";
- };
- 4B833A961AC1B60C00C84F00 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 4B833A8B1AC1B60C00C84F00 /* Quick.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = DAEB6B991943873100289F44;
- remoteInfo = "Quick-OSXTests";
- };
- 4B833A981AC1B60C00C84F00 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 4B833A8B1AC1B60C00C84F00 /* Quick.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = DA5663E81A4C8D8500193C88;
- remoteInfo = "QuickFocused-OSXTests";
- };
- 4B833A9A1AC1B60C00C84F00 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 4B833A8B1AC1B60C00C84F00 /* Quick.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 5A5D117C19473F2100F6D13D;
- remoteInfo = "Quick-iOS";
- };
- 4B833A9C1AC1B60C00C84F00 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 4B833A8B1AC1B60C00C84F00 /* Quick.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 5A5D118619473F2100F6D13D;
- remoteInfo = "Quick-iOSTests";
- };
- 4B833A9E1AC1B60C00C84F00 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 4B833A8B1AC1B60C00C84F00 /* Quick.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = DA9876B21A4C70EB0004AA17;
- remoteInfo = "QuickFocused-iOSTests";
- };
- 4B833AA71AC1D68900C84F00 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 4B833A8B1AC1B60C00C84F00 /* Quick.xcodeproj */;
- proxyType = 1;
- remoteGlobalIDString = 5A5D117B19473F2100F6D13D;
- remoteInfo = "Quick-iOS";
- };
- 4B833AA91AC1D68900C84F00 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 4B833A7C1AC1B5FE00C84F00 /* Nimble.xcodeproj */;
- proxyType = 1;
- remoteGlobalIDString = 1F1A74281940169200FFFC47;
- remoteInfo = "Nimble-iOS";
- };
-/* End PBXContainerItemProxy section */
-
-/* Begin PBXCopyFilesBuildPhase section */
- 4B25BE571291C58800821DC1 /* Copy Header Files */ = {
- isa = PBXCopyFilesBuildPhase;
- buildActionMask = 12;
- dstPath = "${BUILD_DIR}/${CONFIGURATION}-iphoneuniversal/${PRODUCT_NAME}.framework/Versions/A/Headers/";
- dstSubfolderSpec = 0;
- files = (
- 4B9D311413DF79FE00C81C45 /* JSObjectionUtils.h in Copy Header Files */,
- 4B9D311513DF79FE00C81C45 /* JSObjection.h in Copy Header Files */,
- 4B9582C312AE755000CBF1EB /* JSObjectionModule.h in Copy Header Files */,
- 4B4F7B5814577AB50064EBFB /* JSObjectFactory.h in Copy Header Files */,
- 4B9582C212AE753800CBF1EB /* Objection.h in Copy Header Files */,
- 4BA6DD1F12AAB3CD00CFFD70 /* JSObjectionInjectorEntry.h in Copy Header Files */,
- 4BA6DD2012AAB3CD00CFFD70 /* JSObjectionInjector.h in Copy Header Files */,
- 4BA6DD2112AAB3CD00CFFD70 /* JSObjectionBindingEntry.h in Copy Header Files */,
- 4B53471512F31660000480AB /* NSObject+Objection.h in Copy Header Files */,
- 4B4B21A51342B78E00833077 /* JSObjectionEntry.h in Copy Header Files */,
- 4B81F8D0135D06A300221A88 /* JSObjectionProviderEntry.h in Copy Header Files */,
- 4B53383417AC1420004BDF83 /* JSObjectionRuntimePropertyReflector.h in Copy Header Files */,
- 4B53383717AC1420004BDF83 /* JSObjectionRuntimePropertyReflector.m in Copy Header Files */,
- );
- name = "Copy Header Files";
- runOnlyForDeploymentPostprocessing = 0;
- };
- 4B8899F91AC1EB5A00B548E9 /* CopyFiles */ = {
- isa = PBXCopyFilesBuildPhase;
- buildActionMask = 12;
- dstPath = "";
- dstSubfolderSpec = 16;
- files = (
- 4B8899FA1AC1EB7C00B548E9 /* OCHamcrest.framework in CopyFiles */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXCopyFilesBuildPhase section */
-
-/* Begin PBXFileReference section */
- 4B25BD491291BBE700821DC1 /* InjectionErrorFixtures.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InjectionErrorFixtures.h; sourceTree = ""; };
- 4B25BD4A1291BBE700821DC1 /* InjectionErrorFixtures.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = InjectionErrorFixtures.m; sourceTree = ""; };
- 4B42580813F56CC0006BC001 /* Specs-iOS.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Specs-iOS.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
- 4B42580E13F56CC0006BC001 /* Specs-iOS-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Specs-iOS-Info.plist"; sourceTree = ""; };
- 4B42581013F56CC1006BC001 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; };
- 4B42581213F56CC1006BC001 /* Specs-iOS-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Specs-iOS-Prefix.pch"; sourceTree = ""; };
- 4B42587513F56EA3006BC001 /* Specs-OSX.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Specs-OSX.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
- 4B42587613F56EA3006BC001 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; };
- 4B42587913F56EA3006BC001 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; };
- 4B42587A13F56EA3006BC001 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = System/Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; };
- 4B42587B13F56EA3006BC001 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
- 4B42587E13F56EA3006BC001 /* Specs-OSX-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Specs-OSX-Info.plist"; sourceTree = ""; };
- 4B42588013F56EA3006BC001 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; };
- 4B42588213F56EA3006BC001 /* Specs-OSX-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Specs-OSX-Prefix.pch"; sourceTree = ""; };
- 4B4258DE13F56F51006BC001 /* OCHamcrest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OCHamcrest.framework; path = Vendor/OCHamcrest.framework; sourceTree = ""; };
- 4B4289301567F3EC004F73D3 /* InitializerSpecs.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = InitializerSpecs.m; sourceTree = ""; };
- 4B428933156806E6004F73D3 /* InitializerFixtures.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InitializerFixtures.h; sourceTree = ""; };
- 4B428934156806E6004F73D3 /* InitializerFixtures.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = InitializerFixtures.m; sourceTree = ""; };
- 4B496E6A12B0F3E50053F2A3 /* JSObjectionUtils.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = JSObjectionUtils.m; sourceTree = ""; };
- 4B4B21A31342B78E00833077 /* JSObjectionEntry.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSObjectionEntry.h; sourceTree = ""; };
- 4B4B21A71342B79E00833077 /* JSObjectionEntry.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = JSObjectionEntry.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; };
- 4B53383117AC1420004BDF83 /* JSObjectionRuntimePropertyReflector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSObjectionRuntimePropertyReflector.h; sourceTree = ""; };
- 4B53383217AC1420004BDF83 /* JSObjectionRuntimePropertyReflector.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = JSObjectionRuntimePropertyReflector.m; sourceTree = ""; };
- 4B53470E12F3165F000480AB /* NSObject+Objection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSObject+Objection.h"; sourceTree = ""; };
- 4B53471812F316A4000480AB /* NSObject+Objection.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSObject+Objection.m"; sourceTree = ""; };
- 4B53482E12F31E93000480AB /* SpecHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SpecHelper.m; sourceTree = ""; };
- 4B7300D712AA8F3400903427 /* InheritanceSpecs.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = InheritanceSpecs.m; sourceTree = ""; };
- 4B75FA761AC1E3FD00060FE1 /* Stub.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = Stub.swift; path = ../Stub.swift; sourceTree = ""; };
- 4B81F8CE135D06A300221A88 /* JSObjectionProviderEntry.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSObjectionProviderEntry.h; sourceTree = ""; };
- 4B81F8DC135D06C200221A88 /* JSObjectionProviderEntry.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = JSObjectionProviderEntry.m; sourceTree = ""; };
- 4B81F90B135D0ACF00221A88 /* ModuleFixtures.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ModuleFixtures.h; sourceTree = ""; };
- 4B81F90C135D0ACF00221A88 /* ModuleFixtures.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ModuleFixtures.m; sourceTree = ""; };
- 4B833A7C1AC1B5FE00C84F00 /* Nimble.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Nimble.xcodeproj; path = Vendor/Nimble/Nimble.xcodeproj; sourceTree = ""; };
- 4B833A8B1AC1B60C00C84F00 /* Quick.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Quick.xcodeproj; path = Vendor/Quick/Quick.xcodeproj; sourceTree = ""; };
- 4B83A7E31A1FC19000C59E05 /* OCHamcrestIOS.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OCHamcrestIOS.framework; path = Vendor/OCHamcrestIOS.framework; sourceTree = ""; };
- 4B957EC212ADDFC500CBF1EB /* JSObjectionModule.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSObjectionModule.h; sourceTree = ""; };
- 4B957EC512ADE03900CBF1EB /* JSObjectionModule.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = JSObjectionModule.m; sourceTree = ""; };
- 4B957EE612ADE26500CBF1EB /* Objection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Objection.h; sourceTree = ""; };
- 4B95819612AE593F00CBF1EB /* ModuleUsageSpecs.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ModuleUsageSpecs.m; sourceTree = ""; };
- 4B9D30FE13DF5FAC00C81C45 /* JSObjectionUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSObjectionUtils.h; sourceTree = ""; };
- 4B9D310113DF613500C81C45 /* JSObjection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSObjection.h; sourceTree = ""; };
- 4B9D310213DF613500C81C45 /* JSObjection.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = JSObjection.m; sourceTree = ""; };
- 4BA9CFF412AA86E600674F0E /* OCHamcrest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OCHamcrest.framework; path = Vendor/OCHamcrest.framework; sourceTree = ""; };
- 4BB07D741668679A00D9BA1E /* AddAndRemoveModulesSpecs.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AddAndRemoveModulesSpecs.m; sourceTree = ""; };
- 4BB428A116D3205C00710F1E /* SenTestingKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SenTestingKit.framework; path = Library/Frameworks/SenTestingKit.framework; sourceTree = DEVELOPER_DIR; };
- 4BE7875E145647EF00BD705E /* JSObjectFactory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSObjectFactory.h; sourceTree = ""; };
- 4BE7875F145647EF00BD705E /* JSObjectFactory.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = JSObjectFactory.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; };
- 4BED511612AA8B7A00CA6B36 /* Objection.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Objection.framework; sourceTree = BUILT_PRODUCTS_DIR; };
- 4BED511712AA8B7A00CA6B36 /* Objection-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Objection-Info.plist"; sourceTree = ""; };
- 4BED511E12AA8BCC00CA6B36 /* JSObjectionInjectorEntry.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = JSObjectionInjectorEntry.m; sourceTree = ""; };
- 4BED511F12AA8BCC00CA6B36 /* JSObjectionInjector.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = JSObjectionInjector.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; };
- 4BED512012AA8BCC00CA6B36 /* JSObjectionBindingEntry.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = JSObjectionBindingEntry.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; };
- 4BED512F12AA8BF300CA6B36 /* JSObjectionInjectorEntry.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSObjectionInjectorEntry.h; sourceTree = ""; };
- 4BED513012AA8BF300CA6B36 /* JSObjectionInjector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSObjectionInjector.h; sourceTree = ""; };
- 4BED513112AA8BF300CA6B36 /* JSObjectionBindingEntry.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSObjectionBindingEntry.h; sourceTree = ""; };
- 4BF4514C129198C6006EB2D5 /* SpecHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SpecHelper.h; sourceTree = ""; };
- 4BF4516B129199AF006EB2D5 /* BasicUsageSpecs.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BasicUsageSpecs.m; sourceTree = ""; };
- 4BF451AB12919CAD006EB2D5 /* Fixtures.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Fixtures.h; sourceTree = ""; };
- 4BF451AC12919CAD006EB2D5 /* Fixtures.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Fixtures.m; sourceTree = ""; };
- 4BF451E21291AD28006EB2D5 /* InjectionErrorsSpecs.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = InjectionErrorsSpecs.m; sourceTree = ""; };
- AACBBE490F95108600F1A2B1 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
- D2AAC07E0554694100DB518D /* libObjection-StaticLib.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libObjection-StaticLib.a"; sourceTree = BUILT_PRODUCTS_DIR; };
- D2AAC07E0554694100DB5192 /* CircularDependencySpecs.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CircularDependencySpecs.m; sourceTree = ""; };
- D2AAC07E0554694100DB5195 /* CircularDependencyFixtures.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CircularDependencyFixtures.m; sourceTree = ""; };
- D2AAC07E0554694100DB5198 /* CircularDependencyFixtures.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CircularDependencyFixtures.h; sourceTree = ""; };
-/* End PBXFileReference section */
-
-/* Begin PBXFrameworksBuildPhase section */
- 4B42580413F56CC0006BC001 /* Frameworks */ = {
- isa = PBXFrameworksBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 4B833AA11AC1B62200C84F00 /* Quick.framework in Frameworks */,
- 4B833AA61AC1BFCB00C84F00 /* Nimble.framework in Frameworks */,
- 4B83A7E41A1FC19000C59E05 /* OCHamcrestIOS.framework in Frameworks */,
- 4B42580A13F56CC0006BC001 /* Foundation.framework in Frameworks */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
- 4B42587113F56EA3006BC001 /* Frameworks */ = {
- isa = PBXFrameworksBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 4B2D26A01AC1E54400FF802F /* Nimble.framework in Frameworks */,
- 4B2D26A11AC1E54400FF802F /* Quick.framework in Frameworks */,
- 4B4258DF13F56F51006BC001 /* OCHamcrest.framework in Frameworks */,
- 4B42587713F56EA3006BC001 /* Cocoa.framework in Frameworks */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
- 4BED511412AA8B7A00CA6B36 /* Frameworks */ = {
- isa = PBXFrameworksBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
- D2AAC07C0554694100DB518D /* Frameworks */ = {
- isa = PBXFrameworksBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXFrameworksBuildPhase section */
-
-/* Begin PBXGroup section */
- 034768DFFF38A50411DB9C8B /* Products */ = {
- isa = PBXGroup;
- children = (
- D2AAC07E0554694100DB518D /* libObjection-StaticLib.a */,
- 4BED511612AA8B7A00CA6B36 /* Objection.framework */,
- 4B42580813F56CC0006BC001 /* Specs-iOS.xctest */,
- 4B42587513F56EA3006BC001 /* Specs-OSX.xctest */,
- );
- name = Products;
- sourceTree = "";
- };
- 0867D691FE84028FC02AAC07 /* Objection */ = {
- isa = PBXGroup;
- children = (
- 4BF45123129197F3006EB2D5 /* Specs */,
- 4BED512E12AA8BD600CA6B36 /* Headers */,
- 08FB77AEFE84172EC02AAC07 /* Source */,
- 0867D69AFE84028FC02AAC07 /* Frameworks */,
- 034768DFFF38A50411DB9C8B /* Products */,
- 4BED511712AA8B7A00CA6B36 /* Objection-Info.plist */,
- );
- name = Objection;
- sourceTree = "";
- };
- 0867D69AFE84028FC02AAC07 /* Frameworks */ = {
- isa = PBXGroup;
- children = (
- 4B833A8B1AC1B60C00C84F00 /* Quick.xcodeproj */,
- 4B833A7C1AC1B5FE00C84F00 /* Nimble.xcodeproj */,
- 4B83A7E31A1FC19000C59E05 /* OCHamcrestIOS.framework */,
- 4B4258DE13F56F51006BC001 /* OCHamcrest.framework */,
- AACBBE490F95108600F1A2B1 /* Foundation.framework */,
- 4BA9CFF412AA86E600674F0E /* OCHamcrest.framework */,
- 4B42587613F56EA3006BC001 /* Cocoa.framework */,
- 4BB428A116D3205C00710F1E /* SenTestingKit.framework */,
- 4B42587813F56EA3006BC001 /* Other Frameworks */,
- );
- name = Frameworks;
- sourceTree = "";
- };
- 08FB77AEFE84172EC02AAC07 /* Source */ = {
- isa = PBXGroup;
- children = (
- 4B81F8DC135D06C200221A88 /* JSObjectionProviderEntry.m */,
- 4B4B21A71342B79E00833077 /* JSObjectionEntry.m */,
- 4B53471812F316A4000480AB /* NSObject+Objection.m */,
- 4B496E6A12B0F3E50053F2A3 /* JSObjectionUtils.m */,
- 4BED511E12AA8BCC00CA6B36 /* JSObjectionInjectorEntry.m */,
- 4BED511F12AA8BCC00CA6B36 /* JSObjectionInjector.m */,
- 4BED512012AA8BCC00CA6B36 /* JSObjectionBindingEntry.m */,
- 4B957EC512ADE03900CBF1EB /* JSObjectionModule.m */,
- 4B9D310213DF613500C81C45 /* JSObjection.m */,
- 4BE7875F145647EF00BD705E /* JSObjectFactory.m */,
- 4B53383217AC1420004BDF83 /* JSObjectionRuntimePropertyReflector.m */,
- );
- path = Source;
- sourceTree = "";
- };
- 4B42580C13F56CC0006BC001 /* Specs-iOS */ = {
- isa = PBXGroup;
- children = (
- 4B42580D13F56CC0006BC001 /* Supporting Files */,
- );
- path = "Specs-iOS";
- sourceTree = SOURCE_ROOT;
- };
- 4B42580D13F56CC0006BC001 /* Supporting Files */ = {
- isa = PBXGroup;
- children = (
- 4B42580E13F56CC0006BC001 /* Specs-iOS-Info.plist */,
- 4B42580F13F56CC1006BC001 /* InfoPlist.strings */,
- 4B42581213F56CC1006BC001 /* Specs-iOS-Prefix.pch */,
- );
- name = "Supporting Files";
- sourceTree = "";
- };
- 4B42587813F56EA3006BC001 /* Other Frameworks */ = {
- isa = PBXGroup;
- children = (
- 4B42587913F56EA3006BC001 /* AppKit.framework */,
- 4B42587A13F56EA3006BC001 /* CoreData.framework */,
- 4B42587B13F56EA3006BC001 /* Foundation.framework */,
- );
- name = "Other Frameworks";
- sourceTree = "";
- };
- 4B42587C13F56EA3006BC001 /* Specs-OSX */ = {
- isa = PBXGroup;
- children = (
- 4B42587D13F56EA3006BC001 /* Supporting Files */,
- );
- path = "Specs-OSX";
- sourceTree = SOURCE_ROOT;
- };
- 4B42587D13F56EA3006BC001 /* Supporting Files */ = {
- isa = PBXGroup;
- children = (
- 4B42587E13F56EA3006BC001 /* Specs-OSX-Info.plist */,
- 4B42587F13F56EA3006BC001 /* InfoPlist.strings */,
- 4B42588213F56EA3006BC001 /* Specs-OSX-Prefix.pch */,
- );
- name = "Supporting Files";
- sourceTree = "";
- };
- 4B833A7D1AC1B5FE00C84F00 /* Products */ = {
- isa = PBXGroup;
- children = (
- 4B833A841AC1B5FE00C84F00 /* Nimble.framework */,
- 4B833A861AC1B5FE00C84F00 /* NimbleTests.xctest */,
- 4B833A881AC1B5FE00C84F00 /* Nimble.framework */,
- 4B833A8A1AC1B5FE00C84F00 /* NimbleTests.xctest */,
- );
- name = Products;
- sourceTree = "";
- };
- 4B833A8C1AC1B60C00C84F00 /* Products */ = {
- isa = PBXGroup;
- children = (
- 4B833A951AC1B60C00C84F00 /* Quick.framework */,
- 4B833A971AC1B60C00C84F00 /* Quick-OSXTests.xctest */,
- 4B833A991AC1B60C00C84F00 /* QuickFocused-OSXTests.xctest */,
- 4B833A9B1AC1B60C00C84F00 /* Quick.framework */,
- 4B833A9D1AC1B60C00C84F00 /* Quick-iOSTests.xctest */,
- 4B833A9F1AC1B60C00C84F00 /* QuickFocused-iOSTests.xctest */,
- );
- name = Products;
- sourceTree = "";
- };
- 4BED512E12AA8BD600CA6B36 /* Headers */ = {
- isa = PBXGroup;
- children = (
- 4BE7875E145647EF00BD705E /* JSObjectFactory.h */,
- 4B9D30FE13DF5FAC00C81C45 /* JSObjectionUtils.h */,
- 4B4B21A31342B78E00833077 /* JSObjectionEntry.h */,
- 4B957EE612ADE26500CBF1EB /* Objection.h */,
- 4BED512F12AA8BF300CA6B36 /* JSObjectionInjectorEntry.h */,
- 4BED513012AA8BF300CA6B36 /* JSObjectionInjector.h */,
- 4BED513112AA8BF300CA6B36 /* JSObjectionBindingEntry.h */,
- 4B957EC212ADDFC500CBF1EB /* JSObjectionModule.h */,
- 4B53470E12F3165F000480AB /* NSObject+Objection.h */,
- 4B81F8CE135D06A300221A88 /* JSObjectionProviderEntry.h */,
- 4B53383117AC1420004BDF83 /* JSObjectionRuntimePropertyReflector.h */,
- 4B9D310113DF613500C81C45 /* JSObjection.h */,
- );
- name = Headers;
- path = Source;
- sourceTree = "";
- };
- 4BF45123129197F3006EB2D5 /* Specs */ = {
- isa = PBXGroup;
- children = (
- 4B42587C13F56EA3006BC001 /* Specs-OSX */,
- 4B42580C13F56CC0006BC001 /* Specs-iOS */,
- 4BF452461291AFEA006EB2D5 /* Helpers */,
- D2AAC07E0554694100DB5192 /* CircularDependencySpecs.m */,
- 4BF4516B129199AF006EB2D5 /* BasicUsageSpecs.m */,
- 4BF451E21291AD28006EB2D5 /* InjectionErrorsSpecs.m */,
- 4B7300D712AA8F3400903427 /* InheritanceSpecs.m */,
- 4B95819612AE593F00CBF1EB /* ModuleUsageSpecs.m */,
- 4B4289301567F3EC004F73D3 /* InitializerSpecs.m */,
- 4BB07D741668679A00D9BA1E /* AddAndRemoveModulesSpecs.m */,
- );
- path = Specs;
- sourceTree = "";
- };
- 4BF452461291AFEA006EB2D5 /* Helpers */ = {
- isa = PBXGroup;
- children = (
- 4B75FA761AC1E3FD00060FE1 /* Stub.swift */,
- D2AAC07E0554694100DB5198 /* CircularDependencyFixtures.h */,
- D2AAC07E0554694100DB5195 /* CircularDependencyFixtures.m */,
- 4BF4514C129198C6006EB2D5 /* SpecHelper.h */,
- 4BF451AB12919CAD006EB2D5 /* Fixtures.h */,
- 4BF451AC12919CAD006EB2D5 /* Fixtures.m */,
- 4B25BD491291BBE700821DC1 /* InjectionErrorFixtures.h */,
- 4B25BD4A1291BBE700821DC1 /* InjectionErrorFixtures.m */,
- 4B53482E12F31E93000480AB /* SpecHelper.m */,
- 4B81F90B135D0ACF00221A88 /* ModuleFixtures.h */,
- 4B81F90C135D0ACF00221A88 /* ModuleFixtures.m */,
- 4B428933156806E6004F73D3 /* InitializerFixtures.h */,
- 4B428934156806E6004F73D3 /* InitializerFixtures.m */,
- );
- name = Helpers;
- sourceTree = "";
- };
-/* End PBXGroup section */
-
-/* Begin PBXHeadersBuildPhase section */
- 4BED511112AA8B7A00CA6B36 /* Headers */ = {
- isa = PBXHeadersBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 4BED513212AA8BF300CA6B36 /* JSObjectionInjectorEntry.h in Headers */,
- 4BED513312AA8BF300CA6B36 /* JSObjectionInjector.h in Headers */,
- 4BED513412AA8BF300CA6B36 /* JSObjectionBindingEntry.h in Headers */,
- 4B957EC312ADDFC500CBF1EB /* JSObjectionModule.h in Headers */,
- 4B957EE712ADE26500CBF1EB /* Objection.h in Headers */,
- 4B53471112F3165F000480AB /* NSObject+Objection.h in Headers */,
- 4B4B21A61342B78E00833077 /* JSObjectionEntry.h in Headers */,
- 4B9D310013DF5FAC00C81C45 /* JSObjectionUtils.h in Headers */,
- 4B81F8D5135D06A300221A88 /* JSObjectionProviderEntry.h in Headers */,
- 4BE78761145647EF00BD705E /* JSObjectFactory.h in Headers */,
- 4B9D310413DF613600C81C45 /* JSObjection.h in Headers */,
- 4B53383517AC1420004BDF83 /* JSObjectionRuntimePropertyReflector.h in Headers */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
- D2AAC07A0554694100DB518D /* Headers */ = {
- isa = PBXHeadersBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 4B81FA3A135D245B00221A88 /* Objection.h in Headers */,
- 4B81FA3B135D245B00221A88 /* JSObjectionInjectorEntry.h in Headers */,
- 4B81FA3C135D245B00221A88 /* JSObjectionInjector.h in Headers */,
- 4B81FA3D135D245B00221A88 /* JSObjectionBindingEntry.h in Headers */,
- 4B81FA3E135D245B00221A88 /* JSObjectionModule.h in Headers */,
- 4B53471312F3165F000480AB /* NSObject+Objection.h in Headers */,
- 4B4B21A41342B78E00833077 /* JSObjectionEntry.h in Headers */,
- 4B81F8D2135D06A300221A88 /* JSObjectionProviderEntry.h in Headers */,
- 4B9D30FF13DF5FAC00C81C45 /* JSObjectionUtils.h in Headers */,
- 4B9D310313DF613600C81C45 /* JSObjection.h in Headers */,
- 4BE78760145647EF00BD705E /* JSObjectFactory.h in Headers */,
- 4B53383317AC1420004BDF83 /* JSObjectionRuntimePropertyReflector.h in Headers */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXHeadersBuildPhase section */
-
-/* Begin PBXNativeTarget section */
- 4B42580713F56CC0006BC001 /* Specs-iOS */ = {
- isa = PBXNativeTarget;
- buildConfigurationList = 4B42581713F56CC1006BC001 /* Build configuration list for PBXNativeTarget "Specs-iOS" */;
- buildPhases = (
- 4B42580313F56CC0006BC001 /* Sources */,
- 4B42580413F56CC0006BC001 /* Frameworks */,
- 4B42580513F56CC0006BC001 /* Resources */,
- );
- buildRules = (
- );
- dependencies = (
- 4B833AA81AC1D68900C84F00 /* PBXTargetDependency */,
- 4B833AAA1AC1D68900C84F00 /* PBXTargetDependency */,
- );
- name = "Specs-iOS";
- productName = "Specs-iOS";
- productReference = 4B42580813F56CC0006BC001 /* Specs-iOS.xctest */;
- productType = "com.apple.product-type.bundle.unit-test";
- };
- 4B42587413F56EA3006BC001 /* Specs-OSX */ = {
- isa = PBXNativeTarget;
- buildConfigurationList = 4B42588713F56EA3006BC001 /* Build configuration list for PBXNativeTarget "Specs-OSX" */;
- buildPhases = (
- 4B42587013F56EA3006BC001 /* Sources */,
- 4B42587113F56EA3006BC001 /* Frameworks */,
- 4B42587213F56EA3006BC001 /* Resources */,
- 4B8899F91AC1EB5A00B548E9 /* CopyFiles */,
- );
- buildRules = (
- );
- dependencies = (
- 4B2D269D1AC1E53B00FF802F /* PBXTargetDependency */,
- 4B2D269F1AC1E53B00FF802F /* PBXTargetDependency */,
- );
- name = "Specs-OSX";
- productName = "Specs-OSX";
- productReference = 4B42587513F56EA3006BC001 /* Specs-OSX.xctest */;
- productType = "com.apple.product-type.bundle.unit-test";
- };
- 4BED511512AA8B7A00CA6B36 /* Objection */ = {
- isa = PBXNativeTarget;
- buildConfigurationList = 4BED511A12AA8B7A00CA6B36 /* Build configuration list for PBXNativeTarget "Objection" */;
- buildPhases = (
- 4BED511112AA8B7A00CA6B36 /* Headers */,
- 4BED511212AA8B7A00CA6B36 /* Resources */,
- 4BED511312AA8B7A00CA6B36 /* Sources */,
- 4BED511412AA8B7A00CA6B36 /* Frameworks */,
- );
- buildRules = (
- );
- dependencies = (
- );
- name = Objection;
- productName = Objection;
- productReference = 4BED511612AA8B7A00CA6B36 /* Objection.framework */;
- productType = "com.apple.product-type.framework";
- };
- D2AAC07D0554694100DB518D /* Objection-StaticLib */ = {
- isa = PBXNativeTarget;
- buildConfigurationList = 1DEB921E08733DC00010E9CD /* Build configuration list for PBXNativeTarget "Objection-StaticLib" */;
- buildPhases = (
- D2AAC07A0554694100DB518D /* Headers */,
- D2AAC07B0554694100DB518D /* Sources */,
- D2AAC07C0554694100DB518D /* Frameworks */,
- );
- buildRules = (
- );
- dependencies = (
- );
- name = "Objection-StaticLib";
- productName = Objection;
- productReference = D2AAC07E0554694100DB518D /* libObjection-StaticLib.a */;
- productType = "com.apple.product-type.library.static";
- };
-/* End PBXNativeTarget section */
-
-/* Begin PBXProject section */
- 0867D690FE84028FC02AAC07 /* Project object */ = {
- isa = PBXProject;
- attributes = {
- LastUpgradeCheck = 0640;
- };
- buildConfigurationList = 1DEB922208733DC00010E9CD /* Build configuration list for PBXProject "Objection" */;
- compatibilityVersion = "Xcode 3.2";
- developmentRegion = English;
- hasScannedForEncodings = 1;
- knownRegions = (
- English,
- Japanese,
- French,
- German,
- en,
- );
- mainGroup = 0867D691FE84028FC02AAC07 /* Objection */;
- productRefGroup = 034768DFFF38A50411DB9C8B /* Products */;
- projectDirPath = "";
- projectReferences = (
- {
- ProductGroup = 4B833A7D1AC1B5FE00C84F00 /* Products */;
- ProjectRef = 4B833A7C1AC1B5FE00C84F00 /* Nimble.xcodeproj */;
- },
- {
- ProductGroup = 4B833A8C1AC1B60C00C84F00 /* Products */;
- ProjectRef = 4B833A8B1AC1B60C00C84F00 /* Quick.xcodeproj */;
- },
- );
- projectRoot = "";
- targets = (
- D2AAC07D0554694100DB518D /* Objection-StaticLib */,
- 4B25BE4A1291C43400821DC1 /* Objection-iOS */,
- 4BED511512AA8B7A00CA6B36 /* Objection */,
- 4B42580713F56CC0006BC001 /* Specs-iOS */,
- 4B42587413F56EA3006BC001 /* Specs-OSX */,
- );
- };
-/* End PBXProject section */
-
-/* Begin PBXReferenceProxy section */
- 4B833A841AC1B5FE00C84F00 /* Nimble.framework */ = {
- isa = PBXReferenceProxy;
- fileType = wrapper.framework;
- path = Nimble.framework;
- remoteRef = 4B833A831AC1B5FE00C84F00 /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- 4B833A861AC1B5FE00C84F00 /* NimbleTests.xctest */ = {
- isa = PBXReferenceProxy;
- fileType = wrapper.cfbundle;
- path = NimbleTests.xctest;
- remoteRef = 4B833A851AC1B5FE00C84F00 /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- 4B833A881AC1B5FE00C84F00 /* Nimble.framework */ = {
- isa = PBXReferenceProxy;
- fileType = wrapper.framework;
- path = Nimble.framework;
- remoteRef = 4B833A871AC1B5FE00C84F00 /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- 4B833A8A1AC1B5FE00C84F00 /* NimbleTests.xctest */ = {
- isa = PBXReferenceProxy;
- fileType = wrapper.cfbundle;
- path = NimbleTests.xctest;
- remoteRef = 4B833A891AC1B5FE00C84F00 /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- 4B833A951AC1B60C00C84F00 /* Quick.framework */ = {
- isa = PBXReferenceProxy;
- fileType = wrapper.framework;
- path = Quick.framework;
- remoteRef = 4B833A941AC1B60C00C84F00 /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- 4B833A971AC1B60C00C84F00 /* Quick-OSXTests.xctest */ = {
- isa = PBXReferenceProxy;
- fileType = wrapper.cfbundle;
- path = "Quick-OSXTests.xctest";
- remoteRef = 4B833A961AC1B60C00C84F00 /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- 4B833A991AC1B60C00C84F00 /* QuickFocused-OSXTests.xctest */ = {
- isa = PBXReferenceProxy;
- fileType = wrapper.cfbundle;
- path = "QuickFocused-OSXTests.xctest";
- remoteRef = 4B833A981AC1B60C00C84F00 /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- 4B833A9B1AC1B60C00C84F00 /* Quick.framework */ = {
- isa = PBXReferenceProxy;
- fileType = wrapper.framework;
- path = Quick.framework;
- remoteRef = 4B833A9A1AC1B60C00C84F00 /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- 4B833A9D1AC1B60C00C84F00 /* Quick-iOSTests.xctest */ = {
- isa = PBXReferenceProxy;
- fileType = wrapper.cfbundle;
- path = "Quick-iOSTests.xctest";
- remoteRef = 4B833A9C1AC1B60C00C84F00 /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- 4B833A9F1AC1B60C00C84F00 /* QuickFocused-iOSTests.xctest */ = {
- isa = PBXReferenceProxy;
- fileType = wrapper.cfbundle;
- path = "QuickFocused-iOSTests.xctest";
- remoteRef = 4B833A9E1AC1B60C00C84F00 /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
-/* End PBXReferenceProxy section */
-
-/* Begin PBXResourcesBuildPhase section */
- 4B42580513F56CC0006BC001 /* Resources */ = {
- isa = PBXResourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 4B42581113F56CC1006BC001 /* InfoPlist.strings in Resources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
- 4B42587213F56EA3006BC001 /* Resources */ = {
- isa = PBXResourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 4B42588113F56EA3006BC001 /* InfoPlist.strings in Resources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
- 4BED511212AA8B7A00CA6B36 /* Resources */ = {
- isa = PBXResourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXResourcesBuildPhase section */
-
-/* Begin PBXShellScriptBuildPhase section */
- 4B25BE4F1291C4FB00821DC1 /* Build Static Libs */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputPaths = (
- );
- name = "Build Static Libs";
- outputPaths = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "xcodebuild -project ${PROJECT_NAME}.xcodeproj -sdk iphonesimulator -target ${PROJECT_NAME}-StaticLib -configuration ${CONFIGURATION} clean build\nxcodebuild -project ${PROJECT_NAME}.xcodeproj -sdk iphoneos -target ${PROJECT_NAME}-StaticLib -configuration ${CONFIGURATION} clean build";
- };
- 4B25BE511291C51E00821DC1 /* Build Universal Lib */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 12;
- files = (
- );
- inputPaths = (
- );
- name = "Build Universal Lib";
- outputPaths = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "SIMULATOR_LIBRARY_PATH=\"${BUILD_DIR}/${CONFIGURATION}-iphonesimulator/lib${PROJECT_NAME}-StaticLib.a\" &&\n\tDEVICE_LIBRARY_PATH=\"${BUILD_DIR}/${CONFIGURATION}-iphoneos/lib${PROJECT_NAME}-StaticLib.a\" &&\n\tUNIVERSAL_LIBRARY_DIR=\"${BUILD_DIR}/${CONFIGURATION}-iphoneuniversal\" &&\n\tUNIVERSAL_LIBRARY_PATH=\"${UNIVERSAL_LIBRARY_DIR}/${PRODUCT_NAME}\" &&\n\tFRAMEWORK=\"${UNIVERSAL_LIBRARY_DIR}/${PRODUCT_NAME}.framework\" &&\n\n# Create framework directory structure.\n\trm -rf \"${FRAMEWORK}\" &&\n\tmkdir -p \"${UNIVERSAL_LIBRARY_DIR}\" &&\n\tmkdir -p \"${FRAMEWORK}/Versions/A/Headers\" &&\n\tmkdir -p \"${FRAMEWORK}/Versions/A/Resources\" &&\n\n# Generate universal binary from desktop, device, and simulator builds.\n\tlipo \"${SIMULATOR_LIBRARY_PATH}\" \"${DEVICE_LIBRARY_PATH}\" -create -output \"${UNIVERSAL_LIBRARY_PATH}\" &&\n\n# Move files to appropriate locations in framework paths.\n\tcp \"${UNIVERSAL_LIBRARY_PATH}\" \"${FRAMEWORK}/Versions/A\" &&\n\tln -s \"A\" \"${FRAMEWORK}/Versions/Current\" &&\n\tln -s \"Versions/Current/Headers\" \"${FRAMEWORK}/Headers\" &&\n\tln -s \"Versions/Current/Resources\" \"${FRAMEWORK}/Resources\" &&\n\tln -s \"Versions/Current/${PRODUCT_NAME}\" \"${FRAMEWORK}/${PRODUCT_NAME}\" &&\n\tcp \"${SRCROOT}/${PROJECT_NAME}-Info.plist\" \"${FRAMEWORK}/Resources/Info.plist\"\n\n";
- };
-/* End PBXShellScriptBuildPhase section */
-
-/* Begin PBXSourcesBuildPhase section */
- 4B42580313F56CC0006BC001 /* Sources */ = {
- isa = PBXSourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 4B42586C13F56D96006BC001 /* InjectionErrorFixtures.m in Sources */,
- 4B42585A13F56D41006BC001 /* Fixtures.m in Sources */,
- 4B42585B13F56D41006BC001 /* SpecHelper.m in Sources */,
- 4B42585C13F56D41006BC001 /* ModuleFixtures.m in Sources */,
- 4B42585D13F56D41006BC001 /* BasicUsageSpecs.m in Sources */,
- 4B42585E13F56D41006BC001 /* InjectionErrorsSpecs.m in Sources */,
- 4B42585F13F56D41006BC001 /* InheritanceSpecs.m in Sources */,
- 4B42586013F56D41006BC001 /* ModuleUsageSpecs.m in Sources */,
- 4B42586113F56D41006BC001 /* JSObjectionProviderEntry.m in Sources */,
- 4B42586213F56D41006BC001 /* JSObjectionEntry.m in Sources */,
- 4B42586313F56D41006BC001 /* NSObject+Objection.m in Sources */,
- 4B42586413F56D41006BC001 /* JSObjectionUtils.m in Sources */,
- 4B42586513F56D41006BC001 /* JSObjectionInjectorEntry.m in Sources */,
- 4B42586613F56D42006BC001 /* JSObjectionInjector.m in Sources */,
- 4B42586713F56D42006BC001 /* JSObjectionBindingEntry.m in Sources */,
- 4B42586813F56D42006BC001 /* JSObjectionModule.m in Sources */,
- 4B75FA771AC1E3FD00060FE1 /* Stub.swift in Sources */,
- 4B42586913F56D42006BC001 /* JSObjection.m in Sources */,
- 4BE78764145647EF00BD705E /* JSObjectFactory.m in Sources */,
- D2AAC07E0554694100DB5193 /* CircularDependencySpecs.m in Sources */,
- D2AAC07E0554694100DB5196 /* CircularDependencyFixtures.m in Sources */,
- 4B4289311567F3EC004F73D3 /* InitializerSpecs.m in Sources */,
- 4B428935156806E6004F73D3 /* InitializerFixtures.m in Sources */,
- 4BB07D751668679A00D9BA1E /* AddAndRemoveModulesSpecs.m in Sources */,
- 4B53383917AC1420004BDF83 /* JSObjectionRuntimePropertyReflector.m in Sources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
- 4B42587013F56EA3006BC001 /* Sources */ = {
- isa = PBXSourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 4B4258CD13F56F44006BC001 /* Fixtures.m in Sources */,
- 4B4258CE13F56F44006BC001 /* InjectionErrorFixtures.m in Sources */,
- 4B4258CF13F56F45006BC001 /* SpecHelper.m in Sources */,
- 4B4258D013F56F45006BC001 /* ModuleFixtures.m in Sources */,
- 4B4258D113F56F45006BC001 /* BasicUsageSpecs.m in Sources */,
- 4B4258D213F56F45006BC001 /* InjectionErrorsSpecs.m in Sources */,
- 4B4258D313F56F45006BC001 /* InheritanceSpecs.m in Sources */,
- 4B4258D413F56F45006BC001 /* ModuleUsageSpecs.m in Sources */,
- 4B4258D513F56F45006BC001 /* JSObjectionProviderEntry.m in Sources */,
- 4B4258D613F56F45006BC001 /* JSObjectionEntry.m in Sources */,
- 4B4258D713F56F45006BC001 /* NSObject+Objection.m in Sources */,
- 4B4258D813F56F45006BC001 /* JSObjectionUtils.m in Sources */,
- 4B4258D913F56F45006BC001 /* JSObjectionInjectorEntry.m in Sources */,
- 4B4258DA13F56F45006BC001 /* JSObjectionInjector.m in Sources */,
- 4B4258DB13F56F45006BC001 /* JSObjectionBindingEntry.m in Sources */,
- 4B4258DC13F56F45006BC001 /* JSObjectionModule.m in Sources */,
- 4B75FA781AC1E3FD00060FE1 /* Stub.swift in Sources */,
- 4B4258DD13F56F45006BC001 /* JSObjection.m in Sources */,
- 4BE78765145647EF00BD705E /* JSObjectFactory.m in Sources */,
- D2AAC07E0554694100DB5194 /* CircularDependencySpecs.m in Sources */,
- D2AAC07E0554694100DB5197 /* CircularDependencyFixtures.m in Sources */,
- 4B4289321567F3EC004F73D3 /* InitializerSpecs.m in Sources */,
- 4B428936156806E6004F73D3 /* InitializerFixtures.m in Sources */,
- 4BB07D761668679A00D9BA1E /* AddAndRemoveModulesSpecs.m in Sources */,
- 4B53383A17AC1420004BDF83 /* JSObjectionRuntimePropertyReflector.m in Sources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
- 4BED511312AA8B7A00CA6B36 /* Sources */ = {
- isa = PBXSourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 4BED512412AA8BCC00CA6B36 /* JSObjectionInjectorEntry.m in Sources */,
- 4BED512512AA8BCC00CA6B36 /* JSObjectionInjector.m in Sources */,
- 4BED512612AA8BCC00CA6B36 /* JSObjectionBindingEntry.m in Sources */,
- 4B957EC712ADE03900CBF1EB /* JSObjectionModule.m in Sources */,
- 4B496E6C12B0F3E50053F2A3 /* JSObjectionUtils.m in Sources */,
- 4B53471A12F316A4000480AB /* NSObject+Objection.m in Sources */,
- 4B4B21AC1342B79E00833077 /* JSObjectionEntry.m in Sources */,
- 4B81F8E0135D06C200221A88 /* JSObjectionProviderEntry.m in Sources */,
- 4B9D310713DF613600C81C45 /* JSObjection.m in Sources */,
- 4BE78763145647EF00BD705E /* JSObjectFactory.m in Sources */,
- 4B53383817AC1420004BDF83 /* JSObjectionRuntimePropertyReflector.m in Sources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
- D2AAC07B0554694100DB518D /* Sources */ = {
- isa = PBXSourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 4BED512A12AA8BCC00CA6B36 /* JSObjectionInjectorEntry.m in Sources */,
- 4BED512B12AA8BCC00CA6B36 /* JSObjectionInjector.m in Sources */,
- 4BED512C12AA8BCC00CA6B36 /* JSObjectionBindingEntry.m in Sources */,
- 4B957EC812ADE05D00CBF1EB /* JSObjectionModule.m in Sources */,
- 4B496E6D12B0F3E50053F2A3 /* JSObjectionUtils.m in Sources */,
- 4B53471B12F316A4000480AB /* NSObject+Objection.m in Sources */,
- 4B4B21A91342B79E00833077 /* JSObjectionEntry.m in Sources */,
- 4B81F8DE135D06C200221A88 /* JSObjectionProviderEntry.m in Sources */,
- 4B9D310513DF613600C81C45 /* JSObjection.m in Sources */,
- 4BE78762145647EF00BD705E /* JSObjectFactory.m in Sources */,
- 4B53383617AC1420004BDF83 /* JSObjectionRuntimePropertyReflector.m in Sources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXSourcesBuildPhase section */
-
-/* Begin PBXTargetDependency section */
- 4B2D269D1AC1E53B00FF802F /* PBXTargetDependency */ = {
- isa = PBXTargetDependency;
- name = "Quick-OSX";
- targetProxy = 4B2D269C1AC1E53B00FF802F /* PBXContainerItemProxy */;
- };
- 4B2D269F1AC1E53B00FF802F /* PBXTargetDependency */ = {
- isa = PBXTargetDependency;
- name = "Nimble-OSX";
- targetProxy = 4B2D269E1AC1E53B00FF802F /* PBXContainerItemProxy */;
- };
- 4B833AA81AC1D68900C84F00 /* PBXTargetDependency */ = {
- isa = PBXTargetDependency;
- name = "Quick-iOS";
- targetProxy = 4B833AA71AC1D68900C84F00 /* PBXContainerItemProxy */;
- };
- 4B833AAA1AC1D68900C84F00 /* PBXTargetDependency */ = {
- isa = PBXTargetDependency;
- name = "Nimble-iOS";
- targetProxy = 4B833AA91AC1D68900C84F00 /* PBXContainerItemProxy */;
- };
-/* End PBXTargetDependency section */
-
-/* Begin PBXVariantGroup section */
- 4B42580F13F56CC1006BC001 /* InfoPlist.strings */ = {
- isa = PBXVariantGroup;
- children = (
- 4B42581013F56CC1006BC001 /* en */,
- );
- name = InfoPlist.strings;
- sourceTree = "";
- };
- 4B42587F13F56EA3006BC001 /* InfoPlist.strings */ = {
- isa = PBXVariantGroup;
- children = (
- 4B42588013F56EA3006BC001 /* en */,
- );
- name = InfoPlist.strings;
- sourceTree = "";
- };
-/* End PBXVariantGroup section */
-
-/* Begin XCBuildConfiguration section */
- 1DEB921F08733DC00010E9CD /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- CLANG_ENABLE_OBJC_ARC = YES;
- COPY_PHASE_STRIP = NO;
- DSTROOT = /tmp/Objection.dst;
- FRAMEWORK_SEARCH_PATHS = (
- "$(inherited)",
- "\"$(SRCROOT)/..\"",
- );
- GCC_DYNAMIC_NO_PIC = NO;
- GCC_MODEL_TUNING = G5;
- GCC_OPTIMIZATION_LEVEL = 0;
- GCC_THUMB_SUPPORT = NO;
- GCC_WARN_UNDECLARED_SELECTOR = NO;
- INSTALL_PATH = /usr/local/lib;
- IPHONEOS_DEPLOYMENT_TARGET = 7.0;
- ONLY_ACTIVE_ARCH = NO;
- PRODUCT_NAME = "Objection-StaticLib";
- SDKROOT = iphoneos;
- VALID_ARCHS = "i386 x86_64 arm64 armv7s armv7";
- };
- name = Debug;
- };
- 1DEB922008733DC00010E9CD /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- CLANG_ENABLE_OBJC_ARC = YES;
- DSTROOT = /tmp/Objection.dst;
- FRAMEWORK_SEARCH_PATHS = (
- "$(inherited)",
- "\"$(SRCROOT)/..\"",
- );
- GCC_MODEL_TUNING = G5;
- GCC_THUMB_SUPPORT = NO;
- GCC_WARN_UNDECLARED_SELECTOR = NO;
- INSTALL_PATH = /usr/local/lib;
- IPHONEOS_DEPLOYMENT_TARGET = 7.0;
- ONLY_ACTIVE_ARCH = NO;
- PRODUCT_NAME = "Objection-StaticLib";
- SDKROOT = iphoneos;
- VALID_ARCHS = "i386 x86_64 arm64 armv7s armv7";
- };
- name = Release;
- };
- 1DEB922308733DC00010E9CD /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- CLANG_WARN_BOOL_CONVERSION = YES;
- CLANG_WARN_CONSTANT_CONVERSION = YES;
- CLANG_WARN_EMPTY_BODY = YES;
- CLANG_WARN_ENUM_CONVERSION = YES;
- CLANG_WARN_INT_CONVERSION = YES;
- CLANG_WARN_UNREACHABLE_CODE = YES;
- CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
- ENABLE_STRICT_OBJC_MSGSEND = YES;
- GCC_C_LANGUAGE_STANDARD = c99;
- GCC_NO_COMMON_BLOCKS = YES;
- GCC_OPTIMIZATION_LEVEL = 0;
- GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
- GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
- GCC_WARN_ABOUT_RETURN_TYPE = YES;
- GCC_WARN_UNDECLARED_SELECTOR = YES;
- GCC_WARN_UNINITIALIZED_AUTOS = YES;
- GCC_WARN_UNUSED_FUNCTION = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- ONLY_ACTIVE_ARCH = YES;
- OTHER_LDFLAGS = "-ObjC";
- VALID_ARCHS = "i386 x86_64";
- };
- name = Debug;
- };
- 1DEB922408733DC00010E9CD /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- CLANG_WARN_BOOL_CONVERSION = YES;
- CLANG_WARN_CONSTANT_CONVERSION = YES;
- CLANG_WARN_EMPTY_BODY = YES;
- CLANG_WARN_ENUM_CONVERSION = YES;
- CLANG_WARN_INT_CONVERSION = YES;
- CLANG_WARN_UNREACHABLE_CODE = YES;
- CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
- ENABLE_STRICT_OBJC_MSGSEND = YES;
- GCC_C_LANGUAGE_STANDARD = c99;
- GCC_NO_COMMON_BLOCKS = YES;
- GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
- GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
- GCC_WARN_ABOUT_RETURN_TYPE = YES;
- GCC_WARN_UNDECLARED_SELECTOR = YES;
- GCC_WARN_UNINITIALIZED_AUTOS = YES;
- GCC_WARN_UNUSED_FUNCTION = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- OTHER_LDFLAGS = "-ObjC";
- VALID_ARCHS = "i386 x86_64";
- };
- name = Release;
- };
- 4B25BE4B1291C43400821DC1 /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- COPY_PHASE_STRIP = NO;
- GCC_DYNAMIC_NO_PIC = NO;
- GCC_OPTIMIZATION_LEVEL = 0;
- GCC_THUMB_SUPPORT = NO;
- GCC_WARN_UNDECLARED_SELECTOR = NO;
- PRODUCT_NAME = "Objection-iOS";
- SDKROOT = iphoneos;
- };
- name = Debug;
- };
- 4B25BE4C1291C43400821DC1 /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- COPY_PHASE_STRIP = YES;
- DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
- GCC_C_LANGUAGE_STANDARD = c99;
- GCC_THUMB_SUPPORT = NO;
- GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
- GCC_WARN_UNDECLARED_SELECTOR = NO;
- PRODUCT_NAME = "Objection-iOS";
- SDKROOT = iphoneos;
- ZERO_LINK = NO;
- };
- name = Release;
- };
- 4B42581813F56CC1006BC001 /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- CLANG_ENABLE_MODULES = YES;
- CLANG_ENABLE_OBJC_ARC = YES;
- EMBEDDED_CONTENT_CONTAINS_SWIFT = YES;
- FRAMEWORK_SEARCH_PATHS = (
- "$(SDKROOT)/Developer/Library/Frameworks",
- "\"$(SRCROOT)/Vendor\"",
- "$(PROJECT_DIR)/Vendor",
- "$(PLATFORM_DIR)/Developer/Library/Frameworks",
- "$(inherited)",
- );
- GCC_C_LANGUAGE_STANDARD = gnu99;
- GCC_PRECOMPILE_PREFIX_HEADER = YES;
- GCC_PREFIX_HEADER = "Specs-iOS/Specs-iOS-Prefix.pch";
- GCC_PREPROCESSOR_DEFINITIONS = DEBUG;
- GCC_SYMBOLS_PRIVATE_EXTERN = NO;
- GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
- GCC_WARN_UNDECLARED_SELECTOR = NO;
- HEADER_SEARCH_PATHS = (
- "$(SRCROOT)/Vendor/Kiwi/Classes/**",
- "$(SRCROOT)/Vendor/Kiwi/NonARC/**",
- );
- INFOPLIST_FILE = "Specs-iOS/Specs-iOS-Info.plist";
- IPHONEOS_DEPLOYMENT_TARGET = 8.0;
- LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
- ONLY_ACTIVE_ARCH = NO;
- OTHER_LDFLAGS = (
- "-framework",
- XCTest,
- "-ObjC",
- "-lstdc++",
- "-all_load",
- );
- PRODUCT_NAME = "$(TARGET_NAME)";
- SDKROOT = iphoneos;
- SWIFT_OPTIMIZATION_LEVEL = "-Onone";
- VALID_ARCHS = "x64_86 i386";
- };
- name = Debug;
- };
- 4B42581913F56CC1006BC001 /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- CLANG_ENABLE_MODULES = YES;
- CLANG_ENABLE_OBJC_ARC = YES;
- EMBEDDED_CONTENT_CONTAINS_SWIFT = YES;
- FRAMEWORK_SEARCH_PATHS = (
- "$(SDKROOT)/Developer/Library/Frameworks",
- "\"$(SRCROOT)/Vendor\"",
- "$(PROJECT_DIR)/Vendor",
- "$(PLATFORM_DIR)/Developer/Library/Frameworks",
- "$(inherited)",
- );
- GCC_C_LANGUAGE_STANDARD = gnu99;
- GCC_PRECOMPILE_PREFIX_HEADER = YES;
- GCC_PREFIX_HEADER = "Specs-iOS/Specs-iOS-Prefix.pch";
- GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
- GCC_WARN_UNDECLARED_SELECTOR = NO;
- HEADER_SEARCH_PATHS = (
- "$(SRCROOT)/Vendor/Kiwi/Classes/**",
- "$(SRCROOT)/Vendor/Kiwi/NonARC/**",
- );
- INFOPLIST_FILE = "Specs-iOS/Specs-iOS-Info.plist";
- IPHONEOS_DEPLOYMENT_TARGET = 8.0;
- LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
- OTHER_LDFLAGS = (
- "-framework",
- XCTest,
- "-ObjC",
- "-lstdc++",
- "-all_load",
- );
- PRODUCT_NAME = "$(TARGET_NAME)";
- SDKROOT = iphoneos;
- VALID_ARCHS = "x64_86 i386";
- };
- name = Release;
- };
- 4B42588813F56EA3006BC001 /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- CLANG_ENABLE_MODULES = YES;
- CLANG_ENABLE_OBJC_ARC = YES;
- COMBINE_HIDPI_IMAGES = YES;
- COPY_PHASE_STRIP = NO;
- FRAMEWORK_SEARCH_PATHS = (
- "\"$(SRCROOT)/Vendor\"",
- "$(inherited)",
- "$(PLATFORM_DIR)/Developer/Library/Frameworks",
- );
- GCC_C_LANGUAGE_STANDARD = gnu99;
- GCC_DYNAMIC_NO_PIC = NO;
- GCC_ENABLE_OBJC_EXCEPTIONS = YES;
- GCC_PRECOMPILE_PREFIX_HEADER = YES;
- GCC_PREFIX_HEADER = "Specs-OSX/Specs-OSX-Prefix.pch";
- GCC_PREPROCESSOR_DEFINITIONS = DEBUG;
- GCC_SYMBOLS_PRIVATE_EXTERN = NO;
- GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
- GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
- GCC_WARN_UNDECLARED_SELECTOR = NO;
- HEADER_SEARCH_PATHS = (
- "$(SRCROOT)/Vendor/Kiwi/Classes/**",
- "$(SRCROOT)/Vendor/Kiwi/NonARC/**",
- );
- INFOPLIST_FILE = "Specs-OSX/Specs-OSX-Info.plist";
- LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks";
- MACOSX_DEPLOYMENT_TARGET = 10.9;
- ONLY_ACTIVE_ARCH = YES;
- OTHER_LDFLAGS = "-all_load";
- PRODUCT_NAME = "$(TARGET_NAME)";
- SDKROOT = macosx;
- SWIFT_OPTIMIZATION_LEVEL = "-Onone";
- };
- name = Debug;
- };
- 4B42588913F56EA3006BC001 /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- CLANG_ENABLE_MODULES = YES;
- CLANG_ENABLE_OBJC_ARC = YES;
- COMBINE_HIDPI_IMAGES = YES;
- COPY_PHASE_STRIP = YES;
- DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
- FRAMEWORK_SEARCH_PATHS = (
- "\"$(SRCROOT)/Vendor\"",
- "$(inherited)",
- "$(PLATFORM_DIR)/Developer/Library/Frameworks",
- );
- GCC_C_LANGUAGE_STANDARD = gnu99;
- GCC_ENABLE_OBJC_EXCEPTIONS = YES;
- GCC_PRECOMPILE_PREFIX_HEADER = YES;
- GCC_PREFIX_HEADER = "Specs-OSX/Specs-OSX-Prefix.pch";
- GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
- GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
- GCC_WARN_UNDECLARED_SELECTOR = NO;
- HEADER_SEARCH_PATHS = (
- "$(SRCROOT)/Vendor/Kiwi/Classes/**",
- "$(SRCROOT)/Vendor/Kiwi/NonARC/**",
- );
- INFOPLIST_FILE = "Specs-OSX/Specs-OSX-Info.plist";
- LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks";
- MACOSX_DEPLOYMENT_TARGET = 10.9;
- OTHER_LDFLAGS = "-all_load";
- PRODUCT_NAME = "$(TARGET_NAME)";
- SDKROOT = macosx;
- };
- name = Release;
- };
- 4BED511812AA8B7A00CA6B36 /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- CLANG_ENABLE_OBJC_ARC = YES;
- COMBINE_HIDPI_IMAGES = YES;
- COPY_PHASE_STRIP = NO;
- DYLIB_COMPATIBILITY_VERSION = 1;
- DYLIB_CURRENT_VERSION = 1;
- FRAMEWORK_VERSION = A;
- GCC_DYNAMIC_NO_PIC = NO;
- GCC_MODEL_TUNING = G5;
- GCC_OPTIMIZATION_LEVEL = 0;
- GCC_PRECOMPILE_PREFIX_HEADER = YES;
- GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h";
- GCC_WARN_UNDECLARED_SELECTOR = NO;
- INFOPLIST_FILE = "Objection-Info.plist";
- INSTALL_PATH = "$(HOME)/Library/Frameworks";
- OTHER_LDFLAGS = (
- "-framework",
- Foundation,
- "-framework",
- AppKit,
- );
- PRODUCT_NAME = Objection;
- SDKROOT = macosx;
- };
- name = Debug;
- };
- 4BED511912AA8B7A00CA6B36 /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- CLANG_ENABLE_OBJC_ARC = YES;
- COMBINE_HIDPI_IMAGES = YES;
- COPY_PHASE_STRIP = YES;
- DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
- DYLIB_COMPATIBILITY_VERSION = 1;
- DYLIB_CURRENT_VERSION = 1;
- FRAMEWORK_VERSION = A;
- GCC_MODEL_TUNING = G5;
- GCC_PRECOMPILE_PREFIX_HEADER = YES;
- GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h";
- GCC_WARN_UNDECLARED_SELECTOR = NO;
- INFOPLIST_FILE = "Objection-Info.plist";
- INSTALL_PATH = "$(HOME)/Library/Frameworks";
- OTHER_LDFLAGS = (
- "-framework",
- Foundation,
- "-framework",
- AppKit,
- );
- PRODUCT_NAME = Objection;
- SDKROOT = macosx;
- ZERO_LINK = NO;
- };
- name = Release;
- };
-/* End XCBuildConfiguration section */
-
-/* Begin XCConfigurationList section */
- 1DEB921E08733DC00010E9CD /* Build configuration list for PBXNativeTarget "Objection-StaticLib" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 1DEB921F08733DC00010E9CD /* Debug */,
- 1DEB922008733DC00010E9CD /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
- 1DEB922208733DC00010E9CD /* Build configuration list for PBXProject "Objection" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 1DEB922308733DC00010E9CD /* Debug */,
- 1DEB922408733DC00010E9CD /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
- 4B25BE4D1291C45200821DC1 /* Build configuration list for PBXAggregateTarget "Objection-iOS" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 4B25BE4B1291C43400821DC1 /* Debug */,
- 4B25BE4C1291C43400821DC1 /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
- 4B42581713F56CC1006BC001 /* Build configuration list for PBXNativeTarget "Specs-iOS" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 4B42581813F56CC1006BC001 /* Debug */,
- 4B42581913F56CC1006BC001 /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
- 4B42588713F56EA3006BC001 /* Build configuration list for PBXNativeTarget "Specs-OSX" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 4B42588813F56EA3006BC001 /* Debug */,
- 4B42588913F56EA3006BC001 /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
- 4BED511A12AA8B7A00CA6B36 /* Build configuration list for PBXNativeTarget "Objection" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 4BED511812AA8B7A00CA6B36 /* Debug */,
- 4BED511912AA8B7A00CA6B36 /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
-/* End XCConfigurationList section */
- };
- rootObject = 0867D690FE84028FC02AAC07 /* Project object */;
-}
diff --git a/Objection.xcodeproj/xcshareddata/xcschemes/Objection-StaticLib.xcscheme b/Objection.xcodeproj/xcshareddata/xcschemes/Objection-StaticLib.xcscheme
deleted file mode 100644
index 00db3da..0000000
--- a/Objection.xcodeproj/xcshareddata/xcschemes/Objection-StaticLib.xcscheme
+++ /dev/null
@@ -1,68 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/Objection.xcodeproj/xcshareddata/xcschemes/Objection-iOS.xcscheme b/Objection.xcodeproj/xcshareddata/xcschemes/Objection-iOS.xcscheme
deleted file mode 100644
index 3d72491..0000000
--- a/Objection.xcodeproj/xcshareddata/xcschemes/Objection-iOS.xcscheme
+++ /dev/null
@@ -1,68 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/Objection.xcodeproj/xcshareddata/xcschemes/Objection.xcscheme b/Objection.xcodeproj/xcshareddata/xcschemes/Objection.xcscheme
deleted file mode 100644
index d7b748d..0000000
--- a/Objection.xcodeproj/xcshareddata/xcschemes/Objection.xcscheme
+++ /dev/null
@@ -1,68 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/Objection.xcodeproj/xcshareddata/xcschemes/Specs-OSX.xcscheme b/Objection.xcodeproj/xcshareddata/xcschemes/Specs-OSX.xcscheme
deleted file mode 100644
index d359fd5..0000000
--- a/Objection.xcodeproj/xcshareddata/xcschemes/Specs-OSX.xcscheme
+++ /dev/null
@@ -1,53 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/Objection.xcodeproj/xcshareddata/xcschemes/Specs-iOS.xcscheme b/Objection.xcodeproj/xcshareddata/xcschemes/Specs-iOS.xcscheme
deleted file mode 100644
index 78cdeb6..0000000
--- a/Objection.xcodeproj/xcshareddata/xcschemes/Specs-iOS.xcscheme
+++ /dev/null
@@ -1,53 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/README.md b/README.md
deleted file mode 100644
index 67740de..0000000
--- a/README.md
+++ /dev/null
@@ -1,452 +0,0 @@
-[](https://travis-ci.org/atomicobject/objection)
-
-## Description
-
-Objection is a lightweight dependency injection framework for Objective-C for MacOS X and iOS. For those of you that have used [Guice](http://code.google.com/p/google-guice/), Objection will feel familiar. Objection was built to stay out of your way and alleviate the need to maintain a large XML container or manually construct objects.
-
-## Features
-
-* "Annotation" Based Dependency Injection
-* Seamless support for integrating custom and external dependencies
- * Custom Object Providers
- * Meta Class Bindings
- * Protocol Bindings
- * Instance Bindings
- * Named Bindings
-* Lazily instantiates dependencies
-* Eager Singletons
-* Initializer Support
- * Default and custom arguments
-
-## Using Objection
-
-For questions, visit the [mailing list](https://groups.google.com/forum/?fromgroups#!forum/objection-framework)
-### Basic Usage
-
-A class can be registered with objection using the macros *objection_register* (optional) or *objection_register_singleton*. The *objection_requires* macro can be used to declare what dependencies objection should provide to all instances it creates of that class. *objection_requires* can be used safely with inheritance.
-
-#### Example
-```objective-c
-@class Engine, Brakes;
-
-@interface Car : NSObject
-{
- Engine *engine;
- Brakes *brakes;
- BOOL awake;
-}
-
-// Will be filled in by objection
-@property(nonatomic, strong) Engine *engine;
-// Will be filled in by objection
-@property(nonatomic, strong) Brakes *brakes;
-@property(nonatomic) BOOL awake;
-
-@implementation Car
-objection_requires(@"engine", @"brakes")
-@synthesize engine, brakes, awake;
-@end
-```
-#### Defining dependencies with selectors
-
-You can alternatively use selectors to define dependencies. The compiler will generate a warning if a given selector is not visible or cannot be found.
-
-#### Example
-
-```objective-c
-@implementation Car
-objection_requires_sel(@selector(engine), @selector(brakes))
-@synthesize engine, brakes, awake;
-@end
-```
-
-### Fetching Objects from Objection
-
-An object can be fetched from objection by creating an injector and then asking for an instance of a particular class or protocol. An injector manages its own object context. Which means that a singleton is per injector and is not necessarily a *true* singleton.
-
-```objective-c
-- (void)someMethod {
- JSObjectionInjector *injector = [JSObjection createInjector];
- id car = [injector getObject:[Car class]];
-}
-```
-
-A default injector can be registered with Objection which can be used throughout your application or library.
-
-```objective-c
-- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
- JSObjectionInjector *injector = [JSObjection createInjector];
- [JSObjection setDefaultInjector:injector];
-}
-
-- (void)viewDidLoad {
- id myModel = [[JSObjection defaultInjector] getObject:[MyModel class]];
-}
-```
-
-#### Injecting dependencies
-
-There may be instances where an object is allocated outside of the injector's life cycle. If the object's class declared its dependencies using *objection_requires* an injector can satisfy its dependencies via the *injectDependencies:* method.
-
-```objective-c
-@implementation JSTableModel
-objection_requires(@"RESTClient")
-- (void)awakeFromNib {
- [[JSObjection defaultInjector] injectDependencies:self];
-}
-@end
-```
-
-#### Subscripting
-
-Objection has support for the subscripting operator to retrieve objects from the injection context.
-
-```objective-c
-- (void)someMethod {
- JSObjectionInjector *injector = [JSObjection createInjector];
- id car = injector[[Car class]];
-}
-```
-
-### Awaking from Objection
-
-If an object is interested in knowing when it has been fully instantiated by objection it can implement the method
-*awakeFromObjection*.
-
-#### Example
-```objective-c
-@implementation Car
-//...
-objection_register_singleton(Car)
- - (void)awakeFromObjection {
- awake = YES;
- }
-@end
-```
-
-### Object Factory
-
-A class can get objects from the injector context through an object factory.
-
-### Example
-```objective-c
-@interface RequestDispatcher
-@property(nonatomic, strong) JSObjectFactory *objectFactory
-@end
-
-@implementation RequestDispatcher
-- (void)dispatch:(NSDictionary *)params
-{
- Request *request = [self.objectFactory getObject:[Request class]];
- request.params = params;
- [request send];
-}
-@end
-```
-## Modules
-
-A module is a set of bindings which contributes additional configuration information to the injector. It is especially useful for integrating external depencies and binding protocols to classes or instances.
-
-#### Instance and Protocol Bindings
-
-* Bind a protocol or class to a specific instance of that type
-* Bind a class that is registered with Objection to a protocol
-
-#### Example
-```objective-c
-@interface MyAppModule : JSObjectionModule {
-
-}
-@end
-
-@implementation MyAppModule
-- (void)configure {
- [self bind:[UIApplication sharedApplication] toClass:[UIApplication class]];
- [self bind:[UIApplication sharedApplication].delegate toProtocol:@protocol(UIApplicationDelegate)];
- [self bindClass:[MyAPIService class] toProtocol:@protocol(APIService)];
-}
-
-@end
-- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
- JSObjectionInjector *injector = [JSObjection createInjector:[[MyAppModule alloc] init]];
- [JSObjection setDefaultInjector:injector];
-}
-```
-#### Meta Class Bindings
-
-There are times when a dependency -- usually external -- is implemented using only class methods. Objection can explicitly support binding to
-the meta class instance through a protocol. This avoids having to unnecessarily create a wrapper class that passes through to the class
-methods. The catch, of course, is that it requires a protocol definition so that Objection knows how to bind the meta class to objects
-in the injector context.
-
-#### Example
-```objective-c
-@protocol ExternalUtility
- - (void)doSomething;
-@end
-
-@interface ExternalUtility
- + (void)doSomething;
-@end
-
-@implementation ExternalUtility
- + (void)doSomething {...}
-@end
-
-// Module Configuration
-- (void)configure {
- [self bindMetaClass:[ExternalUtility class] toProtocol:@protocol(ExternalUtility)];
-}
-
-@interface SomeClass
-{
- ...
-}
-// Use 'assign' because a meta class is not subject to the normal retain/release lifecycle.
-// It will exist until the application is terminated (Class Initialization -> Application Termination)
-// regardless of the number of objects in the runtime that reference it.
-@property (nonatomic, assign) id externalUtility
-@end
-```
-#### Providers
-
-Occasionally you'll want to manually construct an object within Objection. Providers allow you to use a custom mechanism for building objects that are bound to a type. You can create a class that _conforms_ to the ObjectionProvider protocol or you can use a _block_ to build the object.
-
-#### Example
-```objective-c
-@interface CarProvider : NSObject
-@end
-
-@implementation CarProvider
-- (id)provide:(JSObjectionInjector *)context arguments:(NSArray *)arguments {
- // Manually build object
- return car;
-}
-@end
-
-@implementation MyAppModule
-- (void)configure {
- [self bindProvider:[[CarProvider alloc] init] toClass:[Car class]];
- [self bindBlock:^(JSObjectionInjector *context) {
- // Manually build object
- return car;
- } toClass:[Car class]];
-}
-@end
-```
-
-### Scopes
-
-A class can be scoped as a singleton in a module. Conversely, a registered singleton can be demoted to a normal lifecycle with in the injector's context.
-
-### Example
-```objective-c
-@implementation MyAppModule
-- (void)configure {
- [self bindClass:[Singleton class] inScope:JSObjectionScopeNormal];
- [self bindClass:[Car class] inScope:JSObjectionScopeSingleton];
-}
-@end
-```
-
-### Named Bindings
-
-Dependencies of the same class or protocol can be identified using the *objection_requires_names* macro, which takes a dictionary of names to properties as a parameter.
-
-#### Example
-```objective-c
-@interface ShinyCar : NSObject
-@property (nonatomic, strong) Headlight *leftHeadlight;
-@property (nonatomic, strong) Headlight *rightHeadlight;
-@end
-
-@implementation ShinyCar
-objection_register(ShinyCar)
-objection_requires_names((@{@"LeftHeadlight":@"leftHeadlight", @"RightHeadlight":@"rightHeadlight"}))
-@synthesize leftHeadlight, rightHeadlight;
-@end
-
-@implementation NamedModule
-
-- (void)configure
-{
- [self bind:[[Headlight alloc]init] toClass:[Headlight class] named:@"RightHeadlight"];
- [self bindClass:[HIDHeadlight class] toClass:[Headlight class] named:@"LeftHeadlight"];
-
-}
-@end
-
-```
-
-
-### Eager Singletons
-
-You can mark registered singleton classes as eager singletons. Eager singletons will be instantiated during the creation of the injector rather than being lazily instantiated.
-
-### Example
-```objective-c
-@implementation MyAppModule
-- (void)configure {
- [self registerEagerSingleton:[Car class]];
-}
-
-@end
-```
-
-### Deriving a new injector from an existing injector
-
-A new injector can be created from an existing injector using the *withModule:* method. A new injector will be created containing the same bindings as the injector it was derived from. The new injector will also contain additional bindings provided by the new module.
-
-Conversley, if *withoutModuleOfType:* is used the new injector will _not_ contain the bindings of the removed module.
-
-### Example
-```objective-c
-injector = [otherInjector withModule:[[Level18Module alloc] init]]
- withoutModuleOfType:[Level17Module class]];
-
-```
-
-## Initializers
-
-By default, Objection allocates objects with the default initializer init. If you'd like to instantiate an object with an alternate ininitializer the objection_initializer macro can be used to do so. The macro supports passing in default arguments (scalar values are not currently supported) as well.
-
-#### Default Arguments Example
-```objective-c
-@implementation ViewController
-objection_initializer(initWithNibName:bundle:, @"ViewController")
-@end
-```
-
-#### Custom Arguments Example
-```objective-c
-@implementation ConfigurableCar
-objection_requires(@"engine", @"brakes")
-objection_initializer(initWithMake:model:)
-
-@synthesize make;
-@synthesize model;
-
-- (instancetype)initWithMake:(NSString *)make model:(NSString *)model {
- ...
-}
-@end
-
-- (void)buildCar {
- ConfigurableCar *car = [self.objectFactory getObjectWithArgs:[ConfigurableCar class], @"VW", @"Passat", nil];
- NSLog(@"Make: %@ Model: %@", car.make, car.model);
-}
-```
-
-#### Class Method Initializer
-```objective-c
-@implementation Truck
-objection_requires(@"engine", @"brakes")
-objection_initializer(truckWithMake:model:)
-+ (instancetype)truckWithMake:(NSString *) make model: (NSString *)model {
- ...
-}
-@end
-
-```
-
-#### Ad-Hoc Initializer
-```objective-c
-@implementation ConfigurableCar
-- (instancetype) initWithModel:(NSString *)model {
- //....
-}
-@end
-
-- (void)buildCar {
- ConfigurableCar *car = [self.objectFactory getObject:[ConfigurableCar class],
- initializer: @selector(initWithModel:)
- withArgumentList:@[@"Passat"]];
-}
-```
-
-## Testing
-
-If you're using [Kiwi](https://github.com/allending/Kiwi) for testing, checkout [MSSpec](https://github.com/mindsnacks/MSSpec). It provides a convenient way inject mocks into your specs using Objection.
-
-## TODO
-
-* Add a motivation section that speaks to _why_ Objection was created
-
-## Installation
-
-### Static Framework and Linkable Framework
-
-It can be downloaded [here](https://github.com/atomicobject/objection/releases/download/1.6.1/Objection-1.6.1.tar.gz)
-
-### Building Static Framework
-
- git clone git://github.com/atomicobject/objection.git
- git checkout 1.6.1
-
-#### iOS
-
-
-1. rake artifact:ios
-2. cp -R build/Release-iphoneuniversal/Objection-iOS.framework ${DEST_DIR}
-3. In XCode -> Project Icon -> Your Target -> Build Phases -> Link Binary With Libraries -> Add (+) -> Add Other
-4. Add -ObjC and -all_load to Other Link Flags in your project
-
-#### Include framework
- #import
-
-#### MacOS X
-
-1. rake artifact:osx
-2. cp -R build/Release/Objection.framework ${DEST_DIR}
-3. In XCode -> Project Icon -> Your Target -> Build Phases -> Link Binary With Libraries -> Add (+) -> Add Other
-
-#### Include framework
- #import
-
-### CocoaPods
-
-Edit your Pofile
-
- edit Podfile
- pod 'Objection', '1.6.1'
-
-Now you can install Objection
-
- pod install
-
-#### Include framework
- #import
-
-Learn more at [CocoaPods](http://cocoapods.org).
-
-### Ruby Motion
-
-A companion library for Objection was created called [motion-objection](https://github.com/atomicobject/motion-objection)
-
-```bash
-gem install motion-objection
-```
-
-## Requirements
-
-* MacOS X 10.8 +
-* iOS 7.0 +
-
-## Authors
-
-* Justin DeWind (dewind@atomicobject.com, @dewind on Twitter)
-* © 2013 [Atomic Object](http://www.atomicobject.com/)
-* More Atomic Object [open source](http://www.atomicobject.com/pages/Software+Commons) projects
-
-## Other Dependency Injection Libraries
-
-One only has to [search GitHub](https://github.com/search?l=Objective-C&p=1&q=dependency+injection&repo=&type=Repositories)
-
-## Applications that use Objection
-
-* [Bubble Island](http://www.wooga.com/games/bubble-island/)
-* [Monster World](http://www.wooga.com/games/monster-world/)
-* [Pocket Village](http://www.wooga.com/games/pocket-village/)
-* [SideReel](https://itunes.apple.com/us/app/id417270961?mt=8)
-* [Google Wallet](http://www.google.com/wallet/)
-
diff --git a/Rakefile b/Rakefile
deleted file mode 100644
index 449093e..0000000
--- a/Rakefile
+++ /dev/null
@@ -1,91 +0,0 @@
-PROJECT_NAME = "Objection"
-CONFIGURATION = "Debug"
-SPECS_TARGET_NAME = "Specs-OSX"
-UI_SPECS_TARGET_NAME = "Specs-iOS"
-IOS_VERSION = "7.1"
-SDK_DIR = "iphonesimulator#{IOS_VERSION}"
-
-def xcodebuild_executable
- ENV['XCODEBUILD'] || "xcodebuild"
-end
-
-def build_dir(effective_platform_name)
- File.join(File.dirname(__FILE__), "build", CONFIGURATION + effective_platform_name)
-end
-
-def system_or_exit(cmd, stdout = nil)
- puts "Executing #{cmd}"
- cmd += " >#{stdout}" if stdout
- system(cmd) or raise "******** Build failed ********"
-end
-
-task :default => ["specs:ios", "specs:osx"]
-task :cruise do
- Rake::Task[:clean].invoke
- Rake::Task[:build_all].invoke
- Rake::Task[:specs].invoke
- Rake::Task[:uispecs].invoke
-end
-
-namespace :artifact do
- desc "Build OSX Framework"
- task :osx => :clean do
- system_or_exit(%Q[set -o pipefail; #{xcodebuild_executable} -project #{PROJECT_NAME}.xcodeproj -target Objection -configuration Release build | xcpretty -c], nil)
- end
-
- desc "Build iOS Framework"
- task :ios => :clean do
- system_or_exit(%Q[set -o pipefail; #{xcodebuild_executable} -project #{PROJECT_NAME}.xcodeproj -target Objection-iOS -configuration Release build | xcpretty -c] , nil)
- end
-
- require 'rake/clean'
- CLEAN.include("pkg")
- CLEAN.include("build")
-
- desc "Build package containing OS X and iOS frameworks"
- task :package => [:clean, :osx, :ios] do
- version = %x|/usr/libexec/PlistBuddy -c "Print :CFBundleVersion" Objection-Info.plist|.strip
- mkdir_p "pkg"
- cp_r "build/Release-iphoneuniversal/Objection-iOS.framework", "pkg"
- cp_r "build/Release/Objection.framework", "pkg"
- cd "pkg" do
- sh "tar cvzf Objection-#{version}.tar.gz Objection-iOS.framework Objection.framework"
- end
- end
-end
-
-task :clean do
- stdout = File.join(ENV['CC_BUILD_ARTIFACTS'], "clean.output") if (ENV['IS_CI_BOX'])
- system_or_exit(%Q[set -o pipefail; #{xcodebuild_executable} -project #{PROJECT_NAME}.xcodeproj -alltargets -configuration #{CONFIGURATION} clean | xcpretty -c], stdout)
-end
-
-task :build_all do
- stdout = File.join(ENV['CC_BUILD_ARTIFACTS'], "build_all.output") if (ENV['IS_CI_BOX'])
- system_or_exit(%Q[set -o pipefail; #{xcodebuild_executable} -project #{PROJECT_NAME}.xcodeproj -alltargets -configuration #{CONFIGURATION} build | xcpretty -c], stdout)
-end
-
-namespace :pod do
- desc "Publish CocoaPod"
- task :publish do
- system_or_exit %Q[pod trunk push Objection.podspec --allow-warnings]
- end
-end
-
-
-namespace :specs do
- desc "All Specs"
- task :all => [:osx, :ios]
-
- desc "OS X Specs"
- task :osx do
- stdout = File.join(ENV['CC_BUILD_ARTIFACTS'], "build_specs.output") if (ENV['IS_CI_BOX'])
- system_or_exit(%Q[set -o pipefail; #{xcodebuild_executable} test -project #{PROJECT_NAME}.xcodeproj -scheme #{SPECS_TARGET_NAME} -configuration #{CONFIGURATION} | xcpretty -c], stdout)
- end
-
- desc "iOS Specs"
- task :ios do
- stdout = File.join(ENV['CC_BUILD_ARTIFACTS'], "build_uispecs.output") if (ENV['IS_CI_BOX'])
- ENV["TEST_AFTER_BUILD"] = "Yes"
- system_or_exit(%Q[set -o pipefail; #{xcodebuild_executable} -project #{PROJECT_NAME}.xcodeproj -scheme #{UI_SPECS_TARGET_NAME} -sdk iphonesimulator -configuration #{CONFIGURATION} -destination 'platform=iOS Simulator,name=iPhone 6,OS=latest' test | xcpretty -c], stdout)
- end
-end
diff --git a/Source/JSObjectFactory.h b/Source/JSObjectFactory.h
deleted file mode 100644
index fa14b4e..0000000
--- a/Source/JSObjectFactory.h
+++ /dev/null
@@ -1,17 +0,0 @@
-#import
-
-@class JSObjectionInjector;
-
-@interface JSObjectFactory : NSObject
-
-@property (nonatomic, readonly, weak) JSObjectionInjector *injector;
-
-- (instancetype)initWithInjector:(JSObjectionInjector *)injector;
-- (id)getObject:(id)classOrProtocol;
-- (id)getObject:(id)classOrProtocol withArgumentList:(NSArray *)arguments;
-- (id)getObject:(id)classOrProtocol initializer:(SEL)initializer withArgumentList:(NSArray *)arguments;
-- (id)getObject:(id)classOrProtocol named:(NSString *)named withArgumentList:(NSArray *)arguments;
-- (id)objectForKeyedSubscript: (id)key;
-- (id)getObjectWithArgs:(id)classOrProtocol, ... NS_REQUIRES_NIL_TERMINATION;
-
-@end
diff --git a/Source/JSObjectFactory.m b/Source/JSObjectFactory.m
deleted file mode 100644
index 09905dd..0000000
--- a/Source/JSObjectFactory.m
+++ /dev/null
@@ -1,41 +0,0 @@
-#import "JSObjectFactory.h"
-#import "Objection.h"
-
-@implementation JSObjectFactory
-
-- (instancetype)initWithInjector:(JSObjectionInjector *)injector {
- if ((self = [super init])) {
- _injector = injector;
- }
- return self;
-}
-
-- (id)getObject:(id)classOrProtocol {
- return [self.injector getObject:classOrProtocol];
-}
-
-- (id)getObject:(id)classOrProtocol withArgumentList:(NSArray *)arguments {
- return [self.injector getObject:classOrProtocol argumentList:arguments];
-}
-
-- (id)getObject:(id)classOrProtocol initializer:(SEL)initializer withArgumentList:(NSArray *)arguments {
- return [self.injector getObject:classOrProtocol named:nil initializer:initializer argumentList:arguments];
-}
-
-- (id)getObject:(id)classOrProtocol named:(NSString *)named withArgumentList:(NSArray *)arguments {
- return [self.injector getObject:classOrProtocol named:named argumentList:arguments];
-}
-
-- (id)objectForKeyedSubscript:(id)key {
- return [self getObject:key];
-}
-
-- (id)getObjectWithArgs:(id)classOrProtocol, ... {
- va_list va_arguments;
- va_start(va_arguments, classOrProtocol);
- id object = [self.injector getObject:classOrProtocol arguments:va_arguments];
- va_end(va_arguments);
- return object;
-}
-
-@end
diff --git a/Source/JSObjection.h b/Source/JSObjection.h
deleted file mode 100644
index 74c7169..0000000
--- a/Source/JSObjection.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#import
-#import "JSObjectionInjector.h"
-#import "JSObjectionEntry.h"
-#import "JSObjectionUtils.h"
-
-@interface JSObjection : NSObject
-
-+ (JSObjectionInjector *)createInjectorWithModules:(JSObjectionModule *)first, ... NS_REQUIRES_NIL_TERMINATION;
-+ (JSObjectionInjector *)createInjectorWithModulesArray:(NSArray *)modules;
-+ (JSObjectionInjector *)createInjector:(JSObjectionModule *)module;
-+ (JSObjectionInjector *)createInjector;
-+ (void)registerClass:(Class)theClass scope:(JSObjectionScope)scope;
-+ (void)setDefaultInjector:(JSObjectionInjector *)anInjector;
-+ (JSObjectionInjector *)defaultInjector;
-+ (void)reset;
-+ (JSObjectionPropertyInfo)propertyForClass:(Class)theClass andProperty:(NSString *)propertyName;
-+ (void)setPropertyReflector:(Class)reflector;
-
-@end
diff --git a/Source/JSObjection.m b/Source/JSObjection.m
deleted file mode 100644
index d645c5e..0000000
--- a/Source/JSObjection.m
+++ /dev/null
@@ -1,112 +0,0 @@
-#import "JSObjection.h"
-#import
-#import "JSObjectionInjectorEntry.h"
-#import "JSObjectionRuntimePropertyReflector.h"
-
-static NSMutableDictionary *gObjectionContext;
-static pthread_mutex_t gObjectionMutex;
-static JSObjectionInjector *gGlobalInjector;
-static id gPropertyReflector;
-
-@implementation JSObjection
-
-+ (JSObjectionInjector *)createInjector:(JSObjectionModule *)module {
- pthread_mutex_lock(&gObjectionMutex);
- @try {
- return [[JSObjectionInjector alloc] initWithContext:gObjectionContext andModule:module];
- }
- @finally {
- pthread_mutex_unlock(&gObjectionMutex);
- }
-
- return nil;
-}
-
-+ (JSObjectionInjector *)createInjectorWithModulesArray:(NSArray *)modules {
- pthread_mutex_lock(&gObjectionMutex);
- @try {
- return [[JSObjectionInjector alloc] initWithContext:gObjectionContext andModules:modules];
- }
- @finally {
- pthread_mutex_unlock(&gObjectionMutex);
- }
-
- return nil;
-}
-
-+ (JSObjectionInjector *)createInjectorWithModules:(JSObjectionModule *)first, ... {
- va_list va_modules;
- NSMutableArray *modules = [NSMutableArray arrayWithObject:first];
- va_start(va_modules, first);
-
- JSObjectionModule *module;
- while ((module = va_arg( va_modules, JSObjectionModule *) )) {
- [modules addObject:module];
- }
-
- va_end(va_modules);
- return [self createInjectorWithModulesArray:modules];
-}
-
-+ (JSObjectionInjector *)createInjector {
- pthread_mutex_lock(&gObjectionMutex);
- @try {
- return [[JSObjectionInjector alloc] initWithContext:gObjectionContext];
- }
- @finally {
- pthread_mutex_unlock(&gObjectionMutex);
- }
-
- return nil;
-}
-
-+ (void)initialize {
- if (self == [JSObjection class]) {
- gObjectionContext = [[NSMutableDictionary alloc] init];
- gPropertyReflector = [[JSObjectionRuntimePropertyReflector alloc] init];
- pthread_mutexattr_t mutexattr;
- pthread_mutexattr_init(&mutexattr);
- pthread_mutexattr_settype(&mutexattr, PTHREAD_MUTEX_RECURSIVE);
- pthread_mutex_init(&gObjectionMutex, &mutexattr);
- pthread_mutexattr_destroy(&mutexattr);
- }
-}
-
-+ (void)registerClass:(Class)theClass scope:(JSObjectionScope)scope {
- pthread_mutex_lock(&gObjectionMutex);
- if (scope != JSObjectionScopeSingleton && scope != JSObjectionScopeNormal) {
- @throw [NSException exceptionWithName:@"JSObjectionInjectorException" reason:@"Invalid Instantiation Rule" userInfo:nil];
- }
-
- if (theClass && [gObjectionContext objectForKey:NSStringFromClass(theClass)] == nil) {
- [gObjectionContext setObject:[JSObjectionInjectorEntry entryWithClass:theClass scope:scope] forKey:NSStringFromClass(theClass)];
- }
- pthread_mutex_unlock(&gObjectionMutex);
-}
-
-+ (void)reset {
- pthread_mutex_lock(&gObjectionMutex);
- [gObjectionContext removeAllObjects];
- pthread_mutex_unlock(&gObjectionMutex);
-}
-
-+ (void)setDefaultInjector:(JSObjectionInjector *)anInjector {
- if (gGlobalInjector != anInjector) {
- gGlobalInjector = anInjector;
- }
-}
-
-+ (JSObjectionInjector *)defaultInjector {
- return gGlobalInjector;
-}
-
-+ (JSObjectionPropertyInfo)propertyForClass:(Class)theClass andProperty:(NSString *)propertyName {
- return [gPropertyReflector propertyForClass:theClass andProperty: propertyName];
-}
-
-+ (void)setPropertyReflector:(id)reflector {
- if(gPropertyReflector != reflector) {
- gPropertyReflector = reflector;
- }
-}
-@end
diff --git a/Source/JSObjectionBindingEntry.h b/Source/JSObjectionBindingEntry.h
deleted file mode 100644
index 015b6f5..0000000
--- a/Source/JSObjectionBindingEntry.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#import
-#import "JSObjectionEntry.h"
-
-@interface JSObjectionBindingEntry : JSObjectionEntry
-
-- (id)initWithObject:(id)theObject;
-
-@end
diff --git a/Source/JSObjectionBindingEntry.m b/Source/JSObjectionBindingEntry.m
deleted file mode 100644
index 41b8051..0000000
--- a/Source/JSObjectionBindingEntry.m
+++ /dev/null
@@ -1,30 +0,0 @@
-#import "JSObjectionBindingEntry.h"
-
-@interface JSObjectionBindingEntry () {
- id _instance;
-}
-
-@end
-
-@implementation JSObjectionBindingEntry
-
-- (instancetype)initWithObject:(id)theObject {
- if ((self = [super init])) {
- _instance = theObject;
- }
- return self;
-}
-
-- (id)extractObject:(NSArray *)arguments {
- return _instance;
-}
-
-- (JSObjectionScope)lifeCycle {
- return JSObjectionScopeSingleton;
-}
-
-- (void)dealloc {
- _instance = nil;
-}
-
-@end
diff --git a/Source/JSObjectionEntry.h b/Source/JSObjectionEntry.h
deleted file mode 100644
index 545fc45..0000000
--- a/Source/JSObjectionEntry.h
+++ /dev/null
@@ -1,28 +0,0 @@
-#import
-
-typedef enum {
- JSObjectionScopeNone = -1,
- JSObjectionScopeNormal,
- JSObjectionScopeSingleton
-} JSObjectionScope;
-
-
-@class JSObjectionInjector, JSObjectionEntry;
-
-@protocol JSObjectionEntry
-
-@property (nonatomic, readonly) JSObjectionScope lifeCycle;
-@property (nonatomic, assign) JSObjectionInjector *injector;
-
-@required
-- (id)extractObject:(NSArray *)arguments;
-+ (id)entryWithEntry:(JSObjectionEntry *)entry;
-@optional
--(id) extractObject:(NSArray *)arguments initializer: (SEL)initializer;
-
-@end
-
-
-@interface JSObjectionEntry : NSObject
-
-@end
diff --git a/Source/JSObjectionEntry.m b/Source/JSObjectionEntry.m
deleted file mode 100644
index 457d2d0..0000000
--- a/Source/JSObjectionEntry.m
+++ /dev/null
@@ -1,19 +0,0 @@
-#import "JSObjectionEntry.h"
-
-@implementation JSObjectionEntry
-
-@synthesize injector;
-@dynamic lifeCycle;
-
-- (id)extractObject:(NSArray *)arguments {
- return nil;
-}
-
-+ (id)entryWithEntry:(JSObjectionEntry *)entry {
- return entry;
-}
-
-- (JSObjectionScope)lifeCycle {
- return JSObjectionScopeNone;
-}
-@end
diff --git a/Source/JSObjectionInjector.h b/Source/JSObjectionInjector.h
deleted file mode 100644
index c96f471..0000000
--- a/Source/JSObjectionInjector.h
+++ /dev/null
@@ -1,37 +0,0 @@
-#import
-#import "JSObjectionModule.h"
-
-@protocol JSObjectionInjectorSelectors
-
-@optional
-+ (NSSet *)objectionRequires;
-+ (NSDictionary *)objectionRequiresNames;
-
-@end
-
-@interface JSObjectionInjector : NSObject
-
-- (instancetype)initWithContext:(NSDictionary *)theGlobalContext;
-- (instancetype)initWithContext:(NSDictionary *)theGlobalContext andModule:(JSObjectionModule *)theModule;
-- (instancetype)initWithContext:(NSDictionary *)theGlobalContext andModules:(NSArray *)theModules;
-- (id)getObject:(id)classOrProtocol;
-- (id)getObject:(id)classOrProtocol named:(NSString*)name;
-- (id)getObjectWithArgs:(id)classOrProtocol, ... NS_REQUIRES_NIL_TERMINATION;
-- (id)getObject:(id)classOrProtocol namedWithArgs:(NSString*)name, ... NS_REQUIRES_NIL_TERMINATION;
-- (id)getObject:(id)classOrProtocol arguments:(va_list)argList;
-- (id)getObject:(id)classOrProtocol named:(NSString*)name arguments:(va_list)argList;
-- (id)getObject:(id)classOrProtocol argumentList:(NSArray *)argumentList;
-- (id)getObject:(id)classOrProtocol initializer:(SEL)selector argumentList:(NSArray *)argumentList;
-- (id)getObject:(id)classOrProtocol named:(NSString*)name argumentList:(NSArray *)argumentList;
-- (id)getObject:(id)classOrProtocol named:(NSString*)name initializer:(SEL)selector argumentList:(NSArray *)argumentList;
-- (id)withModule:(JSObjectionModule *)theModule;
-- (id)withModules:(JSObjectionModule *)first, ... NS_REQUIRES_NIL_TERMINATION;
-- (id)withModuleCollection:(NSArray *)theModules;
-- (id)withoutModuleOfType:(Class)moduleClass;
-- (id)withoutModuleOfTypes:(Class)first, ... NS_REQUIRES_NIL_TERMINATION;
-- (id)withoutModuleCollection:(NSArray *)moduleClasses;
-- (void)injectDependencies:(id)object;
-- (id)objectForKeyedSubscript: (id)key;
-- (NSArray *)modules;
-
-@end
diff --git a/Source/JSObjectionInjector.m b/Source/JSObjectionInjector.m
deleted file mode 100644
index 97d39b5..0000000
--- a/Source/JSObjectionInjector.m
+++ /dev/null
@@ -1,274 +0,0 @@
-#import "JSObjectionInjector.h"
-#import "JSObjectionEntry.h"
-#import "JSObjectFactory.h"
-#import "JSObjectionUtils.h"
-#import "JSObjectionInjectorEntry.h"
-
-#import
-#import
-
-@interface __JSObjectionInjectorDefaultModule : JSObjectionModule
-
-@property (nonatomic, weak) JSObjectionInjector *injector;
-
-@end
-
-@implementation __JSObjectionInjectorDefaultModule
-
-- (instancetype)initWithInjector:(JSObjectionInjector *)injector {
- if ((self = [super init])) {
- self.injector = injector;
- }
- return self;
-}
-
-- (void)configure {
- [self bind:[[JSObjectFactory alloc] initWithInjector:self.injector] toClass:[JSObjectFactory class]];
-}
-
-@end
-
-@interface JSObjectionInjector() {
- NSDictionary *_globalContext;
- NSMutableDictionary *_context;
- NSSet *_eagerSingletons;
- NSMutableArray *_modules;
-}
-
-- (void)initializeEagerSingletons;
-- (void)configureDefaultModule;
-- (void)configureModule:(JSObjectionModule *)module;
-
-@end
-
-@implementation JSObjectionInjector
-
-- (instancetype)initWithContext:(NSDictionary *)theGlobalContext {
- if ((self = [super init])) {
- _globalContext = theGlobalContext;
- _context = [[NSMutableDictionary alloc] init];
- _modules = [[NSMutableArray alloc] init];
- [self configureDefaultModule];
- [self initializeEagerSingletons];
- }
-
- return self;
-}
-
-- (instancetype)initWithContext:(NSDictionary *)theGlobalContext andModule:(JSObjectionModule *)theModule {
- if ((self = [self initWithContext:theGlobalContext])) {
- [self configureModule:theModule];
- [self initializeEagerSingletons];
- }
- return self;
-}
-
-- (instancetype)initWithContext:(NSDictionary *)theGlobalContext andModules:(NSArray *)theModules {
- if ((self = [self initWithContext:theGlobalContext])) {
- for (JSObjectionModule *module in theModules) {
- [self configureModule:module];
- }
- [self initializeEagerSingletons];
- }
- return self;
-}
-
-- (id)getObject:(id)classOrProtocol {
- return [self getObjectWithArgs:classOrProtocol, nil];
-}
-
-- (id)getObject:(id)classOrProtocol named:(NSString*)name {
- return [self getObject:classOrProtocol namedWithArgs:name, nil];
-}
-
-- (id)getObjectWithArgs:(id)classOrProtocol, ... {
- va_list va_arguments;
- va_start(va_arguments, classOrProtocol);
- id object = [self getObject:classOrProtocol arguments:va_arguments];
- va_end(va_arguments);
- return object;
-}
-
-- (id)getObject:(id)classOrProtocol namedWithArgs:(NSString *)name, ... {
- va_list va_arguments;
- va_start(va_arguments, name);
- id object = [self getObject:classOrProtocol named:name arguments:va_arguments];
- va_end(va_arguments);
- return object;
-}
-
-- (id)getObject:(id)classOrProtocol arguments:(va_list)argList {
- return [self getObject:classOrProtocol named:nil arguments:argList];
-}
-
-- (id)getObject:(id)classOrProtocol initializer:(SEL)selector argumentList:(NSArray *)argumentList {
- return [self getObject:classOrProtocol named:nil initializer:selector argumentList:argumentList];
-}
-
-- (id)getObject:(id)classOrProtocol named:name arguments:(va_list)argList {
- NSArray *arguments = JSObjectionUtils.transformVariadicArgsToArray(argList);
- return [self getObject:classOrProtocol named:name argumentList:arguments];
-}
-
-- (id)getObject:(id)classOrProtocol argumentList:(NSArray *)argumentList {
- return [self getObject:classOrProtocol named:nil argumentList:argumentList];
-}
-
-- (id)getObject:(id)classOrProtocol named:(NSString*)name initializer:(SEL)selector argumentList:(NSArray *)argumentList {
- @synchronized(self) {
- if (!classOrProtocol) {
- return nil;
- }
- NSString *key = nil;
- BOOL isClass = class_isMetaClass(object_getClass(classOrProtocol));
-
- if (isClass) {
- key = NSStringFromClass(classOrProtocol);
- } else {
- key = [NSString stringWithFormat:@"<%@>", NSStringFromProtocol(classOrProtocol)];
- }
-
- if (name)
- {
- key = [NSString stringWithFormat:@"%@:%@",key,name];
- }
-
- id injectorEntry = [_context objectForKey:key];
- injectorEntry.injector = self;
-
- if (!injectorEntry) {
- id entry = [_globalContext objectForKey:key];
- if (entry) {
- injectorEntry = [[entry class] entryWithEntry:entry];
- injectorEntry.injector = self;
- [_context setObject:injectorEntry forKey:key];
- } else if(isClass) {
- injectorEntry = [JSObjectionInjectorEntry entryWithClass:classOrProtocol scope:JSObjectionScopeNormal];
- injectorEntry.injector = self;
- [_context setObject:injectorEntry forKey:key];
- }
- }
-
- if (classOrProtocol && injectorEntry) {
- if ([injectorEntry respondsToSelector:@selector(extractObject:initializer:)]) {
- return [injectorEntry extractObject:argumentList initializer:selector];
- }
- return [injectorEntry extractObject:argumentList];
- }
-
- return nil;
- }
-
- return nil;
-
-}
-
-- (id)getObject:(id)classOrProtocol named:(NSString*)name argumentList:(NSArray *)argumentList {
- return [self getObject:classOrProtocol named:name initializer: nil argumentList:argumentList];
-}
-
-- (id)objectForKeyedSubscript: (id)key {
- return [self getObjectWithArgs:key, nil];
-}
-
-
-- (id)withModule:(JSObjectionModule *)theModule {
- return [self withModuleCollection:[NSArray arrayWithObject:theModule]];
-}
-
-- (id)withModules:(JSObjectionModule *)first, ... {
- va_list va_modules;
- NSMutableArray *modules = [NSMutableArray arrayWithObject:first];
- va_start(va_modules, first);
-
- JSObjectionModule *module;
- while ((module = va_arg( va_modules, JSObjectionModule *) )) {
- [modules addObject:module];
- }
-
- va_end(va_modules);
- return [self withModuleCollection:modules];
-
-}
-
-- (id)withModuleCollection:(NSArray *)theModules {
- NSMutableArray *mergedModules = [NSMutableArray arrayWithArray:_modules];
- [mergedModules addObjectsFromArray:theModules];
- return [[[self class] alloc] initWithContext:_globalContext andModules:mergedModules];
-}
-
-- (id)withoutModuleOfType:(Class)moduleClass {
- return [self withoutModuleCollection:[NSArray arrayWithObject:moduleClass]];
-}
-
-- (id)withoutModuleOfTypes:(Class)first, ... {
- va_list va_modules;
- NSMutableArray *classes = [NSMutableArray arrayWithObject:first];
- va_start(va_modules, first);
-
- Class aClass;
- while ((aClass = va_arg( va_modules, Class) )) {
- [classes addObject:aClass];
- }
-
- va_end(va_modules);
- return [self withoutModuleCollection:classes];
-
-}
-
-- (id)withoutModuleCollection:(NSArray *)moduleClasses {
- NSMutableArray *remainingModules = [NSMutableArray arrayWithArray:_modules];
- NSMutableArray *withDefaultModule = [NSMutableArray arrayWithArray:moduleClasses];
- [withDefaultModule addObject:[__JSObjectionInjectorDefaultModule class]];
- for (JSObjectionModule *module in _modules) {
- for (Class moduleClass in withDefaultModule) {
- if([module isKindOfClass:moduleClass]) {
- [remainingModules removeObject:module];
- }
- }
- }
- return [[[self class] alloc] initWithContext:_globalContext andModules:remainingModules];
-}
-
-
-- (void)injectDependencies:(id)object {
- JSObjectionUtils.injectDependenciesIntoProperties(self, [object class], object);
-}
-
-- (NSArray *)modules {
- return [_modules copy];
-}
-
-
-#pragma mark - Private
-
-- (void)initializeEagerSingletons {
- for (NSString *eagerSingletonKey in _eagerSingletons) {
- id entry = [_context objectForKey:eagerSingletonKey] ?: [_globalContext objectForKey:eagerSingletonKey];
- if ([entry lifeCycle] == JSObjectionScopeSingleton) {
- [self getObject:NSClassFromString(eagerSingletonKey)];
- } else {
- @throw [NSException exceptionWithName:@"JSObjectionException"
- reason:[NSString stringWithFormat:@"Unable to initialize eager singleton for the class '%@' because it was never registered as a singleton", eagerSingletonKey]
- userInfo:nil];
- }
- }
-}
-
-- (void)configureModule:(JSObjectionModule *)module {
- [_modules addObject:module];
- [module configure];
- NSSet *mergedSet = [module.eagerSingletons setByAddingObjectsFromSet:_eagerSingletons];
- _eagerSingletons = mergedSet;
- [_context addEntriesFromDictionary:module.bindings];
-}
-
-- (void)configureDefaultModule {
- __JSObjectionInjectorDefaultModule *module = [[__JSObjectionInjectorDefaultModule alloc] initWithInjector:self];
- [self configureModule:module];
-}
-
-#pragma mark -
-
-
-@end
diff --git a/Source/JSObjectionInjectorEntry.h b/Source/JSObjectionInjectorEntry.h
deleted file mode 100644
index 1d079ec..0000000
--- a/Source/JSObjectionInjectorEntry.h
+++ /dev/null
@@ -1,18 +0,0 @@
-#import
-#import "JSObjectionEntry.h"
-
-@protocol JSObjectionInjectorEntrySelectors
-
-@optional
-+ (id)objectionInitializer;
-
-@end
-
-@interface JSObjectionInjectorEntry : JSObjectionEntry
-
-@property (nonatomic, readonly) Class classEntry;
-
-- (instancetype)initWithClass:(Class)theClass lifeCycle:(JSObjectionScope)theLifeCycle;
-+ (instancetype)entryWithClass:(Class)theClass scope:(JSObjectionScope)theLifeCycle;
-
-@end
diff --git a/Source/JSObjectionInjectorEntry.m b/Source/JSObjectionInjectorEntry.m
deleted file mode 100644
index aea8ece..0000000
--- a/Source/JSObjectionInjectorEntry.m
+++ /dev/null
@@ -1,93 +0,0 @@
-#import "JSObjectionInjectorEntry.h"
-#import "JSObjection.h"
-#import "JSObjectionUtils.h"
-#import "NSObject+Objection.h"
-
-@interface JSObjectionInjectorEntry() {
- JSObjectionScope _lifeCycle;
- id _storageCache;
-}
-
-- (id)buildObject:(NSArray *)arguments initializer:(SEL)initializer;
-- (id)argumentsForObject:(NSArray *)givenArguments;
-- (SEL)initializerForObject;
-
-@end
-
-
-@implementation JSObjectionInjectorEntry
-
-@synthesize lifeCycle = _lifeCycle;
-@synthesize classEntry = _classEntry;
-
-
-#pragma mark - Instance Methods
-
-- (instancetype)initWithClass:(Class)theClass lifeCycle:(JSObjectionScope)theLifeCycle {
- if ((self = [super init])) {
- _lifeCycle = theLifeCycle;
- _classEntry = theClass;
- _storageCache = nil;
- }
-
- return self;
-}
-
-- (instancetype) extractObject:(NSArray *)arguments initializer:(SEL)initializer {
- if (self.lifeCycle == JSObjectionScopeNormal || !_storageCache) {
- return [self buildObject:arguments initializer: initializer];
- }
- return _storageCache;
-}
-
-- (instancetype)extractObject:(NSArray *)arguments {
- return [self extractObject:arguments initializer:nil];
-}
-
-- (void)dealloc {
- _storageCache = nil;
-}
-
-
-#pragma mark - Private Methods
-
-- (id)buildObject:(NSArray *)arguments initializer: (SEL) initializer {
-
- id objectUnderConstruction = nil;
-
- if(initializer != nil) {
- objectUnderConstruction = JSObjectionUtils.buildObjectWithInitializer(self.classEntry, initializer, arguments);
- } else if ([self.classEntry respondsToSelector:@selector(objectionInitializer)]) {
- objectUnderConstruction = JSObjectionUtils.buildObjectWithInitializer(self.classEntry, [self initializerForObject], [self argumentsForObject:arguments]);
- } else {
- objectUnderConstruction = [[self.classEntry alloc] init];
- }
-
- if (self.lifeCycle == JSObjectionScopeSingleton) {
- _storageCache = objectUnderConstruction;
- }
-
- JSObjectionUtils.injectDependenciesIntoProperties(self.injector, self.classEntry, objectUnderConstruction);
-
- return objectUnderConstruction;
-}
-
-- (SEL)initializerForObject {
- return NSSelectorFromString([[self.classEntry objectionInitializer] objectForKey:JSObjectionInitializerKey]);
-}
-
-- (NSArray *)argumentsForObject:(NSArray *)givenArguments {
- return givenArguments.count > 0 ? givenArguments : [[self.classEntry objectionInitializer] objectForKey:JSObjectionDefaultArgumentsKey];
-}
-
-
-#pragma mark - Class Methods
-
-+ (id)entryWithClass:(Class)theClass scope:(JSObjectionScope)theLifeCycle {
- return [[JSObjectionInjectorEntry alloc] initWithClass:theClass lifeCycle:theLifeCycle];
-}
-
-+ (id)entryWithEntry:(JSObjectionInjectorEntry *)entry {
- return [[JSObjectionInjectorEntry alloc] initWithClass:entry.classEntry lifeCycle:entry.lifeCycle];
-}
-@end
diff --git a/Source/JSObjectionModule.h b/Source/JSObjectionModule.h
deleted file mode 100755
index 3712861..0000000
--- a/Source/JSObjectionModule.h
+++ /dev/null
@@ -1,53 +0,0 @@
-#import
-#import "JSObjectionEntry.h"
-
-@class JSObjectionInjector;
-
-@protocol JSObjectionProvider
-
-- (id)provide:(JSObjectionInjector *)context arguments:(NSArray *)arguments;
-
-@end
-
-
-@interface JSObjectionModule : NSObject
-
-@property (nonatomic, readonly) NSDictionary *bindings;
-@property (nonatomic, readonly) NSSet *eagerSingletons;
-
-- (void)bind:(id)instance toClass:(Class)aClass;
-- (void)bind:(id)instance toClass:(Class)aClass named:(NSString *)name;
-- (void)bind:(id)instance toProtocol:(Protocol *)aProtocol;
-- (void)bind:(id)instance toProtocol:(Protocol *)aProtocol named:(NSString *)name;
-- (void)bindMetaClass:(Class)metaClass toProtocol:(Protocol *)aProtocol;
-- (void)bindProvider:(id)provider toClass:(Class)aClass;
-- (void)bindProvider:(id)provider toClass:(Class)aClass named:(NSString *)name;
-- (void)bindProvider:(id)provider toProtocol:(Protocol *)aProtocol;
-- (void)bindProvider:(id)provider toProtocol:(Protocol *)aProtocol named:(NSString *)name;
-- (void)bindProvider:(id)provider toClass:(Class)aClass inScope:(JSObjectionScope)scope;
-- (void)bindProvider:(id)provider toClass:(Class)aClass inScope:(JSObjectionScope)scope named:(NSString *)name;
-- (void)bindProvider:(id)provider toProtocol:(Protocol *)aProtocol inScope:(JSObjectionScope)scope;
-- (void)bindProvider:(id)provider toProtocol:(Protocol *)aProtocol inScope:(JSObjectionScope)scope named:(NSString *)name;
-- (void)bindClass:(Class)aClass toProtocol:(Protocol *)aProtocol;
-- (void)bindClass:(Class)aClass toProtocol:(Protocol *)aProtocol named:(NSString*)name;
-- (void)bindClass:(Class)aClass toProtocol:(Protocol *)aProtocol inScope:(JSObjectionScope)scope named:(NSString*)name;
-- (void)bindClass:(Class)aClass toClass:(Class)toClass;
-- (void)bindClass:(Class)aClass toClass:(Class)toClass named:(NSString*)name;
-- (void)bindClass:(Class)aClass toClass:(Class)toClass inScope:(JSObjectionScope)scope named:(NSString*)name;
-- (void)bindBlock:(id (^)(JSObjectionInjector *context))block toClass:(Class)aClass;
-- (void)bindBlock:(id (^)(JSObjectionInjector *context))block toClass:(Class)aClass named:(NSString *)name;
-- (void)bindBlock:(id (^)(JSObjectionInjector *context))block toProtocol:(Protocol *)aProtocol;
-- (void)bindBlock:(id (^)(JSObjectionInjector *context))block toProtocol:(Protocol *)aProtocol named:(NSString *)name;
-- (void)bindBlock:(id (^)(JSObjectionInjector *context))block toClass:(Class)aClass inScope:(JSObjectionScope)scope;
-- (void)bindBlock:(id (^)(JSObjectionInjector *context))block toClass:(Class)aClass inScope:(JSObjectionScope)scope named:(NSString *)name;
-- (void)bindBlock:(id (^)(JSObjectionInjector *context))block toProtocol:(Protocol *)aProtocol inScope:(JSObjectionScope)scope;
-- (void)bindBlock:(id (^)(JSObjectionInjector *context))block toProtocol:(Protocol *)aProtocol inScope:(JSObjectionScope)scope named:(NSString *)name;
-- (void)bindClass:(Class)aClass inScope:(JSObjectionScope)scope;
-- (void)registerEagerSingleton:(Class)aClass;
-- (BOOL)hasBindingForClass:(Class)aClass;
-- (BOOL)hasBindingForClass:(Class)aClass withName:(NSString*)name;
-- (BOOL)hasBindingForProtocol:(Protocol *)protocol;
-- (BOOL)hasBindingForProtocol:(Protocol *)protocol withName:(NSString*)name;
-- (void)configure;
-
-@end
diff --git a/Source/JSObjectionModule.m b/Source/JSObjectionModule.m
deleted file mode 100644
index 93e6cd9..0000000
--- a/Source/JSObjectionModule.m
+++ /dev/null
@@ -1,237 +0,0 @@
-#import "JSObjectionModule.h"
-#import "JSObjectionBindingEntry.h"
-#import "JSObjectionInjectorEntry.h"
-#import
-#import "JSObjectionProviderEntry.h"
-#import "JSObjectionInjector.h"
-
-@interface __JSClassProvider : NSObject {
- Class _class;
-}
-
-- (id)initWithClass:(Class)aClass;
-
-@end
-
-@implementation __JSClassProvider
-
-- (id)initWithClass:(Class)aClass {
- if ((self = [super init])) {
- _class = aClass;
- }
- return self;
-}
-
-- (id)provide:(JSObjectionInjector *)context arguments:(NSArray *)arguments {
- return [context getObject:_class argumentList:arguments];
-}
-
-@end
-
-
-@interface JSObjectionModule() {
- NSMutableDictionary *_bindings;
- NSMutableSet *_eagerSingletons;
-}
-
-- (NSString *)classKey:(Class)class withName:(NSString*)name;
-- (NSString *)protocolKey:(Protocol *)aProtocol withName:(NSString*)name;
-- (void)ensureInstance:(id)instance conformsTo:(Protocol *)aProtocol;
-
-@end
-
-
-@implementation JSObjectionModule
-
-@synthesize bindings = _bindings;
-@synthesize eagerSingletons = _eagerSingletons;
-
-- (id)init {
- if ((self = [super init])) {
- _bindings = [[NSMutableDictionary alloc] init];
- _eagerSingletons = [[NSMutableSet alloc] init];
- }
- return self;
-}
-
-- (void)bindMetaClass:(Class)metaClass toProtocol:(Protocol *)aProtocol {
- if (!class_isMetaClass(object_getClass(metaClass))) {
- @throw [NSException exceptionWithName:@"JSObjectionException"
- reason:[NSString stringWithFormat:@"\"%@\" can not be bound to the protocol \"%@\" because it is not a meta class", metaClass, NSStringFromProtocol(aProtocol)]
- userInfo:nil];
- }
- NSString *key = [self protocolKey:aProtocol withName:nil];
- JSObjectionBindingEntry *entry = [[JSObjectionBindingEntry alloc] initWithObject:metaClass];
- [_bindings setObject:entry forKey:key];
-}
-
-- (void) bind:(id)instance toProtocol:(Protocol *)aProtocol {
- [self bind:instance toProtocol:aProtocol named:nil];
-}
-
-- (void)bind:(id)instance toProtocol:(Protocol *)aProtocol named:(NSString *)name {
- [self ensureInstance: instance conformsTo: aProtocol];
- NSString *key = [self protocolKey:aProtocol withName:name];
- JSObjectionBindingEntry *entry = [[JSObjectionBindingEntry alloc] initWithObject:instance];
- [_bindings setObject:entry forKey:key];
-}
-
-- (void) bind:(id)instance toClass:(Class)aClass {
- [self bind:instance toClass:aClass named:nil];
-}
-
-- (void)bind:(id)instance toClass:(Class)aClass named:(NSString *)name {
- NSString *key = [self classKey:aClass withName:name];
- JSObjectionBindingEntry *entry = [[JSObjectionBindingEntry alloc] initWithObject:instance];
- [_bindings setObject:entry forKey:key];
-}
-
-- (void)bindProvider:(id)provider toClass:(Class)aClass {
- [self bindProvider:provider toClass:aClass named:nil];
-}
-
-- (void)bindProvider:(id )provider toClass:(Class)aClass named:(NSString *)name {
- [self bindProvider:provider toClass:aClass inScope:JSObjectionScopeNormal named:name];
-}
-
-- (void)bindProvider:(id)provider toProtocol:(Protocol *)aProtocol {
- [self bindProvider:provider toProtocol:aProtocol named:nil];
-}
-
-- (void)bindProvider:(id )provider toProtocol:(Protocol *)aProtocol named:(NSString *)name {
- [self bindProvider:provider toProtocol:aProtocol inScope:JSObjectionScopeNormal named:name];
-}
-
-- (void)bindProvider:(id )provider toClass:(Class)aClass inScope:(JSObjectionScope)scope {
- [self bindProvider:provider toClass:aClass inScope:scope named:nil];
-}
-
-- (void)bindProvider:(id )provider toClass:(Class)aClass inScope:(JSObjectionScope)scope
- named:(NSString *)name {
- NSString *key = [self classKey:aClass withName:name];
- JSObjectionProviderEntry *entry = [[JSObjectionProviderEntry alloc] initWithProvider:provider lifeCycle:scope];
- [_bindings setObject:entry forKey:key];
-}
-
-- (void)bindProvider:(id )provider toProtocol:(Protocol *)aProtocol inScope:(JSObjectionScope)scope {
- [self bindProvider:provider toProtocol:aProtocol inScope:scope named:nil];
-}
-
-- (void)bindProvider:(id )provider toProtocol:(Protocol *)aProtocol inScope:(JSObjectionScope)scope
- named:(NSString *)name {
- NSString *key = [self protocolKey:aProtocol withName:name];
- JSObjectionProviderEntry *entry = [[JSObjectionProviderEntry alloc] initWithProvider:provider lifeCycle:scope];
- [_bindings setObject:entry forKey:key];
-}
-
-- (void)bindClass:(Class)aClass toProtocol:(Protocol *)aProtocol {
- [self bindClass:aClass toProtocol:aProtocol named:nil];
-}
-
-- (void)bindClass:(Class)aClass toProtocol:(Protocol *)aProtocol named:(NSString*)name {
- [self bindClass:aClass toProtocol:aProtocol inScope:JSObjectionScopeNormal named:name];
-}
-
-- (void)bindClass:(Class)aClass toProtocol:(Protocol *)aProtocol inScope:(JSObjectionScope)scope named:(NSString*)name{
- __JSClassProvider *provider = [[__JSClassProvider alloc] initWithClass:aClass];
- [self bindProvider:provider toProtocol:aProtocol inScope:scope named:name];
-}
-
-- (void)bindClass:(Class)aClass toClass:(Class)toClass {
- [self bindClass:aClass toClass:toClass named:nil];
-}
-
-- (void)bindClass:(Class)aClass toClass:(Class)toClass named:(NSString*)name {
- [self bindClass:aClass toClass:toClass inScope:JSObjectionScopeNormal named:name];
-}
-
-- (void)bindClass:(Class)aClass toClass:(Class)toClass inScope:(JSObjectionScope)scope named:(NSString*)name {
- __JSClassProvider *provider = [[__JSClassProvider alloc] initWithClass:aClass];
- [self bindProvider:provider toClass:toClass inScope:scope named:name];
-}
-
-- (void)bindBlock:(id (^)(JSObjectionInjector *context))block toClass:(Class)aClass {
- [self bindBlock:block toClass:aClass named:nil];
-}
-
-- (void)bindBlock:(id (^)(JSObjectionInjector *context))block toClass:(Class)aClass named:(NSString *)name {
- [self bindBlock:block toClass:aClass inScope:JSObjectionScopeNormal named:name];
-}
-
-- (void)bindBlock:(id (^)(JSObjectionInjector *context))block toProtocol:(Protocol *)aProtocol {
- [self bindBlock:block toProtocol:aProtocol named:nil];
-}
-
-- (void)bindBlock:(id (^)(JSObjectionInjector *context))block toProtocol:(Protocol *)aProtocol named:(NSString *)name {
- [self bindBlock:block toProtocol:aProtocol inScope:JSObjectionScopeNormal named:name];
-}
-
-- (void)bindBlock:(id (^)(JSObjectionInjector *))block toClass:(Class)aClass inScope:(JSObjectionScope)scope {
- [self bindBlock:block toClass:aClass inScope:scope named:nil];
-}
-
-- (void)bindBlock:(id (^)(JSObjectionInjector *context))block toClass:(Class)aClass inScope:(JSObjectionScope)scope
- named:(NSString *)name {
- NSString *key = [self classKey:aClass withName:name];
- JSObjectionProviderEntry *entry = [[JSObjectionProviderEntry alloc] initWithBlock:block lifeCycle:scope];
- [_bindings setObject:entry forKey:key];
-}
-
-- (void)bindBlock:(id (^)(JSObjectionInjector *))block toProtocol:(Protocol *)aProtocol inScope:(JSObjectionScope)scope {
- [self bindBlock:block toProtocol:aProtocol inScope:scope named:nil];
-}
-
-- (void)bindBlock:(id (^)(JSObjectionInjector *context))block toProtocol:(Protocol *)aProtocol
- inScope:(JSObjectionScope)scope named:(NSString *)name {
- NSString *key = [self protocolKey:aProtocol withName:name];
- JSObjectionProviderEntry *entry = [[JSObjectionProviderEntry alloc] initWithBlock:block lifeCycle: scope];
- [_bindings setObject:entry forKey:key];
-}
-
-- (void)bindClass:(Class)aClass inScope:(JSObjectionScope)scope {
- [_bindings setObject:[JSObjectionInjectorEntry entryWithClass:aClass scope:scope] forKey:[self classKey:aClass withName:nil]];
-}
-
-- (void) registerEagerSingleton:(Class)aClass {
- [_eagerSingletons addObject:[self classKey:aClass withName:nil]];
-}
-
-- (BOOL)hasBindingForClass:(Class)aClass {
- return [self hasBindingForClass:aClass withName:nil];
-}
-
-- (BOOL)hasBindingForClass:(Class)aClass withName:(NSString*)name {
- return [_bindings objectForKey:[self classKey:aClass withName:name]] != nil;
-}
-
-- (BOOL)hasBindingForProtocol:(Protocol *)protocol {
- return [self hasBindingForProtocol:protocol withName:nil];
-}
-
-- (BOOL)hasBindingForProtocol:(Protocol *)protocol withName:(NSString*)name {
- return [_bindings objectForKey:[self protocolKey:protocol withName:name]] != nil;
-}
-
-- (void) configure {
-}
-
-
-#pragma mark - Private
-
-- (void)ensureInstance:(id)instance conformsTo:(Protocol *)aProtocol {
- if (![instance conformsToProtocol:aProtocol]) {
- @throw [NSException exceptionWithName:@"JSObjectionException"
- reason:[NSString stringWithFormat:@"Instance does not conform to the %@ protocol", NSStringFromProtocol(aProtocol)]
- userInfo:nil];
- }
-}
-
-- (NSString *)classKey:(Class) aClass withName:(NSString*)name {
- return [NSString stringWithFormat:@"%@%@%@", NSStringFromClass(aClass), name ? @":" : @"", name ? name : @""];
-}
-
-- (NSString *)protocolKey:(Protocol *)aProtocol withName:(NSString*)name{
- return [NSString stringWithFormat:@"<%@>%@%@", NSStringFromProtocol(aProtocol), name ? @":" : @"", name ? name : @""];
-}
-
-@end
diff --git a/Source/JSObjectionProviderEntry.h b/Source/JSObjectionProviderEntry.h
deleted file mode 100644
index 51aa336..0000000
--- a/Source/JSObjectionProviderEntry.h
+++ /dev/null
@@ -1,12 +0,0 @@
-#import
-#import "JSObjectionEntry.h"
-#import "JSObjectionModule.h"
-
-@class JSObjectionInjector;
-
-@interface JSObjectionProviderEntry : JSObjectionEntry
-
-- (id)initWithProvider:(id)theProvider lifeCycle:(JSObjectionScope)theLifeCycle;
-- (id)initWithBlock:(id(^)(JSObjectionInjector *context))theBlock lifeCycle:(JSObjectionScope)theLifeCycle;
-
-@end
diff --git a/Source/JSObjectionProviderEntry.m b/Source/JSObjectionProviderEntry.m
deleted file mode 100644
index 4e6e135..0000000
--- a/Source/JSObjectionProviderEntry.m
+++ /dev/null
@@ -1,61 +0,0 @@
-#import "JSObjectionProviderEntry.h"
-
-@interface JSObjectionProviderEntry () {
- id _provider;
- id(^_block)(JSObjectionInjector *context);
- JSObjectionScope _lifeCycle;
- id _storageCache;
-}
-
-@end
-
-@implementation JSObjectionProviderEntry
-@synthesize lifeCycle = _lifeCycle;
-
-- (id)initWithProvider:(id)theProvider lifeCycle:(JSObjectionScope)theLifeCycle {
- if ((self = [super init])) {
- _provider = theProvider;
- _lifeCycle = theLifeCycle;
- _storageCache = nil;
- }
-
- return self;
-}
-
-- (id)initWithBlock:(id(^)(JSObjectionInjector *context))theBlock lifeCycle:(JSObjectionScope)theLifeCycle {
- if ((self = [super init])) {
- _block = [theBlock copy];
- _lifeCycle = theLifeCycle;
- _storageCache = nil;
- }
-
- return self;
-}
-
-- (id)extractObject:(NSArray *)arguments {
- if (self.lifeCycle == JSObjectionScopeNormal || !_storageCache) {
- return [self buildObject:arguments];
- }
-
- return _storageCache;
-}
-
-- (void)dealloc {
- _storageCache = nil;
-}
-
-- (id)buildObject:(NSArray *)arguments {
- id objectUnderConstruction = nil;
- if (_block) {
- objectUnderConstruction = _block(self.injector);
- }
- else {
- objectUnderConstruction = [_provider provide:self.injector arguments:arguments];
- }
- if (self.lifeCycle == JSObjectionScopeSingleton) {
- _storageCache = objectUnderConstruction;
- }
- return objectUnderConstruction;
-}
-
-@end
diff --git a/Source/JSObjectionRuntimePropertyReflector.h b/Source/JSObjectionRuntimePropertyReflector.h
deleted file mode 100644
index 20f87a6..0000000
--- a/Source/JSObjectionRuntimePropertyReflector.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#import
-#import "JSObjectionUtils.h"
-
-@interface JSObjectionRuntimePropertyReflector : NSObject
-
-@end
diff --git a/Source/JSObjectionRuntimePropertyReflector.m b/Source/JSObjectionRuntimePropertyReflector.m
deleted file mode 100644
index 6a7bf2c..0000000
--- a/Source/JSObjectionRuntimePropertyReflector.m
+++ /dev/null
@@ -1,10 +0,0 @@
-#import "JSObjectionRuntimePropertyReflector.h"
-
-@implementation JSObjectionRuntimePropertyReflector
-
-- (JSObjectionPropertyInfo)propertyForClass:(Class)theClass andProperty:(NSString *)propertyName {
- objc_property_t property = JSObjectionUtils.propertyForClass(theClass, propertyName);
- return JSObjectionUtils.findClassOrProtocolForProperty(property);
-}
-
-@end
diff --git a/Source/JSObjectionUtils.h b/Source/JSObjectionUtils.h
deleted file mode 100644
index 2d17f9f..0000000
--- a/Source/JSObjectionUtils.h
+++ /dev/null
@@ -1,37 +0,0 @@
-#import
-#import
-
-extern NSString *const JSObjectionInitializerKey;
-extern NSString *const JSObjectionDefaultArgumentsKey;
-
-typedef enum {
- JSObjectionTypeClass,
- JSObjectionTypeProtocol
-} JSObjectionType;
-
-
-typedef struct JSObjectionPropertyInfo {
- __unsafe_unretained id value;
- JSObjectionType type;
-} JSObjectionPropertyInfo;
-
-
-@protocol JSObjectionPropertyReflector
-
-- (JSObjectionPropertyInfo)propertyForClass:(Class)theClass andProperty:(NSString *)propertyName;
-
-@end
-
-
-@class JSObjectionInjector;
-
-extern const struct JSObjectionUtils {
- JSObjectionPropertyInfo (*findClassOrProtocolForProperty)(objc_property_t property);
- objc_property_t (*propertyForClass)(Class klass, NSString *propertyName);
- NSSet* (*buildDependenciesForClass)(Class klass, NSSet *requirements);
- NSDictionary* (*buildNamedDependenciesForClass)(Class klass, NSDictionary *namedRequirements);
- NSDictionary* (*buildInitializer)(SEL selector, NSArray *arguments);
- NSArray* (*transformVariadicArgsToArray)(va_list va_arguments);
- id (*buildObjectWithInitializer)(Class klass, SEL initializer, NSArray *arguments);
- void (*injectDependenciesIntoProperties)(JSObjectionInjector *injector, Class klass, id object);
-} JSObjectionUtils;
diff --git a/Source/JSObjectionUtils.m b/Source/JSObjectionUtils.m
deleted file mode 100644
index af90a41..0000000
--- a/Source/JSObjectionUtils.m
+++ /dev/null
@@ -1,193 +0,0 @@
-#import
-#import "JSObjectionUtils.h"
-#import "JSObjectionInjector.h"
-#import "JSObjection.h"
-#import "NSObject+Objection.h"
-
-static NSString *const JSObjectionException = @"JSObjectionException";
-
-NSString *const JSObjectionInitializerKey = @"initializer";
-NSString *const JSObjectionDefaultArgumentsKey = @"arguments";
-
-static JSObjectionPropertyInfo FindClassOrProtocolForProperty(objc_property_t property) {
- NSString *attributes = [NSString stringWithCString: property_getAttributes(property) encoding: NSASCIIStringEncoding];
- NSString *propertyName = [NSString stringWithCString:property_getName(property) encoding:NSASCIIStringEncoding];
-
- NSRange startRange = [attributes rangeOfString:@"T@\""];
- if (startRange.location == NSNotFound) {
- @throw [NSException exceptionWithName:JSObjectionException reason:[NSString stringWithFormat:@"Unable to determine class type for property declaration: '%@'", propertyName] userInfo:nil];
- }
-
- NSString *startOfClassName = [attributes substringFromIndex:startRange.length];
- NSRange endRange = [startOfClassName rangeOfString:@"\""];
-
- if (endRange.location == NSNotFound) {
- @throw [NSException exceptionWithName:JSObjectionException reason:[NSString stringWithFormat:@"Unable to determine class type for property declaration: '%@'", propertyName] userInfo:nil];
- }
-
- NSString *classOrProtocolName = [startOfClassName substringToIndex:endRange.location];
- id classOrProtocol = nil;
- JSObjectionPropertyInfo propertyInfo;
-
- if ([classOrProtocolName hasPrefix:@"<"] && [classOrProtocolName hasSuffix:@">"]) {
- classOrProtocolName = [classOrProtocolName stringByReplacingOccurrencesOfString:@"<" withString:@""];
- classOrProtocolName = [classOrProtocolName stringByReplacingOccurrencesOfString:@">" withString:@""];
- classOrProtocol = objc_getProtocol([classOrProtocolName UTF8String]);
- propertyInfo.type = JSObjectionTypeProtocol;
- } else {
- classOrProtocol = NSClassFromString(classOrProtocolName);
- propertyInfo.type = JSObjectionTypeClass;
- }
-
- if(!classOrProtocol) {
- @throw [NSException exceptionWithName:JSObjectionException reason:[NSString stringWithFormat:@"Unable get class for name '%@' for property '%@'", classOrProtocolName, propertyName] userInfo:nil];
- }
- propertyInfo.value = classOrProtocol;
-
- return propertyInfo;
-}
-
-static NSSet* BuildDependenciesForClass(Class klass, NSSet *requirements) {
- Class superClass = class_getSuperclass([klass class]);
- if([superClass respondsToSelector:@selector(objectionRequires)]) {
- NSSet *parentsRequirements = [superClass objectionRequires];
- NSMutableSet *dependencies = [NSMutableSet setWithSet:parentsRequirements];
- [dependencies unionSet:requirements];
- requirements = dependencies;
- }
- return requirements;
-}
-
-static NSDictionary* BuildNamedDependenciesForClass(Class klass, NSDictionary *namedRequirements) {
- Class superClass = class_getSuperclass([klass class]);
- if([superClass respondsToSelector:@selector(objectionRequiresNames)]) {
- NSDictionary *parentsNamedRequirements = [superClass objectionRequiresNames];
- NSMutableDictionary *namedDependencies = [NSMutableDictionary dictionaryWithDictionary:parentsNamedRequirements];
- [namedDependencies addEntriesFromDictionary:namedRequirements];
- namedRequirements = namedDependencies;
- }
- return namedRequirements;
-}
-
-static NSDictionary* BuildInitializer(SEL selector, NSArray *defaultArguments) {
- return [NSDictionary dictionaryWithObjectsAndKeys:
- NSStringFromSelector(selector), JSObjectionInitializerKey,
- defaultArguments, JSObjectionDefaultArgumentsKey
- , nil];
-}
-
-static NSArray* TransformVariadicArgsToArray(va_list va_arguments) {
- NSMutableArray *arguments = [NSMutableArray array];
-
- id object;
- while ((object = va_arg( va_arguments, id ))) {
- [arguments addObject:object];
- }
-
- return [arguments copy];
-}
-
-static objc_property_t GetProperty(Class klass, NSString *propertyName) {
- objc_property_t property = class_getProperty(klass, (const char *)[propertyName UTF8String]);
- if (property == NULL) {
- @throw [NSException exceptionWithName:JSObjectionException reason:[NSString stringWithFormat:@"Unable to find property declaration: '%@' for class '%@'", propertyName, NSStringFromClass(klass)] userInfo:nil];
- }
- return property;
-}
-
-
-static id BuildObjectWithInitializer(Class klass, SEL initializer, NSArray *arguments) {
- NSMethodSignature *signature = [klass methodSignatureForSelector:initializer];
- __autoreleasing id instance = nil;
- BOOL isClassMethod = signature != nil && initializer != @selector(init);
-
- if (!isClassMethod) {
- instance = [klass alloc];
- signature = [klass instanceMethodSignatureForSelector:initializer];
- }
-
- if (signature) {
- NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:signature];
- [invocation setTarget:isClassMethod ? klass : instance];
- [invocation setSelector:initializer];
- for (int i = 0; i < arguments.count; i++) {
- __unsafe_unretained id argument = [arguments objectAtIndex:i];
- [invocation setArgument:&argument atIndex:i + 2];
- }
- [invocation invoke];
- [invocation getReturnValue:&instance];
- return instance;
- } else {
- @throw [NSException exceptionWithName:JSObjectionException reason:[NSString stringWithFormat:@"Could not find initializer '%@' on %@", NSStringFromSelector(initializer), NSStringFromClass(klass)] userInfo:nil];
- }
- return nil;
-}
-
-static void _getPropertyInfo(Class klass, NSString *propertyName, JSObjectionPropertyInfo *propertyInfo, id *desiredClassOrProtocol) {
- (*propertyInfo) = [JSObjection propertyForClass:klass andProperty:propertyName];
- (*desiredClassOrProtocol) = propertyInfo->value;
- // Ensure that the class is initialized before attempting to retrieve it.
- // Using +load would force all registered classes to be initialized so we are
- // lazily initializing them.
- if ((*propertyInfo).type == JSObjectionTypeClass) {
- [*desiredClassOrProtocol class];
- }
-}
-
-static void _validateObjectReturnedFromInjector(id *theObject, JSObjectionPropertyInfo propertyInfo, id desiredClassOrProtocol, NSString *propertyName) {
- if(*theObject == nil && propertyInfo.type == JSObjectionTypeProtocol) {
- @throw [NSException exceptionWithName:@"JSObjectionException"
- reason:[NSString stringWithFormat:@"Cannot find an instance that is bound to the protocol '%@' to assign to the property '%@'", NSStringFromProtocol(desiredClassOrProtocol), propertyName]
- userInfo:nil];
- } else if (*theObject == nil) {
- *theObject = [NSNull null];
- }
-}
-
-static void InjectDependenciesIntoProperties(JSObjectionInjector *injector, Class klass, id object) {
- if ([klass respondsToSelector:@selector(objectionRequires)]) {
- NSSet *properties = [klass objectionRequires];
- NSMutableDictionary *propertiesDictionary = [NSMutableDictionary dictionaryWithCapacity:properties.count];
- for (NSString *propertyName in properties) {
- JSObjectionPropertyInfo propertyInfo;
- id desiredClassOrProtocol;
- _getPropertyInfo(klass, propertyName, &propertyInfo, &desiredClassOrProtocol);
- id theObject = [injector getObject:desiredClassOrProtocol];
- _validateObjectReturnedFromInjector(&theObject, propertyInfo, desiredClassOrProtocol, propertyName);
- [propertiesDictionary setObject:theObject forKey:propertyName];
- }
-
- [object setValuesForKeysWithDictionary:propertiesDictionary];
- }
-
- if ([klass respondsToSelector:@selector(objectionRequiresNames)]) {
- NSDictionary *namedProperties = [klass objectionRequiresNames];
- NSMutableDictionary *propertiesDictionary = [NSMutableDictionary dictionaryWithCapacity:namedProperties.count];
- for (NSString *namedPropertyKey in [namedProperties allKeys]) {
- NSString* propertyName = [namedProperties valueForKey:namedPropertyKey];
- JSObjectionPropertyInfo propertyInfo;
- id desiredClassOrProtocol;
- _getPropertyInfo(klass, propertyName, &propertyInfo, &desiredClassOrProtocol);
- id theObject = [injector getObject:desiredClassOrProtocol named:namedPropertyKey];
- _validateObjectReturnedFromInjector(&theObject, propertyInfo, desiredClassOrProtocol, propertyName);
- [propertiesDictionary setObject:theObject forKey:propertyName];
- }
-
- [object setValuesForKeysWithDictionary:propertiesDictionary];
- }
-
- if ([object respondsToSelector:@selector(awakeFromObjection)]) {
- [object awakeFromObjection];
- }
-}
-
-const struct JSObjectionUtils JSObjectionUtils = {
- .findClassOrProtocolForProperty = FindClassOrProtocolForProperty,
- .propertyForClass = GetProperty,
- .buildDependenciesForClass = BuildDependenciesForClass,
- .buildNamedDependenciesForClass = BuildNamedDependenciesForClass,
- .buildInitializer = BuildInitializer,
- .transformVariadicArgsToArray = TransformVariadicArgsToArray,
- .buildObjectWithInitializer = BuildObjectWithInitializer,
- .injectDependenciesIntoProperties = InjectDependenciesIntoProperties
-};
diff --git a/Source/NSObject+Objection.h b/Source/NSObject+Objection.h
deleted file mode 100644
index e849ba1..0000000
--- a/Source/NSObject+Objection.h
+++ /dev/null
@@ -1,7 +0,0 @@
-#import
-
-@interface NSObject(JSObjection)
-
-- (void)awakeFromObjection;
-
-@end
diff --git a/Source/NSObject+Objection.m b/Source/NSObject+Objection.m
deleted file mode 100644
index 65cc806..0000000
--- a/Source/NSObject+Objection.m
+++ /dev/null
@@ -1,10 +0,0 @@
-#import "NSObject+Objection.h"
-
-
-@implementation NSObject(JSObjection)
-
-- (void)awakeFromObjection {
-
-}
-
-@end
diff --git a/Source/Objection.h b/Source/Objection.h
deleted file mode 100644
index 4095c25..0000000
--- a/Source/Objection.h
+++ /dev/null
@@ -1,58 +0,0 @@
-#import
-#import
-#import
-
-#import "JSObjectionModule.h"
-#import "JSObjectionInjector.h"
-#import "JSObjectionEntry.h"
-#import "JSObjectionBindingEntry.h"
-#import "NSObject+Objection.h"
-#import "JSObjectionInjectorEntry.h"
-#import "JSObjectionUtils.h"
-#import "JSObjectFactory.h"
-#import "JSObjection.h"
-
-#define objection_register(value) \
- + (void)initialize { \
- if (self == [value class]) { \
- [JSObjection registerClass:[value class] scope: JSObjectionScopeNormal]; \
- } \
- }
-
-#define objection_register_singleton(value) \
- + (void)initialize { \
- if (self == [value class]) { \
- [JSObjection registerClass:[value class] scope: JSObjectionScopeSingleton]; \
- } \
- }
-
-#define objection_requires(args...) \
- + (NSSet *)objectionRequires { \
- NSSet *requirements = [NSSet setWithObjects: args, nil]; \
- return JSObjectionUtils.buildDependenciesForClass(self, requirements); \
- }
-
-#define objection_requires_sel(args...) \
- + (NSSet *)objectionRequires { \
- SEL selectors[] = {args}; \
- NSMutableSet *requirements = [NSMutableSet set]; \
- for (NSUInteger j = 0; j < sizeof(selectors)/ sizeof(SEL); j++) { \
- SEL selector = selectors[j]; \
- [requirements addObject:NSStringFromSelector(selector)]; \
- } \
- return JSObjectionUtils.buildDependenciesForClass(self, requirements); \
- }
-
-#define objection_requires_names(namedDependencies) \
- + (NSDictionary *)objectionRequiresNames { \
- return JSObjectionUtils.buildNamedDependenciesForClass(self, namedDependencies); \
- }
-
-#define objection_initializer_sel(selectorSymbol, args...) \
- + (NSDictionary *)objectionInitializer { \
- id objs[] = {args}; \
- NSArray *defaultArguments = [NSArray arrayWithObjects: objs count:sizeof(objs)/sizeof(id)]; \
- return JSObjectionUtils.buildInitializer(selectorSymbol, defaultArguments); \
- }
-
-#define objection_initializer(selectorSymbol, args...) objection_initializer_sel(@selector(selectorSymbol), args)
diff --git a/Specs-OSX/Specs-OSX-Info.plist b/Specs-OSX/Specs-OSX-Info.plist
deleted file mode 100644
index 869a66c..0000000
--- a/Specs-OSX/Specs-OSX-Info.plist
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
- CFBundleDevelopmentRegion
- en
- CFBundleExecutable
- ${EXECUTABLE_NAME}
- CFBundleIdentifier
- atomicobject.${PRODUCT_NAME:rfc1034identifier}
- CFBundleInfoDictionaryVersion
- 6.0
- CFBundlePackageType
- BNDL
- CFBundleShortVersionString
- 1.0
- CFBundleSignature
- ????
- CFBundleVersion
- 1
-
-
diff --git a/Specs-OSX/Specs-OSX-Prefix.pch b/Specs-OSX/Specs-OSX-Prefix.pch
deleted file mode 100644
index 4ad9951..0000000
--- a/Specs-OSX/Specs-OSX-Prefix.pch
+++ /dev/null
@@ -1,7 +0,0 @@
-//
-// Prefix header for all source files of the 'Specs-OSX' target in the 'Specs-OSX' project
-//
-
-#ifdef __OBJC__
- #import
-#endif
diff --git a/Specs-OSX/en.lproj/InfoPlist.strings b/Specs-OSX/en.lproj/InfoPlist.strings
deleted file mode 100644
index 477b28f..0000000
--- a/Specs-OSX/en.lproj/InfoPlist.strings
+++ /dev/null
@@ -1,2 +0,0 @@
-/* Localized versions of Info.plist keys */
-
diff --git a/Specs-iOS/Specs-iOS-Info.plist b/Specs-iOS/Specs-iOS-Info.plist
deleted file mode 100644
index 869a66c..0000000
--- a/Specs-iOS/Specs-iOS-Info.plist
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
- CFBundleDevelopmentRegion
- en
- CFBundleExecutable
- ${EXECUTABLE_NAME}
- CFBundleIdentifier
- atomicobject.${PRODUCT_NAME:rfc1034identifier}
- CFBundleInfoDictionaryVersion
- 6.0
- CFBundlePackageType
- BNDL
- CFBundleShortVersionString
- 1.0
- CFBundleSignature
- ????
- CFBundleVersion
- 1
-
-
diff --git a/Specs-iOS/Specs-iOS-Prefix.pch b/Specs-iOS/Specs-iOS-Prefix.pch
deleted file mode 100644
index 2d87988..0000000
--- a/Specs-iOS/Specs-iOS-Prefix.pch
+++ /dev/null
@@ -1,7 +0,0 @@
-//
-// Prefix header for all source files of the 'Specs-iOS' target in the 'Specs-iOS' project
-//
-
-#ifdef __OBJC__
- #import
-#endif
diff --git a/Specs-iOS/en.lproj/InfoPlist.strings b/Specs-iOS/en.lproj/InfoPlist.strings
deleted file mode 100644
index 477b28f..0000000
--- a/Specs-iOS/en.lproj/InfoPlist.strings
+++ /dev/null
@@ -1,2 +0,0 @@
-/* Localized versions of Info.plist keys */
-
diff --git a/Specs/AddAndRemoveModulesSpecs.m b/Specs/AddAndRemoveModulesSpecs.m
deleted file mode 100644
index d1fb2d4..0000000
--- a/Specs/AddAndRemoveModulesSpecs.m
+++ /dev/null
@@ -1,43 +0,0 @@
-#import "SpecHelper.h"
-#import "Fixtures.h"
-#import "ModuleFixtures.h"
-
-
-QuickSpecBegin(AddAndRemoveModulesSpecs)
-__block SecondModule *module = nil;
-__block JSObjectionInjector *injector = nil;
-
-beforeEach(^{
- module = [[SecondModule alloc] init];
- gEagerSingletonHook = NO;
- injector = [JSObjection createInjector:module];
-});
-
-it(@"builds a new injector with new modules", ^{
- assertThat([injector getObject:@protocol(GearBox)], is(instanceOf([AfterMarketGearBox class])));
- assertThat([injector getObject:[Car class]], isNot(instanceOf([FiveSpeedCar class])));
- assertThatBool(gEagerSingletonHook, isFalse());
-
- injector = [injector withModules:
- [[ProviderModule alloc] init],
- [[FirstModule alloc] init], nil];
-
- assertThat([injector getObject:@protocol(GearBox)], is(instanceOf([AfterMarketGearBox class])));
- assertThat([injector getObject:[Car class]], is(instanceOf([FiveSpeedCar class])));
- assertThatBool(gEagerSingletonHook, isTrue());
-});
-
-it(@"builds a new module without the module types", ^{
- injector = [injector withModules:
- [[ProviderModule alloc] init], nil];
-
- assertThat([injector getObject:@protocol(GearBox)], is(instanceOf([AfterMarketGearBox class])));
- assertThat([injector getObject:[Car class]], is(instanceOf([FiveSpeedCar class])));
-
- injector = [injector withoutModuleOfTypes:[SecondModule class], [ProviderModule class], nil];
-
- assertThat([injector getObject:@protocol(GearBox)], is(nilValue()));
- assertThat([injector getObject:[Car class]], isNot(instanceOf([FiveSpeedCar class])));
-});
-
-QuickSpecEnd
\ No newline at end of file
diff --git a/Specs/BasicUsageSpecs.m b/Specs/BasicUsageSpecs.m
deleted file mode 100644
index a530fb8..0000000
--- a/Specs/BasicUsageSpecs.m
+++ /dev/null
@@ -1,163 +0,0 @@
-#import "SpecHelper.h"
-#import "Fixtures.h"
-#import "InitializerFixtures.h"
-
-QuickSpecBegin(BasicUsageSpecs)
-
-beforeEach(^{
- JSObjectionInjector *injector = [JSObjection createInjector];
- [JSObjection setDefaultInjector:injector];
-});
-
-it(@"correctly builds a registered object", ^{
- id engine = [[JSObjection defaultInjector] getObject:[Engine class]];
-
- assertThat(engine, isNot(nilValue()));
-});
-
-it(@"will auto register a class if it is not explicitly registered", ^{
- UnregisteredCar *unregisteredCar = [[JSObjection defaultInjector] getObject:[UnregisteredCar class]];
- assertThat(unregisteredCar, is(notNilValue()));
- assertThat(unregisteredCar.engine, is(notNilValue()));
-});
-
-it(@"correctly builds and object with dependencies", ^{
- Car *car = [[JSObjection defaultInjector] getObject:[Car class]];
-
- assertThat(car, isNot(nilValue()));
-
- assertThat(car.engine, isNot(nilValue()));
- assertThat(car.engine, is(instanceOf([Engine class])));
-
- assertThat(car.brakes, isNot(nilValue()));
- assertThat(car.brakes, is(instanceOf([Brakes class])));
-});
-
-it(@"correctly builds objects with selector dependencies", ^{
- UnstoppableCar *car = [[JSObjection defaultInjector] getObject:[UnstoppableCar class]];
-
- assertThat(car.engine, is(instanceOf([Engine class])));
-});
-
-it(@"will inject dependencies into properties of an existing instance", ^{
- Car *car = [[Car alloc] init];
-
- assertThat(car.engine, is(nilValue()));
- assertThat(car.brakes, is(nilValue()));
-
- [[JSObjection defaultInjector] injectDependencies:car];
-
- assertThat(car.engine, isNot(nilValue()));
- assertThat(car.engine, is(instanceOf([Engine class])));
-
- assertThat(car.brakes, isNot(nilValue()));
- assertThat(car.brakes, is(instanceOf([Brakes class])));
-});
-
-it(@"calls awakeFromObjection when injecting dependencies into properties of an existing instance", ^{
- Car *car = [[Car alloc] init];
-
- [[JSObjection defaultInjector] injectDependencies:car];
-
- assertThatBool([car awake], isTrue());
- assertThatBool([car.engine awake], isTrue());
-});
-
-it(@"defaults to returning a new instance", ^{
- id thomas = [[JSObjection defaultInjector] getObject:[Engine class]];
- id gordan = [[JSObjection defaultInjector] getObject:[Engine class]];
-
- assertThat(thomas, isNot(sameInstance(gordan)));
-});
-
-it(@"supports the subscript operator", ^{
- Car *car = [JSObjection defaultInjector][[Car class]];
-
- assertThat(car, isNot(nilValue()));
- assertThat(car.engine, is(instanceOf([Engine class])));
-});
-
-it(@"will return the same instance if it is registered as a singleton", ^{
- id carFactory1 = [[JSObjection defaultInjector] getObject:[CarFactory class]];
- id carFactory2 = [[JSObjection defaultInjector] getObject:[CarFactory class]];
-
- assertThat(carFactory1, isNot(nilValue()));
- assertThat(carFactory1, is(sameInstance(carFactory2)));
-});
-
-it(@"ensures that singletons are properly registered even if they have not been referenced", ^{
- // Ensure that the class is initialized before attempting to retrieve it.
- id holder1 = [[JSObjection defaultInjector] getObject:[SingletonItemHolder class]];
- id holder2 = [[JSObjection defaultInjector] getObject:[SingletonItemHolder class]];
-
- assertThat([holder1 singletonItem], is(sameInstance([holder2 singletonItem])));
-});
-
-it(@"will not return the same instance per injector if object is a singleton", ^{
- id carFactory1 = [[JSObjection defaultInjector] getObject:[CarFactory class]];
- id carFactory2 = [[JSObjection createInjector] getObject:[CarFactory class]];
- assertThat(carFactory1, isNot(sameInstance(carFactory2)));
-});
-
-it(@"returns nil if the class is nil", ^{
- assertThat([[JSObjection defaultInjector] getObject:nil], is(nilValue()));
-});
-
-it(@"doesn't blow up if a nil class is passed into register", ^{
- [JSObjection registerClass:nil scope:JSObjectionScopeSingleton];
-});
-
-it(@"calls awakeFromObjection when an object has been constructed", ^{
- id engine = [[JSObjection defaultInjector] getObject:[Engine class]];
- id car = [[JSObjection defaultInjector] getObject:[Car class]];
-
- assertThatBool([engine awake], isTrue());
- assertThatBool([car awake], isTrue());
-});
-
-
-describe(@"object factory", ^{
- it(@"injector returns a JSObjectFactory for the given injector context", ^{
- JSObjectionInjector *injector1 = [JSObjection createInjector];
- JSObjectionInjector *injector2 = [JSObjection defaultInjector];
-
- JSObjectFactoryHolder *holder1 = [injector1 getObject:[JSObjectFactoryHolder class]];
- JSObjectFactoryHolder *holder2 = [injector2 getObject:[JSObjectFactoryHolder class]];
-
- SingletonItem *item1 = holder1.objectFactory[[SingletonItem class]];
- SingletonItem *item2 = [holder2.objectFactory getObject:[SingletonItem class]];
-
- expect(item1).toNot(equal(item2));
- });
-
- it(@"can take variadic arguments and pass them along to the injector", ^{
- JSObjectionInjector *injector = [JSObjection defaultInjector];
- JSObjectFactory *factory = [injector getObject:[JSObjectFactory class]];
-
- ConfigurableCar *car = [factory getObjectWithArgs:[ConfigurableCar class], @"Model", @"Power", @"Year", nil];
-
- expect(car.model).to(equal(@"Model"));
- expect(car.horsePower).to(equal(@"Power"));
- expect(car.year).to(equal(@"Year"));
- });
-});
-
-describe(@"named instances", ^{
- it(@"are separate instances", ^{
- ShinyCar *shinyCar = [[JSObjection defaultInjector] getObject:[ShinyCar class]];
- expect(shinyCar).toNot(equal(shinyCar.rightHeadlight));
- });
-
- it(@"can be used alongside non-named instances", ^{
- ShinyCar *shinyCar = [[JSObjection defaultInjector] getObject:[ShinyCar class]];
- expect(shinyCar).toNot(beNil());
- });
-
- it(@"respect singleton scope", ^{
- BrightCar *brightCar = [[JSObjection defaultInjector] getObject:[BrightCar class]];
- expect(brightCar.leftHighbeam).to(equal(brightCar.leftHighbeam));
- });
-
-});
-
-QuickSpecEnd
\ No newline at end of file
diff --git a/Specs/CircularDependencyFixtures.h b/Specs/CircularDependencyFixtures.h
deleted file mode 100644
index 0d0e496..0000000
--- a/Specs/CircularDependencyFixtures.h
+++ /dev/null
@@ -1,13 +0,0 @@
-@class SingletonFoo;
-
-@protocol BarProtocol
-@end
-
-@interface SingletonBar : NSObject
-{
- SingletonFoo *foo;
-}
-
-@property(nonatomic, strong) SingletonFoo *foo;
-
-@end
\ No newline at end of file
diff --git a/Specs/CircularDependencyFixtures.m b/Specs/CircularDependencyFixtures.m
deleted file mode 100644
index 4fab36b..0000000
--- a/Specs/CircularDependencyFixtures.m
+++ /dev/null
@@ -1,10 +0,0 @@
-#import "Objection.h"
-#import "CircularDependencyFixtures.h"
-#import "Fixtures.h"
-
-@implementation SingletonBar
-objection_register_singleton(SingletonBar)
-objection_requires(@"foo")
-
-@synthesize foo;
-@end
\ No newline at end of file
diff --git a/Specs/CircularDependencySpecs.m b/Specs/CircularDependencySpecs.m
deleted file mode 100644
index b2d2b9c..0000000
--- a/Specs/CircularDependencySpecs.m
+++ /dev/null
@@ -1,21 +0,0 @@
-#import "CircularDependencyFixtures.h"
-#import "SpecHelper.h"
-#import "Fixtures.h"
-
-QuickSpecBegin(CircularDependencySpecs)
-describe(@"circular dependencies", ^{
-
- beforeEach(^{
- JSObjectionInjector *injector = [JSObjection createInjector];
- [JSObjection setDefaultInjector:injector];
- });
-
- it(@"are resolved between singletons", ^{
- SingletonFoo *foo = [[JSObjection defaultInjector] getObject:[SingletonFoo class]];
- SingletonBar *bar = [[JSObjection defaultInjector] getObject:[SingletonBar class]];
-
- assertThat(foo, is(sameInstance(bar.foo)));
- assertThat(foo.bar, is(sameInstance(bar)));
- });
-});
-QuickSpecEnd
\ No newline at end of file
diff --git a/Specs/Fixtures.h b/Specs/Fixtures.h
deleted file mode 100644
index 75ade73..0000000
--- a/Specs/Fixtures.h
+++ /dev/null
@@ -1,123 +0,0 @@
-#import
-
-@interface Engine : NSObject
-{
- BOOL awake;
-}
-@property(nonatomic) BOOL awake;
-
-@end
-
-@interface Brakes : NSObject
-{
-
-}
-@end
-
-
-@interface Car : NSObject
-{
- Engine *engine;
- Brakes *brakes;
- BOOL awake;
-}
-
-@property(nonatomic, strong) Engine *engine;
-@property(nonatomic, strong) Brakes *brakes;
-@property(nonatomic) BOOL awake;
-
-@end
-
-@interface UnregisteredCar : NSObject
-@property(nonatomic, strong) Engine *engine;
-@end
-
-@protocol UnregisteredProtocol
-@end
-
-@protocol GearBox;
-
-@protocol ManualCar
-@property (nonatomic, retain) id gearBox;
-@end
-
-@interface FiveSpeedCar : Car
-@end
-
-@interface SixSpeedCar : Car
-@end
-
-@interface CarFactory : NSObject
-{
-
-}
-
-@end
-
-@interface SingletonItem : NSObject
-{
-
-}
-@end
-
-
-@interface SingletonItemHolder : NSObject
-{
- SingletonItem *singletonItem;
-}
-
-@property(nonatomic, strong) SingletonItem *singletonItem;
-@end
-
-@class JSObjectFactory;
-
-@interface JSObjectFactoryHolder : NSObject
-@property (nonatomic, strong) JSObjectFactory *objectFactory;
-@end
-
-@class SingletonBar;
-
-@interface SingletonFoo : NSObject
-{
- SingletonBar *bar;
-}
-@property(nonatomic, strong) SingletonBar *bar;
-
-@end
-
-@interface UnstoppableCar : NSObject
-@property(nonatomic, strong) Engine *engine;
-@end
-
-@interface Headlight : NSObject
-@end
-
-@interface HIDHeadlight : Headlight
-@end
-
-@interface ShinyCar : NSObject
-@property (nonatomic, strong) Headlight *leftHeadlight;
-@property (nonatomic, strong) Headlight *rightHeadlight;
-@property (nonatomic, strong) Headlight *foglight;
-@end
-
-@protocol Blinkable
-@property (nonatomic, strong) NSNumber* speed;
-@end
-
-@interface Blinker : NSObject
-@property (nonatomic, strong) NSNumber* speed;
-@end
-
-@interface FlashyCar : NSObject
-@property (nonatomic, strong) id leftBlinker;
-@property (nonatomic, strong) id rightBlinker;
-@end
-
-@interface Highbeam : NSObject
-@end
-
-@interface BrightCar : NSObject
-@property (nonatomic, strong) Highbeam *leftHighbeam;
-@property (nonatomic, strong) Highbeam *rightHighbeam;
-@end
diff --git a/Specs/Fixtures.m b/Specs/Fixtures.m
deleted file mode 100644
index 25b83e0..0000000
--- a/Specs/Fixtures.m
+++ /dev/null
@@ -1,115 +0,0 @@
-#import "Fixtures.h"
-#import "Objection.h"
-#import "CircularDependencyFixtures.h"
-
-@implementation Engine
-objection_register(Engine)
-@synthesize awake;
-
-- (void) awakeFromObjection {
- awake = YES;
-}
-@end
-
-@implementation Brakes
-
-@end
-
-
-@implementation Car
-objection_register(Car)
-
-@synthesize engine, brakes, awake;
-
-- (void)awakeFromObjection {
- awake = YES;
-}
-
-objection_requires(@"engine", @"brakes")
-@end
-
-@implementation UnregisteredCar
-objection_requires(@"engine")
-@synthesize engine;
-@end
-
-@implementation FiveSpeedCar
-objection_register(FiveSpeedCar)
-
-@synthesize gearBox;
-
-objection_requires(@"gearBox")
-@end
-
-@implementation SixSpeedCar
-objection_register(SixSpeedCar)
-@synthesize gearBox;
-@end
-
-@implementation CarFactory
-objection_register_singleton(CarFactory)
-@end
-
-@implementation SingletonItemHolder
-@synthesize singletonItem;
-objection_register(SingletonItemHolder)
-objection_requires(@"singletonItem")
-@end
-
-@implementation SingletonItem
-objection_register_singleton(SingletonItem)
-@end
-
-@implementation JSObjectFactoryHolder
-objection_register_singleton(JSObjectFactoryHolder)
-objection_requires(@"objectFactory")
-
-@synthesize objectFactory;
-@end
-
-@implementation SingletonFoo
-objection_register_singleton(SingletonFoo)
-objection_requires(@"bar")
-
-@synthesize bar;
-@end
-
-@implementation UnstoppableCar
-objection_requires_sel(@selector(engine))
-@end
-
-@implementation Headlight
-objection_register(Headlight)
-@end
-
-@implementation HIDHeadlight
-objection_register(HIDHeadlight)
-@end
-
-@implementation ShinyCar
-objection_register(ShinyCar)
-objection_requires_names((@{@"LeftHeadlight":@"leftHeadlight", @"RightHeadlight":@"rightHeadlight"}))
-objection_requires(@"foglight")
-@synthesize leftHeadlight, rightHeadlight, foglight;
-@end
-
-@implementation Blinker
-objection_register(Blinker)
-@synthesize speed;
-@end
-
-@implementation FlashyCar
-objection_register(FlashyCar)
-objection_requires_names((@{ @"LeftBlinker":@"leftBlinker",@"RightBlinker":@"rightBlinker"}))
-@synthesize leftBlinker, rightBlinker;
-@end
-
-@implementation Highbeam
-objection_register_singleton(Highbeam)
-@end
-
-@implementation BrightCar
-objection_register(BrightCar)
-objection_requires_names((@{ @"LeftHighbeam":@"leftHighbeam",@"RightHighbeam":@"rightHighbeam"}))
-@synthesize leftHighbeam, rightHighbeam;
-@end
diff --git a/Specs/InheritanceSpecs.m b/Specs/InheritanceSpecs.m
deleted file mode 100644
index afa903f..0000000
--- a/Specs/InheritanceSpecs.m
+++ /dev/null
@@ -1,58 +0,0 @@
-#import "SpecHelper.h"
-
-@interface Person : NSObject
-@property (nonatomic, strong) NSDictionary *attributes;
-@property (nonatomic, strong) NSDictionary *namedAttributes;
-@end
-
-@implementation Person
-objection_register(Person)
-objection_requires(@"attributes")
-objection_requires_names((@{@"NamedAttributes":@"namedAttributes"}))
-@end
-
-@interface Programmer : Person
-@property (nonatomic, strong) NSDictionary *favoriteLanguages;
-@property (nonatomic, strong) NSDictionary *favoriteBooks;
-@end
-
-@implementation Programmer
-objection_register(Programmer)
-objection_requires(@"favoriteLanguages")
-objection_requires_names((@{@"FavoriteBooks":@"favoriteBooks"}))
-@end
-
-@interface NoInheritance : NSObject
-@property (nonatomic, strong) NSString *something;
-@property (nonatomic, strong) NSString *somethingElse;
-@end
-
-@implementation NoInheritance
-objection_register(NoInheritance)
-objection_requires(@"something")
-objection_requires_names((@{@"SomethingElse":@"somethingElse"}))
-@end
-
-QuickSpecBegin(InheritanceSpecs)
-
-beforeEach(^{
- JSObjectionInjector *injector = [JSObjection createInjector];
- [JSObjection setDefaultInjector:injector];
-});
-
-it(@"coalesces dependencies from parent to child", ^{
- Programmer *programmer = [[JSObjection defaultInjector] getObject:[Programmer class]];
- assertThat(programmer, is(notNilValue()));
- assertThat(programmer.favoriteLanguages, is(notNilValue()));
- assertThat(programmer.favoriteBooks, is(notNilValue()));
- assertThat(programmer.attributes, is(notNilValue()));
- assertThat(programmer.namedAttributes, is(notNilValue()));
-});
-
-it(@"does not throw a fit if the base class does not implement .objectionRequires", ^{
- NoInheritance *noParentObjectWithRequires = [[JSObjection defaultInjector] getObject:[NoInheritance class]];
- assertThat(noParentObjectWithRequires.something, is(notNilValue()));
- assertThat(noParentObjectWithRequires.somethingElse, is(notNilValue()));
-});
-
-QuickSpecEnd
diff --git a/Specs/InitializerFixtures.h b/Specs/InitializerFixtures.h
deleted file mode 100644
index 64081e8..0000000
--- a/Specs/InitializerFixtures.h
+++ /dev/null
@@ -1,36 +0,0 @@
-#import
-#import "SpecHelper.h"
-#import "Fixtures.h"
-
-@interface ViewController : NSObject
-@property (nonatomic, strong) Car *car;
-@property (nonatomic, copy) NSString *nibName;
-@property (nonatomic, copy) NSBundle *bundle;
-@property (nonatomic, copy) NSString *name;
-
-- (instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil;
-- (instancetype)initWithName:(NSString *)name;
-@end
-
-@interface ConfigurableCar : NSObject
-@property (nonatomic, strong) Car *car;
-@property (nonatomic, strong) Engine *engine;
-
-@property (nonatomic, copy) NSString *model;
-@property (nonatomic, copy) NSNumber *horsePower;
-@property (nonatomic, copy) NSNumber *year;
-
-- (id)initWithModel:(NSString *)model horsePower:(NSNumber *)horsePower andYear:(NSNumber *)year;
-@end
-
-@interface BadInitializer : NSObject
-@end
-
-@interface Truck : NSObject
-@property(nonatomic, strong) NSString *name;
-+ (id)truck: (NSString *)name;
-@end
-
-@interface FilterInitInitializer : NSObject
-@end
-
diff --git a/Specs/InitializerFixtures.m b/Specs/InitializerFixtures.m
deleted file mode 100644
index 4acf55d..0000000
--- a/Specs/InitializerFixtures.m
+++ /dev/null
@@ -1,66 +0,0 @@
-#import "InitializerFixtures.h"
-
-@implementation Truck
-objection_register(Truck)
-objection_initializer(truck:, @"Chevy")
-
-+ (id)truck: (NSString *)name {
- Truck *truck = [[self alloc] init];
- truck.name = name;
- return truck;
-}
-@end
-
-@implementation BadInitializer
-objection_register(BadInitializer)
-objection_initializer(initWithNonExistentInitializer)
-@end
-
-@implementation ViewController
-objection_register(ViewController)
-objection_requires(@"car")
-objection_initializer(initWithNibName:bundle:, @"MyNib")
-
-- (instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
- if ((self = [super init])) {
- self.nibName = nibNameOrNil;
- self.bundle = nibBundleOrNil;
- }
- return self;
-}
-
-- (instancetype)initWithName:(NSString *)name {
- if ((self = [super init])) {
- self.name = name;
- }
- return self;
-}
-@end
-
-@implementation ConfigurableCar
-objection_register(ConfigurableCar)
-objection_requires(@"engine")
-objection_initializer_sel(@selector(initWithModel:horsePower:andYear:))
-
-@synthesize car = _car;
-@synthesize engine = _engine;
-
-@synthesize horsePower = _horsePower;
-@synthesize model = _model;
-@synthesize year = _year;
-
-- (id)initWithModel:(NSString *)model horsePower:(NSNumber *)horsePower andYear:(NSNumber *)year {
- if ((self = [super init])) {
- self.model = model;
- self.horsePower = horsePower;
- self.year = year;
- }
- return self;
-}
-
-@end
-
-@implementation FilterInitInitializer
-objection_initializer(init)
-
-@end
\ No newline at end of file
diff --git a/Specs/InitializerSpecs.m b/Specs/InitializerSpecs.m
deleted file mode 100644
index 5475f36..0000000
--- a/Specs/InitializerSpecs.m
+++ /dev/null
@@ -1,61 +0,0 @@
-#import "SpecHelper.h"
-#import "InitializerFixtures.h"
-
-QuickSpecBegin(InitializerSpecs)
-__block JSObjectionInjector *injector = nil;
-
-beforeEach(^{
- injector = [JSObjection createInjector];
-});
-
-it(@"instantiates the object with the default initializer arguments", ^{
- ViewController *controller = [injector getObject:[ViewController class]];
-
- expect(controller.nibName).to(equal(@"MyNib"));
- expect(controller.bundle).to(beNil());
- expect(controller.car).to(beAKindOf([Car class]));
-});
-
-it(@"will override the default arguments if arguments are passed to the injector", ^{
- ViewController *controller = [injector getObjectWithArgs:[ViewController class], @"AnotherNib", @"pretendBundle", nil];
-
- expect(controller.nibName).to(equal(@"AnotherNib"));
- expect(controller.bundle).to(equal(@"pretendBundle"));
- expect(controller.car).to(beAKindOf([Car class]));
-});
-
-it(@"is OK to register an object with an initializer without any default arguments", ^{
- ConfigurableCar *car = [injector getObjectWithArgs:[ConfigurableCar class], @"Passat", [NSNumber numberWithInt:200], [NSNumber numberWithInt:2002], nil];
-
- expect(car.horsePower).to(equal(@200));
- expect(car.model).to(equal(@"Passat"));
- expect(car.year).to(equal(@2002));
- expect(car.engine).to(beAKindOf([Engine class]));
-});
-
-it(@"raises an exception if the initializer is not valid", ^{
- expect([injector getObject:[BadInitializer class]]).to(raiseException().reason(@"Could not find initializer 'initWithNonExistentInitializer' on BadInitializer"));
-});
-
-it(@"injector supports passing a different initializer", ^{
- ViewController *controller = [injector getObject:[ViewController class] initializer:@selector(initWithName:) argumentList:@[@"The Name"]];
- expect(controller.name).to(equal(@"The Name"));
-
- controller = [injector getObject:[ViewController class] initializer:@selector(initWithName:) argumentList:@[]];
- expect(controller.name).to(beNil());
-});
-
-
-it(@"supports initializing an object with a class method", ^{
- Truck *truck = [injector getObjectWithArgs:[Truck class], @"Ford", nil];
-
- expect(truck).toNot(beNil());
- expect(truck.name).to(equal(@"Ford"));
-});
-
-it(@"filters the init initializer as a class initializer option", ^{
- FilterInitInitializer *obj = [injector getObject:[FilterInitInitializer class]];
- expect(obj).toNot(beNil());
-});
-
-QuickSpecEnd
\ No newline at end of file
diff --git a/Specs/InjectionErrorFixtures.h b/Specs/InjectionErrorFixtures.h
deleted file mode 100644
index 9b595b0..0000000
--- a/Specs/InjectionErrorFixtures.h
+++ /dev/null
@@ -1,39 +0,0 @@
-#import
-
-@interface UnsupportedPropertyObject : NSObject {
- NSInteger myInteger;
-}
-
-@property(nonatomic, assign) NSInteger myInteger;
-@end
-
-@interface BadPropertyObject : NSObject
-{
- NSObject *someObject;
-}
-
-@property(nonatomic, strong) NSObject *someObject;
-
-@end
-
-@interface ReadOnlyPropertyObject : NSObject
-
-@property(weak, nonatomic, readonly) NSObject *someObject;
-
-@end
-
-@interface NamedUnsupportedPropertyObject : NSObject {
- NSInteger myInteger;
-}
-
-@property(nonatomic, assign) NSInteger myInteger;
-@end
-
-@interface NamedBadPropertyObject : NSObject
-{
- NSObject *someObject;
-}
-
-@property(nonatomic, strong) NSObject *someObject;
-
-@end
diff --git a/Specs/InjectionErrorFixtures.m b/Specs/InjectionErrorFixtures.m
deleted file mode 100644
index 0ed1355..0000000
--- a/Specs/InjectionErrorFixtures.m
+++ /dev/null
@@ -1,36 +0,0 @@
-#import "InjectionErrorFixtures.h"
-#import "Objection.h"
-
-@implementation UnsupportedPropertyObject
-objection_register(UnsupportedPropertyObject)
-objection_requires(@"myInteger")
-@synthesize myInteger;
-
-@end
-
-@implementation BadPropertyObject
-@synthesize someObject;
-objection_register(BadPropertyObject)
-objection_requires(@"badProperty")
-@end
-
-@implementation ReadOnlyPropertyObject
-objection_register(ReadOnlyPropertyObject)
-objection_requires(@"someObject")
-
-@synthesize someObject=_someObject;
-@end
-
-@implementation NamedUnsupportedPropertyObject
-objection_register(NamedUnsupportedPropertyObject)
-objection_requires_names((@{@"MyInteger":@"myInteger"}));
-@synthesize myInteger;
-
-@end
-
-@implementation NamedBadPropertyObject
-@synthesize someObject;
-objection_register(BadPropertyObject)
-objection_requires_names((@{@"BadProperty":@"badProperty"}))
-@end
-
diff --git a/Specs/InjectionErrorsSpecs.m b/Specs/InjectionErrorsSpecs.m
deleted file mode 100644
index 5895d94..0000000
--- a/Specs/InjectionErrorsSpecs.m
+++ /dev/null
@@ -1,45 +0,0 @@
-#import "SpecHelper.h"
-#import "InjectionErrorFixtures.h"
-#import "Fixtures.h"
-
-QuickSpecBegin(InjectionErrorsSpecs)
-
-
-beforeEach(^{
- JSObjectionInjector *injector = [JSObjection createInjector];
- [JSObjection setDefaultInjector:injector];
-});
-
-it(@"throws an exception if property type is not an object", ^{
- expectAction([[JSObjection defaultInjector] getObject:[UnsupportedPropertyObject class]]).to(raiseException().reason(@"Unable to determine class type for property declaration: 'myInteger'"));
-});
-
-it(@"throws an exception if property cannot be found", ^{
- expectAction([[JSObjection defaultInjector] getObject:[BadPropertyObject class]]).to(raiseException().reason(@"Unable to find property declaration: 'badProperty' for class 'BadPropertyObject'"));
-});
-
-it(@"throws if an object requires a protocol that does not exist in the context", ^{
- expectAction([[JSObjection defaultInjector] getObject:[FiveSpeedCar class]]).to(raiseException().reason(@"Cannot find an instance that is bound to the protocol 'GearBox' to assign to the property 'gearBox'"));
-});
-
-it(@"throws if instantiation rule is not valid", ^{
- expectAction([JSObjection registerClass:[CarFactory class] scope:3]).to(raiseException().reason(@"Invalid Instantiation Rule"));
-});
-
-describe(@"named properties",^{
- beforeEach(^{
- JSObjectionInjector *injector = [JSObjection createInjector];
- [JSObjection setDefaultInjector:injector];
- });
-
- it(@"throws an exception if property type is not an object", ^{
- expectAction([[JSObjection defaultInjector] getObject:[NamedUnsupportedPropertyObject class]]).to(raiseException().reason(@"Unable to determine class type for property declaration: 'myInteger'"));
- });
-
- it(@"throws an exception if property cannot be found", ^{
- expectAction([[JSObjection defaultInjector] getObject:[NamedBadPropertyObject class]]).to(raiseException().reason(@"Unable to find property declaration: 'badProperty' for class 'NamedBadPropertyObject'"));
- });
-});
-
-
-QuickSpecEnd
\ No newline at end of file
diff --git a/Specs/ModuleFixtures.h b/Specs/ModuleFixtures.h
deleted file mode 100644
index a6015ee..0000000
--- a/Specs/ModuleFixtures.h
+++ /dev/null
@@ -1,104 +0,0 @@
-#import
-#import "Fixtures.h"
-#import "SpecHelper.h"
-
-extern BOOL gEagerSingletonHook;
-
-@protocol MetaCar
-- (id)manufacture;
-@end
-
-@protocol GearBox
-- (void)shiftUp;
-- (void)shiftDown;
-@optional
-- (void)engageClutch;
-@end
-
-
-@interface Car(Meta)
-+ (id)manufacture;
-@end
-
-
-@interface AfterMarketGearBox : NSObject
-@end
-
-@interface EagerSingleton : NSObject
-@end
-
-@interface MyModule : JSObjectionModule
-{
- BOOL _instrumentInvalidEagerSingleton;
- BOOL _instrumentInvalidMetaClass;
-}
-
-@property(weak, nonatomic, readonly) Engine *engine;
-@property(weak, nonatomic, readonly) id gearBox;
-@property(nonatomic, assign) BOOL instrumentInvalidEagerSingleton;
-@property (nonatomic, assign) BOOL instrumentInvalidMetaClass;
-
-- (id)initWithEngine:(Engine *)engine andGearBox:(id)gearBox;
-@end
-
-@interface CarProvider : NSObject
-@end
-
-@interface GearBoxProvider : NSObject
-@end
-
-@interface ProviderModule : JSObjectionModule
-@end
-
-@interface BlockModule : JSObjectionModule
-
-@property (nonatomic, assign) BOOL instrumentNilBlock;
-
-@end
-
-@interface CreditCardValidator : NSObject
-@end
-
-@protocol CreditCardProcessor
-- (void)processNumber:(NSString *)number;
-@end
-
-@interface BaseCreditCardProcessor : NSObject
-@end
-
-@interface VisaCCProcessor : BaseCreditCardProcessor {
- CreditCardValidator *_validator;
-}
-- (id)initWithCreditCardNumber:(NSString *)aCCNumber;
-@property (nonatomic, strong) NSString *CCNumber;
-@property (nonatomic, strong) CreditCardValidator *validator;
-@end
-
-@interface FirstModule : JSObjectionModule
-@end
-
-@interface SecondModule : JSObjectionModule
-@end
-
-@interface ScopeModule : JSObjectionModule
-
-@end
-
-@interface BlockScopeModule : JSObjectionModule
-
-@end
-
-@interface ProviderScopeModule : JSObjectionModule
-
-@end
-
-@interface BlinkerProvider : NSObject
-@end
-
-@interface NamedModule : JSObjectionModule
-- (id)initWithRightHeadlight:(Headlight*)rightHeadlight;
-@end
-
-
-
-
diff --git a/Specs/ModuleFixtures.m b/Specs/ModuleFixtures.m
deleted file mode 100644
index 378b9e3..0000000
--- a/Specs/ModuleFixtures.m
+++ /dev/null
@@ -1,241 +0,0 @@
-#import "ModuleFixtures.h"
-
-BOOL gEagerSingletonHook = NO;
-
-@implementation Car(Meta)
-
-+ (id)manufacture {
- return [[Car alloc] init];
-}
-
-@end
-
-
-@implementation AfterMarketGearBox
-- (void)shiftUp {
-
-}
-
-- (void)shiftDown {
-
-}
-@end
-
-@implementation EagerSingleton
-objection_register_singleton(EagerSingleton)
-- (void)awakeFromObjection {
- gEagerSingletonHook = YES;
-}
-@end
-
-
-@implementation MyModule
-@synthesize engine = _engine;
-@synthesize gearBox = _gearBox;
-@synthesize instrumentInvalidEagerSingleton=_instrumentInvalidEagerSingleton;
-@synthesize instrumentInvalidMetaClass = _instrumentInvalidMetaClass;
-
-- (id)initWithEngine:(Engine *)engine andGearBox:(id)gearBox {
- if ((self = [super init])) {
- _engine = engine;
- _gearBox = gearBox;
- }
-
- return self;
-}
-
-- (void)configure {
- [self bind:_engine toClass:[Engine class]];
- [self bind:_gearBox toProtocol:@protocol(GearBox)];
- [self bindClass:[VisaCCProcessor class] toProtocol:@protocol(CreditCardProcessor)];
- [self bindClass:[VisaCCProcessor class] toClass:[BaseCreditCardProcessor class]];
- if (self.instrumentInvalidMetaClass) {
- [self bindMetaClass:(id)@"sneaky" toProtocol:@protocol(MetaCar)];
- } else {
- [self bindMetaClass:[Car class] toProtocol:@protocol(MetaCar)];
- }
-
- if (self.instrumentInvalidEagerSingleton) {
- [self registerEagerSingleton:[Car class]];
- } else {
- [self registerEagerSingleton:[EagerSingleton class]];
- }
-
-}
-
-
-@end
-
-@implementation CarProvider
-- (id)provide:(JSObjectionInjector *)context arguments:(NSArray *)arguments
-{
- Car *car = [context getObject:[FiveSpeedCar class]];
- car.engine = (id)@"my engine";
- return car;
-}
-@end
-
-@implementation GearBoxProvider
-- (id)provide:(JSObjectionInjector *)context arguments:(NSArray *)arguments
-{
- return [[AfterMarketGearBox alloc] init];
-}
-@end
-
-
-@implementation ProviderModule
-- (void)configure
-{
- [self bindProvider:[[CarProvider alloc] init] toClass:[Car class]];
- [self bindProvider:[[GearBoxProvider alloc] init] toProtocol:@protocol(GearBox)];
-}
-@end
-
-@implementation BlockModule
-
-- (void)configure
-{
- NSString *myEngine = @"My Engine";
- Brakes *myBrakes = [[Brakes alloc] init];
-
- [self bindBlock:^(JSObjectionInjector *context) {
- if (_instrumentNilBlock) {
- return (id)nil;
- }
-
- return (id)myBrakes;
- } toClass:[Brakes class]];
-
- [self bindBlock:^(JSObjectionInjector *context) {
- Car *car = nil;
- if (_instrumentNilBlock) {
- car = [context getObject:[SixSpeedCar class]];
- }
- else {
- car = [context getObject:[FiveSpeedCar class]];
- car.engine = (id)myEngine;
- }
- return (id)car;
- } toClass:[Car class]];
-
- AfterMarketGearBox *gearBox = [[AfterMarketGearBox alloc] init];
- [self bindBlock:^(JSObjectionInjector *context) {
- return (id)gearBox;
- } toProtocol:@protocol(GearBox)];
-}
-
-@end
-
-@implementation BaseCreditCardProcessor
-- (void)processNumber:(NSString *)number {
-
-}
-@end
-
-@implementation CreditCardValidator
-@end
-
-@implementation VisaCCProcessor
-objection_register_singleton(VisaCCProcessor)
-objection_initializer(initWithCreditCardNumber:, @"Default")
-objection_requires(@"validator")
-
-@synthesize validator = _validator;
-@synthesize CCNumber;
-
-- (id)initWithCreditCardNumber:(NSString *)aCCNumber {
- if ((self = [super init])) {
- self.CCNumber = aCCNumber;
- }
- return self;
-}
-- (void)processNumber:(NSString *)number {
- [super processNumber:number];
-}
-
-@end
-
-
-@implementation FirstModule
-- (void)configure {
- [self bind:[[FiveSpeedCar alloc] init] toClass:[Car class]];
- [self registerEagerSingleton:[EagerSingleton class]];
-}
-@end
-
-@implementation SecondModule
-- (void)configure {
- [self bind:[[AfterMarketGearBox alloc] init] toProtocol:@protocol(GearBox)];
-}
-@end
-
-@implementation ScopeModule
-
-- (void)configure {
- [self bindClass:[VisaCCProcessor class] inScope:JSObjectionScopeNormal];
- [self bindClass:[Car class] inScope:JSObjectionScopeSingleton];
- [self registerEagerSingleton:[Car class]];
-}
-@end
-
-@implementation BlockScopeModule
-
-- (void)configure {
- [self bindBlock:^(JSObjectionInjector *context) {
- Car *car = [[Car alloc] init];
- return (id)car;
- } toClass:[Car class] inScope:JSObjectionScopeSingleton];
-
- [self bindBlock:^(JSObjectionInjector *context) {
- return [[AfterMarketGearBox alloc] init];
- } toProtocol:@protocol(GearBox) inScope:JSObjectionScopeNormal];
-}
-
-@end
-
-@implementation ProviderScopeModule
-- (void)configure
-{
- [self bindProvider:[[CarProvider alloc] init] toClass:[Car class] inScope:JSObjectionScopeSingleton];
- [self bindProvider:[[GearBoxProvider alloc] init] toProtocol:@protocol(GearBox) inScope:JSObjectionScopeNormal];
-}
-@end
-
-@implementation BlinkerProvider
-
--(id)provide:(JSObjectionInjector *)context arguments:(NSArray *)arguments {
- Blinker *blinker = [[Blinker alloc]init];
- blinker.speed = @11;
- return (id)blinker;
-}
-
-@end
-
-@implementation NamedModule
-{
- Headlight* _rightHeadlight;
-}
-
-- (void)configure
-{
- [self bind:_rightHeadlight toClass:[Headlight class] named:@"RightHeadlight"];
- [self bindClass:[HIDHeadlight class] toClass:[Headlight class] named:@"LeftHeadlight"];
- [self bindProvider:[[BlinkerProvider alloc]init] toProtocol:@protocol(Blinkable) named:@"RightBlinker"];
- [self bindBlock:^(JSObjectionInjector *context){
- Blinker *blinker = [[Blinker alloc]init];
- blinker.speed = @1.092;
- return (id)blinker;
- } toProtocol:@protocol(Blinkable) named:@"LeftBlinker"];
-
- [self bindClass:[HIDHeadlight class] toClass:[Headlight class] inScope:JSObjectionScopeSingleton named:@"My HID Headlight" ];
-}
-
--(id)initWithRightHeadlight:(Headlight *)rightHeadlight {
- self = [super init];
- if (self) {
- _rightHeadlight = rightHeadlight;
- }
- return self;
-}
-
-@end
\ No newline at end of file
diff --git a/Specs/ModuleUsageSpecs.m b/Specs/ModuleUsageSpecs.m
deleted file mode 100644
index f91f53b..0000000
--- a/Specs/ModuleUsageSpecs.m
+++ /dev/null
@@ -1,292 +0,0 @@
-#import "SpecHelper.h"
-#import "Fixtures.h"
-#import "ModuleFixtures.h"
-
-QuickSpecBegin(ModuleUsageSpecs)
-__block MyModule *module = nil;
-
-beforeEach(^{
- Engine *engine = [[Engine alloc] init];
- id gearBox = [[AfterMarketGearBox alloc] init];
-
- module = [[MyModule alloc] initWithEngine:engine andGearBox:gearBox];
- gEagerSingletonHook = NO;
- JSObjectionInjector *injector = [JSObjection createInjector:module];
- [JSObjection setDefaultInjector:injector];
-});
-
-it(@"merges the modules instance bindings with the injector's context", ^{
- assertThat([[JSObjection defaultInjector] getObject:[Engine class]], is(sameInstance(module.engine)));
-});
-
-it(@"uses the module's bounded instance to fill out other objects dependencies", ^{
- FiveSpeedCar *car = [[JSObjection defaultInjector] getObject:[FiveSpeedCar class]];
-
- assertThat(car.engine, is(sameInstance(module.engine)));
- assertThat(car.gearBox, is(sameInstance(module.gearBox)));
-});
-
-it(@"supports binding an instance to a protocol", ^{
- assertThat([[JSObjection defaultInjector] getObject:@protocol(GearBox)], is(sameInstance(module.gearBox)));
-});
-
-it(@"throws an exception if the instance does not conform to the protocol", ^{
- Engine *engine = [[Engine alloc] init];
- MyModule *module = [[MyModule alloc] initWithEngine:engine andGearBox:(id)@"no go"];
- expectAction([module configure]).to(raiseException().reason(@"Instance does not conform to the GearBox protocol"));
-});
-
-it(@"supports eager singletons", ^{
- assertThatBool(gEagerSingletonHook, isTrue());
-});
-
-it(@"throws an exception if an attempt is made to register an eager singleton that was not registered as a singleton", ^{
- Engine *engine = [[Engine alloc] init];
- id gearBox = [[AfterMarketGearBox alloc] init];
- MyModule *module = [[MyModule alloc] initWithEngine:engine andGearBox:gearBox];
- module.instrumentInvalidEagerSingleton = YES;
- expectAction([JSObjection createInjector:module]).to(raiseException().reason(@"Unable to initialize eager singleton for the class 'Car' because it was never registered as a singleton"));
-});
-
-describe(@"provider bindings", ^{
- __block ProviderModule *providerModule = nil;
-
- beforeEach(^{
- providerModule = [[ProviderModule alloc] init];
- JSObjectionInjector *injector = [JSObjection createInjector:providerModule];
- [JSObjection setDefaultInjector:injector];
- });
-
- it(@"allows a bound protocol to be created through a provider", ^{
- FiveSpeedCar *car = [[JSObjection defaultInjector] getObject:[Car class]];
-
- assertThat(car, is(instanceOf([FiveSpeedCar class])));
- assertThat(car.brakes, is(instanceOf([Brakes class])));
- assertThat(car.engine, is(@"my engine"));
- });
-
- it(@"allows a bound class to be created through a provider", ^{
- AfterMarketGearBox *gearBox = [[JSObjection defaultInjector] getObject:@protocol(GearBox)];
- assertThat(gearBox, is(instanceOf([AfterMarketGearBox class])));
- });
-});
-
-describe(@"block bindings", ^{
- __block BlockModule *blockModule = nil;
-
- beforeEach(^{
- blockModule = [[BlockModule alloc] init];
- JSObjectionInjector *injector = [JSObjection createInjector:blockModule];
- [JSObjection setDefaultInjector:injector];
- });
-
- it(@"allows a bound protocol to be created using a block", ^{
- FiveSpeedCar *car = [[JSObjection defaultInjector] getObject:[Car class]];
-
- assertThat(car, is(instanceOf([FiveSpeedCar class])));
- assertThat(car.brakes, is(instanceOf([Brakes class])));
- assertThat(car.engine, is(@"My Engine"));
- });
-
- it(@"allows a bound class to be created using a block", ^{
- AfterMarketGearBox *gearBox = [[JSObjection defaultInjector] getObject:@protocol(GearBox)];
- assertThat(gearBox, is(instanceOf([AfterMarketGearBox class])));
- });
-});
-
-describe(@"block bindings properties nil", ^{
- __block BlockModule *blockModule = nil;
-
- beforeEach(^{
- blockModule = [[BlockModule alloc] init];
- blockModule.instrumentNilBlock = YES;
- JSObjectionInjector *injector = [JSObjection createInjector:blockModule];
- [JSObjection setDefaultInjector:injector];
- });
-
- it(@"allows a returned nil value from bindBlock", ^{
- // attempt to inject dependencies into Car via InjectDependenciesIntoProperties
- // ensure that Car is successfully injected and property brakes
- // returned from bindBlock is set as nil on Car if that was the intention
- Car *car = [[JSObjection defaultInjector] getObject:[Car class]];
- assertThat(car, notNilValue());
- assertThat(car, is(instanceOf([SixSpeedCar class])));
- assertThat(car.brakes, nilValue());
- });
-});
-
-describe(@"meta class bindings", ^{
- it(@"supports binding to a meta class instance via a protocol", ^{
- id car = [[JSObjection defaultInjector] getObject:@protocol(MetaCar)];
- assertThat(car, is([Car class]));
- assertThat([car manufacture], is(instanceOf([Car class])));
- });
-
- it(@"throws an exception if the given object is not a meta class", ^{
- id gearBox = [[AfterMarketGearBox alloc] init];
- Engine *engine = [[Engine alloc] init];
- MyModule *module = [[MyModule alloc] initWithEngine:engine andGearBox:gearBox];
- module.instrumentInvalidMetaClass = YES;
- expectAction([module configure]).to(raiseException().reason(@"\"sneaky\" can not be bound to the protocol \"MetaCar\" because it is not a meta class"));
- });
-
-});
-
-describe(@"class to protocol bindings", ^{
- it(@"supports associating a concrete class with a protocol", ^{
- VisaCCProcessor *processor = [[JSObjection defaultInjector] getObject:@protocol(CreditCardProcessor)];
-
- assertThat(processor, is(instanceOf([VisaCCProcessor class])));
- assertThat(processor.validator, is(instanceOf([CreditCardValidator class])));
- });
-});
-
-describe(@"subclass to superclass bindings", ^{
- it(@"supports associating a concrete class with a protocol", ^{
- VisaCCProcessor *processor = [[JSObjection defaultInjector] getObjectWithArgs:[BaseCreditCardProcessor class], @"12414", nil];
-
- assertThat(processor, is(instanceOf([VisaCCProcessor class])));
- assertThat(processor.validator, is(instanceOf([CreditCardValidator class])));
- assertThat(processor.CCNumber, equalTo(@"12414"));
- });
-});
-
-describe(@"multiple modules", ^{
- beforeEach(^{
- FirstModule *first = [[FirstModule alloc] init];
- SecondModule *second = [[SecondModule alloc] init];
- JSObjectionInjector *injector = [JSObjection createInjectorWithModules:first, second, nil];
- [JSObjection setDefaultInjector:injector];
- });
-
- it(@"merges the binding in each module", ^{
- AfterMarketGearBox *gearBox = [[JSObjection defaultInjector] getObject:@protocol(GearBox)];
- Car *car = [[JSObjection defaultInjector] getObject:[Car class]];
-
- assertThat(gearBox, is(instanceOf([AfterMarketGearBox class])));
- assertThat(car, is(instanceOf([FiveSpeedCar class])));
- assertThatBool(gEagerSingletonHook, isTrue());
- });
-});
-
-describe(@"scopes", ^{
- __block ScopeModule *scopeModule = nil;
- __block JSObjectionInjector *injector = nil;
-
- beforeEach(^{
- scopeModule = [[ScopeModule alloc] init];
- injector = [JSObjection createInjector:scopeModule];
- });
-
- it(@"can bind a class in singleton scope", ^{
- assertThat(injector[[Car class]], is(sameInstance(injector[[Car class]])));
- });
-
- it(@"can bind a class in a normal scope", ^{
- assertThat(injector[[VisaCCProcessor class]], isNot(sameInstance(injector[[VisaCCProcessor class]])));
- });
-});
-
-
-
-describe(@"provider scopes", ^{
- __block ProviderScopeModule *providerScopeModule = nil;
- __block JSObjectionInjector *injector = nil;
-
- beforeEach(^{
- providerScopeModule = [[ProviderScopeModule alloc] init];
- injector = [JSObjection createInjector:providerScopeModule];
- });
-
- it(@"can bind a provider in singleton scope", ^{
- assertThat(injector[[Car class]], is(sameInstance(injector[[Car class]])));
- });
-
- it(@"can bind a provider in a normal scope", ^{
- assertThat(injector[@protocol(GearBox)], isNot(sameInstance(injector[@protocol(GearBox)])));
- });
-});
-
-
-describe(@"block scopes", ^{
- __block BlockScopeModule *blockScopeModule = nil;
- __block JSObjectionInjector *injector = nil;
-
- beforeEach(^{
- blockScopeModule = [[BlockScopeModule alloc] init];
- injector = [JSObjection createInjector:blockScopeModule];
- });
-
- it(@"can bind a block in singleton scope", ^{
- assertThat(injector[[Car class]], is(sameInstance(injector[[Car class]])));
- });
-
- it(@"can bind a block in a normal scope", ^{
- assertThat(injector[@protocol(GearBox)], isNot(sameInstance(injector[@protocol(GearBox)])));
- });
-
-
-});
-
-describe(@"has binding", ^{
- __block FirstModule *firstModule = nil;
- __block SecondModule *secondModule = nil;
-
- beforeEach(^{
- firstModule = [[FirstModule alloc] init];
- secondModule = [[SecondModule alloc] init];
- [firstModule configure];
- [secondModule configure];
- });
-
- it(@"returns correct value for hasBindingForClass:", ^{
- assertThatBool([firstModule hasBindingForClass:[Car class]], isTrue());
- assertThatBool([firstModule hasBindingForClass:[UnregisteredCar class]], isFalse());
- });
-
- it(@"returns correct value for hasBindingForProtocol", ^{
- assertThatBool([secondModule hasBindingForProtocol:@protocol(GearBox)], isTrue());
- assertThatBool([secondModule hasBindingForProtocol:@protocol(UnregisteredProtocol)], isFalse());
- });
-
-});
-
-describe(@"named binding", ^{
-
- __block Headlight *rightHeadlight = nil;
- __block NamedModule *namedModule = nil;
- __block JSObjectionInjector *injector = nil;
-
- beforeEach(^{
- rightHeadlight = [[Headlight alloc] init];
- namedModule = [[NamedModule alloc] initWithRightHeadlight:rightHeadlight];
- injector = [JSObjection createInjector:namedModule];
- });
-
- it(@"can bind with a name", ^{
- ShinyCar *shinyCar = injector[[ShinyCar class]];
- assertThat(shinyCar.leftHeadlight, is(instanceOf([HIDHeadlight class])));
- assertThat(shinyCar.rightHeadlight, is(sameInstance(rightHeadlight)));
-
- FlashyCar *flashyCar = injector[[FlashyCar class]];
- assertThat(flashyCar.leftBlinker.speed, is(equalTo(@1.092)));
- assertThat(flashyCar.rightBlinker.speed, is(equalTo(@11)));
- });
-
- it(@"can bind with a name in a singleton scope", ^{
- Headlight *headlight1 = [injector getObject:[Headlight class] named:@"My HID Headlight"];
- Headlight *headlight2 = [injector getObject:[Headlight class] named:@"My HID Headlight"];
- Headlight *headlight3 = [injector getObject:[Headlight class] named:@"Another Headlight"];
- assertThat(headlight1, is(sameInstance(headlight2)));
- assertThat(headlight1, isNot(sameInstance(headlight3)));
- });
-
- it(@"supports hasBindingForClass and hasBindingForProtocol", ^{
- assertThatBool([namedModule hasBindingForClass:[Headlight class] withName:@"My HID Headlight"], isTrue());
- assertThatBool([namedModule hasBindingForClass:[Headlight class] withName:@"Unregistered Headlight"], isFalse());
-
- assertThatBool([namedModule hasBindingForProtocol:@protocol(Blinkable) withName:@"LeftBlinker"], isTrue());
- assertThatBool([namedModule hasBindingForProtocol:@protocol(Blinkable) withName:@"Unregistered Blinker"], isFalse());
- });
-});
-QuickSpecEnd
diff --git a/Specs/SpecHelper.h b/Specs/SpecHelper.h
deleted file mode 100644
index de96047..0000000
--- a/Specs/SpecHelper.h
+++ /dev/null
@@ -1,21 +0,0 @@
-#define __SPEC_HELPER
-
-#define HC_SHORTHAND
-
-#if TARGET_OS_IPHONE
-#import
-#else
-#import
-#endif
-
-#import "Objection.h"
-#import
-#import
-#import
-#import
-
-#if TARGET_OS_IPHONE
-#import
-#endif
-
-#define NSINT(__i) ([NSNumber numberWithInt:__i])
\ No newline at end of file
diff --git a/Specs/SpecHelper.m b/Specs/SpecHelper.m
deleted file mode 100644
index 9216ad1..0000000
--- a/Specs/SpecHelper.m
+++ /dev/null
@@ -1 +0,0 @@
-#import "SpecHelper.h"
diff --git a/Specs/iOSSpecs-Info.plist b/Specs/iOSSpecs-Info.plist
deleted file mode 100644
index 869a66c..0000000
--- a/Specs/iOSSpecs-Info.plist
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
- CFBundleDevelopmentRegion
- en
- CFBundleExecutable
- ${EXECUTABLE_NAME}
- CFBundleIdentifier
- atomicobject.${PRODUCT_NAME:rfc1034identifier}
- CFBundleInfoDictionaryVersion
- 6.0
- CFBundlePackageType
- BNDL
- CFBundleShortVersionString
- 1.0
- CFBundleSignature
- ????
- CFBundleVersion
- 1
-
-
diff --git a/Stub.swift b/Stub.swift
deleted file mode 100644
index 49f8b94..0000000
--- a/Stub.swift
+++ /dev/null
@@ -1,35 +0,0 @@
-//
-// Stub.swift
-// Objection
-//
-// Created by Justin DeWind on 3/24/15.
-//
-//
-
-import XCTest
-
-class Stub: XCTestCase {
-
- override func setUp() {
- super.setUp()
- // Put setup code here. This method is called before the invocation of each test method in the class.
- }
-
- override func tearDown() {
- // Put teardown code here. This method is called after the invocation of each test method in the class.
- super.tearDown()
- }
-
- func testExample() {
- // This is an example of a functional test case.
- XCTAssert(true, "Pass")
- }
-
- func testPerformanceExample() {
- // This is an example of a performance test case.
- self.measureBlock() {
- // Put the code you want to measure the time of here.
- }
- }
-
-}
diff --git a/Vendor/Nimble b/Vendor/Nimble
deleted file mode 160000
index b89db86..0000000
--- a/Vendor/Nimble
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit b89db8654c5f134d4f68e706b6da4a5581cb2001
diff --git a/Vendor/OCHamcrest.framework/Headers/HCAllOf.h b/Vendor/OCHamcrest.framework/Headers/HCAllOf.h
deleted file mode 100644
index 109afa1..0000000
--- a/Vendor/OCHamcrest.framework/Headers/HCAllOf.h
+++ /dev/null
@@ -1,36 +0,0 @@
-// OCHamcrest by Jon Reid, http://qualitycoding.org/about/
-// Copyright 2014 hamcrest.org. See LICENSE.txt
-
-#import
-
-
-@interface HCAllOf : HCDiagnosingMatcher
-
-+ (instancetype)allOf:(NSArray *)matchers;
-- (instancetype)initWithMatchers:(NSArray *)matchers;
-
-@end
-
-
-FOUNDATION_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/Vendor/OCHamcrest.framework/Headers/HCAnyOf.h b/Vendor/OCHamcrest.framework/Headers/HCAnyOf.h
deleted file mode 100644
index 2e75d13..0000000
--- a/Vendor/OCHamcrest.framework/Headers/HCAnyOf.h
+++ /dev/null
@@ -1,36 +0,0 @@
-// OCHamcrest by Jon Reid, http://qualitycoding.org/about/
-// Copyright 2014 hamcrest.org. See LICENSE.txt
-
-#import
-
-
-@interface HCAnyOf : HCBaseMatcher
-
-+ (instancetype)anyOf:(NSArray *)matchers;
-- (instancetype)initWithMatchers:(NSArray *)matchers;
-
-@end
-
-
-FOUNDATION_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/Vendor/OCHamcrest.framework/Headers/HCAssertThat.h b/Vendor/OCHamcrest.framework/Headers/HCAssertThat.h
deleted file mode 100644
index fe52857..0000000
--- a/Vendor/OCHamcrest.framework/Headers/HCAssertThat.h
+++ /dev/null
@@ -1,73 +0,0 @@
-// OCHamcrest by Jon Reid, http://qualitycoding.org/about/
-// Copyright 2014 hamcrest.org. See LICENSE.txt
-
-#import
-
-@protocol HCMatcher;
-
-
-FOUNDATION_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
-
-
-typedef id (^HCAssertThatAfterActualBlock)();
-
-OBJC_EXPORT void HC_assertThatAfterWithLocation(id testCase, NSTimeInterval maxTime,
- HCAssertThatAfterActualBlock actualBlock,
- id matcher,
- const char *fileName, int lineNumber);
-
-#define HC_assertThatAfter(maxTime, actualBlock, matcher) \
- HC_assertThatAfterWithLocation(self, maxTime, actualBlock, matcher, __FILE__, __LINE__)
-
-#define HC_futureValueOf(actual) ^{ return actual; }
-
-/**
- assertThatAfter(maxTime, actualBlock, matcher) -
- Asserts that a value provided by a block will satisfy matcher in less than a given time.
-
- @param maxTime Max time (in seconds) in which the matcher has to be satisfied.
- @param actualBlock A block providing the object to evaluate until timeout or the matcher is satisfied.
- @param matcher The matcher to satisfy as the expected condition.
-
- @c assertThatAfter checks several times if the matcher is satisfied before timeout. To evaluate the
- matcher, the @c actualBlock will provide updated values of actual. If the matcher is not satisfied
- after @c maxTime, an exception is thrown describing the mismatch. An easy way of defining this
- @c actualBlock is using the macro futureValueOf(actual), which also improves
- readability.
-
- In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym
- @c HC_assertThatAfter and HC_futureValueOf instead.
-
- @ingroup integration
-*/
-#ifdef HC_SHORTHAND
- #define assertThatAfter HC_assertThatAfter
- #define futureValueOf HC_futureValueOf
-#endif
diff --git a/Vendor/OCHamcrest.framework/Headers/HCBaseDescription.h b/Vendor/OCHamcrest.framework/Headers/HCBaseDescription.h
deleted file mode 100644
index 6419ad9..0000000
--- a/Vendor/OCHamcrest.framework/Headers/HCBaseDescription.h
+++ /dev/null
@@ -1,27 +0,0 @@
-// OCHamcrest by Jon Reid, http://qualitycoding.org/about/
-// Copyright 2014 hamcrest.org. See LICENSE.txt
-
-#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 (SubclassResponsibility)
-
-/**
- Append the string @a str to the description.
- */
-- (void)append:(NSString *)str;
-
-@end
diff --git a/Vendor/OCHamcrest.framework/Headers/HCBaseMatcher.h b/Vendor/OCHamcrest.framework/Headers/HCBaseMatcher.h
deleted file mode 100644
index 2ff2be4..0000000
--- a/Vendor/OCHamcrest.framework/Headers/HCBaseMatcher.h
+++ /dev/null
@@ -1,24 +0,0 @@
-// OCHamcrest by Jon Reid, http://qualitycoding.org/about/
-// Copyright 2014 hamcrest.org. See LICENSE.txt
-
-#import
-#import
-
-#define HC_ABSTRACT_METHOD [self subclassResponsibility:_cmd]
-
-
-/**
- Base class for all HCMatcher implementations.
-
- Simple matchers can just subclass HCBaseMatcher and implement @c -matches: and @c -describeTo:. But
- if the matching algorithm has several "no match" paths, consider subclassing HCDiagnosingMatcher
- instead.
-
- @ingroup core
- */
-@interface HCBaseMatcher : NSObject
-
-/// Raises exception that command (a pseudo-abstract method) is not implemented.
-- (void)subclassResponsibility:(SEL)command;
-
-@end
diff --git a/Vendor/OCHamcrest.framework/Headers/HCClassMatcher.h b/Vendor/OCHamcrest.framework/Headers/HCClassMatcher.h
deleted file mode 100644
index d6f0e07..0000000
--- a/Vendor/OCHamcrest.framework/Headers/HCClassMatcher.h
+++ /dev/null
@@ -1,13 +0,0 @@
-// OCHamcrest by Jon Reid, http://qualitycoding.org/about/
-// Copyright 2014 hamcrest.org. See LICENSE.txt
-
-#import
-
-
-@interface HCClassMatcher : HCBaseMatcher
-
-@property (readonly, nonatomic, strong) Class theClass;
-
-- (instancetype)initWithType:(Class)type;
-
-@end
diff --git a/Vendor/OCHamcrest.framework/Headers/HCCollect.h b/Vendor/OCHamcrest.framework/Headers/HCCollect.h
deleted file mode 100644
index 2ca62e6..0000000
--- a/Vendor/OCHamcrest.framework/Headers/HCCollect.h
+++ /dev/null
@@ -1,34 +0,0 @@
-// OCHamcrest by Jon Reid, http://qualitycoding.org/about/
-// Copyright 2014 hamcrest.org. See LICENSE.txt
-
-#import
-
-#import
-
-@protocol HCMatcher;
-
-
-/**
- Returns an array of values from a variable-length comma-separated list terminated by @c nil.
-
- @ingroup helpers
-*/
-FOUNDATION_EXPORT NSMutableArray *HCCollectItems(id item, va_list args);
-
-/**
- Returns an array of matchers from a variable-length comma-separated list terminated by @c nil.
-
- Each item is wrapped in HCWrapInMatcher to transform non-matcher items into equality matchers.
-
- @ingroup helpers
-*/
-FOUNDATION_EXPORT NSMutableArray *HCCollectMatchers(id item, va_list args);
-
-/**
- Returns an array of wrapped items from a variable-length comma-separated list terminated by @c nil.
-
- Each item is transformed by passing it to the given @c wrap function.
-
- @ingroup helpers
-*/
-FOUNDATION_EXPORT NSMutableArray *HCCollectWrappedItems(id item, va_list args, id (*wrap)(id));
diff --git a/Vendor/OCHamcrest.framework/Headers/HCConformsToProtocol.h b/Vendor/OCHamcrest.framework/Headers/HCConformsToProtocol.h
deleted file mode 100644
index e0e21d5..0000000
--- a/Vendor/OCHamcrest.framework/Headers/HCConformsToProtocol.h
+++ /dev/null
@@ -1,36 +0,0 @@
-// OCHamcrest by Jon Reid, http://qualitycoding.org/about/
-// Copyright 2014 hamcrest.org. See LICENSE.txt
-// Contribution by Todd Farrell
-
-#import
-
-
-@interface HCConformsToProtocol : HCBaseMatcher
-
-+ (instancetype)conformsTo:(Protocol *)protocol;
-- (instancetype)initWithProtocol:(Protocol *)protocol;
-
-@end
-
-
-FOUNDATION_EXPORT id HC_conformsTo(Protocol *aProtocol);
-
-/**
- conformsTo(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 conformsTo(\@protocol(NSObject))
-
- (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym
- @c HC_conformsTo instead.)
-
- @ingroup object_matchers
- */
-#ifdef HC_SHORTHAND
- #define conformsTo HC_conformsTo
-#endif
diff --git a/Vendor/OCHamcrest.framework/Headers/HCDescribedAs.h b/Vendor/OCHamcrest.framework/Headers/HCDescribedAs.h
deleted file mode 100644
index 9ca25a5..0000000
--- a/Vendor/OCHamcrest.framework/Headers/HCDescribedAs.h
+++ /dev/null
@@ -1,39 +0,0 @@
-// OCHamcrest by Jon Reid, http://qualitycoding.org/about/
-// Copyright 2014 hamcrest.org. See LICENSE.txt
-
-#import
-
-
-@interface HCDescribedAs : HCBaseMatcher
-
-+ (instancetype)describedAs:(NSString *)description
- forMatcher:(id )matcher
- overValues:(NSArray *)templateValues;
-
-- (instancetype)initWithDescription:(NSString *)description
- forMatcher:(id )matcher
- overValues:(NSArray *)templateValues;
-
-@end
-
-
-FOUNDATION_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/Vendor/OCHamcrest.framework/Headers/HCDescription.h b/Vendor/OCHamcrest.framework/Headers/HCDescription.h
deleted file mode 100644
index 2a6a27c..0000000
--- a/Vendor/OCHamcrest.framework/Headers/HCDescription.h
+++ /dev/null
@@ -1,42 +0,0 @@
-// OCHamcrest by Jon Reid, http://qualitycoding.org/about/
-// Copyright 2014 hamcrest.org. See LICENSE.txt
-
-#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 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/Vendor/OCHamcrest.framework/Headers/HCDiagnosingMatcher.h b/Vendor/OCHamcrest.framework/Headers/HCDiagnosingMatcher.h
deleted file mode 100644
index 2050d33..0000000
--- a/Vendor/OCHamcrest.framework/Headers/HCDiagnosingMatcher.h
+++ /dev/null
@@ -1,17 +0,0 @@
-// OCHamcrest by Jon Reid, http://qualitycoding.org/about/
-// Copyright 2014 hamcrest.org. See LICENSE.txt
-
-#import
-
-
-/**
- Base class for matchers that generate mismatch descriptions during the matching.
-
- 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 -matches:describingMismatchTo:.
-
- @ingroup core
-*/
-@interface HCDiagnosingMatcher : HCBaseMatcher
-@end
diff --git a/Vendor/OCHamcrest.framework/Headers/HCEvery.h b/Vendor/OCHamcrest.framework/Headers/HCEvery.h
deleted file mode 100644
index 9289ecb..0000000
--- a/Vendor/OCHamcrest.framework/Headers/HCEvery.h
+++ /dev/null
@@ -1,41 +0,0 @@
-// OCHamcrest by Jon Reid, http://qualitycoding.org/about/
-// Copyright 2014 hamcrest.org. See LICENSE.txt
-
-#import
-
-
-@interface HCEvery : HCDiagnosingMatcher
-
-@property (readonly, nonatomic, strong) id matcher;
-
-- (instancetype)initWithMatcher:(id )matcher;
-
-@end
-
-
-FOUNDATION_EXPORT id HC_everyItem(id itemMatcher);
-
-/**
- everyItem(itemMatcher) -
- Matches if every element of a collection satisfies the given matcher.
-
- @param itemMatcher The matcher to apply to every item provided by the examined collection.
-
- This matcher iterates the evaluated collection, confirming that each element satisfies the given
- matcher.
-
- Example:
-
- @par
- @ref everyItem(startsWith(@"Jo"))
-
- 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_everyItem instead.)
-
- @ingroup collection_matchers
- */
-#ifdef HC_SHORTHAND
- #define everyItem HC_everyItem
-#endif
diff --git a/Vendor/OCHamcrest.framework/Headers/HCHasCount.h b/Vendor/OCHamcrest.framework/Headers/HCHasCount.h
deleted file mode 100644
index 044b75c..0000000
--- a/Vendor/OCHamcrest.framework/Headers/HCHasCount.h
+++ /dev/null
@@ -1,54 +0,0 @@
-// OCHamcrest by Jon Reid, http://qualitycoding.org/about/
-// Copyright 2014 hamcrest.org. See LICENSE.txt
-
-#import
-
-
-@interface HCHasCount : HCBaseMatcher
-
-+ (instancetype)hasCount:(id )matcher;
-- (instancetype)initWithCount:(id )matcher;
-
-@end
-
-
-FOUNDATION_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
-
-
-FOUNDATION_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/Vendor/OCHamcrest.framework/Headers/HCHasDescription.h b/Vendor/OCHamcrest.framework/Headers/HCHasDescription.h
deleted file mode 100644
index 4542a9c..0000000
--- a/Vendor/OCHamcrest.framework/Headers/HCHasDescription.h
+++ /dev/null
@@ -1,38 +0,0 @@
-// OCHamcrest by Jon Reid, http://qualitycoding.org/about/
-// Copyright 2014 hamcrest.org. See LICENSE.txt
-
-#import
-
-
-@interface HCHasDescription : HCInvocationMatcher
-
-+ (instancetype)hasDescription:(id )descriptionMatcher;
-- (instancetype)initWithDescription:(id )descriptionMatcher;
-
-@end
-
-
-FOUNDATION_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/Vendor/OCHamcrest.framework/Headers/HCHasProperty.h b/Vendor/OCHamcrest.framework/Headers/HCHasProperty.h
deleted file mode 100644
index 2294698..0000000
--- a/Vendor/OCHamcrest.framework/Headers/HCHasProperty.h
+++ /dev/null
@@ -1,42 +0,0 @@
-// OCHamcrest by Jon Reid, http://qualitycoding.org/about/
-// Copyright 2014 hamcrest.org. See LICENSE.txt
-// Contribution by Justin Shacklette
-
-#import
-
-
-@interface HCHasProperty : HCDiagnosingMatcher
-
-+ (instancetype)hasProperty:(NSString *)property value:(id )valueMatcher;
-- (instancetype)initWithProperty:(NSString *)property value:(id )valueMatcher;
-
-@end
-
-
-FOUNDATION_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/Vendor/OCHamcrest.framework/Headers/HCInvocationMatcher.h b/Vendor/OCHamcrest.framework/Headers/HCInvocationMatcher.h
deleted file mode 100644
index 0b3c1e5..0000000
--- a/Vendor/OCHamcrest.framework/Headers/HCInvocationMatcher.h
+++ /dev/null
@@ -1,43 +0,0 @@
-// OCHamcrest by Jon Reid, http://qualitycoding.org/about/
-// Copyright 2014 hamcrest.org. See LICENSE.txt
-
-#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;
-}
-
-/**
- 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;
-
-/**
- Returns an HCInvocationMatcher object initialized with an invocation and a matcher.
- */
-- (instancetype)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/Vendor/OCHamcrest.framework/Headers/HCIs.h b/Vendor/OCHamcrest.framework/Headers/HCIs.h
deleted file mode 100644
index 3c4bfa7..0000000
--- a/Vendor/OCHamcrest.framework/Headers/HCIs.h
+++ /dev/null
@@ -1,45 +0,0 @@
-// OCHamcrest by Jon Reid, http://qualitycoding.org/about/
-// Copyright 2014 hamcrest.org. See LICENSE.txt
-
-#import
-
-
-@interface HCIs : HCBaseMatcher
-
-+ (instancetype)is:(id )matcher;
-- (instancetype)initWithMatcher:(id )matcher;
-
-@end
-
-
-FOUNDATION_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 assertThat(@(value), equalTo(@5))
- @li @ref assertThat(@(value), is(equalTo(@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/Vendor/OCHamcrest.framework/Headers/HCIsAnything.h b/Vendor/OCHamcrest.framework/Headers/HCIsAnything.h
deleted file mode 100644
index 2452382..0000000
--- a/Vendor/OCHamcrest.framework/Headers/HCIsAnything.h
+++ /dev/null
@@ -1,57 +0,0 @@
-// OCHamcrest by Jon Reid, http://qualitycoding.org/about/
-// Copyright 2014 hamcrest.org. See LICENSE.txt
-
-#import
-
-
-@interface HCIsAnything : HCBaseMatcher
-{
- NSString *description;
-}
-
-+ (instancetype)isAnything;
-+ (instancetype)isAnythingWithDescription:(NSString *)aDescription;
-
-- (instancetype)init;
-- (instancetype)initWithDescription:(NSString *)aDescription;
-
-@end
-
-
-FOUNDATION_EXPORT id HC_anything(void);
-
-/**
- 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
-
-
-FOUNDATION_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/Vendor/OCHamcrest.framework/Headers/HCIsCloseTo.h b/Vendor/OCHamcrest.framework/Headers/HCIsCloseTo.h
deleted file mode 100644
index 561371c..0000000
--- a/Vendor/OCHamcrest.framework/Headers/HCIsCloseTo.h
+++ /dev/null
@@ -1,37 +0,0 @@
-// OCHamcrest by Jon Reid, http://qualitycoding.org/about/
-// Copyright 2014 hamcrest.org. See LICENSE.txt
-
-#import
-
-
-@interface HCIsCloseTo : HCBaseMatcher
-
-+ (instancetype)isCloseTo:(double)value within:(double)delta;
-- (instancetype)initWithValue:(double)value delta:(double)delta;
-
-@end
-
-
-FOUNDATION_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/Vendor/OCHamcrest.framework/Headers/HCIsCollectionContaining.h b/Vendor/OCHamcrest.framework/Headers/HCIsCollectionContaining.h
deleted file mode 100644
index dce97a1..0000000
--- a/Vendor/OCHamcrest.framework/Headers/HCIsCollectionContaining.h
+++ /dev/null
@@ -1,60 +0,0 @@
-// OCHamcrest by Jon Reid, http://qualitycoding.org/about/
-// Copyright 2014 hamcrest.org. See LICENSE.txt
-
-#import
-
-
-@interface HCIsCollectionContaining : HCDiagnosingMatcher
-
-+ (instancetype)isCollectionContaining:(id )elementMatcher;
-- (instancetype)initWithMatcher:(id )elementMatcher;
-
-@end
-
-
-FOUNDATION_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
-
-
-FOUNDATION_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/Vendor/OCHamcrest.framework/Headers/HCIsCollectionContainingInAnyOrder.h b/Vendor/OCHamcrest.framework/Headers/HCIsCollectionContainingInAnyOrder.h
deleted file mode 100644
index 675d41e..0000000
--- a/Vendor/OCHamcrest.framework/Headers/HCIsCollectionContainingInAnyOrder.h
+++ /dev/null
@@ -1,38 +0,0 @@
-// OCHamcrest by Jon Reid, http://qualitycoding.org/about/
-// Copyright 2014 hamcrest.org. See LICENSE.txt
-
-#import
-
-
-@interface HCIsCollectionContainingInAnyOrder : HCDiagnosingMatcher
-
-+ (instancetype)isCollectionContainingInAnyOrder:(NSArray *)itemMatchers;
-- (instancetype)initWithMatchers:(NSArray *)itemMatchers;
-
-@end
-
-
-FOUNDATION_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/Vendor/OCHamcrest.framework/Headers/HCIsCollectionContainingInOrder.h b/Vendor/OCHamcrest.framework/Headers/HCIsCollectionContainingInOrder.h
deleted file mode 100644
index b769a48..0000000
--- a/Vendor/OCHamcrest.framework/Headers/HCIsCollectionContainingInOrder.h
+++ /dev/null
@@ -1,36 +0,0 @@
-// OCHamcrest by Jon Reid, http://qualitycoding.org/about/
-// Copyright 2014 hamcrest.org. See LICENSE.txt
-
-#import
-
-
-@interface HCIsCollectionContainingInOrder : HCDiagnosingMatcher
-
-+ (instancetype)isCollectionContainingInOrder:(NSArray *)itemMatchers;
-- (instancetype)initWithMatchers:(NSArray *)itemMatchers;
-
-@end
-
-
-FOUNDATION_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/Vendor/OCHamcrest.framework/Headers/HCIsCollectionOnlyContaining.h b/Vendor/OCHamcrest.framework/Headers/HCIsCollectionOnlyContaining.h
deleted file mode 100644
index 35b393a..0000000
--- a/Vendor/OCHamcrest.framework/Headers/HCIsCollectionOnlyContaining.h
+++ /dev/null
@@ -1,42 +0,0 @@
-// OCHamcrest by Jon Reid, http://qualitycoding.org/about/
-// Copyright 2014 hamcrest.org. See LICENSE.txt
-
-#import
-
-
-@interface HCIsCollectionOnlyContaining : HCEvery
-
-+ (instancetype)isCollectionOnlyContaining:(id )matcher;
-
-@end
-
-
-FOUNDATION_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/Vendor/OCHamcrest.framework/Headers/HCIsDictionaryContaining.h b/Vendor/OCHamcrest.framework/Headers/HCIsDictionaryContaining.h
deleted file mode 100644
index b29bd9f..0000000
--- a/Vendor/OCHamcrest.framework/Headers/HCIsDictionaryContaining.h
+++ /dev/null
@@ -1,44 +0,0 @@
-// OCHamcrest by Jon Reid, http://qualitycoding.org/about/
-// Copyright 2014 hamcrest.org. See LICENSE.txt
-
-#import
-
-
-@interface HCIsDictionaryContaining : HCBaseMatcher
-
-+ (instancetype)isDictionaryContainingKey:(id )keyMatcher
- value:(id )valueMatcher;
-
-- (instancetype)initWithKeyMatcher:(id )keyMatcher
- valueMatcher:(id )valueMatcher;
-
-@end
-
-
-FOUNDATION_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/Vendor/OCHamcrest.framework/Headers/HCIsDictionaryContainingEntries.h b/Vendor/OCHamcrest.framework/Headers/HCIsDictionaryContainingEntries.h
deleted file mode 100644
index 2509400..0000000
--- a/Vendor/OCHamcrest.framework/Headers/HCIsDictionaryContainingEntries.h
+++ /dev/null
@@ -1,44 +0,0 @@
-// OCHamcrest by Jon Reid, http://qualitycoding.org/about/
-// Copyright 2014 hamcrest.org. See LICENSE.txt
-
-#import
-
-
-@interface HCIsDictionaryContainingEntries : HCDiagnosingMatcher
-
-
-+ (instancetype)isDictionaryContainingKeys:(NSArray *)keys
- valueMatchers:(NSArray *)valueMatchers;
-
-- (instancetype)initWithKeys:(NSArray *)keys
- valueMatchers:(NSArray *)valueMatchers;
-
-@end
-
-
-FOUNDATION_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/Vendor/OCHamcrest.framework/Headers/HCIsDictionaryContainingKey.h b/Vendor/OCHamcrest.framework/Headers/HCIsDictionaryContainingKey.h
deleted file mode 100644
index 6cd0100..0000000
--- a/Vendor/OCHamcrest.framework/Headers/HCIsDictionaryContainingKey.h
+++ /dev/null
@@ -1,40 +0,0 @@
-// OCHamcrest by Jon Reid, http://qualitycoding.org/about/
-// Copyright 2014 hamcrest.org. See LICENSE.txt
-
-#import
-
-
-@interface HCIsDictionaryContainingKey : HCBaseMatcher
-
-+ (instancetype)isDictionaryContainingKey:(id )keyMatcher;
-- (instancetype)initWithKeyMatcher:(id )keyMatcher;
-
-@end
-
-
-FOUNDATION_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/Vendor/OCHamcrest.framework/Headers/HCIsDictionaryContainingValue.h b/Vendor/OCHamcrest.framework/Headers/HCIsDictionaryContainingValue.h
deleted file mode 100644
index d984edc..0000000
--- a/Vendor/OCHamcrest.framework/Headers/HCIsDictionaryContainingValue.h
+++ /dev/null
@@ -1,40 +0,0 @@
-// OCHamcrest by Jon Reid, http://qualitycoding.org/about/
-// Copyright 2014 hamcrest.org. See LICENSE.txt
-
-#import
-
-
-@interface HCIsDictionaryContainingValue : HCBaseMatcher
-
-+ (instancetype)isDictionaryContainingValue:(id )valueMatcher;
-- (instancetype)initWithValueMatcher:(id )valueMatcher;
-
-@end
-
-
-FOUNDATION_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/Vendor/OCHamcrest.framework/Headers/HCIsEmptyCollection.h b/Vendor/OCHamcrest.framework/Headers/HCIsEmptyCollection.h
deleted file mode 100644
index 012550a..0000000
--- a/Vendor/OCHamcrest.framework/Headers/HCIsEmptyCollection.h
+++ /dev/null
@@ -1,30 +0,0 @@
-// OCHamcrest by Jon Reid, http://qualitycoding.org/about/
-// Copyright 2014 hamcrest.org. See LICENSE.txt
-
-#import
-
-
-@interface HCIsEmptyCollection : HCHasCount
-
-+ (instancetype)isEmptyCollection;
-- (instancetype)init;
-
-@end
-
-
-FOUNDATION_EXPORT id HC_isEmpty(void);
-
-/**
- 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_isEmpty instead.)
-
- @ingroup collection_matchers
- */
-#ifdef HC_SHORTHAND
- #define isEmpty() HC_isEmpty()
-#endif
diff --git a/Vendor/OCHamcrest.framework/Headers/HCIsEqual.h b/Vendor/OCHamcrest.framework/Headers/HCIsEqual.h
deleted file mode 100644
index 0a115a4..0000000
--- a/Vendor/OCHamcrest.framework/Headers/HCIsEqual.h
+++ /dev/null
@@ -1,35 +0,0 @@
-// OCHamcrest by Jon Reid, http://qualitycoding.org/about/
-// Copyright 2014 hamcrest.org. See LICENSE.txt
-
-#import
-
-
-@interface HCIsEqual : HCBaseMatcher
-
-+ (instancetype)isEqualTo:(id)object;
-- (instancetype)initEqualTo:(id)object;
-
-@end
-
-
-FOUNDATION_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/Vendor/OCHamcrest.framework/Headers/HCIsEqualIgnoringCase.h b/Vendor/OCHamcrest.framework/Headers/HCIsEqualIgnoringCase.h
deleted file mode 100644
index dabb82a..0000000
--- a/Vendor/OCHamcrest.framework/Headers/HCIsEqualIgnoringCase.h
+++ /dev/null
@@ -1,40 +0,0 @@
-// OCHamcrest by Jon Reid, http://qualitycoding.org/about/
-// Copyright 2014 hamcrest.org. See LICENSE.txt
-
-#import
-
-
-@interface HCIsEqualIgnoringCase : HCBaseMatcher
-
-+ (instancetype)isEqualIgnoringCase:(NSString *)string;
-- (instancetype)initWithString:(NSString *)string;
-
-@end
-
-
-FOUNDATION_EXPORT id HC_equalToIgnoringCase(NSString *aString);
-
-/**
- equalToIgnoringCase(string) -
- 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/Vendor/OCHamcrest.framework/Headers/HCIsEqualIgnoringWhiteSpace.h b/Vendor/OCHamcrest.framework/Headers/HCIsEqualIgnoringWhiteSpace.h
deleted file mode 100644
index ebc8aa1..0000000
--- a/Vendor/OCHamcrest.framework/Headers/HCIsEqualIgnoringWhiteSpace.h
+++ /dev/null
@@ -1,40 +0,0 @@
-// OCHamcrest by Jon Reid, http://qualitycoding.org/about/
-// Copyright 2014 hamcrest.org. See LICENSE.txt
-
-#import
-
-
-@interface HCIsEqualIgnoringWhiteSpace : HCBaseMatcher
-
-+ (instancetype)isEqualIgnoringWhiteSpace:(NSString *)string;
-- (instancetype)initWithString:(NSString *)string;
-
-@end
-
-
-FOUNDATION_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/Vendor/OCHamcrest.framework/Headers/HCIsEqualToNumber.h b/Vendor/OCHamcrest.framework/Headers/HCIsEqualToNumber.h
deleted file mode 100644
index 03e75a9..0000000
--- a/Vendor/OCHamcrest.framework/Headers/HCIsEqualToNumber.h
+++ /dev/null
@@ -1,329 +0,0 @@
-// OCHamcrest by Jon Reid, http://qualitycoding.org/about/
-// Copyright 2014 hamcrest.org. See LICENSE.txt
-
-#import
-
-
-FOUNDATION_EXPORT id HC_equalToBool(BOOL value) __attribute__((deprecated));
-
-/**
- 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.
-
- @b Deprecated: Use @ref isTrue() or @ref isFalse() instead.
-
- 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
-
-@interface HCIsEqualToBool : HCBaseMatcher
-
-@property (readonly, nonatomic, assign) BOOL value;
-
-- (instancetype)initWithValue:(BOOL)value;
-
-@end
-
-
-FOUNDATION_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
-
-
-FOUNDATION_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
-
-
-FOUNDATION_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
-
-
-FOUNDATION_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
-
-
-FOUNDATION_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
-
-
-FOUNDATION_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
-
-
-FOUNDATION_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
-
-
-FOUNDATION_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
-
-
-FOUNDATION_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
-
-
-FOUNDATION_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
-
-
-FOUNDATION_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
-
-
-FOUNDATION_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
-
-
-FOUNDATION_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
-
-
-FOUNDATION_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/Vendor/OCHamcrest.framework/Headers/HCIsIn.h b/Vendor/OCHamcrest.framework/Headers/HCIsIn.h
deleted file mode 100644
index 662f80e..0000000
--- a/Vendor/OCHamcrest.framework/Headers/HCIsIn.h
+++ /dev/null
@@ -1,33 +0,0 @@
-// OCHamcrest by Jon Reid, http://qualitycoding.org/about/
-// Copyright 2014 hamcrest.org. See LICENSE.txt
-
-#import
-
-
-@interface HCIsIn : HCBaseMatcher
-
-+ (instancetype)isInCollection:(id)collection;
-- (instancetype)initWithCollection:(id)collection;
-
-@end
-
-
-FOUNDATION_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/Vendor/OCHamcrest.framework/Headers/HCIsInstanceOf.h b/Vendor/OCHamcrest.framework/Headers/HCIsInstanceOf.h
deleted file mode 100644
index 18d6c17..0000000
--- a/Vendor/OCHamcrest.framework/Headers/HCIsInstanceOf.h
+++ /dev/null
@@ -1,35 +0,0 @@
-// OCHamcrest by Jon Reid, http://qualitycoding.org/about/
-// Copyright 2014 hamcrest.org. See LICENSE.txt
-
-#import
-
-
-@interface HCIsInstanceOf : HCClassMatcher
-
-+ (id)isInstanceOf:(Class)type;
-
-@end
-
-
-FOUNDATION_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/Vendor/OCHamcrest.framework/Headers/HCIsNil.h b/Vendor/OCHamcrest.framework/Headers/HCIsNil.h
deleted file mode 100644
index d1df215..0000000
--- a/Vendor/OCHamcrest.framework/Headers/HCIsNil.h
+++ /dev/null
@@ -1,41 +0,0 @@
-// OCHamcrest by Jon Reid, http://qualitycoding.org/about/
-// Copyright 2014 hamcrest.org. See LICENSE.txt
-
-#import
-
-
-@interface HCIsNil : HCBaseMatcher
-
-+ (id)isNil;
-
-@end
-
-
-FOUNDATION_EXPORT id HC_nilValue(void);
-
-/**
- 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
-
-
-FOUNDATION_EXPORT id HC_notNilValue(void);
-
-/**
- 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/Vendor/OCHamcrest.framework/Headers/HCIsNot.h b/Vendor/OCHamcrest.framework/Headers/HCIsNot.h
deleted file mode 100644
index 9d91555..0000000
--- a/Vendor/OCHamcrest.framework/Headers/HCIsNot.h
+++ /dev/null
@@ -1,38 +0,0 @@
-// OCHamcrest by Jon Reid, http://qualitycoding.org/about/
-// Copyright 2014 hamcrest.org. See LICENSE.txt
-
-#import
-
-
-@interface HCIsNot : HCBaseMatcher
-
-+ (instancetype)isNot:(id )matcher;
-- (instancetype)initNot:(id )matcher;
-
-@end
-
-
-FOUNDATION_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/Vendor/OCHamcrest.framework/Headers/HCIsSame.h b/Vendor/OCHamcrest.framework/Headers/HCIsSame.h
deleted file mode 100644
index eda7264..0000000
--- a/Vendor/OCHamcrest.framework/Headers/HCIsSame.h
+++ /dev/null
@@ -1,33 +0,0 @@
-// OCHamcrest by Jon Reid, http://qualitycoding.org/about/
-// Copyright 2014 hamcrest.org. See LICENSE.txt
-
-#import
-
-
-@interface HCIsSame : HCBaseMatcher
-
-+ (instancetype)isSameAs:(id)object;
-- (instancetype)initSameAs:(id)object;
-
-@end
-
-
-FOUNDATION_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/Vendor/OCHamcrest.framework/Headers/HCIsTrueFalse.h b/Vendor/OCHamcrest.framework/Headers/HCIsTrueFalse.h
deleted file mode 100644
index af86b84..0000000
--- a/Vendor/OCHamcrest.framework/Headers/HCIsTrueFalse.h
+++ /dev/null
@@ -1,43 +0,0 @@
-// OCHamcrest by Jon Reid, http://qualitycoding.org/about/
-// Copyright 2014 hamcrest.org. See LICENSE.txt
-
-#import
-
-
-@interface HCIsTrue : HCBaseMatcher
-@end
-
-@interface HCIsFalse : HCBaseMatcher
-@end
-
-
-FOUNDATION_EXPORT id HC_isTrue(void);
-
-/**
- isTrue() -
- Matches if object is equal to @c NSNumber with non-zero value.
-
- (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym
- @c HC_isTrue instead.)
-
- @ingroup primitive_number_matchers
- */
-#ifdef HC_SHORTHAND
- #define isTrue() HC_isTrue()
-#endif
-
-
-FOUNDATION_EXPORT id HC_isFalse(void);
-
-/**
- isFalse() -
- Matches if object is equal to @c NSNumber with zero value.
-
- (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym
- @c HC_isFalse instead.)
-
- @ingroup primitive_number_matchers
-*/
-#ifdef HC_SHORTHAND
- #define isFalse() HC_isFalse()
-#endif
diff --git a/Vendor/OCHamcrest.framework/Headers/HCIsTypeOf.h b/Vendor/OCHamcrest.framework/Headers/HCIsTypeOf.h
deleted file mode 100644
index deb9584..0000000
--- a/Vendor/OCHamcrest.framework/Headers/HCIsTypeOf.h
+++ /dev/null
@@ -1,34 +0,0 @@
-// OCHamcrest by Jon Reid, http://qualitycoding.org/about/
-// Copyright 2014 hamcrest.org. See LICENSE.txt
-
-#import
-
-
-@interface HCIsTypeOf : HCClassMatcher
-
-+ (id)isTypeOf:(Class)type;
-
-@end
-
-
-FOUNDATION_EXPORT id HC_isA(Class aClass);
-
-/**
- isA(aClass) -
- Matches if object is an instance of a given class (but not of a subclass).
-
- @param aClass The class to compare against as the expected class.
-
- This matcher checks whether the evaluated object is an instance of @a aClass.
-
- Example:
- @li @ref isA([Foo class])
-
- (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym
- @c HC_isA instead.)
-
- @ingroup object_matchers
- */
-#ifdef HC_SHORTHAND
- #define isA HC_isA
-#endif
diff --git a/Vendor/OCHamcrest.framework/Headers/HCMatcher.h b/Vendor/OCHamcrest.framework/Headers/HCMatcher.h
deleted file mode 100644
index baf3dc2..0000000
--- a/Vendor/OCHamcrest.framework/Headers/HCMatcher.h
+++ /dev/null
@@ -1,50 +0,0 @@
-// OCHamcrest by Jon Reid, http://qualitycoding.org/about/
-// Copyright 2014 hamcrest.org. See LICENSE.txt
-
-#import "HCSelfDescribing.h"
-
-
-/**
- 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/Vendor/OCHamcrest.framework/Headers/HCNumberAssert.h b/Vendor/OCHamcrest.framework/Headers/HCNumberAssert.h
deleted file mode 100644
index 968fd9f..0000000
--- a/Vendor/OCHamcrest.framework/Headers/HCNumberAssert.h
+++ /dev/null
@@ -1,353 +0,0 @@
-// OCHamcrest by Jon Reid, http://qualitycoding.org/about/
-// Copyright 2014 hamcrest.org. See LICENSE.txt
-
-#import
-
-@protocol HCMatcher;
-
-
-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__)
-
-/**
- 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
-
-
-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__)
-
-/**
- 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
-
-
-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__)
-
-/**
- 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
-
-
-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__)
-
-/**
- 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
-
-
-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__)
-
-/**
- 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
-
-
-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__)
-
-/**
- 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
-
-
-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__)
-
-/**
- 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
-
-
-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__)
-
-/**
- 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
-
-
-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__)
-
-/**
- assertThatUnsignedChar(actual, matcher) -
- Asserts that