quarry 0.4.0 → 0.5.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 (296) hide show
  1. data/CHANGES +22 -1
  2. data/MANIFEST +30 -339
  3. data/RELEASE +2 -4
  4. data/VERSION +1 -1
  5. data/bin/quarry +14 -10
  6. data/bin/quarry-doc +2 -2
  7. data/lib/quarry/assertion.rb +27 -0
  8. data/lib/quarry/{spec/config.rb → config.rb} +0 -0
  9. data/lib/quarry/document/template.rhtml +239 -0
  10. data/lib/quarry/document.rb +126 -0
  11. data/lib/quarry/expectation.rb +60 -0
  12. data/lib/quarry/extract.rb +2 -0
  13. data/lib/quarry/grammar/assert.rb +48 -0
  14. data/lib/quarry/grammar/expect.rb +114 -0
  15. data/lib/quarry/grammar/legacy/assert.rb +280 -0
  16. data/lib/quarry/grammar/should.rb +50 -0
  17. data/lib/quarry/grammar.rb +4 -0
  18. data/lib/quarry/{spec → markup}/step.rb +4 -3
  19. data/lib/quarry/markup.rb +70 -0
  20. data/lib/quarry/{stub/mock.rb → mock.rb} +1 -1
  21. data/lib/quarry/{loadmonitor.rb → monitor.rb} +0 -0
  22. data/lib/quarry/{stub/probe.rb → probe.rb} +8 -35
  23. data/lib/quarry/reporter/dotprogress.rb +62 -0
  24. data/lib/quarry/reporter/summary.rb +70 -0
  25. data/lib/quarry/reporter/verbatim.rb +82 -0
  26. data/lib/quarry/reporter.rb +70 -0
  27. data/lib/quarry/{spec → runner}/context.rb +7 -2
  28. data/lib/quarry/runner.rb +123 -0
  29. data/lib/quarry/{stub/stub.rb → stub.rb} +1 -1
  30. data/lib/quarry.rb +10 -0
  31. data/spec/basic.rd +0 -2
  32. data/spec/complex.rd +0 -2
  33. data/spec/mock.rd +20 -26
  34. data/spec/stub.rd +8 -12
  35. metadata +48 -361
  36. data/bin/ruby-break +0 -10
  37. data/doc/assets/images/clipboard.jpg +0 -0
  38. data/doc/assets/images/clipboard2.png +0 -0
  39. data/doc/assets/images/darksilver.png +0 -0
  40. data/doc/assets/images/icon/book.jpg +0 -0
  41. data/doc/assets/images/icon/download.gif +0 -0
  42. data/doc/assets/images/icon/letter_r.png +0 -0
  43. data/doc/assets/images/icon/license.png +0 -0
  44. data/doc/assets/images/icon/software.png +0 -0
  45. data/doc/assets/images/icon/source.png +0 -0
  46. data/doc/assets/images/miner.jpg +0 -0
  47. data/doc/assets/images/rbrylmtrx.png +0 -0
  48. data/doc/assets/images/ruby.gif +0 -0
  49. data/doc/assets/images/runneth.png +0 -0
  50. data/doc/assets/images/silver.gif +0 -0
  51. data/doc/assets/images/test.jpg +0 -0
  52. data/doc/assets/jquery/jquery.js +0 -1
  53. data/doc/assets/jquery/jquery.tabs.js +0 -1
  54. data/doc/assets/rdoc_ad.html +0 -12
  55. data/doc/assets/styles/index.css +0 -138
  56. data/doc/guide/stubs.md +0 -125
  57. data/doc/index.html +0 -285
  58. data/doc/log/bstats/stats.html +0 -39
  59. data/doc/log/notes.xml +0 -32
  60. data/doc/log/stats.html +0 -25
  61. data/doc/log/stats.log +0 -14
  62. data/doc/log/syntax.log +0 -0
  63. data/doc/rdoc/classes/Assertion/False.html +0 -177
  64. data/doc/rdoc/classes/Assertion/True.html +0 -152
  65. data/doc/rdoc/classes/Assertion.html +0 -171
  66. data/doc/rdoc/classes/Kernel.html +0 -105
  67. data/doc/rdoc/classes/Method.html +0 -168
  68. data/doc/rdoc/classes/Object.html +0 -507
  69. data/doc/rdoc/classes/Quarry/Break.html +0 -231
  70. data/doc/rdoc/classes/Quarry/Command.html +0 -443
  71. data/doc/rdoc/classes/Quarry/Extract.html +0 -215
  72. data/doc/rdoc/classes/Quarry/MethodProbe.html +0 -325
  73. data/doc/rdoc/classes/Quarry/Mock/Delegator.html +0 -179
  74. data/doc/rdoc/classes/Quarry/Mock/Setter.html +0 -175
  75. data/doc/rdoc/classes/Quarry/Mock.html +0 -233
  76. data/doc/rdoc/classes/Quarry/Spec/Comment.html +0 -237
  77. data/doc/rdoc/classes/Quarry/Spec/Config.html +0 -257
  78. data/doc/rdoc/classes/Quarry/Spec/Context.html +0 -154
  79. data/doc/rdoc/classes/Quarry/Spec/Document.html +0 -382
  80. data/doc/rdoc/classes/Quarry/Spec/Header.html +0 -195
  81. data/doc/rdoc/classes/Quarry/Spec/Macro.html +0 -166
  82. data/doc/rdoc/classes/Quarry/Spec/Markup.html +0 -279
  83. data/doc/rdoc/classes/Quarry/Spec/Reporter/DotProgress.html +0 -234
  84. data/doc/rdoc/classes/Quarry/Spec/Reporter/Summary.html +0 -294
  85. data/doc/rdoc/classes/Quarry/Spec/Reporter/Verbatim.html +0 -311
  86. data/doc/rdoc/classes/Quarry/Spec/Runner.html +0 -352
  87. data/doc/rdoc/classes/Quarry/Spec/Step.html +0 -190
  88. data/doc/rdoc/classes/Quarry/Spec/Template.html +0 -205
  89. data/doc/rdoc/classes/Quarry/Stub/Delegator.html +0 -179
  90. data/doc/rdoc/classes/Quarry/Stub/Setter.html +0 -175
  91. data/doc/rdoc/classes/Quarry/Stub.html +0 -224
  92. data/doc/rdoc/classes/Quarry.html +0 -176
  93. data/doc/rdoc/created.rid +0 -1
  94. data/doc/rdoc/files/CHANGES.html +0 -150
  95. data/doc/rdoc/files/COPYING.html +0 -468
  96. data/doc/rdoc/files/README.html +0 -195
  97. data/doc/rdoc/files/RELEASE.html +0 -122
  98. data/doc/rdoc/files/VERSION.html +0 -107
  99. data/doc/rdoc/files/bin/quarry-doc.html +0 -109
  100. data/doc/rdoc/files/bin/quarry.html +0 -109
  101. data/doc/rdoc/files/bin/ruby-break.html +0 -108
  102. data/doc/rdoc/files/bin/ruby-xacto.html +0 -101
  103. data/doc/rdoc/files/lib/quarry/assert_rb.html +0 -155
  104. data/doc/rdoc/files/lib/quarry/break_rb.html +0 -101
  105. data/doc/rdoc/files/lib/quarry/extract_rb.html +0 -108
  106. data/doc/rdoc/files/lib/quarry/loadmonitor_rb.html +0 -101
  107. data/doc/rdoc/files/lib/quarry/spec/config_rb.html +0 -101
  108. data/doc/rdoc/files/lib/quarry/spec/context_rb.html +0 -101
  109. data/doc/rdoc/files/lib/quarry/spec/document_rb.html +0 -111
  110. data/doc/rdoc/files/lib/quarry/spec/markup_rb.html +0 -108
  111. data/doc/rdoc/files/lib/quarry/spec/reporter/dotprogress_rb.html +0 -108
  112. data/doc/rdoc/files/lib/quarry/spec/reporter/summary_rb.html +0 -108
  113. data/doc/rdoc/files/lib/quarry/spec/reporter/verbatim_rb.html +0 -108
  114. data/doc/rdoc/files/lib/quarry/spec/reporter_rb.html +0 -109
  115. data/doc/rdoc/files/lib/quarry/spec/runner_rb.html +0 -109
  116. data/doc/rdoc/files/lib/quarry/spec/step_rb.html +0 -101
  117. data/doc/rdoc/files/lib/quarry/spec/template_rhtml.html +0 -228
  118. data/doc/rdoc/files/lib/quarry/spec_rb.html +0 -113
  119. data/doc/rdoc/files/lib/quarry/stub/mock_rb.html +0 -101
  120. data/doc/rdoc/files/lib/quarry/stub/probe_rb.html +0 -122
  121. data/doc/rdoc/files/lib/quarry/stub/spec_txt.html +0 -118
  122. data/doc/rdoc/files/lib/quarry/stub/stub_rb.html +0 -101
  123. data/doc/rdoc/fr_class_index.html +0 -56
  124. data/doc/rdoc/fr_file_index.html +0 -55
  125. data/doc/rdoc/fr_method_index.html +0 -117
  126. data/doc/rdoc/index.html +0 -24
  127. data/doc/rdoc/rdoc-style.css +0 -208
  128. data/doc/ri/Assertion/False/assert-i.yaml +0 -10
  129. data/doc/ri/Assertion/False/cdesc-False.yaml +0 -21
  130. data/doc/ri/Assertion/False/message-i.yaml +0 -10
  131. data/doc/ri/Assertion/True/assert-i.yaml +0 -11
  132. data/doc/ri/Assertion/True/cdesc-True.yaml +0 -26
  133. data/doc/ri/Assertion/True/message-c.yaml +0 -11
  134. data/doc/ri/Assertion/True/message-i.yaml +0 -11
  135. data/doc/ri/Assertion/True/method_missing-i.yaml +0 -12
  136. data/doc/ri/Assertion/True/new-c.yaml +0 -11
  137. data/doc/ri/Assertion/cdesc-Assertion.yaml +0 -40
  138. data/doc/ri/Kernel/cdesc-Kernel.yaml +0 -15
  139. data/doc/ri/Method/cdesc-Method.yaml +0 -18
  140. data/doc/ri/Method/migration-i.yaml +0 -12
  141. data/doc/ri/Method/signature-i.yaml +0 -12
  142. data/doc/ri/Object/assert%21-i.yaml +0 -17
  143. data/doc/ri/Object/assert-i.yaml +0 -15
  144. data/doc/ri/Object/assert_raises%21-i.yaml +0 -12
  145. data/doc/ri/Object/assert_raises-i.yaml +0 -15
  146. data/doc/ri/Object/cdesc-Object.yaml +0 -42
  147. data/doc/ri/Object/mock-i.yaml +0 -12
  148. data/doc/ri/Object/refute-i.yaml +0 -13
  149. data/doc/ri/Object/refute_raises-i.yaml +0 -17
  150. data/doc/ri/Object/remove-i.yaml +0 -12
  151. data/doc/ri/Object/should-i.yaml +0 -12
  152. data/doc/ri/Object/should_not-i.yaml +0 -12
  153. data/doc/ri/Object/should_not_raise-i.yaml +0 -12
  154. data/doc/ri/Object/should_raise-i.yaml +0 -12
  155. data/doc/ri/Object/stub-i.yaml +0 -12
  156. data/doc/ri/Quarry/Break/cdesc-Break.yaml +0 -23
  157. data/doc/ri/Quarry/Break/edit-i.yaml +0 -11
  158. data/doc/ri/Quarry/Break/new-c.yaml +0 -11
  159. data/doc/ri/Quarry/Extract/cdesc-Extract.yaml +0 -26
  160. data/doc/ri/Quarry/Extract/create_test-i.yaml +0 -12
  161. data/doc/ri/Quarry/Extract/extract_test_from_file-i.yaml +0 -12
  162. data/doc/ri/Quarry/Extract/test_extract-i.yaml +0 -18
  163. data/doc/ri/Quarry/MethodProbe/cdesc-MethodProbe.yaml +0 -46
  164. data/doc/ri/Quarry/MethodProbe/duckcall-c.yaml +0 -10
  165. data/doc/ri/Quarry/MethodProbe/initialize_copy-i.yaml +0 -10
  166. data/doc/ri/Quarry/MethodProbe/method_missing-i.yaml +0 -10
  167. data/doc/ri/Quarry/MethodProbe/new-c.yaml +0 -10
  168. data/doc/ri/Quarry/Mock/Delegator/cdesc-Delegator.yaml +0 -20
  169. data/doc/ri/Quarry/Mock/Delegator/method_missing-i.yaml +0 -10
  170. data/doc/ri/Quarry/Mock/Delegator/new-c.yaml +0 -10
  171. data/doc/ri/Quarry/Mock/Setter/%3d%3d-i.yaml +0 -10
  172. data/doc/ri/Quarry/Mock/Setter/cdesc-Setter.yaml +0 -18
  173. data/doc/ri/Quarry/Mock/Setter/new-c.yaml +0 -10
  174. data/doc/ri/Quarry/Mock/__table__-i.yaml +0 -11
  175. data/doc/ri/Quarry/Mock/cdesc-Mock.yaml +0 -25
  176. data/doc/ri/Quarry/Mock/method_missing-i.yaml +0 -12
  177. data/doc/ri/Quarry/Mock/new-c.yaml +0 -10
  178. data/doc/ri/Quarry/Spec/Comment/cdesc-Comment.yaml +0 -33
  179. data/doc/ri/Quarry/Spec/Comment/macro%3f-i.yaml +0 -12
  180. data/doc/ri/Quarry/Spec/Comment/new-c.yaml +0 -10
  181. data/doc/ri/Quarry/Spec/Comment/type-i.yaml +0 -12
  182. data/doc/ri/Quarry/Spec/Config/after-i.yaml +0 -12
  183. data/doc/ri/Quarry/Spec/Config/after_spec-i.yaml +0 -12
  184. data/doc/ri/Quarry/Spec/Config/before-i.yaml +0 -12
  185. data/doc/ri/Quarry/Spec/Config/before_spec-i.yaml +0 -12
  186. data/doc/ri/Quarry/Spec/Config/cdesc-Config.yaml +0 -26
  187. data/doc/ri/Quarry/Spec/Config/new-c.yaml +0 -10
  188. data/doc/ri/Quarry/Spec/Context/cdesc-Context.yaml +0 -21
  189. data/doc/ri/Quarry/Spec/Context/new-c.yaml +0 -10
  190. data/doc/ri/Quarry/Spec/Document/cdesc-Document.yaml +0 -76
  191. data/doc/ri/Quarry/Spec/Document/generate-i.yaml +0 -12
  192. data/doc/ri/Quarry/Spec/Document/new-c.yaml +0 -12
  193. data/doc/ri/Quarry/Spec/Document/quiet%3f-i.yaml +0 -12
  194. data/doc/ri/Quarry/Spec/Document/require_rdoc-i.yaml +0 -11
  195. data/doc/ri/Quarry/Spec/Document/save-i.yaml +0 -12
  196. data/doc/ri/Quarry/Spec/Document/template-i.yaml +0 -12
  197. data/doc/ri/Quarry/Spec/Header/cdesc-Header.yaml +0 -30
  198. data/doc/ri/Quarry/Spec/Header/new-c.yaml +0 -10
  199. data/doc/ri/Quarry/Spec/Macro/cdesc-Macro.yaml +0 -22
  200. data/doc/ri/Quarry/Spec/Macro/new-c.yaml +0 -10
  201. data/doc/ri/Quarry/Spec/Markup/cdesc-Markup.yaml +0 -31
  202. data/doc/ri/Quarry/Spec/Markup/description-i.yaml +0 -11
  203. data/doc/ri/Quarry/Spec/Markup/new-c.yaml +0 -11
  204. data/doc/ri/Quarry/Spec/Markup/parse-i.yaml +0 -11
  205. data/doc/ri/Quarry/Spec/Markup/parse_section-i.yaml +0 -11
  206. data/doc/ri/Quarry/Spec/Reporter/DotProgress/cdesc-DotProgress.yaml +0 -21
  207. data/doc/ri/Quarry/Spec/Reporter/DotProgress/report_intro-i.yaml +0 -10
  208. data/doc/ri/Quarry/Spec/Reporter/DotProgress/report_step-i.yaml +0 -10
  209. data/doc/ri/Quarry/Spec/Reporter/DotProgress/report_summary-i.yaml +0 -16
  210. data/doc/ri/Quarry/Spec/Reporter/Summary/cdesc-Summary.yaml +0 -31
  211. data/doc/ri/Quarry/Spec/Reporter/Summary/report_comment-i.yaml +0 -10
  212. data/doc/ri/Quarry/Spec/Reporter/Summary/report_error-i.yaml +0 -10
  213. data/doc/ri/Quarry/Spec/Reporter/Summary/report_fail-i.yaml +0 -10
  214. data/doc/ri/Quarry/Spec/Reporter/Summary/report_header-i.yaml +0 -10
  215. data/doc/ri/Quarry/Spec/Reporter/Summary/report_macro-i.yaml +0 -10
  216. data/doc/ri/Quarry/Spec/Reporter/Summary/report_pass-i.yaml +0 -10
  217. data/doc/ri/Quarry/Spec/Reporter/Verbatim/cdesc-Verbatim.yaml +0 -29
  218. data/doc/ri/Quarry/Spec/Reporter/Verbatim/report_comment-i.yaml +0 -10
  219. data/doc/ri/Quarry/Spec/Reporter/Verbatim/report_error-i.yaml +0 -10
  220. data/doc/ri/Quarry/Spec/Reporter/Verbatim/report_fail-i.yaml +0 -10
  221. data/doc/ri/Quarry/Spec/Reporter/Verbatim/report_header-i.yaml +0 -16
  222. data/doc/ri/Quarry/Spec/Reporter/Verbatim/report_macro-i.yaml +0 -10
  223. data/doc/ri/Quarry/Spec/Reporter/Verbatim/report_pass-i.yaml +0 -10
  224. data/doc/ri/Quarry/Spec/Reporter/cdesc-Reporter.yaml +0 -20
  225. data/doc/ri/Quarry/Spec/Runner/cdesc-Runner.yaml +0 -47
  226. data/doc/ri/Quarry/Spec/Runner/check-i.yaml +0 -12
  227. data/doc/ri/Quarry/Spec/Runner/check_spec-i.yaml +0 -12
  228. data/doc/ri/Quarry/Spec/Runner/new-c.yaml +0 -12
  229. data/doc/ri/Quarry/Spec/Runner/run_step-i.yaml +0 -12
  230. data/doc/ri/Quarry/Spec/Step/cdesc-Step.yaml +0 -30
  231. data/doc/ri/Quarry/Spec/Step/new-c.yaml +0 -10
  232. data/doc/ri/Quarry/Spec/Template/cdesc-Template.yaml +0 -31
  233. data/doc/ri/Quarry/Spec/Template/new-c.yaml +0 -11
  234. data/doc/ri/Quarry/Spec/Template/parse_template-i.yaml +0 -10
  235. data/doc/ri/Quarry/Spec/cdesc-Spec.yaml +0 -15
  236. data/doc/ri/Quarry/Stub/Delegator/cdesc-Delegator.yaml +0 -20
  237. data/doc/ri/Quarry/Stub/Delegator/method_missing-i.yaml +0 -10
  238. data/doc/ri/Quarry/Stub/Delegator/new-c.yaml +0 -10
  239. data/doc/ri/Quarry/Stub/Setter/%3d%3d-i.yaml +0 -10
  240. data/doc/ri/Quarry/Stub/Setter/cdesc-Setter.yaml +0 -18
  241. data/doc/ri/Quarry/Stub/Setter/new-c.yaml +0 -10
  242. data/doc/ri/Quarry/Stub/__table__-i.yaml +0 -11
  243. data/doc/ri/Quarry/Stub/cdesc-Stub.yaml +0 -23
  244. data/doc/ri/Quarry/Stub/method_missing-i.yaml +0 -11
  245. data/doc/ri/Quarry/Stub/new-c.yaml +0 -10
  246. data/doc/ri/Quarry/cdesc-Quarry.yaml +0 -16
  247. data/doc/ri/created.rid +0 -1
  248. data/doc/spec/stub.html +0 -394
  249. data/lib/quarry/assert.rb +0 -198
  250. data/lib/quarry/break.rb +0 -51
  251. data/lib/quarry/spec/document.rb +0 -130
  252. data/lib/quarry/spec/markup.rb +0 -85
  253. data/lib/quarry/spec/reporter/dotprogress.rb +0 -66
  254. data/lib/quarry/spec/reporter/summary.rb +0 -74
  255. data/lib/quarry/spec/reporter/verbatim.rb +0 -87
  256. data/lib/quarry/spec/reporter.rb +0 -74
  257. data/lib/quarry/spec/runner.rb +0 -127
  258. data/lib/quarry/spec/template.rhtml +0 -116
  259. data/lib/quarry/spec.rb +0 -7
  260. data/lib/quarry/stub/spec.txt +0 -113
  261. data/work/consider/document.rb +0 -35
  262. data/work/consider/fixture.rb +0 -153
  263. data/work/deprecated/assert/must.rb +0 -9
  264. data/work/deprecated/assert/should.rb +0 -9
  265. data/work/deprecated/build.rb +0 -82
  266. data/work/deprecated/mock/file.rb +0 -11
  267. data/work/deprecated/mock/mock.0.rb +0 -77
  268. data/work/deprecated/overlay.rb +0 -64
  269. data/work/deprecated/spec.rb +0 -195
  270. data/work/deprecated/stub/stub.0.rb +0 -180
  271. data/work/deprecated/stub/stub.1.rb +0 -114
  272. data/work/deprecated/stub/test_stub.rb +0 -66
  273. data/work/deprecated/test/case.rb +0 -141
  274. data/work/sandbox/assert.rb +0 -100
  275. data/work/sandbox/bug.rb +0 -49
  276. data/work/sandbox/build/announce.rb +0 -213
  277. data/work/sandbox/build/check.rb +0 -109
  278. data/work/sandbox/build/gem.rb +0 -235
  279. data/work/sandbox/build/make.rb +0 -118
  280. data/work/sandbox/build/manpage.rb +0 -201
  281. data/work/sandbox/build/notes.rb +0 -214
  282. data/work/sandbox/build/pack.rb +0 -228
  283. data/work/sandbox/build/rdoc.rb +0 -289
  284. data/work/sandbox/build/rubyforge.rb +0 -91
  285. data/work/sandbox/build/sign.rb +0 -241
  286. data/work/sandbox/build/stamp.rb +0 -37
  287. data/work/sandbox/build/stats.rb +0 -154
  288. data/work/sandbox/build/svn.rb +0 -193
  289. data/work/sandbox/build/test.rb +0 -521
  290. data/work/sandbox/design.rb +0 -200
  291. data/work/sandbox/iface_scanner.rb +0 -102
  292. data/work/sandbox/testunit/assertions/assert_has_keys.rb +0 -38
  293. data/work/sandbox/testunit/assertions/assert_has_only_keys.rb +0 -38
  294. data/work/sandbox/testunit/unit.rb +0 -104
  295. data/work/sandbox/unitspec.rb +0 -54
  296. data/work/sandbox/x_isotest.rb +0 -532
@@ -1,215 +0,0 @@
1
- <?xml version="1.0" encoding="iso-8859-1"?>
2
- <!DOCTYPE html
3
- PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
-
6
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
- <head>
8
- <title>Module: Quarry::Extract</title>
9
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
- <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
- <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
12
- <script type="text/javascript">
13
- // <![CDATA[
14
-
15
- function popupCode( url ) {
16
- window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
- }
18
-
19
- function toggleCode( id ) {
20
- if ( document.getElementById )
21
- elem = document.getElementById( id );
22
- else if ( document.all )
23
- elem = eval( "document.all." + id );
24
- else
25
- return false;
26
-
27
- elemStyle = elem.style;
28
-
29
- if ( elemStyle.display != "block" ) {
30
- elemStyle.display = "block"
31
- } else {
32
- elemStyle.display = "none"
33
- }
34
-
35
- return true;
36
- }
37
-
38
- // Make codeblocks hidden by default
39
- document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
-
41
- // ]]>
42
- </script>
43
-
44
- </head>
45
- <body>
46
-
47
-
48
-
49
- <div id="classHeader">
50
- <table class="header-table">
51
- <tr class="top-aligned-row">
52
- <td><strong>Module</strong></td>
53
- <td class="class-name-in-header">Quarry::Extract</td>
54
- </tr>
55
- <tr class="top-aligned-row">
56
- <td><strong>In:</strong></td>
57
- <td>
58
- <a href="../../files/lib/quarry/extract_rb.html">
59
- lib/quarry/extract.rb
60
- </a>
61
- <br />
62
- </td>
63
- </tr>
64
-
65
- </table>
66
- </div>
67
- <!-- banner header -->
68
-
69
- <div id="bodyContent">
70
-
71
-
72
-
73
- <div id="contextContent">
74
-
75
- <div id="description">
76
- <p>
77
- Extractor is a tool for extracting code from embedded comment blocks.
78
- </p>
79
- <p>
80
- TODO:
81
- </p>
82
- <pre>
83
- - Should extract_block handle more than the first matching block?
84
- - How can we handle embedded code in standard comments? Eg. #
85
- </pre>
86
-
87
- </div>
88
-
89
-
90
- </div>
91
-
92
- <div id="method-list">
93
- <h3 class="section-bar">Methods</h3>
94
-
95
- <div class="name-list">
96
- <a href="#M000019">test_extract</a>&nbsp;&nbsp;
97
- </div>
98
- </div>
99
-
100
- </div>
101
-
102
-
103
- <!-- if includes -->
104
-
105
- <div id="section">
106
-
107
-
108
-
109
-
110
-
111
-
112
-
113
-
114
- <!-- if method_list -->
115
- <div id="methods">
116
- <h3 class="section-bar">Public Instance methods</h3>
117
-
118
- <div id="method-M000019" class="method-detail">
119
- <a name="M000019"></a>
120
-
121
- <div class="method-heading">
122
- <a href="#M000019" class="method-signature">
123
- <span class="method-name">test_extract</span><span class="method-args">(files=nil)</span>
124
- </a>
125
- </div>
126
-
127
- <div class="method-description">
128
- <p>
129
- <a href="Extract.html">Extract</a> unit tests. This task scans every
130
- package script looking for sections of the form:
131
- </p>
132
- <pre>
133
- =begin test
134
- ...
135
- =end
136
- </pre>
137
- <p>
138
- With appropriate headers, it copies these sections to files in your
139
- project&#8216;s test/ dir, which then can be run using the Ratchet test
140
- task. The exact directory layout of the files to be tested is reflected in
141
- the test directory. You can then use project.rb&#8216;s test task to run
142
- the tests.
143
- </p>
144
- <pre>
145
- files Files to extract ['lib/**/*.rb']
146
- output Test directory ['test/']
147
- </pre>
148
- <p><a class="source-toggle" href="#"
149
- onclick="toggleCode('M000019-source');return false;">[Source]</a></p>
150
- <div class="method-source-code" id="M000019-source">
151
- <pre>
152
- <span class="ruby-comment cmt"># File lib/quarry/extract.rb, line 33</span>
153
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">test_extract</span>(<span class="ruby-identifier">files</span>=<span class="ruby-keyword kw">nil</span>)
154
- <span class="ruby-identifier">output</span> = <span class="ruby-value str">'test/embedded'</span> <span class="ruby-comment cmt"># Don't think output should be setable.</span>
155
-
156
- <span class="ruby-identifier">files</span> = <span class="ruby-identifier">files</span> <span class="ruby-operator">||</span> <span class="ruby-value str">'lib/**/*.rb'</span>
157
- <span class="ruby-identifier">files</span> = <span class="ruby-value str">'lib/**/*.rb'</span> <span class="ruby-keyword kw">if</span> <span class="ruby-constant">TrueClass</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">files</span>
158
- <span class="ruby-identifier">files</span> = [<span class="ruby-identifier">files</span>].<span class="ruby-identifier">flatten</span>.<span class="ruby-identifier">compact</span>
159
-
160
- <span class="ruby-identifier">filelist</span> = <span class="ruby-identifier">files</span>.<span class="ruby-identifier">collect</span>{ <span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span> <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">glob</span>(<span class="ruby-identifier">f</span>) }
161
- <span class="ruby-identifier">filelist</span>.<span class="ruby-identifier">flatten!</span>
162
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">filelist</span>.<span class="ruby-identifier">empty?</span>
163
- <span class="ruby-identifier">puts</span> <span class="ruby-value str">&quot;No scripts found from which to extract tests.&quot;</span>
164
- <span class="ruby-keyword kw">return</span>
165
- <span class="ruby-keyword kw">end</span>
166
-
167
- <span class="ruby-constant">FileUtils</span>.<span class="ruby-identifier">mkdir_p</span>(<span class="ruby-identifier">output</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">directory?</span>(<span class="ruby-identifier">output</span>)
168
-
169
- <span class="ruby-comment cmt">#vrunner = VerbosityRunner.new(&quot;Extracting&quot;, verbosity?)</span>
170
- <span class="ruby-comment cmt">#vrunner.setup(filelist.size)</span>
171
-
172
- <span class="ruby-identifier">filelist</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">file</span><span class="ruby-operator">|</span>
173
- <span class="ruby-comment cmt">#vrunner.prepare(file)</span>
174
-
175
- <span class="ruby-identifier">testing</span> = <span class="ruby-identifier">extract_test_from_file</span>( <span class="ruby-identifier">file</span> )
176
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">testing</span>.<span class="ruby-identifier">strip</span>.<span class="ruby-identifier">empty?</span>
177
- <span class="ruby-identifier">status</span> = <span class="ruby-value str">&quot;[NONE]&quot;</span>
178
- <span class="ruby-keyword kw">else</span>
179
- <span class="ruby-identifier">complete_test</span> = <span class="ruby-identifier">create_test</span>(<span class="ruby-identifier">testing</span>, <span class="ruby-identifier">file</span>)
180
- <span class="ruby-identifier">libpath</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">dirname</span>(<span class="ruby-identifier">file</span>)
181
- <span class="ruby-identifier">testfile</span> = <span class="ruby-value str">&quot;test_&quot;</span> <span class="ruby-operator">+</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">basename</span>(<span class="ruby-identifier">file</span>)
182
- <span class="ruby-identifier">fp</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">output</span>, <span class="ruby-identifier">libpath</span>, <span class="ruby-identifier">testfile</span>)
183
- <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">directory?</span>( <span class="ruby-constant">File</span>.<span class="ruby-identifier">dirname</span>(<span class="ruby-identifier">fp</span>))
184
- <span class="ruby-constant">FileUtils</span>.<span class="ruby-identifier">mkdir_p</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">dirname</span>(<span class="ruby-identifier">fp</span>))
185
- <span class="ruby-keyword kw">end</span>
186
- <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">fp</span>, <span class="ruby-value str">&quot;w&quot;</span>){ <span class="ruby-operator">|</span><span class="ruby-identifier">fw</span><span class="ruby-operator">|</span> <span class="ruby-identifier">fw</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">complete_test</span> }
187
- <span class="ruby-identifier">status</span> = <span class="ruby-value str">&quot;[TEST]&quot;</span>
188
- <span class="ruby-keyword kw">end</span>
189
-
190
- <span class="ruby-comment cmt">#vrunner.complete(file, status)</span>
191
- <span class="ruby-keyword kw">end</span>
192
-
193
- <span class="ruby-comment cmt">#vrunner.finish(</span>
194
- <span class="ruby-comment cmt"># :normal =&gt; &quot;#{filelist.size} files had tests extracted.&quot;,</span>
195
- <span class="ruby-comment cmt"># :check =&gt; false</span>
196
- <span class="ruby-comment cmt">#)</span>
197
- <span class="ruby-keyword kw">end</span>
198
- </pre>
199
- </div>
200
- </div>
201
- </div>
202
-
203
-
204
- </div>
205
-
206
-
207
- </div>
208
-
209
-
210
- <div id="validator-badges">
211
- <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
212
- </div>
213
-
214
- </body>
215
- </html>
@@ -1,325 +0,0 @@
1
- <?xml version="1.0" encoding="iso-8859-1"?>
2
- <!DOCTYPE html
3
- PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
-
6
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
- <head>
8
- <title>Class: Quarry::MethodProbe</title>
9
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
- <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
- <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
12
- <script type="text/javascript">
13
- // <![CDATA[
14
-
15
- function popupCode( url ) {
16
- window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
- }
18
-
19
- function toggleCode( id ) {
20
- if ( document.getElementById )
21
- elem = document.getElementById( id );
22
- else if ( document.all )
23
- elem = eval( "document.all." + id );
24
- else
25
- return false;
26
-
27
- elemStyle = elem.style;
28
-
29
- if ( elemStyle.display != "block" ) {
30
- elemStyle.display = "block"
31
- } else {
32
- elemStyle.display = "none"
33
- }
34
-
35
- return true;
36
- }
37
-
38
- // Make codeblocks hidden by default
39
- document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
-
41
- // ]]>
42
- </script>
43
-
44
- </head>
45
- <body>
46
-
47
-
48
-
49
- <div id="classHeader">
50
- <table class="header-table">
51
- <tr class="top-aligned-row">
52
- <td><strong>Class</strong></td>
53
- <td class="class-name-in-header">Quarry::MethodProbe</td>
54
- </tr>
55
- <tr class="top-aligned-row">
56
- <td><strong>In:</strong></td>
57
- <td>
58
- <a href="../../files/lib/quarry/stub/probe_rb.html">
59
- lib/quarry/stub/probe.rb
60
- </a>
61
- <br />
62
- </td>
63
- </tr>
64
-
65
- <tr class="top-aligned-row">
66
- <td><strong>Parent:</strong></td>
67
- <td>
68
- <a href="../Object.html">
69
- Object
70
- </a>
71
- </td>
72
- </tr>
73
- </table>
74
- </div>
75
- <!-- banner header -->
76
-
77
- <div id="bodyContent">
78
-
79
-
80
-
81
- <div id="contextContent">
82
-
83
- <div id="description">
84
- <h1><a href="../Method.html">Method</a> Probe</h1>
85
- <p>
86
- Method::Probe (aka DuckHunter) is a decoy object which is dropped into
87
- methods which records the calls made against it &#8212;hence a method
88
- probe. Of course, it is not perfect &#8212;an inescapable matter it seems
89
- for any internal probe. There are a couple of issues related to
90
- conditionals. Since the method test for a certain condition against the
91
- decoy, how is the decoy to respond? Thus ceratin paths in the code may
92
- never get exceuted and thus go unmapped. If Ruby had better conditional
93
- reflection (i.e. if &#8216;if&#8217;, &#8216;case&#8217;,
94
- &#8216;unless&#8217;, &#8216;when&#8217;, etc. were true methods) then this
95
- could be fixed by making the Probe reentrant, mapping out variant
96
- true/false/nil replies. The likely insurmountable problem though is the
97
- Halting problem. A probe can cause some methods to complete execution.
98
- It&#8216;s pretty rare, but it can happen and little can be done about it
99
- (I think).
100
- </p>
101
- <p>
102
- Note, the alternative to this kind of probe is a program that examines,
103
- rather then executes, the code. This would circumvent the above problems,
104
- but run into difficulties with dynamic evals. It would also be more
105
- complicated, but might prove a better means in the future.
106
- </p>
107
- <p>
108
- This script is provided for experimetnal purposes. Please inform the author
109
- if you find ways to improve it or put it to an interesting use.
110
- </p>
111
- <h2>Synopsis</h2>
112
- <pre>
113
- require 'methodprobe'
114
-
115
- def amethod(x)
116
- x + 1
117
- end
118
-
119
- p method(:amethod).signiture
120
- p method(:amethod).signiture(:class)
121
- p method(:amethod).signiture(:pretty)
122
- </pre>
123
- <p>
124
- produces
125
- </p>
126
- <pre>
127
- [[&quot;+&quot;]]
128
- [{&quot;+&quot;=&gt;[[&quot;Fixnum&quot;]]}]
129
- [[&quot;+( Fixnum )&quot;]]
130
- </pre>
131
-
132
- </div>
133
-
134
-
135
- </div>
136
-
137
- <div id="method-list">
138
- <h3 class="section-bar">Methods</h3>
139
-
140
- <div class="name-list">
141
- <a href="#M000079">duckcall</a>&nbsp;&nbsp;
142
- <a href="#M000081">initialize_copy</a>&nbsp;&nbsp;
143
- <a href="#M000082">method_missing</a>&nbsp;&nbsp;
144
- <a href="#M000080">new</a>&nbsp;&nbsp;
145
- </div>
146
- </div>
147
-
148
- </div>
149
-
150
-
151
- <!-- if includes -->
152
-
153
- <div id="section">
154
-
155
-
156
-
157
-
158
-
159
- <div id="attribute-list">
160
- <h3 class="section-bar">Attributes</h3>
161
-
162
- <div class="name-list">
163
- <table>
164
- <tr class="top-aligned-row context-row">
165
- <td class="context-item-name">decoys</td>
166
- <td class="context-item-value">&nbsp;[R]&nbsp;</td>
167
- <td class="context-item-desc"></td>
168
- </tr>
169
- <tr class="top-aligned-row context-row">
170
- <td class="context-item-name">ducks</td>
171
- <td class="context-item-value">&nbsp;[R]&nbsp;</td>
172
- <td class="context-item-desc"></td>
173
- </tr>
174
- </table>
175
- </div>
176
- </div>
177
-
178
-
179
-
180
- <!-- if method_list -->
181
- <div id="methods">
182
- <h3 class="section-bar">Public Class methods</h3>
183
-
184
- <div id="method-M000079" class="method-detail">
185
- <a name="M000079"></a>
186
-
187
- <div class="method-heading">
188
- <a href="#M000079" class="method-signature">
189
- <span class="method-name">duckcall</span><span class="method-args">() {|| ...}</span>
190
- </a>
191
- </div>
192
-
193
- <div class="method-description">
194
- <p><a class="source-toggle" href="#"
195
- onclick="toggleCode('M000079-source');return false;">[Source]</a></p>
196
- <div class="method-source-code" id="M000079-source">
197
- <pre>
198
- <span class="ruby-comment cmt"># File lib/quarry/stub/probe.rb, line 70</span>
199
- <span class="ruby-keyword kw">def</span> <span class="ruby-constant">MethodProbe</span>.<span class="ruby-identifier">duckcall</span>
200
- <span class="ruby-keyword kw">begin</span>
201
- <span class="ruby-keyword kw">yield</span>
202
- <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">TypeError</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">e</span>
203
- <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">e</span>.<span class="ruby-identifier">message</span>)
204
- <span class="ruby-keyword kw">retry</span>
205
- <span class="ruby-keyword kw">end</span>
206
- <span class="ruby-keyword kw">end</span>
207
- </pre>
208
- </div>
209
- </div>
210
- </div>
211
-
212
- <div id="method-M000080" class="method-detail">
213
- <a name="M000080"></a>
214
-
215
- <div class="method-heading">
216
- <a href="#M000080" class="method-signature">
217
- <span class="method-name">new</span><span class="method-args">()</span>
218
- </a>
219
- </div>
220
-
221
- <div class="method-description">
222
- <p><a class="source-toggle" href="#"
223
- onclick="toggleCode('M000080-source');return false;">[Source]</a></p>
224
- <div class="method-source-code" id="M000080-source">
225
- <pre>
226
- <span class="ruby-comment cmt"># File lib/quarry/stub/probe.rb, line 81</span>
227
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>
228
- <span class="ruby-ivar">@ducks</span>, <span class="ruby-ivar">@decoys</span> = {}, {}
229
- <span class="ruby-keyword kw">end</span>
230
- </pre>
231
- </div>
232
- </div>
233
- </div>
234
-
235
- <h3 class="section-bar">Public Instance methods</h3>
236
-
237
- <div id="method-M000081" class="method-detail">
238
- <a name="M000081"></a>
239
-
240
- <div class="method-heading">
241
- <a href="#M000081" class="method-signature">
242
- <span class="method-name">initialize_copy</span><span class="method-args">(from)</span>
243
- </a>
244
- </div>
245
-
246
- <div class="method-description">
247
- <p><a class="source-toggle" href="#"
248
- onclick="toggleCode('M000081-source');return false;">[Source]</a></p>
249
- <div class="method-source-code" id="M000081-source">
250
- <pre>
251
- <span class="ruby-comment cmt"># File lib/quarry/stub/probe.rb, line 85</span>
252
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize_copy</span>(<span class="ruby-identifier">from</span>)
253
- <span class="ruby-identifier">initialize</span>
254
- <span class="ruby-keyword kw">end</span>
255
- </pre>
256
- </div>
257
- </div>
258
- </div>
259
-
260
- <div id="method-M000082" class="method-detail">
261
- <a name="M000082"></a>
262
-
263
- <div class="method-heading">
264
- <a href="#M000082" class="method-signature">
265
- <span class="method-name">method_missing</span><span class="method-args">(aSym, *args)</span>
266
- </a>
267
- </div>
268
-
269
- <div class="method-description">
270
- <p><a class="source-toggle" href="#"
271
- onclick="toggleCode('M000082-source');return false;">[Source]</a></p>
272
- <div class="method-source-code" id="M000082-source">
273
- <pre>
274
- <span class="ruby-comment cmt"># File lib/quarry/stub/probe.rb, line 89</span>
275
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">method_missing</span>(<span class="ruby-identifier">aSym</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
276
- <span class="ruby-identifier">aSymStr</span> = <span class="ruby-identifier">aSym</span>.<span class="ruby-identifier">to_s</span>
277
-
278
- <span class="ruby-comment cmt"># This will happen the first time</span>
279
- <span class="ruby-ivar">@ducks</span>[<span class="ruby-identifier">aSymStr</span>] <span class="ruby-operator">||=</span> [] <span class="ruby-comment cmt">#unless @ducks[aSymStr]</span>
280
- <span class="ruby-ivar">@ducks</span>[<span class="ruby-identifier">aSymStr</span>] <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">collect</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">a</span><span class="ruby-operator">|</span> <span class="ruby-node">&quot;#{a.class}&quot;</span> }
281
-
282
- <span class="ruby-identifier">decoy</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">dup</span>
283
-
284
- <span class="ruby-ivar">@decoys</span>[<span class="ruby-identifier">aSymStr</span>] <span class="ruby-operator">||=</span> [] <span class="ruby-comment cmt">#unless @decoys[aSymStr]</span>
285
- <span class="ruby-ivar">@decoys</span>[<span class="ruby-identifier">aSymStr</span>] <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">decoy</span>
286
-
287
- <span class="ruby-comment cmt"># build proxy?</span>
288
- <span class="ruby-comment cmt">#begin</span>
289
- <span class="ruby-comment cmt"># d = &lt;&lt;-HERE</span>
290
- <span class="ruby-comment cmt"># def self.#{aSymStr}(*args)</span>
291
- <span class="ruby-comment cmt"># # This will happen the subsequent times</span>
292
- <span class="ruby-comment cmt"># @ducks[&quot;#{aSymStr}&quot;] &lt;&lt; args.collect { |a| #{'&quot;#{a.class}&quot;'} }</span>
293
- <span class="ruby-comment cmt"># @ducks[&quot;#{aSymStr}&quot;].uniq!</span>
294
- <span class="ruby-comment cmt"># decoy = self.dup</span>
295
- <span class="ruby-comment cmt"># @decoys[&quot;#{aSymStr}&quot;] = [] unless @decoys[&quot;#{aSymStr}&quot;]</span>
296
- <span class="ruby-comment cmt"># @decoys[&quot;#{aSymStr}&quot;] &lt;&lt; decoy</span>
297
- <span class="ruby-comment cmt"># decoy</span>
298
- <span class="ruby-comment cmt"># end</span>
299
- <span class="ruby-comment cmt"># HERE</span>
300
- <span class="ruby-comment cmt"># instance_eval d</span>
301
- <span class="ruby-comment cmt">#rescue SyntaxError</span>
302
- <span class="ruby-comment cmt"># puts &quot;This error may be avoidable by returning the failing duck type as the error message.&quot;</span>
303
- <span class="ruby-comment cmt"># raise</span>
304
- <span class="ruby-comment cmt">#end</span>
305
-
306
- <span class="ruby-identifier">decoy</span>
307
- <span class="ruby-keyword kw">end</span>
308
- </pre>
309
- </div>
310
- </div>
311
- </div>
312
-
313
-
314
- </div>
315
-
316
-
317
- </div>
318
-
319
-
320
- <div id="validator-badges">
321
- <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
322
- </div>
323
-
324
- </body>
325
- </html>