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,66 +0,0 @@
1
- require 'quarry/stub'
2
- require 'test/unit'
3
-
4
- class TC_Stub < Test::Unit::TestCase
5
-
6
- class S < Quarry::Stub
7
- stat :m, 10
8
- echo :e
9
- spin :s, [1,2,3]
10
- keys :i, { [:foo] => 'Hello', [:boo] => 'Frog' }
11
-
12
- def a(k) k+1 end
13
- end
14
-
15
- def setup
16
- @s = S.new
17
- end
18
-
19
- def test_stat
20
- assert_equal(10, @s.m)
21
- end
22
-
23
- def test_echo
24
- assert_equal([:hi], @s.e(:hi))
25
- end
26
-
27
- def test_spin
28
- assert_equal(1, @s.s)
29
- assert_equal(2, @s.s)
30
- assert_equal(3, @s.s)
31
- assert_equal(1, @s.s)
32
- end
33
-
34
- def test_keys
35
- assert_equal('Hello', @s.i(:foo))
36
- assert_equal('Frog', @s.i(:boo))
37
- end
38
-
39
- def assert_normal_method
40
- assert_equal(2, @s.a(1))
41
- end
42
- end
43
-
44
- class TC_Stub_Wrapper < Test::Unit::TestCase
45
-
46
- class X
47
- def a; "a"; end
48
- def b; "b"; end
49
- def c; "c"; end
50
- end
51
-
52
- class XS < Quarry::Stub(X)
53
- end
54
-
55
- def setup
56
- @xs = XS.new
57
- end
58
-
59
- def test_responds
60
- assert_equal(nil, @xs.a)
61
- assert_equal(nil, @xs.b)
62
- assert_equal(nil, @xs.c)
63
- end
64
-
65
- end
66
-
@@ -1,141 +0,0 @@
1
- #require 'facet/kernel/within?'
2
- require 'quarry/assert'
3
-
4
- at_exit { Quarry::Test.autotest unless $no_autotest }
5
-
6
- module Quarry
7
- module Test
8
-
9
- # TODO: make output compatible with unit_diff ?
10
-
11
- def self.autotest
12
- ::ObjectSpace.each_object(Suite) do |suite|
13
- puts "Running test suite #{suite.description.upcase}:"
14
- suite.cases.each do |kase|
15
- puts "== #{kase.description.upcase}\n"
16
- kase.units.each_with_index do |test, i|
17
- kase.setup
18
- begin
19
- test.call
20
-
21
- rescue Assertion => e
22
- print "#{i+1}) #{test.description}"
23
- print "\a FAIL! "
24
- puts "[" + e.backtrace[2] + "]"
25
- puts "#{e}\n" if $VERBOSE
26
-
27
- rescue Exception => e
28
- print "#{i+1}) #{test.description}"
29
- print "\a ERROR! "
30
- puts "[" + e.backtrace[2] + "]"
31
- puts "#{e}\n" if $VERBOSE
32
- #puts "#{klass}.#{meth}: #{e}"
33
- ensure
34
- kase.teardown
35
- end
36
- end
37
- end
38
- end
39
- end
40
-
41
- #
42
-
43
- def self.suites
44
- @suites ||= []
45
- end
46
-
47
- def self.suite(description, &testsuite)
48
- suites << Suite.new(description, &testsuite)
49
- end
50
-
51
- # A test suite.
52
-
53
- class Suite
54
- attr :description
55
-
56
- def initialize(description, &testsuite)
57
- @description = description
58
- @testsuite = testsuite
59
- @testcases = []
60
-
61
- instance_eval(&testsuite)
62
- end
63
-
64
- def cases
65
- @testcases ||= []
66
- end
67
-
68
- def test_case(description, &testcase)
69
- cases << Case.new(description, &testcase)
70
- end
71
- end
72
-
73
- # A test case.
74
-
75
- class Case
76
- attr :description
77
-
78
- def initialize(description, &testcase)
79
- @description = description
80
- @testcase = testcase
81
- @testunits = []
82
- instance_eval(&testcase)
83
- end
84
-
85
- def units
86
- @testunits ||= []
87
- end
88
-
89
- def setup; end
90
-
91
- def teardown; end
92
-
93
- def test(description, &testunit)
94
- units << Unit.new(description, &testunit)
95
- end
96
- end
97
-
98
- # A test unit.
99
-
100
- class Unit
101
- attr :description
102
-
103
- def initialize(description, &testunit)
104
- @description = description
105
- @testunit = testunit
106
- end
107
-
108
- def call
109
- @testunit.call
110
- end
111
- end
112
-
113
- end
114
- end
115
-
116
-
117
- # EXAMPLE
118
-
119
- if __FILE__ == $0
120
-
121
- Quarry::Test.suite "example suite" do
122
-
123
- test_case "example case" do
124
-
125
- test "4 should equal 3" do
126
- 4.assert == 3
127
- end
128
-
129
- test "4 should not equal 4" do
130
- 4.assert_not == 4
131
- end
132
-
133
- test "raises syntax error" do
134
- lambda{raise SyntaxError}.should.raise? SyntaxError
135
- end
136
-
137
- end
138
-
139
- end
140
-
141
- end
@@ -1,100 +0,0 @@
1
- class Object
2
- # Asserts a operational relationship.
3
- #
4
- # 4.assert == 3 #=> Assertion Error
5
- #
6
- def assert
7
- return Assert.new(self, true)
8
- end
9
-
10
- # Refutes an operational relationship.
11
- #
12
- # 4.assert! == 4 #=> Assertion Error
13
- #
14
- def assert!
15
- return Assert.new(self, false)
16
- end
17
- end
18
-
19
- # = Assertion
20
- #
21
- # Assertion is a special subclass of Exception.
22
- # An Assertion error is raised when an assertion fails.
23
- #
24
- class Assertion < Exception
25
- end
26
-
27
- # = Assert
28
- #
29
- # The Assert class is an Assertion functor. It delegates
30
- # to the underlying object to test if assertions applied
31
- # to it are successful or not. When they fail it raises
32
- # and Assertion error.
33
- #
34
- class Assert
35
-
36
- hide = instance_methods.reject { |m| m.to_s =~ /^__/ }
37
- hide.each { |m| protected m }
38
-
39
- private
40
-
41
- #
42
- def initialize(delegate, predicate)
43
- @delegate = delegate
44
- @predicate = predicate
45
- end
46
-
47
- #
48
- def method_missing(sym, *a, &b)
49
- case sym
50
- when :raise?, :raises?
51
- begin
52
- @delegate.call #yield
53
- assert false, "Expected #{a[0]} to be raised"
54
- rescue Exception => e
55
- assert a[0] === e, "Expected #{a[0]} to be raised, but got #{e.class}"
56
- return e
57
- end
58
- else
59
- assert(@delegate.__send__(sym, *a, &b), message(@delegate, sym, *a, &b))
60
- end
61
- end
62
-
63
- #
64
- def assert(assertion, msg="failed assertion (no message given)")
65
- if @predicate
66
- raise Assertion, msg unless assertion
67
- else
68
- raise Assertion, msg if assertion
69
- end
70
- end
71
-
72
- #
73
- def message(obj, sym, *a, &b)
74
- #self.class.message(sym)[@delegate, *a] )
75
- if @predicate
76
- "#{obj.inspect} #{sym} #{a.collect{|x| x.inspect}.join(',')}"
77
- else
78
- "NOT #{obj.inspect} #{sym} #{a.collect{|x| x.inspect}.join(',')}"
79
- end
80
- end
81
-
82
- # TODO: Ultimately better messages would be nice.
83
-
84
- #
85
- #def self.message(msg,&block)
86
- # @messages ||= {}
87
- # if block
88
- # @messages[msg] = block
89
- # else
90
- # @messages[msg]
91
- # end
92
- #end
93
-
94
- #
95
- #message(:==){ |*a| "Expected #{a[0].inspect} to be equal to #{a[1].inspect}" }
96
-
97
- end
98
-
99
- # Copyright (c) 2008 Tiger Ops
100
-
data/work/sandbox/bug.rb DELETED
@@ -1,49 +0,0 @@
1
- # Raise a bug.
2
-
3
- module Quarry
4
- class Bug < Exception; end
5
- end
6
-
7
- module Kernel
8
-
9
- # Raises a ScritBug error with a message.
10
- #
11
- # if find_bug then
12
- # bug! "unknown bug found"
13
- # end
14
- #
15
- #--
16
- # Credit goes to Minero Aoki. Cute! :-)
17
- #++
18
- def bug!(message='Report this bug!')
19
- raise Quarry::Bug, "\n[BUG] " + message
20
- end
21
-
22
- end
23
-
24
-
25
- # _____ _
26
- # |_ _|__ ___| |_
27
- # | |/ _ \/ __| __|
28
- # | | __/\__ \ |_
29
- # |_|\___||___/\__|
30
- #
31
- =begin test
32
-
33
- require 'test/unit'
34
-
35
- class TestKernelError < Test::Unit::TestCase
36
-
37
- def test_bug!
38
- assert_raises( Bug ) { bug! }
39
- end
40
-
41
- # def test_demo
42
- # demo(i=''){%{ a = [1,2,3] }}
43
- # o = " a = [1,2,3] #=> [1, 2, 3]\n"
44
- # assert_equal( o, i )
45
- # end
46
-
47
- end
48
-
49
- =end
@@ -1,213 +0,0 @@
1
- require 'quarry/build'
2
-
3
- module Reap
4
-
5
- # Make a release announcement. Generates and can email a release
6
- # announcements. These are nicely formated message and can
7
- # email the message to the specified address(es).
8
- #
9
- # The following settings apply:
10
- #
11
- # title Project title.
12
- # subtitle Brief one-line description.
13
- # version Project version.
14
- # description Long description of project.
15
- # homepage Project homepage web address.
16
- # slogan Motto for you project.
17
- # memo File that contains announcement message.
18
- # template Custom announcement template file.
19
- # mail_to Email address(es) to send announcemnt.
20
- #
21
- # If <em>mail_to</em> is set then these also apply:
22
- #
23
- # from Message FROM address [email].
24
- # subject Subject of email message ([ANN] title verison).
25
- # server Email server to route message.
26
- # port Email server's port.
27
- # domain Email server's domain name.
28
- # account Email account name [email].
29
- # login Login type: plain, cram_md5 or login.
30
- # secure Uses TLS security, true or false?
31
- #
32
- # A template file can be specified that uses "$setting" as
33
- # substitutes for poject information.
34
-
35
- class Announcement < Build
36
-
37
- # Default layout of release announcement.
38
-
39
- DEFAULT_TEMPLATE = <<-END
40
- $title $version
41
- $subtitle
42
- $homepage
43
-
44
- $summary $description
45
-
46
- $memo
47
-
48
- $slogan
49
- END
50
-
51
- # Name of project (ie. unix name).
52
- attr_accessor :project
53
-
54
- # Title of project.
55
- attr_accessor :title
56
-
57
- # Subtitle of project.
58
- attr_accessor :subtitle
59
-
60
- # Version number of project release.
61
- attr_accessor :version
62
-
63
- # Description of project.
64
- attr_accessor :description
65
-
66
- # Project's homepage.
67
- attr_accessor :homepage
68
-
69
- # URL to download.
70
- attr_accessor :download
71
-
72
- # Project slogan.
73
- attr_accessor :slogan
74
-
75
- # To email address(es). If this is not set then
76
- # the announcement is not emailed and instead
77
- # is only sent to stdout.
78
- attr_accessor :mail_to
79
-
80
- # From email address.
81
- attr_accessor :mail_from
82
-
83
- # Memo (personalized message for this release)
84
- attr_accessor :memo
85
-
86
- # User defined announcement template.
87
- attr_accessor :template
88
-
89
- # Subject line (default is "ANN: project version").
90
- attr_accessor :subject
91
-
92
- # Email server
93
- attr_accessor :server
94
-
95
- # Emails server port (default is usually correct).
96
- attr_accessor :port
97
-
98
- # Email account name (defaults to mail_from).
99
- attr_accessor :account
100
-
101
- # User domain (not sure why SMTP requires this?)
102
- attr_accessor :domain
103
-
104
- # Login type (plain, login)
105
- attr_accessor :login_type
106
-
107
- # Use TLS/SSL true or false?
108
- attr_accessor :secure
109
-
110
- # Password (deafults to ENV['PASSWORD']
111
- attr_accessor :password
112
-
113
- #
114
-
115
- def subject
116
- @subject ||= "ANN: #{title}, v#{version}"
117
- end
118
-
119
- #
120
-
121
- def account
122
- @account ||= @mail_from
123
- end
124
-
125
- #config['mail_to'] = nil if keys['mail_to'].empty?
126
-
127
- # Validate settings.
128
-
129
- def validate
130
- raise ArgumentError, "missing title" unless title
131
- raise ArgumentError, "missing version" unless version
132
- end
133
-
134
- # Announcement message.
135
-
136
- def message
137
- # Announce template
138
- unless template
139
- files = Dir.glob("{ANN,doc/[aA]nn,doc/ANN}{,.txt}")
140
- template = files.first
141
- end
142
- template = File.read(template) if template
143
- template = template || DEFAULT_TEMPLATE
144
-
145
- # Announce Memo
146
- unless memo
147
- files = Dir.glob("{MEMO,doc/[mM]emo,doc/MEMO}{,.txt}")
148
- memo = files.first
149
- end
150
- memo = File.read(memo).fold(true) if memo
151
-
152
- # Strip tiny version zero.
153
- #if keys['version'] =~ /[.].*?[.]/
154
- # keys['version'] = keys['version'].chomp('.0')
155
- #end
156
-
157
- # Make announcement message
158
- message = template.dup
159
-
160
- message.gsub!('$memo',memo) if memo # insert memo
161
- #message.gsub!('$stamp',stamp.to_s) # insert stamp
162
-
163
- template.scan(/[$].*?\s/m) do |key|
164
- key = key.strip
165
- name = key[1..-1]
166
- value = info.send(name)
167
- message.gsub!(key, value.to_s.strip)
168
- end
169
-
170
- message.gsub!(/(^|[ ])[$].*?(?=[ ]|$)/,'') # remove unused vars
171
- message.gsub!("\n\n\n","\n") # remove any triple blank lines
172
- message.rstrip!
173
-
174
- #message = release_announcement(config)
175
-
176
- message
177
- end
178
-
179
- #
180
-
181
- def email_message
182
- email(message, email_options)
183
- end
184
-
185
- #
186
-
187
- def email_options
188
- { :to => mail_to,
189
- :from => mail_from,
190
- :subject => subject,
191
- :server => server,
192
- :port => port,
193
- :domain => domain,
194
- :account => account,
195
- :login => login,
196
- :secure => secure
197
- }
198
- end
199
-
200
- end
201
-
202
- end
203
-
204
- # keys = {}
205
- # keys['from'] = info.email
206
- # keys.update info.gather('mail')
207
- # keys.update info.gather('announce')
208
- # keys.update info.select(
209
- # :project, :version, :title, :subtitle, :description,
210
- # :homepage, :download, :slogan
211
- # )
212
- # keys.update override if override
213
-
@@ -1,109 +0,0 @@
1
- require 'quarry/build'
2
-
3
- module Quarry
4
-
5
- #
6
-
7
- class Check < Build
8
-
9
- DEFAULT_LOADPATH = ['lib']
10
-
11
- # List of file path(s) of project scripts to check.
12
-
13
- attr_accessor :loadpath
14
- attr_accessor :exclude
15
-
16
- alias_method :include, :loadpath
17
- alias_method :include=, :loadpath=
18
-
19
- # Veridy syntax of ruby scripts.
20
- #
21
- # This takes one option +:scripts+ which is a glob or list of globs
22
- # of the scripts to check. By default this is all scripts in the libpath(s).
23
-
24
- def syntax(options=nil)
25
- options ||= {}
26
-
27
- glob = options[:include] || options[:loadpath] || loadpath || DEFAULT_LOADPATH
28
- excl = options[:exclude] || exclude || []
29
-
30
- if String===glob
31
- glob = glob.split(/[:;]/)
32
- end
33
-
34
- files = multiglob_r(*glob) - multiglob_r(*excl)
35
- max = files.collect{ |f| f.size }.max
36
- errs = []
37
- cnt = 0
38
-
39
- files.each do |s|
40
- next unless File.file?(s)
41
- #if not system "ruby -c -Ibin:lib:test #{s} &> /dev/null" then
42
- r = system "ruby -c -I#{libpath} #{s} > /dev/null"
43
- if r
44
- puts("%-#{max}s [PASS]" % [s]) #if verbose?
45
- else
46
- puts("%-#{max}s [FAIL]" % [s]) #if verbose?
47
- errs << s #:syntax
48
- cnt += 1
49
- end
50
- end
51
-
52
- if cnt == 0
53
- puts "Syntax checks out."
54
- else
55
- puts "#{cnt} Syntax Failures:\n "
56
- puts errs.join("\n ")
57
- end
58
- end
59
-
60
- # Load each script independently to ensure there are no
61
- # require dependency issues.
62
- #
63
- # WARNING! Only do this on scripts that have no toplevel side-effects!
64
- #
65
- # This takes one option +:scripts+ which is a glob or list of globs
66
- # of the scripts to check. By default this is all scripts in the libpath(s).
67
- #
68
- # FIXME: This isn;t routing output to dev/null as expected.
69
-
70
- def dependencies(options=nil)
71
- options ||= {}
72
-
73
- options ||= {}
74
-
75
- glob = options[:include] || options[:loadpath] || loadpath || DEFAULT_LOADPATH
76
- excl = options[:exclude] || exclude || []
77
-
78
- if String===glob
79
- glob = glob.split(/[:;]/)
80
- end
81
-
82
- files = multiglob_r(*glob) - multiglob_r(*excl)
83
- max = files.collect{ |f| f.size }.max
84
- errs = []
85
- cnt = 0
86
-
87
- files.each do |s|
88
- next unless File.file?(s)
89
- #if not system "ruby -c -Ibin:lib:test #{s} &> /dev/null" then
90
- if r = system("ruby -I#{libpath} #{s} > /dev/null")
91
- puts "%-#{max}s [PASS]" % [s] #if verbose?
92
- else
93
- puts "%-#{max}s [FAIL]" % [s] #if verbose?
94
- errs << s #:load
95
- cnt += 1
96
- end
97
- end
98
-
99
- if cnt == 0
100
- puts "Load dependencies check out."
101
- else
102
- puts "#{cnt} Load Failures:\n "
103
- puts errs.join("\n ")
104
- end
105
- end
106
-
107
- end
108
-
109
- end