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
@@ -0,0 +1,228 @@
1
+ require 'reap/tool'
2
+
3
+
4
+ module Reap
5
+
6
+ class Site < Build
7
+
8
+ # Remove package products.
9
+ #
10
+ # Can task an +omit+ option as a regular expression
11
+ # omit certain removals.
12
+
13
+ def clobber_packages(opts=nil)
14
+ opts ||= {}
15
+
16
+ omit = opts[:omit]
17
+
18
+ pkgdir = "pkg" # FIXME
19
+
20
+ packages = glob(File.join(pkgdir, '*'))
21
+
22
+ if omit
23
+ packages.reject!{ |path| omit =~ path }
24
+ end
25
+
26
+ packages.each do |path|
27
+ rm_r(path)
28
+ end
29
+ end
30
+
31
+ # Create a Tar'd Gzip package.
32
+
33
+ def package_tgz
34
+ status "Creating .tgz package"
35
+
36
+ config = configuration['pack'] || {}
37
+ config = config['tgz'] || {}
38
+
39
+ package = package.clone
40
+ package.update(config)
41
+
42
+ store = config[:store] || 'pkg'
43
+ templ = config[:template]
44
+
45
+ name = package.stage_name(templ)
46
+ stage = File.join(store, name)
47
+ files = package.filelist
48
+
49
+ stage(stage, files)
50
+
51
+ if dryrun?
52
+ status "tar -cxf #{name}.tgz"
53
+ else
54
+ file = nil
55
+ cd(store) do
56
+ file = tgz(name)
57
+ end
58
+ transfer(file, store)
59
+ end
60
+ end
61
+
62
+ # Create Zip package.
63
+
64
+ def package_zip
65
+ status "Creating .zip package"
66
+
67
+ config = configuration['pack'] || {}
68
+ config = config['zip'] || {}
69
+
70
+ package = package().clone
71
+ package.update(config)
72
+
73
+ store = config[:store] || 'pkg'
74
+ templ = config[:template]
75
+
76
+ name = package.stage_name(templ)
77
+ stage = File.join(store, name)
78
+ files = package.filelist
79
+
80
+ stage(stage, files)
81
+
82
+ if dryrun?
83
+ status "tar -cxf #{name}.zip"
84
+ else
85
+ file = nil
86
+ cd(store) do
87
+ file = zip(name)
88
+ end
89
+ transfer(file, store)
90
+ end
91
+ end
92
+
93
+ # Create a Gem package.
94
+ #
95
+ # TODO: Should this use staging too, like zip/tgz?
96
+
97
+ def package_gem
98
+ status "Creating .gem package"
99
+
100
+ config = configuration['pack'] || {}
101
+ config = config['gem'] || {}
102
+
103
+ package = package().clone
104
+ package.update(config)
105
+
106
+ store = config[:store] || 'pkg'
107
+
108
+ #dir = Dir.pwd
109
+
110
+ file = nil
111
+ #cd(dir) do
112
+ #status "vi #{metadata.name}.gemspec"
113
+ builder = ::Gem::Builder.new(gemspec(package))
114
+ status "gem build #{package.name}"
115
+ unless dryrun?
116
+ file = builder.build
117
+ file = File.expand_path(file)
118
+ end
119
+ #end
120
+
121
+ transfer(file, store)
122
+ end
123
+
124
+ private
125
+
126
+ # Create Gem::Specification.
127
+
128
+ def gemspec(package)
129
+ distribute = package.filelist
130
+ #distribute = Dir.multiglob_with_default( '**/*', distribute )
131
+
132
+ ::Gem::Specification.new do |spec|
133
+ spec.name = package.name
134
+ spec.version = package.version
135
+ spec.summary = package.brief
136
+ spec.description = package.description
137
+ spec.author = package.author
138
+ spec.email = package.email
139
+ spec.rubyforge_project = package.development if /rubyforge.org/ =~ package.development
140
+ spec.homepage = package.homepage
141
+
142
+ # Platform: ruby, mswin32, i586-linux, powerpc-darwin, current
143
+ spec.platform = 'ruby' # TODO current support!
144
+
145
+ spec.require_paths = [package.gem_path].flatten.reverse
146
+
147
+ #if package.platform != 'ruby'
148
+ # spec.require_paths.concat(spec.require_paths.collect{ |d| File.join(d, platform) })
149
+ #end
150
+
151
+ spec.bindir = "bin"
152
+ spec.executables = package.executables
153
+ spec.requirements = package.requirements
154
+ spec.has_rdoc = package.document
155
+
156
+ if package.dependencies
157
+ package.dependencies.each do |d,v|
158
+ spec.add_dependency(*[d,v].compact)
159
+ end
160
+ end
161
+
162
+ spec.extensions = package.compile
163
+
164
+ spec.files = distribute
165
+
166
+ spec.test_files = distribute.select{ |f| f =~ /^test\// } # TODO make test_files configurable
167
+ end
168
+ end
169
+
170
+ # Transfer package file to storage location.
171
+
172
+ def transfer(file, store)
173
+ # move to store, unless already there
174
+ dest = File.join(store, File.basename(file))
175
+ dest = File.expand_path(dest)
176
+ mv(file, store) unless file == dest
177
+ end
178
+
179
+ # Report that a package has been built.
180
+ # FIXME
181
+
182
+ def report_package_built(type, file)
183
+ r = ''
184
+ r << "\n Successfully built #{type}"
185
+ r << "\n Name: #{package.name}"
186
+ r << "\n Version: #{package.version}"
187
+ r << "\n File: #{File.basename(file)}"
188
+ say r
189
+ end
190
+
191
+ end
192
+ end
193
+
194
+ # # Build packages.
195
+ # # TODO Move this to Manager ?
196
+ #
197
+ # def generate_packages
198
+ # package_files = formats.collect do |format|
199
+ # #format = clean_type(format)
200
+ # say '' if format == 'gem' # FIXME This is here b/c Gems outputs on it's own.
201
+ # file = create_package(format)
202
+ # unless dryrun? or (format == 'gem')
203
+ # report_package_built(format, file) if file
204
+ # end
205
+ # file
206
+ # end
207
+ # report_packaging_complete(package_files.size)
208
+ # end
209
+ #
210
+ # # Create package.
211
+ #
212
+ # def create_package(type)
213
+ # package.format = type
214
+ #
215
+ # builder_class = FormatBuilder.registry[type]
216
+ # builder = builder_class.new(package, stage_directory, options)
217
+ # file = builder.build
218
+ #
219
+ # transfer(file) unless dryrun?
220
+ #
221
+ # return file
222
+ # end
223
+ #
224
+ # # Report that packaging is complete.
225
+ #
226
+ # def report_packaging_complete(size)
227
+ # say "\nSuccessfully built #{size} packages at #{store}/."
228
+ # end
@@ -0,0 +1,289 @@
1
+ require 'quarry/build'
2
+
3
+ module Quarry
4
+
5
+ #
6
+
7
+ class RDoc < Build
8
+
9
+ DEFAULT_TEMPLATE = 'html'
10
+ DEFAULT_OUTPUT = 'doc'
11
+ DEFAULT_INLINE = true
12
+ DEFAULT_MERGE = true
13
+ DEFAULT_EXCLUDE = []
14
+ DEFAULT_INCLUDE = ['lib', '[A-Z]*']
15
+ DEFAULT_ADFILE = 'doc/rdoc_ad.html'
16
+
17
+ # common
18
+
19
+ attr_accessor :output
20
+
21
+ attr_accessor :include
22
+
23
+ attr_accessor :exclude
24
+
25
+ # rdoc specific.
26
+
27
+ attr_accessor :rdoc_output
28
+
29
+ attr_accessor :template
30
+
31
+ attr_accessor :adfile
32
+
33
+ attr_accessor :inline
34
+
35
+ attr_accessor :merge
36
+
37
+ # Defaults to {output}/rdoc.
38
+
39
+ def rdoc_output
40
+ @rdoc_output || File.join(output, 'rdoc')
41
+ end
42
+
43
+ # ri specific
44
+
45
+ attr_accessor :ri_output
46
+
47
+ # Defaults to {output}/ri.
48
+
49
+ def ri_output
50
+ @ri_output ||= File.join(output, 'ri')
51
+ end
52
+
53
+
54
+ # Generate rdocs.
55
+ #
56
+ # Generate Rdoc documentation. Settings are the
57
+ # same as the rdoc command's option, with two
58
+ # exceptions: +inline+ for +inline-source+ and
59
+ # +output+ for +op+.
60
+
61
+ def rdoc(options=nil)
62
+ options ||= {}
63
+ options.rekey!(&:to_s)
64
+
65
+ config = configuration['rdoc']
66
+ options = RDOC_DEFAULTS.merge(config).merge(options)
67
+
68
+ cmdopts = {}
69
+ cmdopts['template'] = options['template'] || template || DEFAULT_TEMPLATE
70
+ cmdopts['op'] = options['output'] || output || DEFAULT_OUTPUT
71
+ cmdopts['merge'] = options['merge'] || merge || DEFAULT_MERGE
72
+ cmdopts['inline-source'] = options['inline'] || incline || DEFAULT_INLINE
73
+ cmdopts['exclude'] = options['exclude'] || exlcude || DEFAULT_EXCLUDE
74
+
75
+ output = cmdopts['op']
76
+
77
+ files = options['include'] || include || DEFAULT_INCLUDE
78
+ adfile = options['adfile'] || adfile || DEFAULT_ADFILE
79
+
80
+ input = files.collect do |i|
81
+ dir?(i) ? File.join(i,'**','*') : i
82
+ end
83
+
84
+ if out_of_date?(output, *input) or force?
85
+ rdoc_shell(files, config)
86
+ rdoc_insert_ads(output, adfile)
87
+ else
88
+ puts "Rdocs are current."
89
+ end
90
+ end
91
+
92
+ # Remove rdocs products.
93
+
94
+ def clobber_rdoc(options=nil)
95
+ options ||= {}
96
+ options.rekey!(&:to_s)
97
+
98
+ config = configuration['rdoc']
99
+ options = DEFAULTS_RDOC.merge(config).merge(options)
100
+
101
+ dir = options['output']
102
+
103
+ rm_r(dir) if File.directory?(dir)
104
+ end
105
+
106
+ private
107
+
108
+ # Document target.
109
+
110
+ def rdoc_shell(files, config)
111
+ output = config['op']
112
+ rm_r(output) if exist?(output) and safe?(output) # remove old rdocs
113
+ sh "rdoc #{[files, config].to_console}"
114
+ end
115
+
116
+ # Insert an ad if available.
117
+
118
+ def rdoc_insert_ads(site, adfile)
119
+ return unless adfile && File.file?(adfile)
120
+ adtext = File.read(adfile)
121
+ #puts
122
+ dirs = Dir.glob(File.join(site,'*/'))
123
+ dirs.each do |dir|
124
+ files = Dir.glob(File.join(dir, '**/*.html'))
125
+ files.each do |file|
126
+ html = file_read(file)
127
+ bodi = html.index('<body>')
128
+ html[bodi + 7] = "\n" + adtext
129
+ #print "Augmenting #{file}..."
130
+ file_write(file, html) unless dryrun?
131
+ #puts "[done]"
132
+ end
133
+ end
134
+ end
135
+
136
+ public
137
+
138
+
139
+ # generate local ri docs
140
+ #
141
+ # Generate RI documentation. This utilizes
142
+ # rdoc to produce the appropriate files.
143
+
144
+ def ri(options=nil)
145
+ options ||= {}
146
+ options.rekey!(&:to_s)
147
+
148
+ config = configuration['ri']
149
+ options = DEFAULTS_RI.merge(config).merge(options)
150
+
151
+ cmdopts = {}
152
+ cmdopts['op'] = options['output']
153
+ cmdopts['exclude'] = options['exclude']
154
+
155
+ output = options['output']
156
+ files = options['include'] # || ['lib', '[A-Z]*']
157
+
158
+ input = files.collect do |i|
159
+ dir?(i) ? File.join(i,'**','*') : i
160
+ end
161
+
162
+ if out_of_date?(output, *input) or force?
163
+ ri_shell(files, config)
164
+ else
165
+ puts "RI Docs are current."
166
+ end
167
+ end
168
+
169
+ # Remove ri products.
170
+
171
+ def clobber_ri(options=nil)
172
+ options ||= {}
173
+ options.rekey!(&:to_s)
174
+
175
+ config = configuration['ri']
176
+ options = DEFAULTS_RI.merge(config).merge(options)
177
+
178
+ dir = options['output']
179
+
180
+ rm_r(dir) if File.directory?(dir)
181
+ end
182
+
183
+ private
184
+
185
+ # Shell out to rdoc to create ri docs.
186
+
187
+ def ri_shell(files, config)
188
+ output = config['op']
189
+ input = config.delete('include')
190
+
191
+ # Check for 'doc' directory.
192
+ # (Helps to ensure we're in the right place.)
193
+ #dir!(File.dirname(site))
194
+
195
+ # Remove old rdocs.
196
+ rm_r(output) if exist?(output) and safe?(output)
197
+
198
+ #input = input.collect{ |i| glob(i) }.flatten
199
+ vector = ['--ri', input, config]
200
+ rdoc(vector.to_console)
201
+ end
202
+
203
+ # Defaults to output.
204
+
205
+ attr_accessor :html_output
206
+
207
+ def html_ouput
208
+ @html_output ||= output
209
+ end
210
+
211
+ # Stylesheet to use for html converted files.
212
+
213
+ attr_accessor :css
214
+
215
+ attr_accessor :metafiles
216
+
217
+ def metafiles
218
+ @files ||= Dir.glob('[A-Z]*')
219
+ end
220
+
221
+ def css
222
+ @css ||= Dir.glob('*.css').first
223
+ end
224
+
225
+ # Create web index.html from README.
226
+
227
+ def html(options=nil)
228
+ require 'rdoc/markup/simple_markup'
229
+ require 'rdoc/markup/simple_markup/to_html'
230
+
231
+ s = SM::SimpleMarkup.new
232
+ h = SM::ToHtml.new
233
+
234
+ metafiles.each do |file|
235
+ unless File.exist?(file)
236
+ puts "Warning: file does not exist -- #{file}"
237
+ end
238
+ end
239
+
240
+ mkdir_p(output) unless dryrun?
241
+
242
+ files.each do |file|
243
+ name = file.downcase.chomp('.txt')
244
+ if /^readme/ =~ name
245
+ name = "index"
246
+ end
247
+ path = File.join(dir, name + '.html')
248
+
249
+ if dryrun?
250
+ puts "[DRYRUN] Create #{path}"
251
+ else
252
+ next unless out_of_date?(path, file)
253
+
254
+ title = "#{package.title} #{name.upcase}"
255
+
256
+ input = File.read(file)
257
+ output = s.convert(input, h)
258
+
259
+ File.open(path, 'w') do |f|
260
+ f << %{<html>}
261
+ f << %{<head>}
262
+ f << %{ <title>#{title}<title>}
263
+ f << %{ <link rel="stylesheet" TYPE="text/css" HREF="#{css}">} if css
264
+ f << %{</head>}
265
+ f << %{<body>}
266
+ f << output
267
+ f << %{</body>}
268
+ f << %{</html>}
269
+ end
270
+
271
+ puts "Created #{path}"
272
+ end
273
+ end
274
+ end
275
+
276
+ # Create off-line docs package.
277
+
278
+ def package(name, version)
279
+ #name = release.name
280
+ #ver = release.version
281
+
282
+ Dir.chdir(output) do
283
+ zip "-czhvf #{name}-docs-#{version}.zip *"
284
+ end
285
+ end
286
+
287
+ end
288
+
289
+ end
@@ -0,0 +1,91 @@
1
+ require 'reap/tool'
2
+
3
+ module Reap
4
+
5
+ class Rubyforge < Build
6
+
7
+ # Command attributes.
8
+
9
+ attr_accessor :project
10
+ attr_accessor :username
11
+
12
+ # For releasing.
13
+
14
+ attr_accessor :version
15
+
16
+ # Release packages to rubyforge (using icli).
17
+
18
+ def release
19
+ name, version = release.name, release.version
20
+ sh "icli rubyforge release --version=#{version}"
21
+ end
22
+
23
+ # For publishing.
24
+
25
+ attr_accessor :subdir
26
+ attr_accessor :source
27
+ attr_accessor :clear
28
+ attr_accessor :protect
29
+ attr_accessor :exclude
30
+
31
+ def source
32
+ @source ||= "doc"
33
+ end
34
+
35
+ def username
36
+ @username ||= ENV['RUBYFORGE_USERNAME'] # good idea here?
37
+ end
38
+
39
+ # Publish website to rubyforge.
40
+ #
41
+ # This task publishes the source dir (deafult 'doc')
42
+ # to a rubyforge website.
43
+ #
44
+ # Uses RSync to upload files to webserver.
45
+
46
+ def publish
47
+ if clear
48
+ protect = protect().to_a
49
+ exclude = exclude().to_a
50
+ else
51
+ protect = %w{usage statcvs statsvn robot.txt wiki} + protect().to_a
52
+ exclude = %w{.svn} + exclude().to_a
53
+ end
54
+
55
+ abort "no project" unless project
56
+ abort "no username" unless username
57
+
58
+ if subdir
59
+ destination = File.join(project, subdir)
60
+ else
61
+ destination = project
62
+ end
63
+
64
+ dir = source.chomp('/') + '/'
65
+ url = "#{username}@rubyforge.org:/var/www/gforge-projects/#{destination}"
66
+
67
+ op = ['-rLvz', '--delete-after'] # maybe -p ?
68
+
69
+ # Using commandline filter options didn't seem
70
+ # to work, so I opted for creating an .rsync_filter file for
71
+ # all cases.
72
+
73
+ unless protect.empty? && exclude.empty?
74
+ rsync_file = File.join(source,'.rsync-filter')
75
+ unless file?(rsync_file)
76
+ File.open(rsync_file, 'w') do |f|
77
+ exclude.each{|e| f << "- #{e}\n"}
78
+ protect.each{|e| f << "P #{e}\n"}
79
+ end
80
+ end
81
+ op << "--filter='dir-merge #{rsync_file}'"
82
+ end
83
+
84
+ args = op + [dir, url]
85
+
86
+ rsync(*args.to_params)
87
+ end
88
+
89
+ end
90
+
91
+ end