quarry 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (313) hide show
  1. data/CHANGES +40 -3
  2. data/MANIFEST +290 -78
  3. data/README +51 -37
  4. data/RELEASE +12 -0
  5. data/VERSION +1 -1
  6. data/bin/quarry +117 -0
  7. data/bin/quarry-doc +26 -0
  8. data/bin/ruby-break +10 -0
  9. data/bin/{xact-ruby → ruby-xacto} +0 -0
  10. data/doc/assets/images/clipboard.jpg +0 -0
  11. data/doc/assets/images/clipboard2.png +0 -0
  12. data/doc/assets/images/darksilver.png +0 -0
  13. data/doc/assets/images/icon/book.jpg +0 -0
  14. data/doc/assets/images/icon/download.gif +0 -0
  15. data/doc/assets/images/icon/letter_r.png +0 -0
  16. data/doc/assets/images/icon/license.png +0 -0
  17. data/doc/assets/images/icon/software.png +0 -0
  18. data/doc/assets/images/icon/source.png +0 -0
  19. data/doc/assets/images/miner.jpg +0 -0
  20. data/doc/assets/images/rbrylmtrx.png +0 -0
  21. data/doc/assets/images/ruby.gif +0 -0
  22. data/doc/assets/images/runneth.png +0 -0
  23. data/doc/assets/images/silver.gif +0 -0
  24. data/doc/assets/images/test.jpg +0 -0
  25. data/doc/assets/jquery/jquery.js +1 -0
  26. data/doc/assets/jquery/jquery.tabs.js +1 -0
  27. data/doc/assets/rdoc_ad.html +12 -0
  28. data/doc/assets/styles/index.css +138 -0
  29. data/doc/guide/stubs.md +125 -0
  30. data/doc/index.html +285 -0
  31. data/doc/log/bstats/stats.html +39 -0
  32. data/doc/log/notes.xml +32 -0
  33. data/doc/log/stats.html +25 -0
  34. data/doc/log/stats.log +14 -0
  35. data/doc/log/syntax.log +0 -0
  36. data/doc/rdoc/classes/Assertion/False.html +151 -106
  37. data/doc/rdoc/classes/Assertion/True.html +128 -113
  38. data/doc/rdoc/classes/Assertion.html +147 -77
  39. data/doc/rdoc/classes/Kernel.html +84 -65
  40. data/doc/rdoc/classes/Method.html +123 -92
  41. data/doc/rdoc/classes/Object.html +468 -115
  42. data/doc/rdoc/classes/Quarry/Break.html +231 -0
  43. data/doc/rdoc/classes/Quarry/Command.html +443 -0
  44. data/doc/rdoc/classes/Quarry/Extract.html +215 -0
  45. data/doc/rdoc/classes/Quarry/MethodProbe.html +203 -145
  46. data/doc/rdoc/classes/Quarry/Mock/Delegator.html +179 -0
  47. data/doc/rdoc/classes/Quarry/Mock/Setter.html +175 -0
  48. data/doc/rdoc/classes/Quarry/Mock.html +211 -67
  49. data/doc/rdoc/classes/Quarry/Spec/Comment.html +237 -0
  50. data/doc/rdoc/classes/Quarry/Spec/Config.html +257 -0
  51. data/doc/rdoc/classes/Quarry/Spec/Context.html +154 -0
  52. data/doc/rdoc/classes/Quarry/Spec/Document.html +382 -0
  53. data/doc/rdoc/classes/Quarry/Spec/Header.html +195 -0
  54. data/doc/rdoc/classes/Quarry/Spec/Macro.html +166 -0
  55. data/doc/rdoc/classes/Quarry/Spec/Markup.html +279 -0
  56. data/doc/rdoc/classes/Quarry/Spec/Reporter/DotProgress.html +234 -0
  57. data/doc/rdoc/classes/Quarry/Spec/Reporter/Summary.html +294 -0
  58. data/doc/rdoc/classes/Quarry/Spec/Reporter/Verbatim.html +311 -0
  59. data/doc/rdoc/classes/Quarry/Spec/Runner.html +352 -0
  60. data/doc/rdoc/classes/Quarry/Spec/Step.html +190 -0
  61. data/doc/rdoc/classes/Quarry/Spec/Template.html +205 -0
  62. data/doc/rdoc/classes/Quarry/Stub/Delegator.html +179 -0
  63. data/doc/rdoc/classes/Quarry/Stub/Setter.html +175 -0
  64. data/doc/rdoc/classes/Quarry/Stub.html +224 -0
  65. data/doc/rdoc/classes/Quarry.html +153 -154
  66. data/doc/rdoc/created.rid +1 -1
  67. data/doc/rdoc/files/CHANGES.html +126 -76
  68. data/doc/rdoc/files/COPYING.html +84 -73
  69. data/doc/rdoc/files/README.html +135 -111
  70. data/doc/rdoc/files/RELEASE.html +122 -0
  71. data/doc/rdoc/files/VERSION.html +85 -74
  72. data/doc/rdoc/files/bin/quarry-doc.html +109 -0
  73. data/doc/rdoc/files/bin/quarry.html +109 -0
  74. data/doc/rdoc/files/bin/ruby-break.html +108 -0
  75. data/doc/rdoc/files/bin/ruby-xacto.html +101 -0
  76. data/doc/rdoc/files/lib/quarry/assert_rb.html +155 -0
  77. data/doc/rdoc/files/lib/quarry/break_rb.html +101 -0
  78. data/doc/rdoc/files/lib/quarry/extract_rb.html +108 -0
  79. data/doc/rdoc/files/lib/quarry/loadmonitor_rb.html +80 -71
  80. data/doc/rdoc/files/lib/quarry/spec/config_rb.html +101 -0
  81. data/doc/rdoc/files/lib/quarry/spec/context_rb.html +101 -0
  82. data/doc/rdoc/files/lib/quarry/spec/document_rb.html +111 -0
  83. data/doc/rdoc/files/lib/quarry/spec/markup_rb.html +108 -0
  84. data/doc/rdoc/files/lib/quarry/spec/reporter/dotprogress_rb.html +108 -0
  85. data/doc/rdoc/files/lib/quarry/spec/reporter/summary_rb.html +108 -0
  86. data/doc/rdoc/files/lib/quarry/spec/reporter/verbatim_rb.html +108 -0
  87. data/doc/rdoc/files/lib/quarry/spec/reporter_rb.html +109 -0
  88. data/doc/rdoc/files/lib/quarry/spec/runner_rb.html +109 -0
  89. data/doc/rdoc/files/lib/quarry/spec/step_rb.html +101 -0
  90. data/doc/rdoc/files/lib/quarry/spec/template_rhtml.html +228 -0
  91. data/doc/rdoc/files/lib/quarry/spec_rb.html +113 -0
  92. data/doc/rdoc/files/lib/quarry/stub/mock_rb.html +101 -0
  93. data/doc/rdoc/files/lib/quarry/stub/probe_rb.html +122 -0
  94. data/doc/rdoc/files/lib/quarry/stub/spec_txt.html +118 -0
  95. data/doc/rdoc/files/lib/quarry/stub/stub_rb.html +101 -0
  96. data/doc/rdoc/fr_class_index.html +48 -52
  97. data/doc/rdoc/fr_file_index.html +47 -57
  98. data/doc/rdoc/fr_method_index.html +109 -69
  99. data/doc/rdoc/index.html +12 -14
  100. data/doc/rdoc/rdoc-style.css +154 -121
  101. data/doc/ri/Assertion/False/cdesc-False.yaml +5 -3
  102. data/doc/ri/Assertion/True/cdesc-True.yaml +4 -2
  103. data/doc/ri/Assertion/True/message-c.yaml +2 -2
  104. data/doc/ri/Assertion/True/message-i.yaml +1 -1
  105. data/doc/ri/Assertion/True/method_missing-i.yaml +4 -3
  106. data/doc/ri/Assertion/cdesc-Assertion.yaml +24 -1
  107. data/doc/ri/Object/assert%21-i.yaml +7 -4
  108. data/doc/ri/Object/assert-i.yaml +3 -2
  109. data/doc/ri/Object/assert_raises%21-i.yaml +12 -0
  110. data/doc/ri/Object/assert_raises-i.yaml +15 -0
  111. data/doc/ri/Object/cdesc-Object.yaml +24 -2
  112. data/doc/ri/{Quarry/Design/Specification/outline-i.yaml → Object/mock-i.yaml} +4 -4
  113. data/doc/ri/Object/refute-i.yaml +13 -0
  114. data/doc/ri/Object/refute_raises-i.yaml +17 -0
  115. data/doc/ri/Object/remove-i.yaml +12 -0
  116. data/doc/ri/{Quarry/Design/check-c.yaml → Object/should-i.yaml} +4 -4
  117. data/doc/ri/Object/should_not-i.yaml +12 -0
  118. data/doc/ri/Object/should_not_raise-i.yaml +12 -0
  119. data/doc/ri/Object/should_raise-i.yaml +12 -0
  120. data/doc/ri/{Quarry/Mock/Object/mock-c.yaml → Object/stub-i.yaml} +5 -5
  121. data/doc/ri/{Module/cdesc-Module.yaml → Quarry/Break/cdesc-Break.yaml} +10 -8
  122. data/doc/ri/Quarry/Break/edit-i.yaml +11 -0
  123. data/doc/ri/Quarry/Break/new-c.yaml +11 -0
  124. data/doc/ri/Quarry/Extract/cdesc-Extract.yaml +26 -0
  125. data/doc/ri/Quarry/Extract/create_test-i.yaml +12 -0
  126. data/doc/ri/Quarry/Extract/extract_test_from_file-i.yaml +12 -0
  127. data/doc/ri/Quarry/Extract/test_extract-i.yaml +18 -0
  128. data/doc/ri/Quarry/Mock/Delegator/cdesc-Delegator.yaml +20 -0
  129. data/doc/ri/Quarry/{Design/Specification/Context → Mock/Delegator}/method_missing-i.yaml +2 -2
  130. data/doc/ri/Quarry/{Design/specification-c.yaml → Mock/Delegator/new-c.yaml} +3 -3
  131. data/doc/ri/{Module/method_added-i.yaml → Quarry/Mock/Setter/%3d%3d-i.yaml} +3 -3
  132. data/doc/ri/Quarry/Mock/Setter/cdesc-Setter.yaml +18 -0
  133. data/doc/ri/Quarry/Mock/Setter/new-c.yaml +10 -0
  134. data/doc/ri/Quarry/Mock/__table__-i.yaml +11 -0
  135. data/doc/ri/Quarry/Mock/cdesc-Mock.yaml +17 -7
  136. data/doc/ri/Quarry/Mock/method_missing-i.yaml +12 -0
  137. data/doc/ri/Quarry/{Design/outline-c.yaml → Mock/new-c.yaml} +2 -2
  138. data/doc/ri/Quarry/Spec/Comment/cdesc-Comment.yaml +33 -0
  139. data/doc/ri/Quarry/Spec/Comment/macro%3f-i.yaml +12 -0
  140. data/doc/ri/Quarry/Spec/Comment/new-c.yaml +10 -0
  141. data/doc/ri/Quarry/Spec/Comment/type-i.yaml +12 -0
  142. data/doc/ri/Quarry/Spec/Config/after-i.yaml +12 -0
  143. data/doc/ri/Quarry/Spec/Config/after_spec-i.yaml +12 -0
  144. data/doc/ri/Quarry/Spec/Config/before-i.yaml +12 -0
  145. data/doc/ri/Quarry/Spec/Config/before_spec-i.yaml +12 -0
  146. data/doc/ri/Quarry/{Design/Specification/Context/cdesc-Context.yaml → Spec/Config/cdesc-Config.yaml} +11 -9
  147. data/doc/ri/Quarry/{Mock/Object/mocks-c.yaml → Spec/Config/new-c.yaml} +2 -2
  148. data/doc/ri/Quarry/Spec/Context/cdesc-Context.yaml +21 -0
  149. data/doc/ri/Quarry/{Design/specifications-c.yaml → Spec/Context/new-c.yaml} +2 -2
  150. data/doc/ri/Quarry/Spec/Document/cdesc-Document.yaml +76 -0
  151. data/doc/ri/Quarry/Spec/Document/generate-i.yaml +12 -0
  152. data/doc/ri/Quarry/{Mock/Object/echo-c.yaml → Spec/Document/new-c.yaml} +4 -4
  153. data/doc/ri/Quarry/Spec/Document/quiet%3f-i.yaml +12 -0
  154. data/doc/ri/Quarry/Spec/Document/require_rdoc-i.yaml +11 -0
  155. data/doc/ri/Quarry/Spec/Document/save-i.yaml +12 -0
  156. data/doc/ri/Quarry/Spec/Document/template-i.yaml +12 -0
  157. data/doc/ri/Quarry/Spec/Header/cdesc-Header.yaml +30 -0
  158. data/doc/ri/Quarry/Spec/Header/new-c.yaml +10 -0
  159. data/doc/ri/Quarry/Spec/Macro/cdesc-Macro.yaml +22 -0
  160. data/doc/ri/Quarry/Spec/Macro/new-c.yaml +10 -0
  161. data/doc/ri/Quarry/Spec/Markup/cdesc-Markup.yaml +31 -0
  162. data/doc/ri/Quarry/Spec/Markup/description-i.yaml +11 -0
  163. data/doc/ri/Quarry/Spec/Markup/new-c.yaml +11 -0
  164. data/doc/ri/Quarry/Spec/Markup/parse-i.yaml +11 -0
  165. data/doc/ri/Quarry/Spec/Markup/parse_section-i.yaml +11 -0
  166. data/doc/ri/Quarry/Spec/Reporter/DotProgress/cdesc-DotProgress.yaml +21 -0
  167. data/doc/ri/Quarry/{Design/Specification/Context/specifications-i.yaml → Spec/Reporter/DotProgress/report_intro-i.yaml} +2 -2
  168. data/doc/ri/Quarry/Spec/Reporter/DotProgress/report_step-i.yaml +10 -0
  169. data/doc/ri/Quarry/Spec/Reporter/DotProgress/report_summary-i.yaml +16 -0
  170. data/doc/ri/Quarry/Spec/Reporter/Summary/cdesc-Summary.yaml +31 -0
  171. data/doc/ri/Quarry/Spec/Reporter/Summary/report_comment-i.yaml +10 -0
  172. data/doc/ri/Quarry/Spec/Reporter/Summary/report_error-i.yaml +10 -0
  173. data/doc/ri/Quarry/Spec/Reporter/Summary/report_fail-i.yaml +10 -0
  174. data/doc/ri/Quarry/Spec/Reporter/Summary/report_header-i.yaml +10 -0
  175. data/doc/ri/Quarry/Spec/Reporter/Summary/report_macro-i.yaml +10 -0
  176. data/doc/ri/Quarry/{Design/Specification/Context/before-i.yaml → Spec/Reporter/Summary/report_pass-i.yaml} +3 -3
  177. data/doc/ri/Quarry/Spec/Reporter/Verbatim/cdesc-Verbatim.yaml +29 -0
  178. data/doc/ri/Quarry/Spec/Reporter/Verbatim/report_comment-i.yaml +10 -0
  179. data/doc/ri/Quarry/Spec/Reporter/Verbatim/report_error-i.yaml +10 -0
  180. data/doc/ri/Quarry/Spec/Reporter/Verbatim/report_fail-i.yaml +10 -0
  181. data/doc/ri/Quarry/Spec/Reporter/Verbatim/report_header-i.yaml +16 -0
  182. data/doc/ri/Quarry/Spec/Reporter/Verbatim/report_macro-i.yaml +10 -0
  183. data/doc/ri/Quarry/Spec/Reporter/Verbatim/report_pass-i.yaml +10 -0
  184. data/doc/ri/Quarry/Spec/Reporter/cdesc-Reporter.yaml +20 -0
  185. data/doc/ri/Quarry/Spec/Runner/cdesc-Runner.yaml +47 -0
  186. data/doc/ri/Quarry/{Design/Specification → Spec/Runner}/check-i.yaml +3 -3
  187. data/doc/ri/Quarry/Spec/Runner/check_spec-i.yaml +12 -0
  188. data/doc/ri/Quarry/{Design/Specification → Spec/Runner}/new-c.yaml +2 -2
  189. data/doc/ri/Quarry/Spec/Runner/run_step-i.yaml +12 -0
  190. data/doc/ri/Quarry/Spec/Step/cdesc-Step.yaml +30 -0
  191. data/doc/ri/Quarry/Spec/Step/new-c.yaml +10 -0
  192. data/doc/ri/Quarry/Spec/Template/cdesc-Template.yaml +31 -0
  193. data/doc/ri/Quarry/Spec/Template/new-c.yaml +11 -0
  194. data/doc/ri/Quarry/{Design/Specification/Context/after-i.yaml → Spec/Template/parse_template-i.yaml} +3 -3
  195. data/doc/ri/Quarry/Spec/cdesc-Spec.yaml +15 -0
  196. data/doc/ri/Quarry/Stub/Delegator/cdesc-Delegator.yaml +20 -0
  197. data/doc/ri/Quarry/Stub/Delegator/method_missing-i.yaml +10 -0
  198. data/doc/ri/Quarry/Stub/Delegator/new-c.yaml +10 -0
  199. data/doc/ri/Quarry/Stub/Setter/%3d%3d-i.yaml +10 -0
  200. data/doc/ri/Quarry/Stub/Setter/cdesc-Setter.yaml +18 -0
  201. data/doc/ri/Quarry/Stub/Setter/new-c.yaml +10 -0
  202. data/doc/ri/Quarry/Stub/__table__-i.yaml +11 -0
  203. data/doc/ri/Quarry/Stub/cdesc-Stub.yaml +23 -0
  204. data/doc/ri/Quarry/Stub/method_missing-i.yaml +11 -0
  205. data/doc/ri/Quarry/Stub/new-c.yaml +10 -0
  206. data/doc/ri/Quarry/cdesc-Quarry.yaml +2 -3
  207. data/doc/ri/created.rid +1 -1
  208. data/doc/spec/stub.html +394 -0
  209. data/lib/quarry/assert.rb +198 -0
  210. data/lib/quarry/break.rb +51 -0
  211. data/lib/quarry/extract.rb +135 -0
  212. data/lib/quarry/loadmonitor.rb +6 -1
  213. data/lib/quarry/spec/config.rb +32 -0
  214. data/lib/quarry/spec/context.rb +19 -0
  215. data/lib/quarry/spec/document.rb +130 -0
  216. data/lib/quarry/spec/markup.rb +85 -0
  217. data/lib/quarry/spec/reporter/dotprogress.rb +66 -0
  218. data/lib/quarry/spec/reporter/summary.rb +74 -0
  219. data/lib/quarry/spec/reporter/verbatim.rb +87 -0
  220. data/lib/quarry/spec/reporter.rb +74 -0
  221. data/lib/quarry/spec/runner.rb +127 -0
  222. data/lib/quarry/spec/step.rb +78 -0
  223. data/lib/quarry/spec/template.rhtml +116 -0
  224. data/lib/quarry/spec.rb +7 -0
  225. data/lib/quarry/stub/mock.rb +94 -0
  226. data/lib/quarry/{methodprobe.rb → stub/probe.rb} +0 -0
  227. data/lib/quarry/stub/spec.txt +113 -0
  228. data/lib/quarry/stub/stub.rb +93 -0
  229. data/meta/abstract +5 -0
  230. data/meta/authors +1 -0
  231. data/meta/created +1 -0
  232. data/meta/homepage +1 -0
  233. data/meta/requires +1 -0
  234. data/meta/summary +1 -0
  235. data/spec/basic.rd +20 -0
  236. data/spec/complex.rd +50 -0
  237. data/spec/mock.rd +53 -0
  238. data/spec/stub.rd +61 -0
  239. data/{lib/quarry → work/consider}/document.rb +0 -0
  240. data/work/consider/fixture.rb +153 -0
  241. data/{lib/quarry → work/deprecated}/assert/must.rb +1 -0
  242. data/{lib/quarry → work/deprecated}/assert/should.rb +0 -0
  243. data/work/deprecated/build.rb +82 -0
  244. data/work/deprecated/mock/file.rb +11 -0
  245. data/work/deprecated/mock/mock.0.rb +77 -0
  246. data/work/deprecated/overlay.rb +64 -0
  247. data/work/deprecated/spec.rb +195 -0
  248. data/work/deprecated/stub/stub.0.rb +180 -0
  249. data/work/deprecated/stub/stub.1.rb +114 -0
  250. data/work/deprecated/stub/test_stub.rb +66 -0
  251. data/work/deprecated/test/case.rb +141 -0
  252. data/work/sandbox/assert.rb +100 -0
  253. data/work/sandbox/bug.rb +49 -0
  254. data/work/sandbox/build/announce.rb +213 -0
  255. data/work/sandbox/build/check.rb +109 -0
  256. data/work/sandbox/build/gem.rb +235 -0
  257. data/work/sandbox/build/make.rb +118 -0
  258. data/work/sandbox/build/manpage.rb +201 -0
  259. data/work/sandbox/build/notes.rb +214 -0
  260. data/work/sandbox/build/pack.rb +228 -0
  261. data/work/sandbox/build/rdoc.rb +289 -0
  262. data/work/sandbox/build/rubyforge.rb +91 -0
  263. data/work/sandbox/build/sign.rb +241 -0
  264. data/work/sandbox/build/stamp.rb +37 -0
  265. data/work/sandbox/build/stats.rb +154 -0
  266. data/work/sandbox/build/svn.rb +193 -0
  267. data/work/sandbox/build/test.rb +521 -0
  268. data/work/sandbox/design.rb +200 -0
  269. data/work/sandbox/iface_scanner.rb +102 -0
  270. data/work/sandbox/testunit/assertions/assert_has_keys.rb +38 -0
  271. data/work/sandbox/testunit/assertions/assert_has_only_keys.rb +38 -0
  272. data/work/sandbox/testunit/unit.rb +104 -0
  273. data/work/sandbox/unitspec.rb +54 -0
  274. data/work/sandbox/x_isotest.rb +532 -0
  275. metadata +318 -93
  276. data/METADATA +0 -22
  277. data/NEWS +0 -8
  278. data/bin/rubybreak +0 -3
  279. data/demo/spec/demo_check.rb +0 -21
  280. data/demo/spec/demo_outline.rb +0 -25
  281. data/demo/test/demo_run.rb +0 -21
  282. data/doc/manual.html2 +0 -1416
  283. data/doc/rdoc/classes/Module.html +0 -165
  284. data/doc/rdoc/classes/Quarry/Design/Specification/Context.html +0 -174
  285. data/doc/rdoc/classes/Quarry/Design/Specification.html +0 -265
  286. data/doc/rdoc/classes/Quarry/Design.html +0 -170
  287. data/doc/rdoc/classes/Quarry/Mock/Object.html +0 -276
  288. data/doc/rdoc/files/MANIFEST.html +0 -630
  289. data/doc/rdoc/files/METADATA.html +0 -92
  290. data/doc/rdoc/files/NEWS.html +0 -99
  291. data/doc/rdoc/files/bin/rubybreak.html +0 -96
  292. data/doc/rdoc/files/bin/xact-ruby.html +0 -92
  293. data/doc/rdoc/files/lib/quarry/assert/must_rb.html +0 -96
  294. data/doc/rdoc/files/lib/quarry/assert/should_rb.html +0 -96
  295. data/doc/rdoc/files/lib/quarry/assertion_rb.html +0 -96
  296. data/doc/rdoc/files/lib/quarry/breakout_rb.html +0 -144
  297. data/doc/rdoc/files/lib/quarry/design/spec_rb.html +0 -100
  298. data/doc/rdoc/files/lib/quarry/document_rb.html +0 -92
  299. data/doc/rdoc/files/lib/quarry/methodprobe_rb.html +0 -111
  300. data/doc/rdoc/files/lib/quarry/mock/object_rb.html +0 -123
  301. data/doc/rdoc/files/lib/quarry/mockery_rb.html +0 -115
  302. data/doc/ri/Module/doc-i.yaml +0 -16
  303. data/doc/ri/Quarry/Design/Specification/cdesc-Specification.yaml +0 -44
  304. data/doc/ri/Quarry/Design/cdesc-Design.yaml +0 -22
  305. data/doc/ri/Quarry/Mock/Object/cdesc-Object.yaml +0 -52
  306. data/doc/ri/Quarry/Mock/Object/keys-c.yaml +0 -12
  307. data/doc/ri/Quarry/Mock/Object/spin-c.yaml +0 -12
  308. data/doc/ri/Quarry/Mockery-i.yaml +0 -12
  309. data/lib/quarry/assertion.rb +0 -95
  310. data/lib/quarry/breakout.rb +0 -45
  311. data/lib/quarry/design/spec.rb +0 -197
  312. data/lib/quarry/mock/object.rb +0 -169
  313. data/lib/quarry/mockery.rb +0 -85
data/meta/created ADDED
@@ -0,0 +1 @@
1
+ 2006-12-16
data/meta/homepage ADDED
@@ -0,0 +1 @@
1
+ http://quarry.rubyforge.org
data/meta/requires ADDED
@@ -0,0 +1 @@
1
+ clio
data/meta/summary ADDED
@@ -0,0 +1 @@
1
+ Ruby Development Libraries
data/spec/basic.rd ADDED
@@ -0,0 +1,20 @@
1
+ = Example of Ruby Quarry Specification
2
+
3
+ Notice this file is just a RDoc formatted text file.
4
+ It could just as well be a Markdown file, or nearly any
5
+ other markup format.
6
+
7
+ Okay. Lets try out some code.
8
+
9
+ (2 + 2).assert == 4
10
+
11
+ Now something that will fail:
12
+
13
+ (2 + 2).assert == 5
14
+
15
+ And some that will raise an error:
16
+
17
+ nobody_knows_method
18
+
19
+ QED.
20
+
data/spec/complex.rd ADDED
@@ -0,0 +1,50 @@
1
+ = Before and After in a Quarry Specification
2
+
3
+ Quarry supports before and after clauses in specifications through
4
+ the use of *BEFORE:* and *AFTER:* indicators. Before and after
5
+ clauses are executed at the beginning and at the end of each test
6
+ step.
7
+
8
+ BEFORE: We use a before clause if we want to setup some code at the
9
+ start of each step.
10
+
11
+ #puts "Starting step..."
12
+
13
+ AFTER: And an after clause to teardown objects after a step.
14
+
15
+ #puts "Finished!"
16
+
17
+ There can only be one before or after clause at a time. So if
18
+ we define a new BEFORE: or AFTER: section later in the specification,
19
+ it will replace the current clause in use.
20
+
21
+ Only use before and after claues when necessary --specifications
22
+ are typically more readible without them. In fact, some developers
23
+ make a policy of avoiding them altogether. YMMV.
24
+
25
+ Macros, and any other non-testable code, can be designated using the
26
+ *MACRO:* indicator. Because the context in which a specification
27
+ is run is a self-extended module, macros are just method definitions.
28
+
29
+ MACRO: Macro's contain code to execute but not tested.
30
+
31
+ def assert_integer(x)
32
+ x.assert.is_a? Integer
33
+ end
34
+
35
+ Okay. Now lets try out some code.
36
+
37
+ (2 + 2).assert == 4
38
+
39
+ assert_integer(4)
40
+
41
+ Now something that will fail:
42
+
43
+ (2 + 2).assert == 5
44
+
45
+ And some that will raise an error:
46
+
47
+ nobody_knows_method
48
+
49
+ QED.
50
+
data/spec/mock.rd ADDED
@@ -0,0 +1,53 @@
1
+ = Quarry's Mocking Facility
2
+
3
+ Require mock.rb library.
4
+
5
+ require 'quarry/stub/mock'
6
+
7
+
8
+ == Delegation Approach
9
+
10
+ obj = "hello"
11
+
12
+ @mck = Quarry::Mock.new
13
+
14
+ @mck.upcase == "HeLLo"
15
+
16
+ alt = obj.mock(@mck)
17
+
18
+ lambda{ alt.upcase }.assert_raises(Assertion)
19
+
20
+ obj.upcase.assert == "HELLO"
21
+
22
+
23
+ == Singleton Approach
24
+
25
+ obj = "hi"
26
+
27
+ obj.extend(@mck)
28
+
29
+ @mck.upcase == "hI"
30
+
31
+ lambda{ obj.upcase }.assert_raises(Assertion)
32
+
33
+ obj.remove(@mck)
34
+
35
+ obj.upcase.assert == "HI"
36
+
37
+
38
+ == Quick Extend Stubs
39
+
40
+ obj = "hey"
41
+
42
+ # implict obj.extend(obj.mock) here
43
+ obj.mock.upcase == "HeY"
44
+
45
+ lambda{ obj.upcase }.assert_raises(Assertion)
46
+
47
+ obj.remove # imples obj.remove(obj.stub)
48
+
49
+ obj.upcase.assert == "HEY"
50
+
51
+ QED.
52
+
53
+
data/spec/stub.rd ADDED
@@ -0,0 +1,61 @@
1
+ = Quarry's Stubbing Facility
2
+
3
+ Require stub.rb library.
4
+
5
+ require 'quarry/stub/stub'
6
+
7
+
8
+ == Delegation Approach
9
+
10
+ We will stub-out a simple string.
11
+
12
+ obj = "hello"
13
+
14
+ We can create a reusable stub module.
15
+
16
+ @stb = Quarry::Stub.new
17
+ @stb.upcase == "HeLLo"
18
+
19
+ Appy the stub module to the object we want to stub.
20
+
21
+ alt = obj.stub(@stb)
22
+
23
+ And get teh newly stubbed output.
24
+
25
+ alt.upcase.assert == "HeLLo"
26
+
27
+ Teh original is still intact.
28
+
29
+ obj.upcase.assert == "HELLO"
30
+
31
+
32
+ == Singleton Approach
33
+
34
+ obj = "hi"
35
+
36
+ obj.extend(@stb)
37
+
38
+ @stb.upcase == "hI"
39
+
40
+ obj.upcase.assert == "hI"
41
+
42
+ obj.remove(@stb)
43
+
44
+ obj.upcase.assert == "HI"
45
+
46
+
47
+ == Quick Extend Stubs
48
+
49
+ obj = "hey"
50
+
51
+ # implict obj.extend(obj.stub) here
52
+ obj.stub.upcase == "HeY"
53
+
54
+ obj.upcase.assert == "HeY"
55
+
56
+ obj.remove # imples obj.remove(obj.stub)
57
+
58
+ obj.upcase.assert == "HEY"
59
+
60
+ QED.
61
+
File without changes
@@ -0,0 +1,153 @@
1
+ require 'facets/core/kernel/constant'
2
+ #require 'facets/more/ormsupport'
3
+ require 'facets/more/settings'
4
+
5
+ require 'nitro/template'
6
+
7
+ module Quarry
8
+
9
+ # A collection of helper methods.
10
+
11
+ class Fixtures
12
+
13
+ # The directory where the fixtures are located.
14
+
15
+ setting :root_dir, :default => 'test/fixture', :doc => 'The directory where the fixtures are located'
16
+
17
+ @fixtures = {}
18
+
19
+ class << self
20
+
21
+ def load(*classes)
22
+ for klass in classes
23
+ f = Fixture.new(klass).load
24
+ @fixtures[f.name] = f
25
+ end
26
+ end
27
+
28
+ def [](klass)
29
+ @fixtures[klass]
30
+ end
31
+
32
+ def []=(klass, fixture)
33
+ @fixtures[klass] = fixture
34
+ end
35
+
36
+ def method_missing(sym)
37
+ if f = @fixtures[sym.to_s]
38
+ return f
39
+ end
40
+ super
41
+ end
42
+ end
43
+ end
44
+
45
+ # Fixtures is a fancy word for ‘sample data’. Fixtures allow you
46
+ # to populate your database with predefined data. Fixtures are
47
+ # typically used during testing or when providing initial data
48
+ # (bootstrap data) for a live application.
49
+ #
50
+ # A Fixture is a collection (Hash) of objects.
51
+
52
+ class Fixture < Hash
53
+
54
+ # The name of this Fixture.
55
+
56
+ attr_accessor :name
57
+
58
+ # The class that the Fixtures refer to.
59
+
60
+ attr_accessor :klass
61
+
62
+ # Used to keep the order.
63
+
64
+ attr_accessor :objects
65
+
66
+ def initialize(klass, options = { } )
67
+ @klass = klass
68
+ @name = class_to_name(klass)
69
+ @objects = []
70
+ load(options[:root_dir] || options[:root] || Fixtures.root_dir)
71
+ end
72
+
73
+ def load(root_dir = Fixtures.root_dir)
74
+ raise("The fixture root directory '#{root_dir}' doesn't exits") unless File.exist?(root_dir)
75
+
76
+ if path = "#{root_dir}/#{@name}.yml" and File.exist?(path)
77
+ parse_yaml(path)
78
+ end
79
+
80
+ if path = "#{root_dir}/#{@name}.yaml" and File.exist?(path)
81
+ parse_yaml(path)
82
+ end
83
+
84
+ if path = "#{root_dir}/#{@name}.csv" and File.exist?(path)
85
+ parse_csv(path)
86
+ end
87
+
88
+ return self
89
+ end
90
+
91
+ # Parse a fixture file in YAML format.
92
+
93
+ def parse_yaml(path)
94
+ require 'yaml'
95
+
96
+ str = Nitro::Template.new.render(File.read(path))
97
+
98
+ if yaml = YAML::load(str)
99
+ for name, data in yaml
100
+ self[name] = instantiate(data)
101
+ end
102
+ end
103
+
104
+ # sort the objects.
105
+
106
+ str.scan(/^(\w*?):$/).each do |key|
107
+ @objects << self[key.to_s]
108
+ end
109
+ end
110
+
111
+ # Parse a fixture file in CSV format. Many RDBM systems and
112
+ # Spreadsheets can export to CVS, so this is a rather useful
113
+ # format.
114
+
115
+ def parse_csv(path)
116
+ require 'csv'
117
+
118
+ str = Nitro::Template.new.render(File.read(path))
119
+
120
+ reader = CSV::Reader.create(str)
121
+ header = reader.shift
122
+
123
+ reader.each_with_index do |row, i|
124
+ data = {}
125
+ row.each_with_index do |cell, j|
126
+ data[header[j].to_s.strip] = cell.to_s.strip
127
+ end
128
+ self["#{@name}_#{i+1}"] = obj = instantiate(data)
129
+ @objects << obj
130
+ end
131
+ end
132
+
133
+ private
134
+
135
+ # Instantiate an actual object from the Fixture data.
136
+
137
+ def instantiate(data)
138
+ obj = @klass.allocate
139
+
140
+ for key, value in data
141
+ obj.instance_variable_set("@#{key}", value)
142
+ end
143
+
144
+ return obj
145
+ end
146
+
147
+ def class_to_name(klass)
148
+ klass.to_s.demodulize.underscore
149
+ end
150
+
151
+ end
152
+
153
+ end
@@ -4,5 +4,6 @@ class Object
4
4
  alias_method :must, :assert
5
5
  alias_method :must!, :assert!
6
6
  alias_method :must_not, :assert!
7
+ alias_method :musnt, :assert!
7
8
  end
8
9
 
File without changes
@@ -0,0 +1,82 @@
1
+ # = TITLE:
2
+ #
3
+ # Utils
4
+ #
5
+ # = COPYING:
6
+ #
7
+ # Copyright (c) 2007 Tiger Ops
8
+ #
9
+ # This file is part of the Reap program.
10
+ #
11
+ # Reap is free software: you can redistribute it and/or modify
12
+ # it under the terms of the GNU General Public License as published by
13
+ # the Free Software Foundation, either version 3 of the License, or
14
+ # (at your option) any later version.
15
+ #
16
+ # Reap is distributed in the hope that it will be useful,
17
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
18
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
+ # GNU General Public License for more details.
20
+ #
21
+ # You should have received a copy of the GNU General Public License
22
+ # along with Reap. If not, see <http://www.gnu.org/licenses/>.
23
+
24
+ require 'yaml' # make it generally available
25
+ require 'rbconfig' # replace with facets/system?
26
+
27
+ require 'quarry/support/options'
28
+ require 'quarry/utils/fileutils'
29
+ require 'quarry/utils/shellutils'
30
+ require 'quarry/utils/netutils'
31
+ #require 'reap/tasksystem'
32
+
33
+ module Quarry
34
+
35
+ class Build
36
+ include ShellUtils
37
+ include FileUtils
38
+ include NetUtils
39
+
40
+ def initialize(*configs)
41
+ configs.each do |config|
42
+ next unless config
43
+ config.each do |key,value|
44
+ send("#{key}=", value) if respond_to?("#{key}=")
45
+ end
46
+ end
47
+ end
48
+
49
+ def initialize(options=nil)
50
+ options ||= {}
51
+ options.each do |k,v|
52
+ k = k.to_s.downcase
53
+ send("#{k}=", v) if respond_to?("#{k}=")
54
+ end
55
+ end
56
+
57
+ # General options.
58
+
59
+ attr_writer :dryrun, :trace, :force, :verbose
60
+
61
+ def dryrun? ; @dryrun ; end
62
+ def trace? ; @trace ; end
63
+ def force? ; @force ; end
64
+ def verbose? ; @verbose ; end
65
+ def debug? ; @debug ; end
66
+
67
+ alias_method :noharm=, :dryrun=
68
+ alias_method :noharm?, :dryrun?
69
+
70
+ def options
71
+ {
72
+ :dryrun => dryrun?,
73
+ :trace => trace?,
74
+ :force => force?,
75
+ :verbose => verbose?,
76
+ :debug => debug?
77
+ }
78
+ end
79
+
80
+ end
81
+
82
+ end
@@ -0,0 +1,11 @@
1
+ # Mock File Class
2
+
3
+ module Quarry
4
+ module Mock
5
+
6
+ class File
7
+ end
8
+
9
+ end
10
+ end
11
+
@@ -0,0 +1,77 @@
1
+ require 'quarry/assert'
2
+
3
+ module Quarry
4
+
5
+ # Quarry's Mocking facility.
6
+ #
7
+ # obj = "hello"
8
+ #
9
+ # obj.mock.upcase == "HeLLo"
10
+ #
11
+ # obj.upcase #=> "HeLLo"
12
+ #
13
+ # obj.mockless!
14
+ #
15
+ # obj.upcase #=> "HELLO"
16
+ #
17
+ class Mock < Module
18
+ attr :object
19
+
20
+ def initialize(object)
21
+ super()
22
+ @object = object
23
+ @table = {}
24
+ object.extend(self)
25
+ end
26
+
27
+ def __table__ ; @table ; end
28
+
29
+ def method_missing(meth, *args, &block)
30
+ table = @table
31
+ interface = [meth, args, block_given?]
32
+
33
+ table[interface] = nil
34
+
35
+ define_method(meth) do |*args|
36
+ result = super
37
+ result.assert == table[interface]
38
+ return result
39
+ end
40
+
41
+ Setter.new(table, interface)
42
+ end
43
+
44
+ #
45
+ class Setter
46
+ def initialize(table, interface)
47
+ @table = table
48
+ @interface = interface
49
+ end
50
+
51
+ def ==(result)
52
+ @table[@interface] = result
53
+ end
54
+ end
55
+
56
+ end
57
+
58
+ #
59
+ class ::Object
60
+
61
+ def mock
62
+ @_mock ||= Mock.new(self)
63
+ end
64
+
65
+ def mockless!
66
+ mock.__table__.each do |interface, result|
67
+ meth = interface[0]
68
+ mock.module_eval do
69
+ remove_method(meth)
70
+ end
71
+ end
72
+ end
73
+
74
+ end
75
+
76
+ end
77
+
@@ -0,0 +1,64 @@
1
+ module Quarry
2
+
3
+ # = Overlay
4
+ #
5
+ # The idea of the Overlay is to proved a convenient way to
6
+ # create test stubs. You can take an original class and
7
+ # turn features on and off at your leasure, substituting
8
+ # in your choice of code piece meal.
9
+ #
10
+ # class X
11
+ # def a; 1; end
12
+ # def b; a + 1; end
13
+ # end
14
+ #
15
+ # XO = Quarry::Overlay.new do
16
+ # def_over(:a) do
17
+ # 2
18
+ # end
19
+ # end
20
+ #
21
+ # x = X.new
22
+ # p x.a #=> 1
23
+ #
24
+ # XO.append_features(X)
25
+ # p x.a #=> 2
26
+ #
27
+ # XO.remove_features(X)
28
+ # p x.a #=> 1
29
+ #
30
+ class Overlay
31
+
32
+ def initialize(&block)
33
+ @over = {}
34
+ @cache = Hash.new{ |h,k| h[k]={} }
35
+ instance_eval(&block) if block_given?
36
+ end
37
+
38
+ def define_method(methname, &block)
39
+ @over[methname] = block
40
+ end
41
+
42
+ def append_features(base)
43
+ @over.each do |name, block|
44
+ next if base.instance_methods(true).include?("#{name}:#{base.__id__}:super")
45
+ if m = base.instance_methods(true).include?(name.to_s)
46
+ base.__send__(:alias_method, "#{name}:#{base.__id__}:super", name)
47
+ base.__send__(:define_method, name, &block)
48
+ end
49
+ end
50
+ end
51
+
52
+ def remove_features(base)
53
+ @over.each do |name, block|
54
+ next unless base.instance_methods(true).include?("#{name}:#{base.__id__}:super")
55
+ if m = base.instance_method("#{name}:#{base.__id__}:super")
56
+ base.__send__(:alias_method, name, "#{name}:#{base.__id__}:super")
57
+ end
58
+ end
59
+ end
60
+
61
+ end
62
+
63
+ end
64
+