cocoapods-deintegrate 0.2.1 → 1.0.0.beta.1

Sign up to get free protection for your applications and to get access to all the features.
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
-