quarry 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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
@@ -1,16 +0,0 @@
1
- --- !ruby/object:RI::MethodDescription
2
- aliases: []
3
-
4
- block_params:
5
- comment:
6
- - !ruby/struct:SM::Flow::P
7
- body: The idea here is to have dynamic docs.
8
- - !ruby/struct:SM::Flow::VERB
9
- body: " doc "X does such and such"\n doc "it is very powerful"\n class X\n doc "f does such and such"\n doc "it is where the power lies"\n def f\n ...\n end\n end\n"
10
- - !ruby/struct:SM::Flow::P
11
- body: One of the great things about doc, is that it can be used to "inherit" documentation.
12
- full_name: Module#doc
13
- is_singleton: false
14
- name: doc
15
- params: (str)
16
- visibility: public
@@ -1,44 +0,0 @@
1
- --- !ruby/object:RI::ClassDescription
2
- attributes:
3
- - !ruby/object:RI::Attribute
4
- comment:
5
- name: after
6
- rw: R
7
- - !ruby/object:RI::Attribute
8
- comment:
9
- name: before
10
- rw: R
11
- - !ruby/object:RI::Attribute
12
- comment:
13
- name: context
14
- rw: R
15
- - !ruby/object:RI::Attribute
16
- comment:
17
- name: description
18
- rw: R
19
- - !ruby/object:RI::Attribute
20
- comment:
21
- name: relation
22
- rw: R
23
- - !ruby/object:RI::Attribute
24
- comment:
25
- name: specification
26
- rw: R
27
- class_methods:
28
- - !ruby/object:RI::MethodSummary
29
- name: new
30
- comment:
31
- - !ruby/struct:SM::Flow::P
32
- body: Design specification. Sepcification can contains sub-specifications.
33
- constants: []
34
-
35
- full_name: Quarry::Design::Specification
36
- includes: []
37
-
38
- instance_methods:
39
- - !ruby/object:RI::MethodSummary
40
- name: check
41
- - !ruby/object:RI::MethodSummary
42
- name: outline
43
- name: Specification
44
- superclass: Object
@@ -1,22 +0,0 @@
1
- --- !ruby/object:RI::ClassDescription
2
- attributes: []
3
-
4
- class_methods:
5
- - !ruby/object:RI::MethodSummary
6
- name: check
7
- - !ruby/object:RI::MethodSummary
8
- name: outline
9
- - !ruby/object:RI::MethodSummary
10
- name: specification
11
- - !ruby/object:RI::MethodSummary
12
- name: specifications
13
- comment:
14
- constants: []
15
-
16
- full_name: Quarry::Design
17
- includes: []
18
-
19
- instance_methods: []
20
-
21
- name: Design
22
- superclass:
@@ -1,52 +0,0 @@
1
- --- !ruby/object:RI::ClassDescription
2
- attributes:
3
- - !ruby/object:RI::Attribute
4
- comment:
5
- name: mocked_class
6
- rw: R
7
- class_methods:
8
- - !ruby/object:RI::MethodSummary
9
- name: echo
10
- - !ruby/object:RI::MethodSummary
11
- name: keys
12
- - !ruby/object:RI::MethodSummary
13
- name: mock
14
- - !ruby/object:RI::MethodSummary
15
- name: mocks
16
- - !ruby/object:RI::MethodSummary
17
- name: spin
18
- comment:
19
- - !ruby/struct:SM::Flow::H
20
- level: 1
21
- text: Mock Object
22
- - !ruby/struct:SM::Flow::P
23
- body: A straightfoward mocking facility. Typically used in test cases. The Mock class offers a few constructors for quickly building mockups.
24
- - !ruby/struct:SM::Flow::VERB
25
- body: " mock - Returns a static reponse.\n echo - Returns the arguments passed-in.\n spin - Returns a rotation of responses.\n keys - Returns an index of responses.\n"
26
- - !ruby/struct:SM::Flow::P
27
- body: Mock classes can be built from sratch or partially framed against other classes.
28
- - !ruby/struct:SM::Flow::H
29
- level: 3
30
- text: Usage
31
- - !ruby/struct:SM::Flow::VERB
32
- body: " class ContextMock < Mock\n mock :response_headers, {}\n spin :host_url, ['http://www.nitrohq.com','http://www.rubyforge.com']\n end\n\n ctx = ContextMock.new\n ctx.response_headers['location'] = url\n ctx.host_url #=> "http://www.nitrohq.com"\n ctx.host_url #=> "http://www.rubyforge.com"\n"
33
- - !ruby/struct:SM::Flow::P
34
- body: Or
35
- - !ruby/struct:SM::Flow::VERB
36
- body: " class ContextMock < Mock(Context)\n ...\n end\n"
37
- constants:
38
- - !ruby/object:RI::Constant
39
- comment:
40
- - !ruby/struct:SM::Flow::P
41
- body: "Certain methods are not mocked:"
42
- - !ruby/struct:SM::Flow::VERB
43
- body: " inspect (tricky)\n class (delegated)\n kind_of? (delegated)\n is_a? (delegated)\n instance_of? (delegated)\n method (works as-is)\n send (works as-is)\n respond_to? (works as-is)\n hash (no way to mock)\n\n <em>id</em>, <em>call</em>, etc. (not meant to be mocked, ever!)\n"
44
- name: UnmockedMethods
45
- value: "%r{^( |inspect |kind_of\\?|is_a\\?|instance_of\\?|class |method|send|respond_to\\? |hash |__ )}x"
46
- full_name: Quarry::Mock::Object
47
- includes: []
48
-
49
- instance_methods: []
50
-
51
- name: Object
52
- superclass: OpenStruct
@@ -1,12 +0,0 @@
1
- --- !ruby/object:RI::MethodDescription
2
- aliases: []
3
-
4
- block_params:
5
- comment:
6
- - !ruby/struct:SM::Flow::P
7
- body: Responds according to a mapping of input parameters.
8
- full_name: Quarry::Mock::Object::keys
9
- is_singleton: true
10
- name: keys
11
- params: ( sym, hsh )
12
- visibility: public
@@ -1,12 +0,0 @@
1
- --- !ruby/object:RI::MethodDescription
2
- aliases: []
3
-
4
- block_params:
5
- comment:
6
- - !ruby/struct:SM::Flow::P
7
- body: Reponds with a rotation of reponses.
8
- full_name: Quarry::Mock::Object::spin
9
- is_singleton: true
10
- name: spin
11
- params: ( sym, arr )
12
- visibility: public
@@ -1,12 +0,0 @@
1
- --- !ruby/object:RI::MethodDescription
2
- aliases: []
3
-
4
- block_params:
5
- comment:
6
- - !ruby/struct:SM::Flow::P
7
- body: Factory method for creating semi-functional mock object classes given the class which is to be mocked. It looks like a constant for purposes of syntactic sugar.
8
- full_name: Quarry#Mockery
9
- is_singleton: false
10
- name: Mockery
11
- params: ( realclass )
12
- visibility: public
@@ -1,95 +0,0 @@
1
- # Copyright (c) 2008 Tiger Ops
2
-
3
- class Object
4
- # Assert a operational relationship.
5
- #
6
- # 4.assert == 3 #=> Assertion Error
7
- #
8
- def assert
9
- return Assertion::True.new(self)
10
- end
11
-
12
- # Assert not an operational relationship.
13
- #
14
- # 4.assert! == 4 #=> Assertion Error
15
- #
16
- def assert!
17
- return Assertion::False.new(self)
18
- end
19
- end
20
-
21
- # Assertion object is a special subclass of Exception,
22
- # used to raise assertion errors.
23
- #
24
- class Assertion < Exception
25
-
26
- #
27
- class True
28
- #
29
- def self.message(msg,&block)
30
- @messages ||= {}
31
- if block
32
- @messages[msg] = block
33
- else
34
- @messages[msg]
35
- end
36
- end
37
-
38
- hide = instance_methods.reject { |m| m.to_s =~ /^__/ }
39
- hide.each { |m| protected m }
40
-
41
- private
42
-
43
- #
44
- def initialize(delegate)
45
- @delegate = delegate
46
- end
47
-
48
- #
49
- def assert(assertion, msg="failed assertion (no message given)")
50
- raise Assertion, msg unless assertion
51
- end
52
-
53
- #
54
- message(:==){ |*a| "Expected #{a[0].inspect} to be equal to #{a[1].inspect}" }
55
-
56
- #
57
- def method_missing( sym, *a, &b )
58
- case sym
59
- when :raise?, :raises?
60
- begin
61
- @delegate.call #yield
62
- assert false, "Expected #{a[0]} to be raised"
63
- rescue Exception => e
64
- assert a[0] === e, "Expected #{a[0]} to be raised, but got #{e.class}"
65
- return e
66
- end
67
- else
68
- msg = message(@delegate, sym, *a, &b)
69
- assert(@delegate.send(sym, *a, &b ), msg)
70
- #assert( @delegate.send(sym, *a, &b ), self.class.message(sym)[@delegate, *a] )
71
- end
72
- end
73
-
74
- #
75
- def message( obj, sym, *a, &b )
76
- "#{sym}\n< #{obj.inspect}\n---\n> #{a.collect{|x| x.inspect}.join(',')}"
77
- end
78
-
79
- end
80
-
81
- #
82
- class False < True
83
- message(:==){ |*a| "Expected #{a[0].inspect} not to be equal to #{a[1].inspect}" }
84
-
85
- def assert(assertion, msg="failed assertion (no message given)")
86
- raise Assertion, msg if assertion
87
- end
88
-
89
- def message( obj, sym, *a, &b )
90
- "#{obj.inspect} should not #{sym} #{a.collect{|x| x.inspect}.join(',')}"
91
- end
92
- end
93
-
94
- end
95
-
@@ -1,45 +0,0 @@
1
- require 'facets/core/string/margin' # TODO get rid of.
2
-
3
- def breakout( error )
4
-
5
- file, line = *error.exception.backtrace[0].split(':')
6
- line = line.to_i
7
-
8
- puts error
9
-
10
- e = "# DEBUG " + error.to_s
11
- e.gsub!("`","'")
12
-
13
- e = Regexp.escape(e)
14
-
15
- case ed = ENV['EDITOR']
16
- when 'vi', 'vim', 'gvim'
17
- cmd = %[
18
- |#{ed} -e -s #{file} <<-EOS
19
- |:#{line}
20
- |a
21
- |#{e}
22
- |.
23
- |:.,+#{e.size}
24
- |EOS
25
- ].margin
26
- else
27
- puts "EDITOR environment variable not set"
28
- end
29
-
30
- system cmd
31
-
32
- end
33
-
34
- # command-line mode
35
-
36
- if __FILE__ == $0
37
-
38
- begin
39
- load $file = ARGV[0]
40
- rescue Exception => e
41
- error = breakout(e)
42
- end
43
-
44
- end
45
-
@@ -1,197 +0,0 @@
1
- #require 'facet/kernel/within?'
2
- require 'quarry/assertion'
3
-
4
- module Quarry
5
- module Design
6
-
7
- class << self
8
- def specifications
9
- @specifications ||= []
10
- end
11
-
12
- def specification(description, &specification)
13
- specifications << Specification.new(nil, description, &specification)
14
- end
15
- alias_method :spec, :specification
16
-
17
- # TODO: make output compatible with unit_diff ?
18
-
19
- def check
20
- specifications.each do |specification|
21
- specification.check
22
- end
23
- end
24
-
25
- def outline
26
- specifications.each do |specification|
27
- specification.outline
28
- end
29
- end
30
- end
31
-
32
- # Design specification. Sepcification can contains sub-specifications.
33
- #
34
- class Specification
35
- attr :relation
36
- attr :description
37
- attr :specification
38
- attr :context
39
- attr :before
40
- attr :after
41
-
42
- # New Specification
43
-
44
- def initialize(relation, description, context=nil, &specification)
45
- @relation = relation
46
- @description = description
47
- @specification = specification
48
- @context = context
49
- @before = context.before if context
50
- @after = context.after if context
51
- end
52
-
53
- # Check Specification
54
-
55
- def check(level=0)
56
- padding = " " * 2 * level
57
-
58
- clause = "#{relation} #{description}".strip
59
-
60
- new_context = Context.new
61
- new_context.instance_eval(&before) if before
62
- begin
63
- new_context.instance_eval(&specification)
64
- puts ("=" * (level+1)) + " " + clause.gsub(/\b\w/){$&.upcase}
65
- rescue Assertion => e
66
- #puts padding + " (FAIL) [#{e.backtrace[2]}] " + clause
67
- puts "* " + clause.gsub('_',' ') + " [#{e.backtrace[2]}]"
68
- puts e if $VERBOSE
69
- rescue Exception => e
70
- raise e if $DEBUG
71
- print padding
72
- #puts padding + " (ERROR) [#{e.backtrace[2]}] " + clause
73
- puts padding + " (ERROR) #{e}"
74
- puts e.backtrace if $VERBOSE
75
- ensure
76
- new_context.instance_eval(&after) if after
77
- end
78
-
79
- new_context.specifications.each do |s|
80
- s.check(level+1)
81
- end
82
- end
83
-
84
- # Outline Specification
85
-
86
- def outline(level=0)
87
- padding = (" " * 2 * level) + "- "
88
- context = Context.new
89
- begin
90
- context.instance_eval(&specification)
91
- rescue Assertion => e
92
- #rescue Exception => e
93
- end
94
-
95
- str = ''
96
- str << "#{relation} " if relation
97
- str << "#{description}"
98
- #str = str.strip #.gsub(/\b\w/){$&.upcase}
99
-
100
- puts padding + str.strip
101
-
102
- context.specifications.each do |s|
103
- s.outline(level+1)
104
- end
105
- end
106
-
107
- # A context provides a "clean room" to build a specification.
108
-
109
- class Context
110
-
111
- def specifications
112
- @specifications ||= []
113
- end
114
-
115
- def before(&before)
116
- before ? @before = before : before
117
- end
118
-
119
- def after(&after)
120
- after ? @after = after : after
121
- end
122
-
123
- def method_missing(relation, *description, &specification)
124
- if description.size > 1
125
- super
126
- else
127
- specifications << Specification.new(relation, description.first, self, &specification)
128
- end
129
- end
130
-
131
- end
132
-
133
- end
134
-
135
- end
136
- end
137
-
138
- at_exit { Quarry::Design.check unless $no_autocheck }
139
-
140
-
141
- =begin demo
142
-
143
- Quarry::Design.specification "Example Specification" do
144
-
145
- context "demonstrate basic assertions" do
146
-
147
- specify "fail if should is false" do
148
- 4.assert == 3
149
- end
150
-
151
- specify "fail if should_not is true" do
152
- 4.assert! == 4
153
- end
154
-
155
- specify "fail on should raise" do
156
- lambda{raise ArgumentError}.assert.raise? SyntaxError
157
- end
158
-
159
- end
160
-
161
- end
162
-
163
- $no_autocheck = true
164
-
165
- Quarry::Design.outline
166
-
167
- =end
168
-
169
-
170
- if __FILE__ == $0
171
-
172
- Quarry::Design.spec "Example Specification" do
173
-
174
- demonstrate "basic assertions" do
175
-
176
- that "4 == 3 fails" do
177
- 4.assert == 3
178
- end
179
-
180
- that "4 != 4 fails" do
181
- 4.assert! == 4
182
- end
183
-
184
- that "raising an ArgumentError does not raise a SyntaxError" do
185
- lambda{raise ArgumentError}.assert.raise? SyntaxError
186
- end
187
-
188
- end
189
-
190
- end
191
-
192
- $no_autocheck = true
193
-
194
- Quarry::Design.outline
195
-
196
- end
197
-
@@ -1,169 +0,0 @@
1
- # = mock.rb
2
- #
3
- # == Copyright (c) 2005 Thomas Sawyer, Michael Granger
4
- #
5
- # Ruby License
6
- #
7
- # This module is free software. You may use, modify, and/or redistribute this
8
- # software under the same terms as Ruby.
9
- #
10
- # This program is distributed in the hope that it will be useful, but WITHOUT
11
- # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
12
- # FOR A PARTICULAR PURPOSE.
13
- #
14
- # == Special Thanks
15
- #
16
- # Thanks goes to Michael Granger for Test::Unit::Mock on which
17
- # this library is partially based.
18
- #
19
- # == Author(s)
20
- #
21
- # * Thomas Sawyer
22
- # * Michael Granger
23
-
24
- require 'ostruct'
25
-
26
- module Quarry
27
-
28
- module Mock
29
-
30
- # = Mock Object
31
- #
32
- # A straightfoward mocking facility. Typically used in test cases.
33
- # The Mock class offers a few constructors for quickly building
34
- # mockups.
35
- #
36
- # mock - Returns a static reponse.
37
- # echo - Returns the arguments passed-in.
38
- # spin - Returns a rotation of responses.
39
- # keys - Returns an index of responses.
40
- #
41
- # Mock classes can be built from sratch or partially framed
42
- # against other classes.
43
- #
44
- # === Usage
45
- #
46
- # class ContextMock < Mock
47
- # mock :response_headers, {}
48
- # spin :host_url, ['http://www.nitrohq.com','http://www.rubyforge.com']
49
- # end
50
- #
51
- # ctx = ContextMock.new
52
- # ctx.response_headers['location'] = url
53
- # ctx.host_url #=> "http://www.nitrohq.com"
54
- # ctx.host_url #=> "http://www.rubyforge.com"
55
- #
56
- # Or
57
- #
58
- # class ContextMock < Mock(Context)
59
- # ...
60
- # end
61
- #
62
- class Object < OpenStruct
63
-
64
- # include these?
65
- #include Test::Unit::Assertions
66
-
67
- # Certain methods are not mocked:
68
- # inspect (tricky)
69
- # class (delegated)
70
- # kind_of? (delegated)
71
- # is_a? (delegated)
72
- # instance_of? (delegated)
73
- # method (works as-is)
74
- # send (works as-is)
75
- # respond_to? (works as-is)
76
- # hash (no way to mock)
77
- #
78
- # __id__, __call__, etc. (not meant to be mocked, ever!)
79
- #
80
-
81
- UnmockedMethods = %r{^(
82
- |inspect
83
- |kind_of\?|is_a\?|instance_of\?|class
84
- |method|send|respond_to\?
85
- |hash
86
- |__
87
- )}x
88
-
89
- class << self
90
-
91
- attr :mocked_class
92
-
93
- def mocks
94
- self.methods(false)
95
- end
96
-
97
- # Mock a static repsonse.
98
- def mock( sym, val )
99
- define_method( sym ) { |*args| val }
100
- end
101
-
102
- # Responds with input.
103
- def echo( sym )
104
- define_method( sym ) { |*args| args }
105
- end
106
-
107
- # Reponds with a rotation of reponses.
108
- def spin( sym, arr )
109
- define_method( sym ) { |*args| arr.push(arr.shift) ; arr[-1] }
110
- end
111
-
112
- # Responds according to a mapping of input parameters.
113
- def keys( sym, hsh )
114
- define_method( sym ) { |*args| hsh[args] }
115
- end
116
-
117
- end
118
-
119
- # Delegate methods: #class, instance_of?, kind_of?, and is_a?
120
-
121
- alias :__class :class
122
-
123
- def class # :nodoc:
124
- return __class.mocked_class
125
- end
126
-
127
- def instance_of?( klass ) # :nodoc:
128
- self.class == klass
129
- end
130
-
131
- def kind_of?( klass ) # :nodoc:
132
- self.class <= klass
133
- end
134
-
135
- alias_method :is_a?, :kind_of?
136
-
137
- end
138
-
139
- end
140
-
141
- end
142
-
143
-
144
- # TODO
145
-
146
- =begin #test
147
-
148
- class MyMock < Mock::Object
149
- mock :m, 10
150
- echo :e
151
- spin :s, [1,2,3]
152
- keys :i, { [:foo] => 'Hello', [:boo] => 'Frog' }
153
-
154
- def a(k) k+1 end
155
- end
156
-
157
- my = MyMock.new
158
-
159
- p my.m
160
- p my.e('hi')
161
- p my.s
162
- p my.s
163
- p my.s
164
- p my.i(:foo)
165
- p my.i(:boo)
166
- p my.a(1)
167
-
168
- =end
169
-