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.
Files changed (314) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +16 -19
  3. data/cocoapods_deintegrate.gemspec +1 -1
  4. data/lib/cocoapods_deintegrate.rb +1 -1
  5. data/lib/pod/command/deintegrate.rb +27 -15
  6. data/spec/command/deintegrate_spec.rb +47 -1
  7. data/spec/fixtures/Project/Frameworks/Podfile +12 -0
  8. data/spec/fixtures/Project/Frameworks/Podfile.lock +42 -0
  9. data/spec/fixtures/Project/Frameworks/Pods/Headers/Private/QueryKit/QKAttribute.h +210 -0
  10. data/spec/fixtures/Project/Frameworks/Pods/Headers/Private/QueryKit/QKQuerySet.h +155 -0
  11. data/spec/fixtures/Project/Frameworks/Pods/Headers/Private/QueryKit/QueryKit.h +19 -0
  12. data/spec/fixtures/Project/Frameworks/Pods/Headers/Private/Quick/NSString+QCKSelectorName.h +17 -0
  13. data/spec/fixtures/Project/Frameworks/Pods/Headers/Private/Quick/QCKDSL.h +211 -0
  14. data/spec/fixtures/Project/Frameworks/Pods/Headers/Private/Quick/Quick.h +13 -0
  15. data/spec/fixtures/Project/Frameworks/Pods/Headers/Private/Quick/QuickConfiguration.h +30 -0
  16. data/spec/fixtures/Project/Frameworks/Pods/Headers/Private/Quick/QuickSpec.h +48 -0
  17. data/spec/fixtures/Project/Frameworks/Pods/Headers/Public/QueryKit/QKAttribute.h +210 -0
  18. data/spec/fixtures/Project/Frameworks/Pods/Headers/Public/QueryKit/QKQuerySet.h +155 -0
  19. data/spec/fixtures/Project/Frameworks/Pods/Headers/Public/QueryKit/QueryKit.h +19 -0
  20. data/spec/fixtures/Project/Frameworks/Pods/Headers/Public/Quick/NSString+QCKSelectorName.h +17 -0
  21. data/spec/fixtures/Project/Frameworks/Pods/Headers/Public/Quick/QCKDSL.h +211 -0
  22. data/spec/fixtures/Project/Frameworks/Pods/Headers/Public/Quick/Quick.h +13 -0
  23. data/spec/fixtures/Project/Frameworks/Pods/Headers/Public/Quick/QuickConfiguration.h +30 -0
  24. data/spec/fixtures/Project/Frameworks/Pods/Headers/Public/Quick/QuickSpec.h +48 -0
  25. data/spec/fixtures/Project/Frameworks/Pods/Manifest.lock +42 -0
  26. data/spec/fixtures/Project/Frameworks/Pods/Pods.xcodeproj/project.pbxproj +995 -0
  27. data/spec/fixtures/Project/Frameworks/Pods/QueryKit/LICENSE +23 -0
  28. data/spec/fixtures/Project/Frameworks/Pods/QueryKit/QueryKit/Attribute.swift +124 -0
  29. data/spec/fixtures/Project/Frameworks/Pods/QueryKit/QueryKit/Expression.swift +41 -0
  30. data/spec/fixtures/Project/Frameworks/Pods/QueryKit/QueryKit/ObjectiveC/QKAttribute.h +210 -0
  31. data/spec/fixtures/Project/Frameworks/Pods/QueryKit/QueryKit/ObjectiveC/QKAttribute.m +315 -0
  32. data/spec/fixtures/Project/Frameworks/Pods/QueryKit/QueryKit/ObjectiveC/QKAttribute.swift +13 -0
  33. data/spec/fixtures/Project/Frameworks/Pods/QueryKit/QueryKit/ObjectiveC/QKQuerySet.h +155 -0
  34. data/spec/fixtures/Project/Frameworks/Pods/QueryKit/QueryKit/ObjectiveC/QKQuerySet.m +314 -0
  35. data/spec/fixtures/Project/Frameworks/Pods/QueryKit/QueryKit/ObjectiveC/QKQuerySet.swift +28 -0
  36. data/spec/fixtures/Project/Frameworks/Pods/QueryKit/QueryKit/Predicate.swift +21 -0
  37. data/spec/fixtures/Project/Frameworks/Pods/QueryKit/QueryKit/QueryKit.h +19 -0
  38. data/spec/fixtures/Project/Frameworks/Pods/QueryKit/QueryKit/QuerySet.swift +237 -0
  39. data/spec/fixtures/Project/Frameworks/Pods/QueryKit/README.md +151 -0
  40. data/spec/fixtures/Project/Frameworks/Pods/Quick/LICENSE +201 -0
  41. data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/Callsite.swift +28 -0
  42. data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/Configuration/Configuration.swift +147 -0
  43. data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/Configuration/QuickConfiguration.h +30 -0
  44. data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/Configuration/QuickConfiguration.m +83 -0
  45. data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/DSL/DSL.swift +227 -0
  46. data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/DSL/QCKDSL.h +211 -0
  47. data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/DSL/QCKDSL.m +70 -0
  48. data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/DSL/World+DSL.swift +100 -0
  49. data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/Example.swift +103 -0
  50. data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/ExampleGroup.swift +97 -0
  51. data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/ExampleMetadata.swift +22 -0
  52. data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/Failure.swift +16 -0
  53. data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/Filter.swift +29 -0
  54. data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/Hooks/Closures.swift +35 -0
  55. data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/Hooks/ExampleHooks.swift +36 -0
  56. data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/Hooks/SuiteHooks.swift +34 -0
  57. data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/NSString+QCKSelectorName.h +17 -0
  58. data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/NSString+QCKSelectorName.m +33 -0
  59. data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/Quick.h +13 -0
  60. data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/QuickSpec.h +48 -0
  61. data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/QuickSpec.m +142 -0
  62. data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/World.swift +197 -0
  63. data/spec/fixtures/Project/Frameworks/Pods/Quick/README.md +979 -0
  64. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProject-QueryKit/Info.plist +26 -0
  65. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProject-QueryKit/Pods-TestProject-QueryKit-Private.xcconfig +9 -0
  66. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProject-QueryKit/Pods-TestProject-QueryKit-dummy.m +5 -0
  67. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProject-QueryKit/Pods-TestProject-QueryKit-prefix.pch +5 -0
  68. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProject-QueryKit/Pods-TestProject-QueryKit-umbrella.h +9 -0
  69. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProject-QueryKit/Pods-TestProject-QueryKit.modulemap +6 -0
  70. 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
  71. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProject/Info.plist +26 -0
  72. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProject/Pods-TestProject-acknowledgements.markdown +30 -0
  73. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProject/Pods-TestProject-acknowledgements.plist +60 -0
  74. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProject/Pods-TestProject-dummy.m +5 -0
  75. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProject/Pods-TestProject-environment.h +74 -0
  76. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProject/Pods-TestProject-frameworks.sh +55 -0
  77. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProject/Pods-TestProject-resources.sh +74 -0
  78. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProject/Pods-TestProject-umbrella.h +6 -0
  79. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProject/Pods-TestProject.debug.xcconfig +9 -0
  80. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProject/Pods-TestProject.modulemap +6 -0
  81. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProject/Pods-TestProject.release.xcconfig +9 -0
  82. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProjectTests-Quick/Info.plist +26 -0
  83. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProjectTests-Quick/Pods-TestProjectTests-Quick-Private.xcconfig +9 -0
  84. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProjectTests-Quick/Pods-TestProjectTests-Quick-dummy.m +5 -0
  85. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProjectTests-Quick/Pods-TestProjectTests-Quick-prefix.pch +5 -0
  86. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProjectTests-Quick/Pods-TestProjectTests-Quick-umbrella.h +11 -0
  87. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProjectTests-Quick/Pods-TestProjectTests-Quick.modulemap +6 -0
  88. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProjectTests-Quick/Pods-TestProjectTests-Quick.xcconfig +2 -0
  89. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProjectTests/Info.plist +26 -0
  90. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProjectTests/Pods-TestProjectTests-acknowledgements.markdown +208 -0
  91. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProjectTests/Pods-TestProjectTests-acknowledgements.plist +238 -0
  92. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProjectTests/Pods-TestProjectTests-dummy.m +5 -0
  93. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProjectTests/Pods-TestProjectTests-environment.h +14 -0
  94. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProjectTests/Pods-TestProjectTests-frameworks.sh +55 -0
  95. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProjectTests/Pods-TestProjectTests-resources.sh +74 -0
  96. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProjectTests/Pods-TestProjectTests-umbrella.h +6 -0
  97. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProjectTests/Pods-TestProjectTests.debug.xcconfig +9 -0
  98. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProjectTests/Pods-TestProjectTests.modulemap +6 -0
  99. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProjectTests/Pods-TestProjectTests.release.xcconfig +9 -0
  100. data/spec/fixtures/Project/Frameworks/TestProject.xcodeproj/project.pbxproj +557 -0
  101. data/spec/fixtures/Project/Frameworks/TestProject.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  102. data/spec/fixtures/Project/Frameworks/TestProject.xcworkspace/contents.xcworkspacedata +10 -0
  103. data/spec/fixtures/Project/Frameworks/TestProject/AppDelegate.swift +46 -0
  104. data/spec/fixtures/Project/Frameworks/TestProject/Base.lproj/LaunchScreen.xib +41 -0
  105. data/spec/fixtures/Project/Frameworks/TestProject/Base.lproj/Main.storyboard +25 -0
  106. data/spec/fixtures/Project/Frameworks/TestProject/Images.xcassets/AppIcon.appiconset/Contents.json +38 -0
  107. data/spec/fixtures/Project/Frameworks/TestProject/Info.plist +40 -0
  108. data/spec/fixtures/Project/Frameworks/TestProject/ViewController.swift +25 -0
  109. data/spec/fixtures/Project/Frameworks/TestProjectTests/Info.plist +24 -0
  110. data/spec/fixtures/Project/Frameworks/TestProjectTests/TestProjectTests.swift +36 -0
  111. data/spec/fixtures/Project/None/TestProject.xcodeproj/project.pbxproj +420 -0
  112. data/spec/fixtures/Project/None/TestProject.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  113. data/spec/fixtures/Project/None/TestProject/AppDelegate.swift +46 -0
  114. data/spec/fixtures/Project/None/TestProject/Base.lproj/LaunchScreen.xib +41 -0
  115. data/spec/fixtures/Project/None/TestProject/Base.lproj/Main.storyboard +25 -0
  116. data/spec/fixtures/Project/None/TestProject/Images.xcassets/AppIcon.appiconset/Contents.json +38 -0
  117. data/spec/fixtures/Project/None/TestProject/Info.plist +40 -0
  118. data/spec/fixtures/Project/None/TestProject/ViewController.swift +25 -0
  119. data/spec/fixtures/Project/None/TestProjectTests/Info.plist +24 -0
  120. data/spec/fixtures/Project/None/TestProjectTests/TestProjectTests.swift +36 -0
  121. data/spec/fixtures/Project/StaticLibraries/Podfile +12 -0
  122. data/spec/fixtures/Project/StaticLibraries/Podfile.lock +13 -0
  123. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/LICENSE +19 -0
  124. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/README.md +308 -0
  125. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/EXPBackwardCompatibility.h +42 -0
  126. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/EXPBackwardCompatibility.m +17 -0
  127. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/EXPBlockDefinedMatcher.h +25 -0
  128. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/EXPBlockDefinedMatcher.m +60 -0
  129. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/EXPDefines.h +17 -0
  130. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/EXPDoubleTuple.h +13 -0
  131. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/EXPDoubleTuple.m +42 -0
  132. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/EXPExpect.h +45 -0
  133. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/EXPExpect.m +214 -0
  134. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/EXPFloatTuple.h +13 -0
  135. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/EXPFloatTuple.m +42 -0
  136. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/EXPMatcher.h +20 -0
  137. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/EXPUnsupportedObject.h +11 -0
  138. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/EXPUnsupportedObject.m +20 -0
  139. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/Expecta.h +27 -0
  140. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/Expecta.m +15 -0
  141. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/ExpectaSupport.h +64 -0
  142. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/ExpectaSupport.m +187 -0
  143. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/NSObject+Expecta.h +14 -0
  144. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/NSValue+Expecta.h +8 -0
  145. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/NSValue+Expecta.m +21 -0
  146. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatcherHelpers.h +4 -0
  147. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatcherHelpers.m +9 -0
  148. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beCloseTo.h +7 -0
  149. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beCloseTo.m +49 -0
  150. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beFalsy.h +3 -0
  151. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beFalsy.m +24 -0
  152. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beGreaterThan.h +6 -0
  153. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beGreaterThan.m +20 -0
  154. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beGreaterThanOrEqualTo.h +6 -0
  155. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beGreaterThanOrEqualTo.m +20 -0
  156. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beIdenticalTo.h +10 -0
  157. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beIdenticalTo.m +24 -0
  158. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beInTheRangeOf.h +6 -0
  159. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beInTheRangeOf.m +30 -0
  160. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beInstanceOf.h +7 -0
  161. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beInstanceOf.m +27 -0
  162. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beKindOf.h +5 -0
  163. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beKindOf.m +27 -0
  164. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beLessThan.h +6 -0
  165. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beLessThan.m +20 -0
  166. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beLessThanOrEqualTo.h +6 -0
  167. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beLessThanOrEqualTo.m +20 -0
  168. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beNil.h +5 -0
  169. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beNil.m +16 -0
  170. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beSubclassOf.h +5 -0
  171. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beSubclassOf.m +27 -0
  172. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beSupersetOf.h +4 -0
  173. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beSupersetOf.m +57 -0
  174. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beTruthy.h +3 -0
  175. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beTruthy.m +24 -0
  176. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beginWith.h +5 -0
  177. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beginWith.m +49 -0
  178. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+conformTo.h +3 -0
  179. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+conformTo.m +33 -0
  180. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+contain.h +5 -0
  181. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+contain.m +38 -0
  182. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+endWith.h +3 -0
  183. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+endWith.m +49 -0
  184. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+equal.h +5 -0
  185. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+equal.m +24 -0
  186. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+haveCountOf.h +10 -0
  187. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+haveCountOf.m +36 -0
  188. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+notify.h +4 -0
  189. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+notify.m +63 -0
  190. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+raise.h +4 -0
  191. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+raise.m +30 -0
  192. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+raiseWithReason.h +3 -0
  193. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+raiseWithReason.m +35 -0
  194. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+respondTo.h +3 -0
  195. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+respondTo.m +28 -0
  196. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers.h +24 -0
  197. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPBackwardCompatibility.h +42 -0
  198. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPBlockDefinedMatcher.h +25 -0
  199. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPDefines.h +17 -0
  200. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPDoubleTuple.h +13 -0
  201. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPExpect.h +45 -0
  202. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPFloatTuple.h +13 -0
  203. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatcher.h +20 -0
  204. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatcherHelpers.h +4 -0
  205. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+beCloseTo.h +7 -0
  206. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+beFalsy.h +3 -0
  207. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+beGreaterThan.h +6 -0
  208. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+beGreaterThanOrEqualTo.h +6 -0
  209. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+beIdenticalTo.h +10 -0
  210. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+beInTheRangeOf.h +6 -0
  211. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+beInstanceOf.h +7 -0
  212. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+beKindOf.h +5 -0
  213. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+beLessThan.h +6 -0
  214. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+beLessThanOrEqualTo.h +6 -0
  215. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+beNil.h +5 -0
  216. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+beSubclassOf.h +5 -0
  217. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+beSupersetOf.h +4 -0
  218. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+beTruthy.h +3 -0
  219. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+beginWith.h +5 -0
  220. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+conformTo.h +3 -0
  221. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+contain.h +5 -0
  222. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+endWith.h +3 -0
  223. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+equal.h +5 -0
  224. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+haveCountOf.h +10 -0
  225. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+notify.h +4 -0
  226. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+raise.h +4 -0
  227. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+raiseWithReason.h +3 -0
  228. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+respondTo.h +3 -0
  229. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers.h +24 -0
  230. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPUnsupportedObject.h +11 -0
  231. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/Expecta.h +27 -0
  232. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/ExpectaSupport.h +64 -0
  233. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/NSObject+Expecta.h +14 -0
  234. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/NSValue+Expecta.h +8 -0
  235. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/NSAttributedString+CCLFormat/NSAttributedString+CCLFormat.h +21 -0
  236. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPBackwardCompatibility.h +42 -0
  237. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPBlockDefinedMatcher.h +25 -0
  238. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPDefines.h +17 -0
  239. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPDoubleTuple.h +13 -0
  240. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPExpect.h +45 -0
  241. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPFloatTuple.h +13 -0
  242. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatcher.h +20 -0
  243. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatcherHelpers.h +4 -0
  244. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+beCloseTo.h +7 -0
  245. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+beFalsy.h +3 -0
  246. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+beGreaterThan.h +6 -0
  247. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+beGreaterThanOrEqualTo.h +6 -0
  248. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+beIdenticalTo.h +10 -0
  249. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+beInTheRangeOf.h +6 -0
  250. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+beInstanceOf.h +7 -0
  251. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+beKindOf.h +5 -0
  252. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+beLessThan.h +6 -0
  253. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+beLessThanOrEqualTo.h +6 -0
  254. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+beNil.h +5 -0
  255. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+beSubclassOf.h +5 -0
  256. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+beSupersetOf.h +4 -0
  257. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+beTruthy.h +3 -0
  258. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+beginWith.h +5 -0
  259. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+conformTo.h +3 -0
  260. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+contain.h +5 -0
  261. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+endWith.h +3 -0
  262. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+equal.h +5 -0
  263. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+haveCountOf.h +10 -0
  264. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+notify.h +4 -0
  265. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+raise.h +4 -0
  266. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+raiseWithReason.h +3 -0
  267. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+respondTo.h +3 -0
  268. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers.h +24 -0
  269. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPUnsupportedObject.h +11 -0
  270. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/Expecta.h +27 -0
  271. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/ExpectaSupport.h +64 -0
  272. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/NSObject+Expecta.h +14 -0
  273. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/NSValue+Expecta.h +8 -0
  274. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/NSAttributedString+CCLFormat/NSAttributedString+CCLFormat.h +21 -0
  275. data/spec/fixtures/Project/StaticLibraries/Pods/Manifest.lock +13 -0
  276. data/spec/fixtures/Project/StaticLibraries/Pods/NSAttributedString+CCLFormat/LICENSE +23 -0
  277. data/spec/fixtures/Project/StaticLibraries/Pods/NSAttributedString+CCLFormat/NSAttributedString+CCLFormat.h +21 -0
  278. data/spec/fixtures/Project/StaticLibraries/Pods/NSAttributedString+CCLFormat/NSAttributedString+CCLFormat.m +51 -0
  279. data/spec/fixtures/Project/StaticLibraries/Pods/NSAttributedString+CCLFormat/README.md +57 -0
  280. data/spec/fixtures/Project/StaticLibraries/Pods/Pods.xcodeproj/project.pbxproj +943 -0
  281. data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProject-NSAttributedString+CCLFormat/Pods-TestProject-NSAttributedString+CCLFormat-Private.xcconfig +5 -0
  282. data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProject-NSAttributedString+CCLFormat/Pods-TestProject-NSAttributedString+CCLFormat-dummy.m +5 -0
  283. data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProject-NSAttributedString+CCLFormat/Pods-TestProject-NSAttributedString+CCLFormat-prefix.pch +5 -0
  284. 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
  285. data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProject/Pods-TestProject-acknowledgements.markdown +30 -0
  286. data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProject/Pods-TestProject-acknowledgements.plist +60 -0
  287. data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProject/Pods-TestProject-dummy.m +5 -0
  288. data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProject/Pods-TestProject-environment.h +14 -0
  289. data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProject/Pods-TestProject-resources.sh +74 -0
  290. data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProject/Pods-TestProject.debug.xcconfig +6 -0
  291. data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProject/Pods-TestProject.release.xcconfig +6 -0
  292. data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProjectTests-Expecta/Pods-TestProjectTests-Expecta-Private.xcconfig +5 -0
  293. data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProjectTests-Expecta/Pods-TestProjectTests-Expecta-dummy.m +5 -0
  294. data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProjectTests-Expecta/Pods-TestProjectTests-Expecta-prefix.pch +5 -0
  295. data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProjectTests-Expecta/Pods-TestProjectTests-Expecta.xcconfig +1 -0
  296. data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProjectTests/Pods-TestProjectTests-acknowledgements.markdown +26 -0
  297. data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProjectTests/Pods-TestProjectTests-acknowledgements.plist +56 -0
  298. data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProjectTests/Pods-TestProjectTests-dummy.m +5 -0
  299. data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProjectTests/Pods-TestProjectTests-environment.h +14 -0
  300. data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProjectTests/Pods-TestProjectTests-resources.sh +74 -0
  301. data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProjectTests/Pods-TestProjectTests.debug.xcconfig +6 -0
  302. data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProjectTests/Pods-TestProjectTests.release.xcconfig +6 -0
  303. data/spec/fixtures/Project/StaticLibraries/TestProject.xcodeproj/project.pbxproj +525 -0
  304. data/spec/fixtures/Project/StaticLibraries/TestProject.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  305. data/spec/fixtures/Project/StaticLibraries/TestProject.xcworkspace/contents.xcworkspacedata +10 -0
  306. data/spec/fixtures/Project/StaticLibraries/TestProject/AppDelegate.swift +46 -0
  307. data/spec/fixtures/Project/StaticLibraries/TestProject/Base.lproj/LaunchScreen.xib +41 -0
  308. data/spec/fixtures/Project/StaticLibraries/TestProject/Base.lproj/Main.storyboard +25 -0
  309. data/spec/fixtures/Project/StaticLibraries/TestProject/Images.xcassets/AppIcon.appiconset/Contents.json +38 -0
  310. data/spec/fixtures/Project/StaticLibraries/TestProject/Info.plist +40 -0
  311. data/spec/fixtures/Project/StaticLibraries/TestProject/ViewController.swift +25 -0
  312. data/spec/fixtures/Project/StaticLibraries/TestProjectTests/Info.plist +24 -0
  313. data/spec/fixtures/Project/StaticLibraries/TestProjectTests/TestProjectTests.swift +36 -0
  314. 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