cocoapods-deintegrate 0.1.1 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +16 -19
- data/cocoapods_deintegrate.gemspec +1 -1
- data/lib/cocoapods_deintegrate.rb +1 -1
- data/lib/pod/command/deintegrate.rb +27 -15
- data/spec/command/deintegrate_spec.rb +47 -1
- data/spec/fixtures/Project/Frameworks/Podfile +12 -0
- data/spec/fixtures/Project/Frameworks/Podfile.lock +42 -0
- data/spec/fixtures/Project/Frameworks/Pods/Headers/Private/QueryKit/QKAttribute.h +210 -0
- data/spec/fixtures/Project/Frameworks/Pods/Headers/Private/QueryKit/QKQuerySet.h +155 -0
- data/spec/fixtures/Project/Frameworks/Pods/Headers/Private/QueryKit/QueryKit.h +19 -0
- data/spec/fixtures/Project/Frameworks/Pods/Headers/Private/Quick/NSString+QCKSelectorName.h +17 -0
- data/spec/fixtures/Project/Frameworks/Pods/Headers/Private/Quick/QCKDSL.h +211 -0
- data/spec/fixtures/Project/Frameworks/Pods/Headers/Private/Quick/Quick.h +13 -0
- data/spec/fixtures/Project/Frameworks/Pods/Headers/Private/Quick/QuickConfiguration.h +30 -0
- data/spec/fixtures/Project/Frameworks/Pods/Headers/Private/Quick/QuickSpec.h +48 -0
- data/spec/fixtures/Project/Frameworks/Pods/Headers/Public/QueryKit/QKAttribute.h +210 -0
- data/spec/fixtures/Project/Frameworks/Pods/Headers/Public/QueryKit/QKQuerySet.h +155 -0
- data/spec/fixtures/Project/Frameworks/Pods/Headers/Public/QueryKit/QueryKit.h +19 -0
- data/spec/fixtures/Project/Frameworks/Pods/Headers/Public/Quick/NSString+QCKSelectorName.h +17 -0
- data/spec/fixtures/Project/Frameworks/Pods/Headers/Public/Quick/QCKDSL.h +211 -0
- data/spec/fixtures/Project/Frameworks/Pods/Headers/Public/Quick/Quick.h +13 -0
- data/spec/fixtures/Project/Frameworks/Pods/Headers/Public/Quick/QuickConfiguration.h +30 -0
- data/spec/fixtures/Project/Frameworks/Pods/Headers/Public/Quick/QuickSpec.h +48 -0
- data/spec/fixtures/Project/Frameworks/Pods/Manifest.lock +42 -0
- data/spec/fixtures/Project/Frameworks/Pods/Pods.xcodeproj/project.pbxproj +995 -0
- data/spec/fixtures/Project/Frameworks/Pods/QueryKit/LICENSE +23 -0
- data/spec/fixtures/Project/Frameworks/Pods/QueryKit/QueryKit/Attribute.swift +124 -0
- data/spec/fixtures/Project/Frameworks/Pods/QueryKit/QueryKit/Expression.swift +41 -0
- data/spec/fixtures/Project/Frameworks/Pods/QueryKit/QueryKit/ObjectiveC/QKAttribute.h +210 -0
- data/spec/fixtures/Project/Frameworks/Pods/QueryKit/QueryKit/ObjectiveC/QKAttribute.m +315 -0
- data/spec/fixtures/Project/Frameworks/Pods/QueryKit/QueryKit/ObjectiveC/QKAttribute.swift +13 -0
- data/spec/fixtures/Project/Frameworks/Pods/QueryKit/QueryKit/ObjectiveC/QKQuerySet.h +155 -0
- data/spec/fixtures/Project/Frameworks/Pods/QueryKit/QueryKit/ObjectiveC/QKQuerySet.m +314 -0
- data/spec/fixtures/Project/Frameworks/Pods/QueryKit/QueryKit/ObjectiveC/QKQuerySet.swift +28 -0
- data/spec/fixtures/Project/Frameworks/Pods/QueryKit/QueryKit/Predicate.swift +21 -0
- data/spec/fixtures/Project/Frameworks/Pods/QueryKit/QueryKit/QueryKit.h +19 -0
- data/spec/fixtures/Project/Frameworks/Pods/QueryKit/QueryKit/QuerySet.swift +237 -0
- data/spec/fixtures/Project/Frameworks/Pods/QueryKit/README.md +151 -0
- data/spec/fixtures/Project/Frameworks/Pods/Quick/LICENSE +201 -0
- data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/Callsite.swift +28 -0
- data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/Configuration/Configuration.swift +147 -0
- data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/Configuration/QuickConfiguration.h +30 -0
- data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/Configuration/QuickConfiguration.m +83 -0
- data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/DSL/DSL.swift +227 -0
- data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/DSL/QCKDSL.h +211 -0
- data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/DSL/QCKDSL.m +70 -0
- data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/DSL/World+DSL.swift +100 -0
- data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/Example.swift +103 -0
- data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/ExampleGroup.swift +97 -0
- data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/ExampleMetadata.swift +22 -0
- data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/Failure.swift +16 -0
- data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/Filter.swift +29 -0
- data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/Hooks/Closures.swift +35 -0
- data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/Hooks/ExampleHooks.swift +36 -0
- data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/Hooks/SuiteHooks.swift +34 -0
- data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/NSString+QCKSelectorName.h +17 -0
- data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/NSString+QCKSelectorName.m +33 -0
- data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/Quick.h +13 -0
- data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/QuickSpec.h +48 -0
- data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/QuickSpec.m +142 -0
- data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/World.swift +197 -0
- data/spec/fixtures/Project/Frameworks/Pods/Quick/README.md +979 -0
- data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProject-QueryKit/Info.plist +26 -0
- data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProject-QueryKit/Pods-TestProject-QueryKit-Private.xcconfig +9 -0
- data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProject-QueryKit/Pods-TestProject-QueryKit-dummy.m +5 -0
- data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProject-QueryKit/Pods-TestProject-QueryKit-prefix.pch +5 -0
- data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProject-QueryKit/Pods-TestProject-QueryKit-umbrella.h +9 -0
- data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProject-QueryKit/Pods-TestProject-QueryKit.modulemap +6 -0
- data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProject-QueryKit/Pods-TestProject-QueryKit.xcconfig b/data/spec/fixtures/Project/Frameworks/Pods/Target Support → Files/Pods-TestProject-QueryKit/Pods-TestProject-QueryKit.xcconfig +0 -0
- data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProject/Info.plist +26 -0
- data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProject/Pods-TestProject-acknowledgements.markdown +30 -0
- data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProject/Pods-TestProject-acknowledgements.plist +60 -0
- data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProject/Pods-TestProject-dummy.m +5 -0
- data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProject/Pods-TestProject-environment.h +74 -0
- data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProject/Pods-TestProject-frameworks.sh +55 -0
- data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProject/Pods-TestProject-resources.sh +74 -0
- data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProject/Pods-TestProject-umbrella.h +6 -0
- data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProject/Pods-TestProject.debug.xcconfig +9 -0
- data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProject/Pods-TestProject.modulemap +6 -0
- data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProject/Pods-TestProject.release.xcconfig +9 -0
- data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProjectTests-Quick/Info.plist +26 -0
- data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProjectTests-Quick/Pods-TestProjectTests-Quick-Private.xcconfig +9 -0
- data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProjectTests-Quick/Pods-TestProjectTests-Quick-dummy.m +5 -0
- data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProjectTests-Quick/Pods-TestProjectTests-Quick-prefix.pch +5 -0
- data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProjectTests-Quick/Pods-TestProjectTests-Quick-umbrella.h +11 -0
- data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProjectTests-Quick/Pods-TestProjectTests-Quick.modulemap +6 -0
- data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProjectTests-Quick/Pods-TestProjectTests-Quick.xcconfig +2 -0
- data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProjectTests/Info.plist +26 -0
- data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProjectTests/Pods-TestProjectTests-acknowledgements.markdown +208 -0
- data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProjectTests/Pods-TestProjectTests-acknowledgements.plist +238 -0
- data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProjectTests/Pods-TestProjectTests-dummy.m +5 -0
- data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProjectTests/Pods-TestProjectTests-environment.h +14 -0
- data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProjectTests/Pods-TestProjectTests-frameworks.sh +55 -0
- data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProjectTests/Pods-TestProjectTests-resources.sh +74 -0
- data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProjectTests/Pods-TestProjectTests-umbrella.h +6 -0
- data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProjectTests/Pods-TestProjectTests.debug.xcconfig +9 -0
- data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProjectTests/Pods-TestProjectTests.modulemap +6 -0
- data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProjectTests/Pods-TestProjectTests.release.xcconfig +9 -0
- data/spec/fixtures/Project/Frameworks/TestProject.xcodeproj/project.pbxproj +557 -0
- data/spec/fixtures/Project/Frameworks/TestProject.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
- data/spec/fixtures/Project/Frameworks/TestProject.xcworkspace/contents.xcworkspacedata +10 -0
- data/spec/fixtures/Project/Frameworks/TestProject/AppDelegate.swift +46 -0
- data/spec/fixtures/Project/Frameworks/TestProject/Base.lproj/LaunchScreen.xib +41 -0
- data/spec/fixtures/Project/Frameworks/TestProject/Base.lproj/Main.storyboard +25 -0
- data/spec/fixtures/Project/Frameworks/TestProject/Images.xcassets/AppIcon.appiconset/Contents.json +38 -0
- data/spec/fixtures/Project/Frameworks/TestProject/Info.plist +40 -0
- data/spec/fixtures/Project/Frameworks/TestProject/ViewController.swift +25 -0
- data/spec/fixtures/Project/Frameworks/TestProjectTests/Info.plist +24 -0
- data/spec/fixtures/Project/Frameworks/TestProjectTests/TestProjectTests.swift +36 -0
- data/spec/fixtures/Project/None/TestProject.xcodeproj/project.pbxproj +420 -0
- data/spec/fixtures/Project/None/TestProject.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
- data/spec/fixtures/Project/None/TestProject/AppDelegate.swift +46 -0
- data/spec/fixtures/Project/None/TestProject/Base.lproj/LaunchScreen.xib +41 -0
- data/spec/fixtures/Project/None/TestProject/Base.lproj/Main.storyboard +25 -0
- data/spec/fixtures/Project/None/TestProject/Images.xcassets/AppIcon.appiconset/Contents.json +38 -0
- data/spec/fixtures/Project/None/TestProject/Info.plist +40 -0
- data/spec/fixtures/Project/None/TestProject/ViewController.swift +25 -0
- data/spec/fixtures/Project/None/TestProjectTests/Info.plist +24 -0
- data/spec/fixtures/Project/None/TestProjectTests/TestProjectTests.swift +36 -0
- data/spec/fixtures/Project/StaticLibraries/Podfile +12 -0
- data/spec/fixtures/Project/StaticLibraries/Podfile.lock +13 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/LICENSE +19 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/README.md +308 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/EXPBackwardCompatibility.h +42 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/EXPBackwardCompatibility.m +17 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/EXPBlockDefinedMatcher.h +25 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/EXPBlockDefinedMatcher.m +60 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/EXPDefines.h +17 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/EXPDoubleTuple.h +13 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/EXPDoubleTuple.m +42 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/EXPExpect.h +45 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/EXPExpect.m +214 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/EXPFloatTuple.h +13 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/EXPFloatTuple.m +42 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/EXPMatcher.h +20 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/EXPUnsupportedObject.h +11 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/EXPUnsupportedObject.m +20 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/Expecta.h +27 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/Expecta.m +15 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/ExpectaSupport.h +64 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/ExpectaSupport.m +187 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/NSObject+Expecta.h +14 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/NSValue+Expecta.h +8 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/NSValue+Expecta.m +21 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatcherHelpers.h +4 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatcherHelpers.m +9 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beCloseTo.h +7 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beCloseTo.m +49 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beFalsy.h +3 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beFalsy.m +24 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beGreaterThan.h +6 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beGreaterThan.m +20 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beGreaterThanOrEqualTo.h +6 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beGreaterThanOrEqualTo.m +20 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beIdenticalTo.h +10 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beIdenticalTo.m +24 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beInTheRangeOf.h +6 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beInTheRangeOf.m +30 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beInstanceOf.h +7 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beInstanceOf.m +27 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beKindOf.h +5 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beKindOf.m +27 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beLessThan.h +6 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beLessThan.m +20 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beLessThanOrEqualTo.h +6 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beLessThanOrEqualTo.m +20 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beNil.h +5 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beNil.m +16 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beSubclassOf.h +5 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beSubclassOf.m +27 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beSupersetOf.h +4 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beSupersetOf.m +57 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beTruthy.h +3 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beTruthy.m +24 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beginWith.h +5 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beginWith.m +49 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+conformTo.h +3 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+conformTo.m +33 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+contain.h +5 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+contain.m +38 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+endWith.h +3 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+endWith.m +49 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+equal.h +5 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+equal.m +24 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+haveCountOf.h +10 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+haveCountOf.m +36 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+notify.h +4 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+notify.m +63 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+raise.h +4 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+raise.m +30 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+raiseWithReason.h +3 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+raiseWithReason.m +35 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+respondTo.h +3 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+respondTo.m +28 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers.h +24 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPBackwardCompatibility.h +42 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPBlockDefinedMatcher.h +25 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPDefines.h +17 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPDoubleTuple.h +13 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPExpect.h +45 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPFloatTuple.h +13 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatcher.h +20 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatcherHelpers.h +4 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+beCloseTo.h +7 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+beFalsy.h +3 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+beGreaterThan.h +6 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+beGreaterThanOrEqualTo.h +6 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+beIdenticalTo.h +10 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+beInTheRangeOf.h +6 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+beInstanceOf.h +7 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+beKindOf.h +5 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+beLessThan.h +6 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+beLessThanOrEqualTo.h +6 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+beNil.h +5 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+beSubclassOf.h +5 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+beSupersetOf.h +4 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+beTruthy.h +3 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+beginWith.h +5 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+conformTo.h +3 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+contain.h +5 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+endWith.h +3 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+equal.h +5 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+haveCountOf.h +10 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+notify.h +4 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+raise.h +4 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+raiseWithReason.h +3 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+respondTo.h +3 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers.h +24 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPUnsupportedObject.h +11 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/Expecta.h +27 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/ExpectaSupport.h +64 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/NSObject+Expecta.h +14 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/NSValue+Expecta.h +8 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/NSAttributedString+CCLFormat/NSAttributedString+CCLFormat.h +21 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPBackwardCompatibility.h +42 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPBlockDefinedMatcher.h +25 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPDefines.h +17 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPDoubleTuple.h +13 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPExpect.h +45 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPFloatTuple.h +13 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatcher.h +20 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatcherHelpers.h +4 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+beCloseTo.h +7 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+beFalsy.h +3 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+beGreaterThan.h +6 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+beGreaterThanOrEqualTo.h +6 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+beIdenticalTo.h +10 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+beInTheRangeOf.h +6 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+beInstanceOf.h +7 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+beKindOf.h +5 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+beLessThan.h +6 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+beLessThanOrEqualTo.h +6 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+beNil.h +5 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+beSubclassOf.h +5 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+beSupersetOf.h +4 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+beTruthy.h +3 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+beginWith.h +5 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+conformTo.h +3 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+contain.h +5 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+endWith.h +3 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+equal.h +5 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+haveCountOf.h +10 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+notify.h +4 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+raise.h +4 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+raiseWithReason.h +3 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+respondTo.h +3 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers.h +24 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPUnsupportedObject.h +11 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/Expecta.h +27 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/ExpectaSupport.h +64 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/NSObject+Expecta.h +14 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/NSValue+Expecta.h +8 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/NSAttributedString+CCLFormat/NSAttributedString+CCLFormat.h +21 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Manifest.lock +13 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/NSAttributedString+CCLFormat/LICENSE +23 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/NSAttributedString+CCLFormat/NSAttributedString+CCLFormat.h +21 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/NSAttributedString+CCLFormat/NSAttributedString+CCLFormat.m +51 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/NSAttributedString+CCLFormat/README.md +57 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Pods.xcodeproj/project.pbxproj +943 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProject-NSAttributedString+CCLFormat/Pods-TestProject-NSAttributedString+CCLFormat-Private.xcconfig +5 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProject-NSAttributedString+CCLFormat/Pods-TestProject-NSAttributedString+CCLFormat-dummy.m +5 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProject-NSAttributedString+CCLFormat/Pods-TestProject-NSAttributedString+CCLFormat-prefix.pch +5 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProject-NSAttributedString+CCLFormat/Pods-TestProject-NSAttributedString+CCLFormat.xcconfig b/data/spec/fixtures/Project/StaticLibraries/Pods/Target Support → Files/Pods-TestProject-NSAttributedString+CCLFormat/Pods-TestProject-NSAttributedString+CCLFormat.xcconfig +0 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProject/Pods-TestProject-acknowledgements.markdown +30 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProject/Pods-TestProject-acknowledgements.plist +60 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProject/Pods-TestProject-dummy.m +5 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProject/Pods-TestProject-environment.h +14 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProject/Pods-TestProject-resources.sh +74 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProject/Pods-TestProject.debug.xcconfig +6 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProject/Pods-TestProject.release.xcconfig +6 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProjectTests-Expecta/Pods-TestProjectTests-Expecta-Private.xcconfig +5 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProjectTests-Expecta/Pods-TestProjectTests-Expecta-dummy.m +5 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProjectTests-Expecta/Pods-TestProjectTests-Expecta-prefix.pch +5 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProjectTests-Expecta/Pods-TestProjectTests-Expecta.xcconfig +1 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProjectTests/Pods-TestProjectTests-acknowledgements.markdown +26 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProjectTests/Pods-TestProjectTests-acknowledgements.plist +56 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProjectTests/Pods-TestProjectTests-dummy.m +5 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProjectTests/Pods-TestProjectTests-environment.h +14 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProjectTests/Pods-TestProjectTests-resources.sh +74 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProjectTests/Pods-TestProjectTests.debug.xcconfig +6 -0
- data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProjectTests/Pods-TestProjectTests.release.xcconfig +6 -0
- data/spec/fixtures/Project/StaticLibraries/TestProject.xcodeproj/project.pbxproj +525 -0
- data/spec/fixtures/Project/StaticLibraries/TestProject.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
- data/spec/fixtures/Project/StaticLibraries/TestProject.xcworkspace/contents.xcworkspacedata +10 -0
- data/spec/fixtures/Project/StaticLibraries/TestProject/AppDelegate.swift +46 -0
- data/spec/fixtures/Project/StaticLibraries/TestProject/Base.lproj/LaunchScreen.xib +41 -0
- data/spec/fixtures/Project/StaticLibraries/TestProject/Base.lproj/Main.storyboard +25 -0
- data/spec/fixtures/Project/StaticLibraries/TestProject/Images.xcassets/AppIcon.appiconset/Contents.json +38 -0
- data/spec/fixtures/Project/StaticLibraries/TestProject/Info.plist +40 -0
- data/spec/fixtures/Project/StaticLibraries/TestProject/ViewController.swift +25 -0
- data/spec/fixtures/Project/StaticLibraries/TestProjectTests/Info.plist +24 -0
- data/spec/fixtures/Project/StaticLibraries/TestProjectTests/TestProjectTests.swift +36 -0
- metadata +620 -7
@@ -0,0 +1,23 @@
|
|
1
|
+
Copyright (c) 2012-2014, Kyle Fuller
|
2
|
+
All rights reserved.
|
3
|
+
|
4
|
+
Redistribution and use in source and binary forms, with or without
|
5
|
+
modification, are permitted provided that the following conditions are met:
|
6
|
+
|
7
|
+
1. Redistributions of source code must retain the above copyright notice, this
|
8
|
+
list of conditions and the following disclaimer.
|
9
|
+
2. Redistributions in binary form must reproduce the above copyright notice,
|
10
|
+
this list of conditions and the following disclaimer in the documentation
|
11
|
+
and/or other materials provided with the distribution.
|
12
|
+
|
13
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
14
|
+
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
15
|
+
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
16
|
+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
17
|
+
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
18
|
+
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
19
|
+
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
20
|
+
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
21
|
+
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
22
|
+
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
23
|
+
|
@@ -0,0 +1,124 @@
|
|
1
|
+
//
|
2
|
+
// Attribute.swift
|
3
|
+
// QueryKit
|
4
|
+
//
|
5
|
+
// Created by Kyle Fuller on 19/06/2014.
|
6
|
+
//
|
7
|
+
//
|
8
|
+
|
9
|
+
import Foundation
|
10
|
+
|
11
|
+
public struct Attribute<T> : Equatable {
|
12
|
+
public let name:String
|
13
|
+
|
14
|
+
public init(_ name:String) {
|
15
|
+
self.name = name
|
16
|
+
}
|
17
|
+
|
18
|
+
/// Builds a compound attribute with other key paths
|
19
|
+
public init(attributes:Array<String>) {
|
20
|
+
self.init(".".join(attributes))
|
21
|
+
}
|
22
|
+
|
23
|
+
public var expression:NSExpression {
|
24
|
+
return NSExpression(forKeyPath: name)
|
25
|
+
}
|
26
|
+
|
27
|
+
// MARK: Sorting
|
28
|
+
|
29
|
+
public func ascending() -> NSSortDescriptor {
|
30
|
+
return NSSortDescriptor(key: name, ascending: true)
|
31
|
+
}
|
32
|
+
|
33
|
+
public func descending() -> NSSortDescriptor {
|
34
|
+
return NSSortDescriptor(key: name, ascending: false)
|
35
|
+
}
|
36
|
+
|
37
|
+
func expressionForValue(value:T) -> NSExpression {
|
38
|
+
if let value = value as? NSObject {
|
39
|
+
return NSExpression(forConstantValue: value as NSObject)
|
40
|
+
}
|
41
|
+
|
42
|
+
if sizeof(value.dynamicType) == 8 {
|
43
|
+
let value = unsafeBitCast(value, Optional<NSObject>.self)
|
44
|
+
if let value = value {
|
45
|
+
return NSExpression(forConstantValue: value)
|
46
|
+
}
|
47
|
+
}
|
48
|
+
|
49
|
+
let value = unsafeBitCast(value, Optional<String>.self)
|
50
|
+
if let value = value {
|
51
|
+
return NSExpression(forConstantValue: value)
|
52
|
+
}
|
53
|
+
|
54
|
+
return NSExpression(forConstantValue: NSNull())
|
55
|
+
}
|
56
|
+
}
|
57
|
+
|
58
|
+
public func == <T>(lhs: Attribute<T>, rhs: Attribute<T>) -> Bool {
|
59
|
+
return lhs.name == rhs.name
|
60
|
+
}
|
61
|
+
|
62
|
+
public func == <T>(left: Attribute<T>, right: T) -> NSPredicate {
|
63
|
+
return left.expression == left.expressionForValue(right)
|
64
|
+
}
|
65
|
+
|
66
|
+
public func != <T>(left: Attribute<T>, right: T) -> NSPredicate {
|
67
|
+
return left.expression != left.expressionForValue(right)
|
68
|
+
}
|
69
|
+
|
70
|
+
public func > <T>(left: Attribute<T>, right: T) -> NSPredicate {
|
71
|
+
return left.expression > left.expressionForValue(right)
|
72
|
+
}
|
73
|
+
|
74
|
+
public func >= <T>(left: Attribute<T>, right: T) -> NSPredicate {
|
75
|
+
return left.expression >= left.expressionForValue(right)
|
76
|
+
}
|
77
|
+
|
78
|
+
public func < <T>(left: Attribute<T>, right: T) -> NSPredicate {
|
79
|
+
return left.expression < left.expressionForValue(right)
|
80
|
+
}
|
81
|
+
|
82
|
+
public func <= <T>(left: Attribute<T>, right: T) -> NSPredicate {
|
83
|
+
return left.expression <= left.expressionForValue(right)
|
84
|
+
}
|
85
|
+
|
86
|
+
public func ~= <T>(left: Attribute<T>, right: T) -> NSPredicate {
|
87
|
+
return left.expression ~= left.expressionForValue(right)
|
88
|
+
}
|
89
|
+
|
90
|
+
public func << <T>(left: Attribute<T>, right: [T]) -> NSPredicate {
|
91
|
+
return left.expression << NSExpression(forConstantValue: right._asCocoaArray())
|
92
|
+
}
|
93
|
+
|
94
|
+
public func << <T>(left: Attribute<T>, right: Range<T>) -> NSPredicate {
|
95
|
+
let rightExpression = NSExpression(forConstantValue: [right.startIndex, right.endIndex]._asCocoaArray())
|
96
|
+
|
97
|
+
return NSComparisonPredicate(leftExpression: left.expression, rightExpression: rightExpression, modifier: NSComparisonPredicateModifier.DirectPredicateModifier, type: NSPredicateOperatorType.BetweenPredicateOperatorType, options: NSComparisonPredicateOptions(0))
|
98
|
+
}
|
99
|
+
|
100
|
+
/// MARK: Bool Attributes
|
101
|
+
|
102
|
+
prefix public func ! (left: Attribute<Bool>) -> NSPredicate {
|
103
|
+
return left == false
|
104
|
+
}
|
105
|
+
|
106
|
+
public extension QuerySet {
|
107
|
+
public func filter(attribute:Attribute<Bool>) -> QuerySet<T> {
|
108
|
+
return filter(attribute == true)
|
109
|
+
}
|
110
|
+
|
111
|
+
public func exclude(attribute:Attribute<Bool>) -> QuerySet<T> {
|
112
|
+
return filter(attribute == false)
|
113
|
+
}
|
114
|
+
}
|
115
|
+
|
116
|
+
// MARK: Collections
|
117
|
+
|
118
|
+
public func count(attribute:Attribute<NSSet>) -> Attribute<Int> {
|
119
|
+
return Attribute<Int>(attributes: [attribute.name, "@count"])
|
120
|
+
}
|
121
|
+
|
122
|
+
public func count(attribute:Attribute<NSOrderedSet>) -> Attribute<Int> {
|
123
|
+
return Attribute<Int>(attributes: [attribute.name, "@count"])
|
124
|
+
}
|
@@ -0,0 +1,41 @@
|
|
1
|
+
//
|
2
|
+
// Expression.swift
|
3
|
+
// QueryKit
|
4
|
+
//
|
5
|
+
// Created by Kyle Fuller on 06/07/2014.
|
6
|
+
//
|
7
|
+
//
|
8
|
+
|
9
|
+
import Foundation
|
10
|
+
|
11
|
+
public func == (left: NSExpression, right: NSExpression) -> NSPredicate {
|
12
|
+
return NSComparisonPredicate(leftExpression: left, rightExpression: right, modifier: NSComparisonPredicateModifier.DirectPredicateModifier, type: NSPredicateOperatorType.EqualToPredicateOperatorType, options: NSComparisonPredicateOptions(0))
|
13
|
+
}
|
14
|
+
|
15
|
+
public func != (left: NSExpression, right: NSExpression) -> NSPredicate {
|
16
|
+
return NSComparisonPredicate(leftExpression: left, rightExpression: right, modifier: NSComparisonPredicateModifier.DirectPredicateModifier, type: NSPredicateOperatorType.NotEqualToPredicateOperatorType, options: NSComparisonPredicateOptions(0))
|
17
|
+
}
|
18
|
+
|
19
|
+
public func > (left: NSExpression, right: NSExpression) -> NSPredicate {
|
20
|
+
return NSComparisonPredicate(leftExpression: left, rightExpression: right, modifier: NSComparisonPredicateModifier.DirectPredicateModifier, type: NSPredicateOperatorType.GreaterThanPredicateOperatorType, options: NSComparisonPredicateOptions(0))
|
21
|
+
}
|
22
|
+
|
23
|
+
public func >= (left: NSExpression, right: NSExpression) -> NSPredicate {
|
24
|
+
return NSComparisonPredicate(leftExpression: left, rightExpression: right, modifier: NSComparisonPredicateModifier.DirectPredicateModifier, type: NSPredicateOperatorType.GreaterThanOrEqualToPredicateOperatorType, options: NSComparisonPredicateOptions(0))
|
25
|
+
}
|
26
|
+
|
27
|
+
public func < (left: NSExpression, right: NSExpression) -> NSPredicate {
|
28
|
+
return NSComparisonPredicate(leftExpression: left, rightExpression: right, modifier: NSComparisonPredicateModifier.DirectPredicateModifier, type: NSPredicateOperatorType.LessThanPredicateOperatorType, options: NSComparisonPredicateOptions(0))
|
29
|
+
}
|
30
|
+
|
31
|
+
public func <= (left: NSExpression, right: NSExpression) -> NSPredicate {
|
32
|
+
return NSComparisonPredicate(leftExpression: left, rightExpression: right, modifier: NSComparisonPredicateModifier.DirectPredicateModifier, type: NSPredicateOperatorType.LessThanOrEqualToPredicateOperatorType, options: NSComparisonPredicateOptions(0))
|
33
|
+
}
|
34
|
+
|
35
|
+
public func ~= (left: NSExpression, right: NSExpression) -> NSPredicate {
|
36
|
+
return NSComparisonPredicate(leftExpression: left, rightExpression: right, modifier: NSComparisonPredicateModifier.DirectPredicateModifier, type: NSPredicateOperatorType.LikePredicateOperatorType, options: NSComparisonPredicateOptions(0))
|
37
|
+
}
|
38
|
+
|
39
|
+
public func << (left: NSExpression, right: NSExpression) -> NSPredicate {
|
40
|
+
return NSComparisonPredicate(leftExpression: left, rightExpression: right, modifier: NSComparisonPredicateModifier.DirectPredicateModifier, type: NSPredicateOperatorType.InPredicateOperatorType, options: NSComparisonPredicateOptions(0))
|
41
|
+
}
|
@@ -0,0 +1,210 @@
|
|
1
|
+
//
|
2
|
+
// QKAttribute.h
|
3
|
+
// QueryKit
|
4
|
+
//
|
5
|
+
// Created by Kyle Fuller on 30/04/2013.
|
6
|
+
//
|
7
|
+
//
|
8
|
+
|
9
|
+
#import <Foundation/Foundation.h>
|
10
|
+
|
11
|
+
/** A helper class to generate predicates and sort descriptors for attributes
|
12
|
+
on a managed object.
|
13
|
+
*/
|
14
|
+
@interface QKAttribute : NSObject <NSSecureCoding, NSCopying>
|
15
|
+
|
16
|
+
@property (nonatomic, strong, readonly) NSString *name;
|
17
|
+
|
18
|
+
/// Initialized the attribute from multiple other attributes
|
19
|
+
- (instancetype)initWithAttributes:(QKAttribute *)attribute, ... NS_REQUIRES_NIL_TERMINATION;
|
20
|
+
|
21
|
+
/// Initialized the attribute with the given name
|
22
|
+
- (instancetype)initWithName:(NSString *)name __attribute((nonnull));
|
23
|
+
|
24
|
+
/** Returns a Boolean value that indicates whether a given attribute is equal to the receiver
|
25
|
+
@param attribute The attribute to compare against the receiver
|
26
|
+
@return YES if attribute is equivalent to the receiver
|
27
|
+
*/
|
28
|
+
- (BOOL)isEqualToAttribute:(QKAttribute *)attribute;
|
29
|
+
|
30
|
+
/** Returns an expression for the attributes key-value path */
|
31
|
+
- (NSExpression *)expression;
|
32
|
+
|
33
|
+
@end
|
34
|
+
|
35
|
+
@interface QKAttribute (Predicate)
|
36
|
+
|
37
|
+
/** Returns a predicate for an equality comparison against the supplied value
|
38
|
+
@param value To compare against the attribute
|
39
|
+
@param options NSComparisonPredicateOptions to apply to the comparison
|
40
|
+
@return The predicate for this comparison
|
41
|
+
@see equal:
|
42
|
+
*/
|
43
|
+
- (NSPredicate *)equal:(id)value options:(NSComparisonPredicateOptions)options;
|
44
|
+
|
45
|
+
/** Returns a predicate for an equality comparison against the supplied value
|
46
|
+
@param value To compare against the attribute
|
47
|
+
@return The predicate for this comparison
|
48
|
+
@see equal:options:
|
49
|
+
*/
|
50
|
+
- (NSPredicate *)equal:(id)value;
|
51
|
+
|
52
|
+
/** Returns a predicate for an unequal comparison against the supplied value
|
53
|
+
@param value To compare against the attribute
|
54
|
+
@param options NSComparisonPredicateOptions to apply to the comparison
|
55
|
+
@return The predicate for this comparison
|
56
|
+
@see notEqual:
|
57
|
+
*/
|
58
|
+
- (NSPredicate *)notEqual:(id)value options:(NSComparisonPredicateOptions)options;
|
59
|
+
|
60
|
+
/** Returns a predicate for an unequal comparison against the supplied value
|
61
|
+
@param value To compare against the attribute
|
62
|
+
@return The predicate for this comparison
|
63
|
+
@see notEqual:options:
|
64
|
+
*/
|
65
|
+
- (NSPredicate *)notEqual:(id)value;
|
66
|
+
|
67
|
+
/** Returns a predicate for a like comparison against the supplied value
|
68
|
+
@param value To compare against the attribute
|
69
|
+
@param options NSComparisonPredicateOptions to apply to the comparison
|
70
|
+
@return The predicate for this comparison
|
71
|
+
@see like:
|
72
|
+
*/
|
73
|
+
- (NSPredicate *)like:(id)value options:(NSComparisonPredicateOptions)options;
|
74
|
+
|
75
|
+
/** Returns a predicate for a like comparison against the supplied value
|
76
|
+
@param value To compare against the attribute
|
77
|
+
@return The predicate for this comparison
|
78
|
+
@see like:options:
|
79
|
+
*/
|
80
|
+
- (NSPredicate *)like:(id)value;
|
81
|
+
|
82
|
+
/** Returns a predicate for a matches comparison against the supplied value
|
83
|
+
@param value To compare against the attribute
|
84
|
+
@param options NSComparisonPredicateOptions to apply to the comparison
|
85
|
+
@return The predicate for this comparison
|
86
|
+
@see like:
|
87
|
+
*/
|
88
|
+
- (NSPredicate *)matches:(id)value options:(NSComparisonPredicateOptions)options;
|
89
|
+
|
90
|
+
/** Returns a predicate for a matches comparison against the supplied value
|
91
|
+
@param value To compare against the attribute
|
92
|
+
@return The predicate for this comparison
|
93
|
+
@see like:options:
|
94
|
+
*/
|
95
|
+
- (NSPredicate *)matches:(id)value;
|
96
|
+
|
97
|
+
/** Returns a predicate for a begins with comparison against the supplied value
|
98
|
+
@param value To compare against the attribute
|
99
|
+
@param options NSComparisonPredicateOptions to apply to the comparison
|
100
|
+
@return The predicate for this comparison
|
101
|
+
@see like:
|
102
|
+
*/
|
103
|
+
- (NSPredicate *)beginsWith:(id)value options:(NSComparisonPredicateOptions)options;
|
104
|
+
|
105
|
+
/** Returns a predicate for a begins with comparison against the supplied value
|
106
|
+
@param value To compare against the attribute
|
107
|
+
@return The predicate for this comparison
|
108
|
+
@see like:options:
|
109
|
+
*/
|
110
|
+
- (NSPredicate *)beginsWith:(id)value;
|
111
|
+
|
112
|
+
/** Returns a predicate for a ends with comparison against the supplied value
|
113
|
+
@param value To compare against the attribute
|
114
|
+
@param options NSComparisonPredicateOptions to apply to the comparison
|
115
|
+
@return The predicate for this comparison
|
116
|
+
@see like:
|
117
|
+
*/
|
118
|
+
- (NSPredicate *)endsWith:(id)value options:(NSComparisonPredicateOptions)options;
|
119
|
+
|
120
|
+
/** Returns a predicate for a ends with comparison against the supplied value
|
121
|
+
@param value To compare against the attribute
|
122
|
+
@return The predicate for this comparison
|
123
|
+
@see like:options:
|
124
|
+
*/
|
125
|
+
- (NSPredicate *)endsWith:(id)value;
|
126
|
+
|
127
|
+
/** Returns a predicate for greater than the supplied value
|
128
|
+
@param value To compare against the attribute
|
129
|
+
@return The predicate for this comparison
|
130
|
+
@see greaterThanOrEqualTo:
|
131
|
+
*/
|
132
|
+
- (NSPredicate *)greaterThan:(id)value;
|
133
|
+
|
134
|
+
/** Returns a predicate for greater than or equal to the supplied value
|
135
|
+
@param value To compare against the attribute
|
136
|
+
@return The predicate for this comparison
|
137
|
+
@see greaterThan:
|
138
|
+
*/
|
139
|
+
- (NSPredicate *)greaterThanOrEqualTo:(id)value;
|
140
|
+
|
141
|
+
/** Returns a predicate for less than the supplied value
|
142
|
+
@param value To compare against the attribute
|
143
|
+
@return The predicate for this comparison
|
144
|
+
@see lessThanOrEqualTo:
|
145
|
+
*/
|
146
|
+
- (NSPredicate *)lessThan:(id)value;
|
147
|
+
|
148
|
+
/** Returns a predicate for less than or equal to the supplied value
|
149
|
+
@param value To compare against the attribute
|
150
|
+
@return The predicate for this comparison
|
151
|
+
@see lessThan:
|
152
|
+
*/
|
153
|
+
- (NSPredicate *)lessThanOrEqualTo:(id)value;
|
154
|
+
|
155
|
+
/** Returns a predicate for attribute being between two values
|
156
|
+
@param minimumValue
|
157
|
+
@param maximumValue
|
158
|
+
@return The predicate for this comparison
|
159
|
+
*/
|
160
|
+
- (NSPredicate *)between:(id)minimumValue and:(id)maxiumValue;
|
161
|
+
|
162
|
+
/** Returns an IN predicate for attribute
|
163
|
+
@param set An enumerable object containing a set ob objects
|
164
|
+
@return The predicate for this comparison
|
165
|
+
*/
|
166
|
+
- (NSPredicate *)in:(id<NSFastEnumeration>)set;
|
167
|
+
|
168
|
+
/** Returns a predicate for a contains with comparison against the supplied value
|
169
|
+
@param value To compare against the attribute
|
170
|
+
@param options NSComparisonPredicateOptions to apply to the comparison
|
171
|
+
@return The predicate for this comparison
|
172
|
+
@see contains:
|
173
|
+
*/
|
174
|
+
- (NSPredicate *)contains:(id)value options:(NSComparisonPredicateOptions)options;
|
175
|
+
|
176
|
+
/** Returns a predicate for a contains with comparison against the supplied value
|
177
|
+
@param value To compare against the attribute
|
178
|
+
@return The predicate for this comparison
|
179
|
+
@see contains:options:
|
180
|
+
*/
|
181
|
+
- (NSPredicate *)contains:(id)value;
|
182
|
+
|
183
|
+
/** Returns a predicate for if the attribute being equal to nil
|
184
|
+
@return The predicate for the attribute being nil.
|
185
|
+
*/
|
186
|
+
- (NSPredicate *)isNil;
|
187
|
+
|
188
|
+
/** Returns a predicate for if the attribute being equal to YES
|
189
|
+
@return The predicate for the attribute being YES.
|
190
|
+
@see isNO
|
191
|
+
*/
|
192
|
+
- (NSPredicate *)isYes;
|
193
|
+
|
194
|
+
/** Returns a predicate for if the attribute being equal to NO
|
195
|
+
@return The predicate for the attribute being NO.
|
196
|
+
@see isYes
|
197
|
+
*/
|
198
|
+
- (NSPredicate *)isNo;
|
199
|
+
|
200
|
+
@end
|
201
|
+
|
202
|
+
@interface QKAttribute (Sorting)
|
203
|
+
|
204
|
+
/** Returns an ascending sort descriptor for this attribute */
|
205
|
+
- (NSSortDescriptor *)ascending;
|
206
|
+
|
207
|
+
/** Returns a descending sort descriptor for this attribute */
|
208
|
+
- (NSSortDescriptor *)descending;
|
209
|
+
|
210
|
+
@end
|
@@ -0,0 +1,315 @@
|
|
1
|
+
//
|
2
|
+
// QKAttribute.m
|
3
|
+
// QueryKit
|
4
|
+
//
|
5
|
+
// Created by Kyle Fuller on 30/04/2013.
|
6
|
+
//
|
7
|
+
//
|
8
|
+
|
9
|
+
#import "QKAttribute.h"
|
10
|
+
|
11
|
+
@implementation QKAttribute
|
12
|
+
|
13
|
+
#pragma mark - NSCoding
|
14
|
+
|
15
|
+
+ (BOOL)supportsSecureCoding {
|
16
|
+
return YES;
|
17
|
+
}
|
18
|
+
|
19
|
+
- (void)encodeWithCoder:(NSCoder *)encoder {
|
20
|
+
[encoder encodeObject:self.name forKey:@"name"];
|
21
|
+
}
|
22
|
+
|
23
|
+
- (instancetype)initWithCoder:(NSCoder *)decoder {
|
24
|
+
NSString *name = [decoder decodeObjectOfClass:[NSString class] forKey:@"name"];
|
25
|
+
return [self initWithName:name];
|
26
|
+
}
|
27
|
+
|
28
|
+
#pragma mark - NSCopying
|
29
|
+
|
30
|
+
- (instancetype)copyWithZone:(NSZone *)zone {
|
31
|
+
NSString *name = [self.name copyWithZone:zone];
|
32
|
+
return [[[self class] alloc] initWithName:name];
|
33
|
+
}
|
34
|
+
|
35
|
+
#pragma mark -
|
36
|
+
|
37
|
+
- (instancetype)initWithAttributes:(QKAttribute *)attribute, ... {
|
38
|
+
NSParameterAssert(attribute != nil);
|
39
|
+
|
40
|
+
NSMutableArray *attributes = [NSMutableArray arrayWithObject:attribute.name];
|
41
|
+
|
42
|
+
va_list attributeList;
|
43
|
+
va_start(attributeList, attribute);
|
44
|
+
while ((attribute = va_arg(attributeList, id))) {
|
45
|
+
[attributes addObject:attribute.name];
|
46
|
+
}
|
47
|
+
va_end(attributeList);
|
48
|
+
|
49
|
+
NSString *name = [attributes componentsJoinedByString:@"."];
|
50
|
+
|
51
|
+
if (self = [super init]) {
|
52
|
+
_name = name;
|
53
|
+
}
|
54
|
+
|
55
|
+
return self;
|
56
|
+
}
|
57
|
+
|
58
|
+
- (instancetype)initWithName:(NSString *)name {
|
59
|
+
if (self = [super init]) {
|
60
|
+
_name = name;
|
61
|
+
}
|
62
|
+
|
63
|
+
return self;
|
64
|
+
}
|
65
|
+
|
66
|
+
- (NSExpression *)expression {
|
67
|
+
return [NSExpression expressionForKeyPath:self.name];
|
68
|
+
}
|
69
|
+
|
70
|
+
#pragma mark - Equality
|
71
|
+
|
72
|
+
- (NSUInteger)hash {
|
73
|
+
return [self.name hash];
|
74
|
+
}
|
75
|
+
|
76
|
+
- (BOOL)isEqualToAttribute:(QKAttribute *)attribute {
|
77
|
+
return [self.name isEqualToString:attribute.name];
|
78
|
+
}
|
79
|
+
|
80
|
+
- (BOOL)isEqual:(id)object {
|
81
|
+
return object == self || ([object isKindOfClass:[QKAttribute class]] && [self isEqualToAttribute:object]);
|
82
|
+
}
|
83
|
+
|
84
|
+
#pragma mark -
|
85
|
+
|
86
|
+
// The following methods are implemented so that `[NSPredicate predicateWithFormat:@"%K", attribute]` will work
|
87
|
+
|
88
|
+
- (NSString *)description {
|
89
|
+
return self.name;
|
90
|
+
}
|
91
|
+
|
92
|
+
- (NSRange)rangeOfString:(NSString *)aString {
|
93
|
+
return [self.name rangeOfString:aString];
|
94
|
+
}
|
95
|
+
|
96
|
+
- (NSArray *)componentsSeparatedByString:(NSString *)separator {
|
97
|
+
return [self.name componentsSeparatedByString:separator];
|
98
|
+
}
|
99
|
+
|
100
|
+
- (NSUInteger)length {
|
101
|
+
return [self.name length];
|
102
|
+
}
|
103
|
+
|
104
|
+
#pragma mark - Comparison
|
105
|
+
|
106
|
+
- (NSPredicate *)predicateWithRightExpression:(NSExpression *)expression
|
107
|
+
modifier:(NSComparisonPredicateModifier)modifier
|
108
|
+
type:(NSPredicateOperatorType)type
|
109
|
+
options:(NSComparisonPredicateOptions)options
|
110
|
+
{
|
111
|
+
NSExpression *leftExpression = [self expression];
|
112
|
+
|
113
|
+
return [NSComparisonPredicate predicateWithLeftExpression:leftExpression
|
114
|
+
rightExpression:expression
|
115
|
+
modifier:modifier
|
116
|
+
type:type
|
117
|
+
options:options];
|
118
|
+
}
|
119
|
+
|
120
|
+
@end
|
121
|
+
|
122
|
+
@implementation QKAttribute (Predicate)
|
123
|
+
|
124
|
+
- (NSPredicate *)equal:(id)value options:(NSComparisonPredicateOptions)options {
|
125
|
+
NSExpression *expression = [NSExpression expressionForConstantValue:value];
|
126
|
+
|
127
|
+
return [self predicateWithRightExpression:expression
|
128
|
+
modifier:NSDirectPredicateModifier
|
129
|
+
type:NSEqualToPredicateOperatorType
|
130
|
+
options:options];
|
131
|
+
}
|
132
|
+
|
133
|
+
- (NSPredicate *)equal:(id)value {
|
134
|
+
return [self equal:value options:0];
|
135
|
+
}
|
136
|
+
|
137
|
+
- (NSPredicate *)notEqual:(id)value options:(NSComparisonPredicateOptions)options {
|
138
|
+
NSExpression *expression = [NSExpression expressionForConstantValue:value];
|
139
|
+
|
140
|
+
return [self predicateWithRightExpression:expression
|
141
|
+
modifier:NSDirectPredicateModifier
|
142
|
+
type:NSNotEqualToPredicateOperatorType
|
143
|
+
options:options];
|
144
|
+
}
|
145
|
+
|
146
|
+
- (NSPredicate *)notEqual:(id)value {
|
147
|
+
return [self notEqual:value options:0];
|
148
|
+
}
|
149
|
+
|
150
|
+
- (NSPredicate *)beginsWith:(id)value options:(NSComparisonPredicateOptions)options {
|
151
|
+
NSExpression *expression = [NSExpression expressionForConstantValue:value];
|
152
|
+
|
153
|
+
return [self predicateWithRightExpression:expression
|
154
|
+
modifier:NSDirectPredicateModifier
|
155
|
+
type:NSBeginsWithPredicateOperatorType
|
156
|
+
options:options];
|
157
|
+
}
|
158
|
+
|
159
|
+
- (NSPredicate *)beginsWith:(id)value {
|
160
|
+
return [self beginsWith:value options:0];
|
161
|
+
}
|
162
|
+
|
163
|
+
- (NSPredicate *)endsWith:(id)value options:(NSComparisonPredicateOptions)options {
|
164
|
+
NSExpression *expression = [NSExpression expressionForConstantValue:value];
|
165
|
+
|
166
|
+
return [self predicateWithRightExpression:expression
|
167
|
+
modifier:NSDirectPredicateModifier
|
168
|
+
type:NSEndsWithPredicateOperatorType
|
169
|
+
options:options];
|
170
|
+
}
|
171
|
+
|
172
|
+
- (NSPredicate *)endsWith:(id)value {
|
173
|
+
return [self endsWith:value options:0];
|
174
|
+
}
|
175
|
+
|
176
|
+
- (NSPredicate *)like:(id)value options:(NSComparisonPredicateOptions)options {
|
177
|
+
NSExpression *expression = [NSExpression expressionForConstantValue:value];
|
178
|
+
|
179
|
+
return [self predicateWithRightExpression:expression
|
180
|
+
modifier:NSDirectPredicateModifier
|
181
|
+
type:NSLikePredicateOperatorType
|
182
|
+
options:options];
|
183
|
+
}
|
184
|
+
|
185
|
+
- (NSPredicate *)like:(id)value {
|
186
|
+
return [self like:value options:0];
|
187
|
+
}
|
188
|
+
|
189
|
+
- (NSPredicate *)matches:(id)value options:(NSComparisonPredicateOptions)options {
|
190
|
+
NSExpression *expression = [NSExpression expressionForConstantValue:value];
|
191
|
+
|
192
|
+
return [self predicateWithRightExpression:expression
|
193
|
+
modifier:NSDirectPredicateModifier
|
194
|
+
type:NSMatchesPredicateOperatorType
|
195
|
+
options:options];
|
196
|
+
}
|
197
|
+
|
198
|
+
- (NSPredicate *)matches:(id)value {
|
199
|
+
return [self matches:value options:0];
|
200
|
+
}
|
201
|
+
|
202
|
+
- (NSPredicate *)greaterThan:(id)value {
|
203
|
+
NSExpression *expression = [NSExpression expressionForConstantValue:value];
|
204
|
+
|
205
|
+
return [self predicateWithRightExpression:expression
|
206
|
+
modifier:NSDirectPredicateModifier
|
207
|
+
type:NSGreaterThanPredicateOperatorType
|
208
|
+
options:0];
|
209
|
+
}
|
210
|
+
|
211
|
+
- (NSPredicate *)greaterThanOrEqualTo:(id)value {
|
212
|
+
NSExpression *expression = [NSExpression expressionForConstantValue:value];
|
213
|
+
|
214
|
+
return [self predicateWithRightExpression:expression
|
215
|
+
modifier:NSDirectPredicateModifier
|
216
|
+
type:NSGreaterThanOrEqualToPredicateOperatorType
|
217
|
+
options:0];
|
218
|
+
}
|
219
|
+
|
220
|
+
- (NSPredicate *)lessThan:(id)value {
|
221
|
+
NSExpression *expression = [NSExpression expressionForConstantValue:value];
|
222
|
+
|
223
|
+
return [self predicateWithRightExpression:expression
|
224
|
+
modifier:NSDirectPredicateModifier
|
225
|
+
type:NSLessThanPredicateOperatorType
|
226
|
+
options:0];
|
227
|
+
}
|
228
|
+
|
229
|
+
- (NSPredicate *)lessThanOrEqualTo:(id)value {
|
230
|
+
NSExpression *expression = [NSExpression expressionForConstantValue:value];
|
231
|
+
|
232
|
+
return [self predicateWithRightExpression:expression
|
233
|
+
modifier:NSDirectPredicateModifier
|
234
|
+
type:NSLessThanOrEqualToPredicateOperatorType
|
235
|
+
options:0];
|
236
|
+
}
|
237
|
+
|
238
|
+
- (NSPredicate *)isNil {
|
239
|
+
NSExpression *expression = [NSExpression expressionForConstantValue:nil];
|
240
|
+
|
241
|
+
return [self predicateWithRightExpression:expression
|
242
|
+
modifier:NSDirectPredicateModifier
|
243
|
+
type:NSEqualToPredicateOperatorType
|
244
|
+
options:0];
|
245
|
+
}
|
246
|
+
|
247
|
+
- (NSPredicate *)between:(id)minimumValue and:(id)maxiumValue {
|
248
|
+
NSParameterAssert(minimumValue != nil);
|
249
|
+
NSParameterAssert(maxiumValue != nil);
|
250
|
+
|
251
|
+
NSExpression *expression = [NSExpression expressionForConstantValue:@[minimumValue, maxiumValue]];
|
252
|
+
|
253
|
+
return [self predicateWithRightExpression:expression
|
254
|
+
modifier:NSDirectPredicateModifier
|
255
|
+
type:NSBetweenPredicateOperatorType
|
256
|
+
options:0];
|
257
|
+
}
|
258
|
+
|
259
|
+
- (NSPredicate *)in:(id<NSFastEnumeration>)set {
|
260
|
+
NSParameterAssert(set != nil);
|
261
|
+
|
262
|
+
NSExpression *expression = [NSExpression expressionForConstantValue:set];
|
263
|
+
|
264
|
+
return [self predicateWithRightExpression:expression
|
265
|
+
modifier:NSDirectPredicateModifier
|
266
|
+
type:NSInPredicateOperatorType
|
267
|
+
options:0];
|
268
|
+
}
|
269
|
+
|
270
|
+
- (NSPredicate *)contains:(id)value options:(NSComparisonPredicateOptions)options {
|
271
|
+
NSParameterAssert(value != nil);
|
272
|
+
|
273
|
+
NSExpression *expression = [NSExpression expressionForConstantValue:value];
|
274
|
+
|
275
|
+
return [self predicateWithRightExpression:expression
|
276
|
+
modifier:NSDirectPredicateModifier
|
277
|
+
type:NSContainsPredicateOperatorType
|
278
|
+
options:options];
|
279
|
+
}
|
280
|
+
|
281
|
+
- (NSPredicate *)contains:(id)value {
|
282
|
+
return [self contains:value options:0];
|
283
|
+
}
|
284
|
+
|
285
|
+
- (NSPredicate *)isYes {
|
286
|
+
NSExpression *expression = [NSExpression expressionForConstantValue:@YES];
|
287
|
+
|
288
|
+
return [self predicateWithRightExpression:expression
|
289
|
+
modifier:NSDirectPredicateModifier
|
290
|
+
type:NSEqualToPredicateOperatorType
|
291
|
+
options:0];
|
292
|
+
}
|
293
|
+
|
294
|
+
- (NSPredicate *)isNo {
|
295
|
+
NSExpression *expression = [NSExpression expressionForConstantValue:@NO];
|
296
|
+
|
297
|
+
return [self predicateWithRightExpression:expression
|
298
|
+
modifier:NSDirectPredicateModifier
|
299
|
+
type:NSEqualToPredicateOperatorType
|
300
|
+
options:0];
|
301
|
+
}
|
302
|
+
|
303
|
+
@end
|
304
|
+
|
305
|
+
@implementation QKAttribute (Sorting)
|
306
|
+
|
307
|
+
- (NSSortDescriptor *)ascending {
|
308
|
+
return [[NSSortDescriptor alloc] initWithKey:self.name ascending:YES];
|
309
|
+
}
|
310
|
+
|
311
|
+
- (NSSortDescriptor *)descending {
|
312
|
+
return [[NSSortDescriptor alloc] initWithKey:self.name ascending:NO];
|
313
|
+
}
|
314
|
+
|
315
|
+
@end
|