cocoapods-deintegrate 0.2.1 → 1.0.0.beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (323) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +1 -1
  3. data/lib/cocoapods/command/deintegrate.rb +51 -0
  4. data/lib/cocoapods/deintegrate/gem_version.rb +3 -0
  5. data/lib/cocoapods/deintegrator.rb +123 -0
  6. data/lib/cocoapods_deintegrate.rb +2 -4
  7. data/lib/cocoapods_plugin.rb +4 -2
  8. metadata +14 -649
  9. data/.gitignore +0 -3
  10. data/Gemfile +0 -11
  11. data/Gemfile.lock +0 -74
  12. data/Rakefile +0 -19
  13. data/cocoapods_deintegrate.gemspec +0 -21
  14. data/lib/pod/command/deintegrate.rb +0 -153
  15. data/spec/command/deintegrate_spec.rb +0 -62
  16. data/spec/fixtures/Project/Frameworks/Podfile +0 -12
  17. data/spec/fixtures/Project/Frameworks/Podfile.lock +0 -42
  18. data/spec/fixtures/Project/Frameworks/Pods/Headers/Private/QueryKit/QKAttribute.h +0 -210
  19. data/spec/fixtures/Project/Frameworks/Pods/Headers/Private/QueryKit/QKQuerySet.h +0 -155
  20. data/spec/fixtures/Project/Frameworks/Pods/Headers/Private/QueryKit/QueryKit.h +0 -19
  21. data/spec/fixtures/Project/Frameworks/Pods/Headers/Private/Quick/NSString+QCKSelectorName.h +0 -17
  22. data/spec/fixtures/Project/Frameworks/Pods/Headers/Private/Quick/QCKDSL.h +0 -211
  23. data/spec/fixtures/Project/Frameworks/Pods/Headers/Private/Quick/Quick.h +0 -13
  24. data/spec/fixtures/Project/Frameworks/Pods/Headers/Private/Quick/QuickConfiguration.h +0 -30
  25. data/spec/fixtures/Project/Frameworks/Pods/Headers/Private/Quick/QuickSpec.h +0 -48
  26. data/spec/fixtures/Project/Frameworks/Pods/Headers/Public/QueryKit/QKAttribute.h +0 -210
  27. data/spec/fixtures/Project/Frameworks/Pods/Headers/Public/QueryKit/QKQuerySet.h +0 -155
  28. data/spec/fixtures/Project/Frameworks/Pods/Headers/Public/QueryKit/QueryKit.h +0 -19
  29. data/spec/fixtures/Project/Frameworks/Pods/Headers/Public/Quick/NSString+QCKSelectorName.h +0 -17
  30. data/spec/fixtures/Project/Frameworks/Pods/Headers/Public/Quick/QCKDSL.h +0 -211
  31. data/spec/fixtures/Project/Frameworks/Pods/Headers/Public/Quick/Quick.h +0 -13
  32. data/spec/fixtures/Project/Frameworks/Pods/Headers/Public/Quick/QuickConfiguration.h +0 -30
  33. data/spec/fixtures/Project/Frameworks/Pods/Headers/Public/Quick/QuickSpec.h +0 -48
  34. data/spec/fixtures/Project/Frameworks/Pods/Manifest.lock +0 -42
  35. data/spec/fixtures/Project/Frameworks/Pods/Pods.xcodeproj/project.pbxproj +0 -995
  36. data/spec/fixtures/Project/Frameworks/Pods/QueryKit/LICENSE +0 -23
  37. data/spec/fixtures/Project/Frameworks/Pods/QueryKit/QueryKit/Attribute.swift +0 -124
  38. data/spec/fixtures/Project/Frameworks/Pods/QueryKit/QueryKit/Expression.swift +0 -41
  39. data/spec/fixtures/Project/Frameworks/Pods/QueryKit/QueryKit/ObjectiveC/QKAttribute.h +0 -210
  40. data/spec/fixtures/Project/Frameworks/Pods/QueryKit/QueryKit/ObjectiveC/QKAttribute.m +0 -315
  41. data/spec/fixtures/Project/Frameworks/Pods/QueryKit/QueryKit/ObjectiveC/QKAttribute.swift +0 -13
  42. data/spec/fixtures/Project/Frameworks/Pods/QueryKit/QueryKit/ObjectiveC/QKQuerySet.h +0 -155
  43. data/spec/fixtures/Project/Frameworks/Pods/QueryKit/QueryKit/ObjectiveC/QKQuerySet.m +0 -314
  44. data/spec/fixtures/Project/Frameworks/Pods/QueryKit/QueryKit/ObjectiveC/QKQuerySet.swift +0 -28
  45. data/spec/fixtures/Project/Frameworks/Pods/QueryKit/QueryKit/Predicate.swift +0 -21
  46. data/spec/fixtures/Project/Frameworks/Pods/QueryKit/QueryKit/QueryKit.h +0 -19
  47. data/spec/fixtures/Project/Frameworks/Pods/QueryKit/QueryKit/QuerySet.swift +0 -237
  48. data/spec/fixtures/Project/Frameworks/Pods/QueryKit/README.md +0 -151
  49. data/spec/fixtures/Project/Frameworks/Pods/Quick/LICENSE +0 -201
  50. data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/Callsite.swift +0 -28
  51. data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/Configuration/Configuration.swift +0 -147
  52. data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/Configuration/QuickConfiguration.h +0 -30
  53. data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/Configuration/QuickConfiguration.m +0 -83
  54. data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/DSL/DSL.swift +0 -227
  55. data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/DSL/QCKDSL.h +0 -211
  56. data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/DSL/QCKDSL.m +0 -70
  57. data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/DSL/World+DSL.swift +0 -100
  58. data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/Example.swift +0 -103
  59. data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/ExampleGroup.swift +0 -97
  60. data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/ExampleMetadata.swift +0 -22
  61. data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/Failure.swift +0 -16
  62. data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/Filter.swift +0 -29
  63. data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/Hooks/Closures.swift +0 -35
  64. data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/Hooks/ExampleHooks.swift +0 -36
  65. data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/Hooks/SuiteHooks.swift +0 -34
  66. data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/NSString+QCKSelectorName.h +0 -17
  67. data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/NSString+QCKSelectorName.m +0 -33
  68. data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/Quick.h +0 -13
  69. data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/QuickSpec.h +0 -48
  70. data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/QuickSpec.m +0 -142
  71. data/spec/fixtures/Project/Frameworks/Pods/Quick/Quick/World.swift +0 -197
  72. data/spec/fixtures/Project/Frameworks/Pods/Quick/README.md +0 -979
  73. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProject-QueryKit/Info.plist +0 -26
  74. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProject-QueryKit/Pods-TestProject-QueryKit-Private.xcconfig +0 -9
  75. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProject-QueryKit/Pods-TestProject-QueryKit-dummy.m +0 -5
  76. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProject-QueryKit/Pods-TestProject-QueryKit-prefix.pch +0 -5
  77. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProject-QueryKit/Pods-TestProject-QueryKit-umbrella.h +0 -9
  78. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProject-QueryKit/Pods-TestProject-QueryKit.modulemap +0 -6
  79. 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
  80. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProject/Info.plist +0 -26
  81. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProject/Pods-TestProject-acknowledgements.markdown +0 -30
  82. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProject/Pods-TestProject-acknowledgements.plist +0 -60
  83. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProject/Pods-TestProject-dummy.m +0 -5
  84. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProject/Pods-TestProject-environment.h +0 -74
  85. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProject/Pods-TestProject-frameworks.sh +0 -55
  86. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProject/Pods-TestProject-resources.sh +0 -74
  87. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProject/Pods-TestProject-umbrella.h +0 -6
  88. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProject/Pods-TestProject.debug.xcconfig +0 -9
  89. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProject/Pods-TestProject.modulemap +0 -6
  90. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProject/Pods-TestProject.release.xcconfig +0 -9
  91. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProjectTests-Quick/Info.plist +0 -26
  92. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProjectTests-Quick/Pods-TestProjectTests-Quick-Private.xcconfig +0 -9
  93. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProjectTests-Quick/Pods-TestProjectTests-Quick-dummy.m +0 -5
  94. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProjectTests-Quick/Pods-TestProjectTests-Quick-prefix.pch +0 -5
  95. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProjectTests-Quick/Pods-TestProjectTests-Quick-umbrella.h +0 -11
  96. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProjectTests-Quick/Pods-TestProjectTests-Quick.modulemap +0 -6
  97. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProjectTests-Quick/Pods-TestProjectTests-Quick.xcconfig +0 -2
  98. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProjectTests/Info.plist +0 -26
  99. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProjectTests/Pods-TestProjectTests-acknowledgements.markdown +0 -208
  100. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProjectTests/Pods-TestProjectTests-acknowledgements.plist +0 -238
  101. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProjectTests/Pods-TestProjectTests-dummy.m +0 -5
  102. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProjectTests/Pods-TestProjectTests-environment.h +0 -14
  103. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProjectTests/Pods-TestProjectTests-frameworks.sh +0 -55
  104. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProjectTests/Pods-TestProjectTests-resources.sh +0 -74
  105. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProjectTests/Pods-TestProjectTests-umbrella.h +0 -6
  106. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProjectTests/Pods-TestProjectTests.debug.xcconfig +0 -9
  107. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProjectTests/Pods-TestProjectTests.modulemap +0 -6
  108. data/spec/fixtures/Project/Frameworks/Pods/Target Support Files/Pods-TestProjectTests/Pods-TestProjectTests.release.xcconfig +0 -9
  109. data/spec/fixtures/Project/Frameworks/TestProject.xcodeproj/project.pbxproj +0 -557
  110. data/spec/fixtures/Project/Frameworks/TestProject.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
  111. data/spec/fixtures/Project/Frameworks/TestProject.xcworkspace/contents.xcworkspacedata +0 -10
  112. data/spec/fixtures/Project/Frameworks/TestProject/AppDelegate.swift +0 -46
  113. data/spec/fixtures/Project/Frameworks/TestProject/Base.lproj/LaunchScreen.xib +0 -41
  114. data/spec/fixtures/Project/Frameworks/TestProject/Base.lproj/Main.storyboard +0 -25
  115. data/spec/fixtures/Project/Frameworks/TestProject/Images.xcassets/AppIcon.appiconset/Contents.json +0 -38
  116. data/spec/fixtures/Project/Frameworks/TestProject/Info.plist +0 -40
  117. data/spec/fixtures/Project/Frameworks/TestProject/ViewController.swift +0 -25
  118. data/spec/fixtures/Project/Frameworks/TestProjectTests/Info.plist +0 -24
  119. data/spec/fixtures/Project/Frameworks/TestProjectTests/TestProjectTests.swift +0 -36
  120. data/spec/fixtures/Project/None/TestProject.xcodeproj/project.pbxproj +0 -420
  121. data/spec/fixtures/Project/None/TestProject.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
  122. data/spec/fixtures/Project/None/TestProject/AppDelegate.swift +0 -46
  123. data/spec/fixtures/Project/None/TestProject/Base.lproj/LaunchScreen.xib +0 -41
  124. data/spec/fixtures/Project/None/TestProject/Base.lproj/Main.storyboard +0 -25
  125. data/spec/fixtures/Project/None/TestProject/Images.xcassets/AppIcon.appiconset/Contents.json +0 -38
  126. data/spec/fixtures/Project/None/TestProject/Info.plist +0 -40
  127. data/spec/fixtures/Project/None/TestProject/ViewController.swift +0 -25
  128. data/spec/fixtures/Project/None/TestProjectTests/Info.plist +0 -24
  129. data/spec/fixtures/Project/None/TestProjectTests/TestProjectTests.swift +0 -36
  130. data/spec/fixtures/Project/StaticLibraries/Podfile +0 -12
  131. data/spec/fixtures/Project/StaticLibraries/Podfile.lock +0 -13
  132. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/LICENSE +0 -19
  133. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/README.md +0 -308
  134. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/EXPBackwardCompatibility.h +0 -42
  135. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/EXPBackwardCompatibility.m +0 -17
  136. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/EXPBlockDefinedMatcher.h +0 -25
  137. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/EXPBlockDefinedMatcher.m +0 -60
  138. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/EXPDefines.h +0 -17
  139. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/EXPDoubleTuple.h +0 -13
  140. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/EXPDoubleTuple.m +0 -42
  141. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/EXPExpect.h +0 -45
  142. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/EXPExpect.m +0 -214
  143. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/EXPFloatTuple.h +0 -13
  144. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/EXPFloatTuple.m +0 -42
  145. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/EXPMatcher.h +0 -20
  146. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/EXPUnsupportedObject.h +0 -11
  147. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/EXPUnsupportedObject.m +0 -20
  148. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/Expecta.h +0 -27
  149. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/Expecta.m +0 -15
  150. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/ExpectaSupport.h +0 -64
  151. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/ExpectaSupport.m +0 -187
  152. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/NSObject+Expecta.h +0 -14
  153. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/NSValue+Expecta.h +0 -8
  154. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/NSValue+Expecta.m +0 -21
  155. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatcherHelpers.h +0 -4
  156. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatcherHelpers.m +0 -9
  157. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beCloseTo.h +0 -7
  158. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beCloseTo.m +0 -49
  159. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beFalsy.h +0 -3
  160. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beFalsy.m +0 -24
  161. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beGreaterThan.h +0 -6
  162. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beGreaterThan.m +0 -20
  163. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beGreaterThanOrEqualTo.h +0 -6
  164. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beGreaterThanOrEqualTo.m +0 -20
  165. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beIdenticalTo.h +0 -10
  166. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beIdenticalTo.m +0 -24
  167. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beInTheRangeOf.h +0 -6
  168. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beInTheRangeOf.m +0 -30
  169. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beInstanceOf.h +0 -7
  170. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beInstanceOf.m +0 -27
  171. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beKindOf.h +0 -5
  172. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beKindOf.m +0 -27
  173. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beLessThan.h +0 -6
  174. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beLessThan.m +0 -20
  175. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beLessThanOrEqualTo.h +0 -6
  176. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beLessThanOrEqualTo.m +0 -20
  177. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beNil.h +0 -5
  178. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beNil.m +0 -16
  179. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beSubclassOf.h +0 -5
  180. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beSubclassOf.m +0 -27
  181. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beSupersetOf.h +0 -4
  182. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beSupersetOf.m +0 -57
  183. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beTruthy.h +0 -3
  184. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beTruthy.m +0 -24
  185. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beginWith.h +0 -5
  186. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+beginWith.m +0 -49
  187. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+conformTo.h +0 -3
  188. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+conformTo.m +0 -33
  189. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+contain.h +0 -5
  190. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+contain.m +0 -38
  191. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+endWith.h +0 -3
  192. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+endWith.m +0 -49
  193. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+equal.h +0 -5
  194. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+equal.m +0 -24
  195. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+haveCountOf.h +0 -10
  196. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+haveCountOf.m +0 -36
  197. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+notify.h +0 -4
  198. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+notify.m +0 -63
  199. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+raise.h +0 -4
  200. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+raise.m +0 -30
  201. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+raiseWithReason.h +0 -3
  202. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+raiseWithReason.m +0 -35
  203. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+respondTo.h +0 -3
  204. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers+respondTo.m +0 -28
  205. data/spec/fixtures/Project/StaticLibraries/Pods/Expecta/src/matchers/EXPMatchers.h +0 -24
  206. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPBackwardCompatibility.h +0 -42
  207. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPBlockDefinedMatcher.h +0 -25
  208. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPDefines.h +0 -17
  209. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPDoubleTuple.h +0 -13
  210. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPExpect.h +0 -45
  211. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPFloatTuple.h +0 -13
  212. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatcher.h +0 -20
  213. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatcherHelpers.h +0 -4
  214. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+beCloseTo.h +0 -7
  215. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+beFalsy.h +0 -3
  216. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+beGreaterThan.h +0 -6
  217. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+beGreaterThanOrEqualTo.h +0 -6
  218. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+beIdenticalTo.h +0 -10
  219. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+beInTheRangeOf.h +0 -6
  220. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+beInstanceOf.h +0 -7
  221. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+beKindOf.h +0 -5
  222. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+beLessThan.h +0 -6
  223. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+beLessThanOrEqualTo.h +0 -6
  224. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+beNil.h +0 -5
  225. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+beSubclassOf.h +0 -5
  226. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+beSupersetOf.h +0 -4
  227. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+beTruthy.h +0 -3
  228. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+beginWith.h +0 -5
  229. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+conformTo.h +0 -3
  230. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+contain.h +0 -5
  231. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+endWith.h +0 -3
  232. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+equal.h +0 -5
  233. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+haveCountOf.h +0 -10
  234. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+notify.h +0 -4
  235. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+raise.h +0 -4
  236. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+raiseWithReason.h +0 -3
  237. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers+respondTo.h +0 -3
  238. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPMatchers.h +0 -24
  239. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/EXPUnsupportedObject.h +0 -11
  240. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/Expecta.h +0 -27
  241. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/ExpectaSupport.h +0 -64
  242. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/NSObject+Expecta.h +0 -14
  243. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/Expecta/NSValue+Expecta.h +0 -8
  244. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Private/NSAttributedString+CCLFormat/NSAttributedString+CCLFormat.h +0 -21
  245. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPBackwardCompatibility.h +0 -42
  246. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPBlockDefinedMatcher.h +0 -25
  247. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPDefines.h +0 -17
  248. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPDoubleTuple.h +0 -13
  249. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPExpect.h +0 -45
  250. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPFloatTuple.h +0 -13
  251. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatcher.h +0 -20
  252. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatcherHelpers.h +0 -4
  253. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+beCloseTo.h +0 -7
  254. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+beFalsy.h +0 -3
  255. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+beGreaterThan.h +0 -6
  256. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+beGreaterThanOrEqualTo.h +0 -6
  257. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+beIdenticalTo.h +0 -10
  258. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+beInTheRangeOf.h +0 -6
  259. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+beInstanceOf.h +0 -7
  260. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+beKindOf.h +0 -5
  261. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+beLessThan.h +0 -6
  262. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+beLessThanOrEqualTo.h +0 -6
  263. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+beNil.h +0 -5
  264. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+beSubclassOf.h +0 -5
  265. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+beSupersetOf.h +0 -4
  266. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+beTruthy.h +0 -3
  267. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+beginWith.h +0 -5
  268. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+conformTo.h +0 -3
  269. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+contain.h +0 -5
  270. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+endWith.h +0 -3
  271. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+equal.h +0 -5
  272. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+haveCountOf.h +0 -10
  273. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+notify.h +0 -4
  274. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+raise.h +0 -4
  275. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+raiseWithReason.h +0 -3
  276. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers+respondTo.h +0 -3
  277. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPMatchers.h +0 -24
  278. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/EXPUnsupportedObject.h +0 -11
  279. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/Expecta.h +0 -27
  280. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/ExpectaSupport.h +0 -64
  281. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/NSObject+Expecta.h +0 -14
  282. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/Expecta/NSValue+Expecta.h +0 -8
  283. data/spec/fixtures/Project/StaticLibraries/Pods/Headers/Public/NSAttributedString+CCLFormat/NSAttributedString+CCLFormat.h +0 -21
  284. data/spec/fixtures/Project/StaticLibraries/Pods/Manifest.lock +0 -13
  285. data/spec/fixtures/Project/StaticLibraries/Pods/NSAttributedString+CCLFormat/LICENSE +0 -23
  286. data/spec/fixtures/Project/StaticLibraries/Pods/NSAttributedString+CCLFormat/NSAttributedString+CCLFormat.h +0 -21
  287. data/spec/fixtures/Project/StaticLibraries/Pods/NSAttributedString+CCLFormat/NSAttributedString+CCLFormat.m +0 -51
  288. data/spec/fixtures/Project/StaticLibraries/Pods/NSAttributedString+CCLFormat/README.md +0 -57
  289. data/spec/fixtures/Project/StaticLibraries/Pods/Pods.xcodeproj/project.pbxproj +0 -943
  290. data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProject-NSAttributedString+CCLFormat/Pods-TestProject-NSAttributedString+CCLFormat-Private.xcconfig +0 -5
  291. data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProject-NSAttributedString+CCLFormat/Pods-TestProject-NSAttributedString+CCLFormat-dummy.m +0 -5
  292. data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProject-NSAttributedString+CCLFormat/Pods-TestProject-NSAttributedString+CCLFormat-prefix.pch +0 -5
  293. 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
  294. data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProject/Pods-TestProject-acknowledgements.markdown +0 -30
  295. data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProject/Pods-TestProject-acknowledgements.plist +0 -60
  296. data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProject/Pods-TestProject-dummy.m +0 -5
  297. data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProject/Pods-TestProject-environment.h +0 -14
  298. data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProject/Pods-TestProject-resources.sh +0 -74
  299. data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProject/Pods-TestProject.debug.xcconfig +0 -6
  300. data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProject/Pods-TestProject.release.xcconfig +0 -6
  301. data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProjectTests-Expecta/Pods-TestProjectTests-Expecta-Private.xcconfig +0 -5
  302. data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProjectTests-Expecta/Pods-TestProjectTests-Expecta-dummy.m +0 -5
  303. data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProjectTests-Expecta/Pods-TestProjectTests-Expecta-prefix.pch +0 -5
  304. data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProjectTests-Expecta/Pods-TestProjectTests-Expecta.xcconfig +0 -1
  305. data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProjectTests/Pods-TestProjectTests-acknowledgements.markdown +0 -26
  306. data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProjectTests/Pods-TestProjectTests-acknowledgements.plist +0 -56
  307. data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProjectTests/Pods-TestProjectTests-dummy.m +0 -5
  308. data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProjectTests/Pods-TestProjectTests-environment.h +0 -14
  309. data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProjectTests/Pods-TestProjectTests-resources.sh +0 -74
  310. data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProjectTests/Pods-TestProjectTests.debug.xcconfig +0 -6
  311. data/spec/fixtures/Project/StaticLibraries/Pods/Target Support Files/Pods-TestProjectTests/Pods-TestProjectTests.release.xcconfig +0 -6
  312. data/spec/fixtures/Project/StaticLibraries/TestProject.xcodeproj/project.pbxproj +0 -525
  313. data/spec/fixtures/Project/StaticLibraries/TestProject.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
  314. data/spec/fixtures/Project/StaticLibraries/TestProject.xcworkspace/contents.xcworkspacedata +0 -10
  315. data/spec/fixtures/Project/StaticLibraries/TestProject/AppDelegate.swift +0 -46
  316. data/spec/fixtures/Project/StaticLibraries/TestProject/Base.lproj/LaunchScreen.xib +0 -41
  317. data/spec/fixtures/Project/StaticLibraries/TestProject/Base.lproj/Main.storyboard +0 -25
  318. data/spec/fixtures/Project/StaticLibraries/TestProject/Images.xcassets/AppIcon.appiconset/Contents.json +0 -38
  319. data/spec/fixtures/Project/StaticLibraries/TestProject/Info.plist +0 -40
  320. data/spec/fixtures/Project/StaticLibraries/TestProject/ViewController.swift +0 -25
  321. data/spec/fixtures/Project/StaticLibraries/TestProjectTests/Info.plist +0 -24
  322. data/spec/fixtures/Project/StaticLibraries/TestProjectTests/TestProjectTests.swift +0 -36
  323. data/spec/spec_helper.rb +0 -29
@@ -1,979 +0,0 @@
1
- ![](http://f.cl.ly/items/0r1E192C1R0b2g2Q3h2w/QuickLogo_Color.png)
2
-
3
- Quick is a behavior-driven development framework for Swift and Objective-C.
4
- Inspired by [RSpec](https://github.com/rspec/rspec), [Specta](https://github.com/specta/specta), and [Ginkgo](https://github.com/onsi/ginkgo).
5
-
6
- [![Build Status](https://travis-ci.org/Quick/Quick.svg)](https://travis-ci.org/Quick/Quick)
7
-
8
- ![](https://raw.githubusercontent.com/Quick/Assets/master/Screenshots/QuickSpec%20screenshot.png)
9
-
10
- ```swift
11
- // Swift
12
-
13
- import Quick
14
- import Nimble
15
-
16
- class TableOfContentsSpec: QuickSpec {
17
- override func spec() {
18
- describe("the table of contents below") {
19
- it("has everything you need to get started") {
20
- let sections = TableOfContents().sections
21
- expect(sections).to(contain("Quick: Examples and Example Groups"))
22
- expect(sections).to(contain("Nimble: Assertions using expect(...).to"))
23
- expect(sections).to(contain("How to Install Quick"))
24
- }
25
-
26
- context("if it doesn't have what you're looking for") {
27
- it("needs to be updated") {
28
- let you = You(awesome: true)
29
- expect{you.submittedAnIssue}.toEventually(beTruthy())
30
- }
31
- }
32
- }
33
- }
34
- }
35
- ```
36
-
37
- # How to Use Quick
38
-
39
- <!-- START doctoc generated TOC please keep comment here to allow auto update -->
40
- <!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
41
-
42
- - [Quick: Examples and Example Groups](#quick-examples-and-example-groups)
43
- - [Examples Using `it`](#examples-using-it)
44
- - [Example Groups Using `describe` and `context`](#example-groups-using-describe-and-context)
45
- - [Describing Classes and Methods Using `describe`](#describing-classes-and-methods-using-describe)
46
- - [Sharing Setup/Teardown Code Using `beforeEach` and `afterEach`](#sharing-setupteardown-code-using-beforeeach-and-aftereach)
47
- - [Specifying Conditional Behavior Using `context`](#specifying-conditional-behavior-using-context)
48
- - [Temporarily Disabling Examples or Groups Using `pending`](#temporarily-disabling-examples-or-groups-using-pending)
49
- - [Shorthand syntax](#shorthand-syntax)
50
- - [Global Setup/Teardown Using `beforeSuite` and `afterSuite`](#global-setupteardown-using-beforesuite-and-aftersuite)
51
- - [Sharing Examples](#sharing-examples)
52
- - [Using Quick in Objective-C: The Optional Shorthand Syntax](#using-quick-in-objective-c-the-optional-shorthand-syntax)
53
- - [Caveat: Your Test Target Must Include At Least One Swift File](#caveat-your-test-target-must-include-at-least-one-swift-file)
54
- - [Nimble: Assertions Using `expect(...).to`](#nimble-assertions-using-expectto)
55
- - [Testing UIKit with Quick](#testing-uikit-with-quick)
56
- - [How to Install Quick](#how-to-install-quick)
57
- - [1. Clone the Quick and Nimble repositories](#1-clone-the-quick-and-nimble-repositories)
58
- - [2. Add `Quick.xcodeproj` and `Nimble.xcodeproj` to your test target](#2-add-quickxcodeproj-and-nimblexcodeproj-to-your-test-target)
59
- - [3. Link `Quick.framework` and `Nimble.framework`](#3-link-quickframework-and-nimbleframework)
60
- - [4. Start writing specs!](#4-start-writing-specs!)
61
- - [Including Quick in a Git Repository Using Submodules](#including-quick-in-a-git-repository-using-submodules)
62
- - [Adding Quick as a Git Submodule](#adding-quick-as-a-git-submodule)
63
- - [Updating the Quick Submodule](#updating-the-quick-submodule)
64
- - [Cloning a Repository that Includes a Quick Submodule](#cloning-a-repository-that-includes-a-quick-submodule)
65
- - [How to Install Quick using Beta CocoaPods](#how-to-install-quick-using-beta-cocoapods)
66
- - [How to Install Quick File Templates](#how-to-install-quick-file-templates)
67
- - [Using Alcatraz](#using-alcatraz)
68
- - [Manually via the Rakefile](#manually-via-the-rakefile)
69
- - [Who Uses Quick](#who-uses-quick)
70
- - [License](#license)
71
-
72
- <!-- END doctoc generated TOC please keep comment here to allow auto update -->
73
-
74
- ## Quick: Examples and Example Groups
75
-
76
- Quick uses a special syntax to define **examples** and **example groups**.
77
-
78
- ### Examples Using `it`
79
-
80
- Examples, defined with the `it` function, use assertions to demonstrate
81
- how code should behave. These are like "tests" in XCTest.
82
-
83
- `it` takes two parameters: the name of the example, and a closure.
84
- The examples below specify how the `Dolphin` class should behave.
85
- A new dolphin should be smart and friendly:
86
-
87
- ```swift
88
- // Swift
89
-
90
- import Quick
91
- import Nimble
92
-
93
- class DolphinSpec: QuickSpec {
94
- override func spec() {
95
- it("is friendly") {
96
- expect(Dolphin().isFriendly).to(beTruthy())
97
- }
98
-
99
- it("is smart") {
100
- expect(Dolphin().isSmart).to(beTruthy())
101
- }
102
- }
103
- }
104
- ```
105
-
106
- ```objc
107
- // Objective-C
108
-
109
- #import <Quick/Quick.h>
110
- #import <Nimble/Nimble.h>
111
-
112
- QuickSpecBegin(DolphinSpec)
113
-
114
- it(@"is friendly", ^{
115
- expect(@([[Dolphin new] isFriendly])).to(beTruthy());
116
- });
117
-
118
- it(@"is smart", ^{
119
- expect(@([[Dolphin new] isSmart])).to(beTruthy());
120
- });
121
-
122
- QuickSpecEnd
123
- ```
124
-
125
- > Descriptions can use any character, including characters from languages
126
- besides English, or even emoji! :v: :sunglasses:
127
-
128
- ### Example Groups Using `describe` and `context`
129
-
130
- Example groups are logical groupings of examples. Example groups can share
131
- setup and teardown code.
132
-
133
- #### Describing Classes and Methods Using `describe`
134
-
135
- To specify the behavior of the `Dolphin` class's `click` method--in
136
- other words, to test the method works--several `it` examples can be
137
- grouped together using the `describe` function. Grouping similar
138
- examples together makes the spec easier to read:
139
-
140
- ```swift
141
- // Swift
142
-
143
- import Quick
144
- import Nimble
145
-
146
- class DolphinSpec: QuickSpec {
147
- override func spec() {
148
- describe("a dolphin") {
149
- describe("its click") {
150
- it("is loud") {
151
- let click = Dolphin().click()
152
- expect(click.isLoud).to(beTruthy())
153
- }
154
-
155
- it("has a high frequency") {
156
- let click = Dolphin().click()
157
- expect(click.hasHighFrequency).to(beTruthy())
158
- }
159
- }
160
- }
161
- }
162
- }
163
- ```
164
-
165
- ```objc
166
- // Objective-C
167
-
168
- #import <Quick/Quick.h>
169
- #import <Nimble/Nimble.h>
170
-
171
- QuickSpecBegin(DolphinSpec)
172
-
173
- describe(@"a dolphin", ^{
174
- describe(@"its click", ^{
175
- it(@"is loud", ^{
176
- Click *click = [[Dolphin new] click];
177
- expect(@(click.isLoud)).to(beTruthy());
178
- });
179
-
180
- it(@"has a high frequency", ^{
181
- Click *click = [[Dolphin new] click];
182
- expect(@(click.hasHighFrequency)).to(beTruthy());
183
- });
184
- });
185
- });
186
-
187
- QuickSpecEnd
188
- ```
189
-
190
- #### Sharing Setup/Teardown Code Using `beforeEach` and `afterEach`
191
-
192
- Example groups don't just make the examples clearer, they're also useful
193
- for sharing setup and teardown code among examples in a group.
194
-
195
- In the example below, the `beforeEach` function is used to create a brand
196
- new instance of a dolphin and its click before each example in the group.
197
- This ensures that both are in a "fresh" state for every example:
198
-
199
- ```swift
200
- // Swift
201
-
202
- import Quick
203
- import Nimble
204
-
205
- class DolphinSpec: QuickSpec {
206
- override func spec() {
207
- describe("a dolphin") {
208
- var dolphin: Dolphin?
209
- beforeEach {
210
- dolphin = Dolphin()
211
- }
212
-
213
- describe("its click") {
214
- var click: Click?
215
- beforeEach {
216
- click = dolphin!.click()
217
- }
218
-
219
- it("is loud") {
220
- expect(click!.isLoud).to(beTruthy())
221
- }
222
-
223
- it("has a high frequency") {
224
- expect(click!.hasHighFrequency).to(beTruthy())
225
- }
226
- }
227
- }
228
- }
229
- }
230
- ```
231
-
232
- ```objc
233
- // Objective-C
234
-
235
- #import <Quick/Quick.h>
236
- #import <Nimble/Nimble.h>
237
-
238
- QuickSpecBegin(DolphinSpec)
239
-
240
- describe(@"a dolphin", ^{
241
- __block Dolphin *dolphin = nil;
242
- beforeEach(^{
243
- dolphin = [Dolphin new];
244
- });
245
-
246
- describe(@"its click", ^{
247
- __block Click *click = nil;
248
- beforeEach(^{
249
- click = [dolphin click];
250
- });
251
-
252
- it(@"is loud", ^{
253
- expect(@(click.isLoud)).to(beTruthy());
254
- });
255
-
256
- it(@"has a high frequency", ^{
257
- expect(@(click.hasHighFrequency)).to(beTruthy());
258
- });
259
- });
260
- });
261
-
262
- QuickSpecEnd
263
- ```
264
-
265
- Sharing setup like this might not seem like a big deal with the
266
- dolphin example, but for more complicated objects, it saves a lot
267
- of typing!
268
-
269
- To execute code *after* each example, use `afterEach`.
270
-
271
- #### Specifying Conditional Behavior Using `context`
272
-
273
- Dolphins use clicks for echolocation. When they approach something
274
- particularly interesting to them, they release a series of clicks in
275
- order to get a better idea of what it is.
276
-
277
- The tests need to show that the `click` method behaves differently in
278
- different circumstances. Normally, the dolphin just clicks once. But when
279
- the dolphin is close to something interesting, it clicks several times.
280
-
281
- This can be expressed using `context` functions: one `context` for the
282
- normal case, and one `context` for when the dolphin is close to
283
- something interesting:
284
-
285
- ```swift
286
- // Swift
287
-
288
- import Quick
289
- import Nimble
290
-
291
- class DolphinSpec: QuickSpec {
292
- override func spec() {
293
- describe("a dolphin") {
294
- var dolphin: Dolphin?
295
- beforeEach { dolphin = Dolphin() }
296
-
297
- describe("its click") {
298
- context("when the dolphin is not near anything interesting") {
299
- it("is only emitted once") {
300
- expect(dolphin!.click().count).to(equal(1))
301
- }
302
- }
303
-
304
- context("when the dolphin is near something interesting") {
305
- beforeEach {
306
- let ship = SunkenShip()
307
- Jamaica.dolphinCove.add(ship)
308
- Jamaica.dolphinCove.add(dolphin)
309
- }
310
-
311
- it("is emitted three times") {
312
- expect(dolphin!.click().count).to(equal(3))
313
- }
314
- }
315
- }
316
- }
317
- }
318
- }
319
- ```
320
-
321
- ```objc
322
- // Objective-C
323
-
324
- #import <Quick/Quick.h>
325
- #import <Nimble/Nimble.h>
326
-
327
- QuickSpecBegin(DolphinSpec)
328
-
329
- describe(@"a dolphin", ^{
330
- __block Dolphin *dolphin = nil;
331
- beforeEach(^{ dolphin = [Dolphin new]; });
332
-
333
- describe(@"its click", ^{
334
- context(@"when the dolphin is not near anything interesting", ^{
335
- it(@"is only emitted once", ^{
336
- expect(@([[dolphin click] count])).to(equal(@1));
337
- });
338
- });
339
-
340
- context(@"when the dolphin is near something interesting", ^{
341
- beforeEach(^{
342
- [[Jamaica dolphinCove] add:[SunkenShip new]];
343
- [[Jamaica dolphinCove] add:dolphin];
344
- });
345
-
346
- it(@"is emitted three times", ^{
347
- expect(@([[dolphin click] count])).to(equal(@3));
348
- });
349
- });
350
- });
351
- });
352
-
353
- QuickSpecEnd
354
- ```
355
-
356
- ### Temporarily Disabling Examples or Groups Using `pending`
357
-
358
- For examples that don't pass yet, use `pending`. Pending examples
359
- are not run, but are printed out along with the test results.
360
-
361
- The example below marks the cases in which the dolphin is close to
362
- something interesting as "pending"--perhaps that functionality hasn't
363
- been implemented yet, but these tests have been written as reminders
364
- that it should be soon:
365
-
366
- ```swift
367
- // Swift
368
-
369
- pending("when the dolphin is near something interesting") {
370
- // ...none of the code in this closure will be run.
371
- }
372
- ```
373
-
374
- ```objc
375
- // Objective-C
376
-
377
- pending(@"when the dolphin is near something interesting", ^{
378
- // ...none of the code in this closure will be run.
379
- });
380
- ```
381
-
382
- #### Shorthand syntax
383
-
384
- Examples and groups can also be marked as pending by using
385
- `xdescribe`, `xcontext`, and `xit`:
386
-
387
- ```swift
388
- // Swift
389
-
390
- xdescribe("its click") {
391
- // ...none of the code in this closure will be run.
392
- }
393
-
394
- xcontext("when the dolphin is not near anything interesting") {
395
- // ...none of the code in this closure will be run.
396
- }
397
-
398
- xit("is only emitted once") {
399
- // ...none of the code in this closure will be run.
400
- }
401
- ```
402
-
403
- ```objc
404
- // Objective-C
405
-
406
- xdescribe(@"its click", ^{
407
- // ...none of the code in this closure will be run.
408
- });
409
-
410
- xcontext(@"when the dolphin is not near anything interesting", ^{
411
- // ...none of the code in this closure will be run.
412
- });
413
-
414
- xit(@"is only emitted once", ^{
415
- // ...none of the code in this closure will be run.
416
- });
417
- ```
418
-
419
- ### Global Setup/Teardown Using `beforeSuite` and `afterSuite`
420
-
421
- Some test setup needs to be performed before *any* examples are
422
- run. For these cases, use `beforeSuite` and `afterSuite`.
423
-
424
- In the example below, a database of all the creatures in the ocean is
425
- created before any examples are run. That database is torn down once all
426
- the examples have finished:
427
-
428
- ```swift
429
- // Swift
430
-
431
- import Quick
432
-
433
- class DolphinSpec: QuickSpec {
434
- override func spec() {
435
- beforeSuite {
436
- OceanDatabase.createDatabase(name: "test.db")
437
- OceanDatabase.connectToDatabase(name: "test.db")
438
- }
439
-
440
- afterSuite {
441
- OceanDatabase.teardownDatabase(name: "test.db")
442
- }
443
-
444
- describe("a dolphin") {
445
- // ...
446
- }
447
- }
448
- }
449
- ```
450
-
451
- ```objc
452
- // Objective-C
453
-
454
- #import <Quick/Quick.h>
455
-
456
- QuickSpecBegin(DolphinSpec)
457
-
458
- beforeSuite(^{
459
- [OceanDatabase createDatabase:@"test.db"];
460
- [OceanDatabase connectToDatabase:@"test.db"];
461
- });
462
-
463
- afterSuite(^{
464
- [OceanDatabase teardownDatabase:@"test.db"];
465
- });
466
-
467
- describe(@"a dolphin", ^{
468
- // ...
469
- });
470
-
471
- QuickSpecEnd
472
- ```
473
-
474
- > You can specify as many `beforeSuite` and `afterSuite` as you like. All
475
- `beforeSuite` closures will be executed before any tests run, and all
476
- `afterSuite` closures will be executed after all the tests are finished.
477
- There is no guarantee as to what order these closures will be executed in.
478
-
479
- ### Sharing Examples
480
-
481
- In some cases, the same set of specifications apply to multiple objects.
482
-
483
- For example, consider a protocol called `Edible`. When a dolphin
484
- eats something `Edible`, the dolphin becomes happy. `Mackerel` and
485
- `Cod` are both edible. Quick allows you to easily test that a dolphin is
486
- happy to eat either one.
487
-
488
- The example below defines a set of "shared examples" for "something edible",
489
- and specifies that both mackerel and cod behave like "something edible":
490
-
491
- ```swift
492
- // Swift
493
-
494
- import Quick
495
- import Nimble
496
-
497
- class EdibleSharedExamplesConfiguration: QuickConfiguration {
498
- override class func configure(configuration: Configuration) {
499
- sharedExamples("something edible") { (sharedExampleContext: SharedExampleContext) in
500
- it("makes dolphins happy") {
501
- let dolphin = Dolphin(happy: false)
502
- let edible = sharedExampleContext()["edible"]
503
- dolphin.eat(edible)
504
- expect(dolphin.isHappy).to(beTruthy())
505
- }
506
- }
507
- }
508
- }
509
-
510
- class MackerelSpec: QuickSpec {
511
- override func spec() {
512
- var mackerel: Mackerel! = nil
513
- beforeEach {
514
- mackerel = Mackerel()
515
- }
516
-
517
- itBehavesLike("something edible") { ["edible": mackerel] }
518
- }
519
- }
520
-
521
- class CodSpec: QuickSpec {
522
- override func spec() {
523
- var cod: Cod! = nil
524
- beforeEach {
525
- cod = Cod()
526
- }
527
-
528
- itBehavesLike("something edible") { ["edible": cod] }
529
- }
530
- }
531
- ```
532
-
533
- ```objc
534
- // Objective-C
535
-
536
- #import <Quick/Quick.h>
537
- #import <Nimble/Nimble.h>
538
-
539
- QuickConfigurationBegin(EdibleSharedExamplesConfiguration)
540
-
541
- + (void)configure:(Configuration *configuration) {
542
- sharedExamples(@"something edible", ^(QCKDSLSharedExampleContext exampleContext) {
543
- it(@"makes dolphins happy") {
544
- Dolphin *dolphin = [[Dolphin alloc] init];
545
- dolphin.happy = NO;
546
- id<Edible> edible = exampleContext()[@"edible"];
547
- [dolphin eat:edible];
548
- expect(dolphin.isHappy).to(beTruthy())
549
- }
550
- });
551
- }
552
-
553
- QuickConfigurationEnd
554
-
555
- QuickSpecBegin(MackerelSpec)
556
-
557
- __block Mackerel *mackerel = nil;
558
- beforeEach(^{
559
- mackerel = [[Mackerel alloc] init];
560
- });
561
-
562
- itBehavesLike(@"someting edible", ^{ return @{ @"edible": mackerel }; });
563
-
564
- QuickSpecEnd
565
-
566
- QuickSpecBegin(CodSpec)
567
-
568
- __block Mackerel *cod = nil;
569
- beforeEach(^{
570
- cod = [[Cod alloc] init];
571
- });
572
-
573
- itBehavesLike(@"someting edible", ^{ return @{ @"edible": cod }; });
574
-
575
- QuickSpecEnd
576
- ```
577
-
578
- Shared examples can include any number of `it`, `context`, and
579
- `describe` blocks. They save a *lot* of typing when running
580
- the same tests against several different kinds of objects.
581
-
582
- In some cases, you won't need any additional context. In Swift, you can
583
- simply use `sharedExampleFor` closures that take no parameters. This
584
- might be useful when testing some sort of global state:
585
-
586
- ```swift
587
- // Swift
588
-
589
- import Quick
590
-
591
- sharedExamplesFor("everything under the sea") {
592
- // ...
593
- }
594
-
595
- itBehavesLike("everything under the sea")
596
- ```
597
-
598
- > In Objective-C, you'll have to pass a block that takes a
599
- `QCKDSLSharedExampleContext`, even if you don't plan on using that
600
- argument. Sorry, but that's the way the cookie crumbles!
601
- :cookie: :bomb:
602
-
603
- ## Using Quick in Objective-C: The Optional Shorthand Syntax
604
-
605
- Quick works equally well in both Swift and Objective-C.
606
-
607
- Importing Quick in an Objective-C file defines macros named `it` and
608
- `itShouldBehaveLike`, as well as functions like `context()`, `describe()`, etc.
609
- If the project you are testing also defines symbols with these names, you may
610
- encounter confusing build failures. In that case, you can avoid namespace
611
- collision by turning off Quick's optional "shorthand" syntax:
612
-
613
- ```objc
614
- #define QUICK_DISABLE_SHORT_SYNTAX 1
615
-
616
- #import <Quick/Quick.h>
617
-
618
- QuickSpecBegin(DolphinSpec)
619
- // ...
620
- QuickSpecEnd
621
- ```
622
-
623
- You must define the `QUICK_DISABLE_SHORT_SYNTAX` macro *before*
624
- importing the Quick header.
625
-
626
- ### Caveat: Your Test Target Must Include At Least One Swift File
627
-
628
- The Swift stdlib will not be linked into your test target, and thus
629
- Quick will fail to execute properly, if you test target does not contain
630
- *at least one* Swift file. If it does not, your tests will exit
631
- prematurely with the following error:
632
-
633
- ```
634
- *** Test session exited(82) without checking in. Executable cannot be
635
- loaded for some other reason, such as a problem with a library it
636
- depends on or a code signature/entitlements mismatch.
637
- ```
638
-
639
- To fix the problem, add a blank file called `SwiftSpec.swift` to your test target:
640
-
641
- ```swift
642
- // SwiftSpec.swift
643
-
644
- import Quick
645
- ```
646
-
647
- > For more details on this issue, see https://github.com/Quick/Quick/issues/164.
648
-
649
- ## Nimble: Assertions Using `expect(...).to`
650
-
651
- Quick provides an easy language to define examples and example groups. Within those
652
- examples, [Nimble](https://github.com/Quick/Nimble) provides a simple
653
- language to define expectations--that is, to assert that code behaves a
654
- certain way, and to display a test failure if it doesn't.
655
-
656
- Nimble expectations use the `expect(...).to` syntax:
657
-
658
- ```swift
659
- // Swift
660
-
661
- import Nimble
662
-
663
- expect(person.greeting).to(equal("Oh, hi."))
664
- expect(person.greeting).notTo(equal("Hello!"))
665
- expect(person.isHappy).toEventually(beTruthy())
666
- ```
667
-
668
- ```objc
669
- // Objective-C
670
-
671
- #import <Nimble/Nimble.h>
672
-
673
- expect(person.greeting).to(equal(@"Oh, hi."));
674
- expect(person.greeting).notTo(equal(@"Hello!"));
675
- expect(@(person.isHappy)).toEventually(beTruthy());
676
- ```
677
-
678
- You can find much more detailed documentation on
679
- [Nimble](https://github.com/Quick/Nimble), including a
680
- full set of available matchers and details on how to perform asynchronous tests,
681
- in [the project's README](https://github.com/Quick/Nimble).
682
-
683
- ## Testing UIKit with Quick
684
-
685
- Quick can be used for testing UIKit interaction as well. Say, for example, we have a `DolphinTableViewController` that displays one cell with label `Bottlenose`. We want to test that the cell gets displayed when the view is loaded. Additionally, we would like to delete the row upon selecting it. An approach might be:
686
-
687
- ```swift
688
- // Swift
689
-
690
- import UIKit
691
- import Quick
692
- import Nimble
693
-
694
- class DolphinTableViewControllerSpecs: QuickSpec {
695
- override func spec() {
696
- var viewController: DolphinTableViewController!
697
-
698
- beforeEach {
699
- viewController = DolphinTableViewController()
700
- }
701
-
702
- describe("viewDidLoad") {
703
- beforeEach {
704
- // Accessing the view property causes the UIKit framework to trigger the necessary methods to render the view.
705
- viewController.view
706
- }
707
-
708
-
709
- it("loads the table view with one cell") {
710
- let tableView = viewController.tableView
711
-
712
- var indexPath = NSIndexPath(forRow: 0, inSection: 0)
713
- var cell = viewController.tableView(tableView, cellForRowAtIndexPath: indexPath)
714
-
715
- expect(cell.textLabel?.text).to(equal("Bottlenose"))
716
- }
717
- }
718
-
719
- describe("didSelectRowAtIndexPath") {
720
- beforeEach {
721
- // Causes the UIKit framework to trigger the necessary methods to render the view and perform viewWillAppear: and viewDidAppear: callbacks
722
- viewController.beginAppearanceTransition(true, animated: false)
723
- viewController.endAppearanceTransition()
724
- }
725
-
726
- it("deletes the selected row and reloads the tableView's data") {
727
- let tableView = viewController.tableView
728
- let indexPath = NSIndexPath(forRow: 0, inSection: 0)
729
-
730
- viewController.tableView(tableView, didSelectRowAtIndexPath: indexPath)
731
-
732
- var cell = viewController.tableView(tableView, cellForRowAtIndexPath: indexPath)
733
- expect(cell.textLabel?.text).to(beNil())
734
- }
735
- }
736
- }
737
- }
738
- ```
739
-
740
- ```objc
741
- // Objective-C
742
-
743
- #import <UIKit/UIKit.h>
744
- #import <Quick/Quick.h>
745
- #import <Nimble/Nimble.h>
746
-
747
- QuickSpecBegin(DolphinTableViewControllerSpec)
748
-
749
- describe(@"viewDidLoad", ^{
750
- __block DolphinTableViewController *viewController = nil;
751
-
752
- beforeEach(^{
753
- viewController = [[DolphinTableViewController alloc] init];
754
- });
755
-
756
- it(@"loads the table view with three types of dolphin", ^{
757
- beforeEach(^{
758
- // Accessing the view property causes the UIKit framework to trigger the necessary methods to render the view.
759
- [viewController view];
760
- });
761
-
762
- UITableView *tableView = [viewController tableView];
763
- NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0];
764
- UITableViewCell *cell = [viewController tableView:tableView cellForRowAtIndexPath:indexPath];
765
-
766
- expect(@([[cell textLabel] text])).to(equal(@"Bottlenose"));
767
- });
768
- }
769
-
770
- describe(@"didSelectRowAtIndexPath", ^{
771
- __block DolphinTableViewController *viewController = nil;
772
-
773
- beforeEach(^{
774
- // Causes the UIKit framework to trigger the necessary methods to render the view and perform viewWillAppear: and
775
- viewController = [[DolphinTableViewController alloc] init];
776
- [viewController beginAppearanceTransition:YES animated:NO];
777
- [viewController endAppearanceTransition];
778
- });
779
-
780
- it(@"deletes the selected row and reloads the tableView's data", ^{
781
- UITableView *tableView = [viewController tableView];
782
- NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0];
783
-
784
- [viewController tableView:tableView didSelectRowAtIndexPath:indexPath];
785
-
786
- UITableViewCell *cell = [viewController tableView:tableView cellForRowAtIndexPath:indexPath];
787
-
788
- expect(@([[cell textLabel] text])).to(beNil());
789
- });
790
- }
791
-
792
- QuickSpecEnd
793
- ```
794
-
795
- ## How to Install Quick
796
-
797
- > This module is beta software, it currently supports Xcode 6 Beta 4.
798
-
799
- Quick provides the syntax to define examples and example groups. Nimble
800
- provides the `expect(...).to` assertion syntax. You may use either one,
801
- or both, in your tests.
802
-
803
- To use Quick and Nimble to test your iOS or OS X applications, follow these 4 easy steps:
804
-
805
- 1. [Clone the Quick and Nimble repositories](#1-clone-the-quick-and-nimble-repositories)
806
- 2. [Add `Quick.xcodeproj` and `Nimble.xcodeproj` to your test target](#2-add-quickxcodeproj-and-nimblexcodeproj-to-your-test-target)
807
- 3. [Link `Quick.framework` and `Nimble.framework`](#3-link-quickframework-and-nimbleframework)
808
- 4. Start writing specs!
809
-
810
- Example projects with this complete setup is available in the
811
- [`Examples`](https://github.com/modocache/Quick/tree/master/Examples) directory.
812
-
813
- ### 1. Clone the Quick and Nimble repositories
814
-
815
- ```sh
816
- git clone git@github.com:Quick/Quick.git Vendor/Quick
817
- git clone git@github.com:Quick/Nimble.git Vendor/Nimble
818
- ```
819
-
820
- ### 2. Add `Quick.xcodeproj` and `Nimble.xcodeproj` to your test target
821
-
822
- Right-click on the group containing your application's tests and
823
- select `Add Files To YourApp...`.
824
-
825
- ![](http://cl.ly/image/3m110l2s0a18/Screen%20Shot%202014-06-08%20at%204.25.59%20AM.png)
826
-
827
- Next, select `Quick.xcodeproj`, which you downloaded in step 1.
828
-
829
- ![](http://cl.ly/image/431F041z3g1P/Screen%20Shot%202014-06-08%20at%204.26.49%20AM.png)
830
-
831
- Once you've added the Quick project, you should see it in Xcode's project
832
- navigator, grouped with your tests.
833
-
834
- ![](http://cl.ly/image/0p0k2F2u2O3I/Screen%20Shot%202014-06-08%20at%204.27.29%20AM%20copy.png)
835
-
836
- Follow the same steps for `Nimble.xcodeproj`.
837
-
838
- ### 3. Link `Quick.framework` and `Nimble.framework`
839
-
840
- Link the `Quick.framework` during your test target's
841
- `Link Binary with Libraries` build phase. You should see two
842
- `Quick.frameworks`; one is for OS X, and the other is for iOS.
843
-
844
- ![](http://cl.ly/image/2L0G0H1a173C/Screen%20Shot%202014-06-08%20at%204.27.48%20AM.png)
845
-
846
- Do the same for the `Nimble.framework`.
847
-
848
- ### 4. Start writing specs!
849
-
850
- If you run into any problems, please file an issue.
851
-
852
- ## Including Quick in a Git Repository Using Submodules
853
-
854
- The best way to include Quick in a Git repository is by using Git
855
- submodules. Git submodules are great because:
856
-
857
- 1. They track exactly which version of Quick is being used
858
- 2. It's easy to update Quick to the latest--or any other--version
859
-
860
- ### Adding Quick as a Git Submodule
861
-
862
- To use Git submodules, follow the same steps as above, except instead of
863
- cloning the Quick and Nimble repositories, add them to your project as
864
- submodules:
865
-
866
- ```sh
867
- mkdir Vendor # you can keep your submodules in their own directory
868
- git submodule add git@github.com:Quick/Quick.git Vendor/Quick
869
- git submodule add git@github.com:Quick/Nimble.git Vendor/Nimble
870
- git submodule update --init --recursive
871
- ```
872
-
873
- ### Updating the Quick Submodule
874
-
875
- If you ever want to update the Quick submodule to latest version, enter
876
- the Quick directory and pull from the master repository:
877
-
878
- ```sh
879
- cd Vendor/Quick
880
- git pull --rebase origin master
881
- ```
882
-
883
- Your Git repository will track changes to submodules. You'll want to
884
- commit the fact that you've updated the Quick submodule:
885
-
886
- ```sh
887
- git commit -m "Updated Quick submodule"
888
- ```
889
-
890
- ### Cloning a Repository that Includes a Quick Submodule
891
-
892
- After other people clone your repository, they'll have to pull down the
893
- submodules as well. They can do so by running the `git submodule update`
894
- command:
895
-
896
- ```sh
897
- git submodule update --init --recursive
898
- ```
899
-
900
- You can read more about Git submodules
901
- [here](http://git-scm.com/book/en/Git-Tools-Submodules). To see examples
902
- of Git submodules in action, check out any of the repositories linked to
903
- in the ["Who Uses Quick"](#who-uses-quick) section of this guide.
904
-
905
- ## How to Install Quick using Beta CocoaPods
906
-
907
- If you would like to use Quick with CocoaPods today, you will need to use
908
- rubygem's [Bundler](http://bundler.io) to use the swift branch of CocoaPods. This
909
- can be done by including a Gemfile that looks like this:
910
-
911
- ```ruby
912
- source 'https://rubygems.org'
913
-
914
- gem 'cocoapods', :git => 'https://github.com/CocoaPods/CocoaPods.git', :branch => 'swift'
915
- gem 'cocoapods-core', :git => 'https://github.com/CocoaPods/Core.git'
916
- gem 'xcodeproj', :git => 'https://github.com/CocoaPods/Xcodeproj.git'
917
- gem 'claide', :git => 'https://github.com/CocoaPods/CLAide.git'
918
- ```
919
-
920
- Then run `bundle install` to start using Swift CocoaPods for just this project.
921
- Then in your Podfile, add the following to your test target.
922
-
923
- ```
924
- pod 'Quick', :git => 'https://github.com/Quick/Quick', :tag => 'v0.2.1'
925
- ```
926
-
927
- Finally, run `bundle exec pod install`. The `bundle exec` ensures you're using
928
- the Swift CocoaPods version from your Gemfile.
929
-
930
- ## How to Install Quick File Templates
931
-
932
- The Quick repository includes file templates for both Swift and
933
- Objective-C specs.
934
-
935
- ### Using Alcatraz
936
-
937
- Quick templates can be installed via [Alcatraz](https://github.com/supermarin/Alcatraz),
938
- a package manager for Xcode. Just search for the templates from the
939
- Package Manager window.
940
-
941
- ![](http://f.cl.ly/items/3T3q0G1j0b2t1V0M0T04/Screen%20Shot%202014-06-27%20at%202.01.10%20PM.png)
942
-
943
- ### Manually via the Rakefile
944
-
945
- To manually install the templates, just clone the repository and
946
- run the `templates:install` rake task:
947
-
948
- ```sh
949
- $ git clone git@github.com:Quick/Quick.git
950
- $ rake templates:install
951
- ```
952
-
953
- Uninstalling is easy, too:
954
-
955
- ```sh
956
- $ rake templates:uninstall
957
- ```
958
-
959
- ## Who Uses Quick
960
-
961
- Quick is used by many companies, open-source projects, and individuals,
962
- including [GitHub](https://github.com/github) and
963
- [ReactiveCocoa](https://github.com/ReactiveCocoa). See examples below:
964
-
965
- - https://github.com/ReactiveCocoa/ReactiveCocoa
966
- - https://github.com/github/Archimedes
967
- - https://github.com/libgit2/objective-git
968
- - https://github.com/jspahrsummers/RXSwift
969
- - https://github.com/artsy/eidolon
970
- - https://github.com/AshFurrow/Moya
971
- - https://github.com/nerdyc/Squeal
972
- - https://github.com/pepibumur/SugarRecord
973
-
974
- > Add an issue or [tweet](https://twitter.com/modocache) if you'd like to be added to this list.
975
-
976
- ## License
977
-
978
- Apache 2.0 license. See the `LICENSE` file for details.
979
-