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,235 +0,0 @@
1
- require 'quarry/build'
2
-
3
- begin
4
- require 'rubygems/specification'
5
- Gem::manage_gems
6
- rescue LoadError
7
- #raise LoadError, "RubyGems is not installed?"
8
- end
9
-
10
- module Qaurry
11
-
12
- class Gem < Build
13
-
14
- # Remove package products.
15
- #
16
- # Can task an +omit+ option as a regular expression
17
- # omit certain removals.
18
-
19
- def clobber_packages(opts=nil)
20
- opts ||= {}
21
-
22
- omit = opts[:omit]
23
-
24
- pkgdir = "pkg" # FIXME
25
-
26
- packages = glob(File.join(pkgdir, '*'))
27
-
28
- if omit
29
- packages.reject!{ |path| omit =~ path }
30
- end
31
-
32
- packages.each do |path|
33
- rm_r(path)
34
- end
35
- end
36
-
37
- # Create a Tar'd Gzip package.
38
-
39
- def package_tgz
40
- status "Creating .tgz package"
41
-
42
- config = configuration['pack'] || {}
43
- config = config['tgz'] || {}
44
-
45
- package = package.clone
46
- package.update(config)
47
-
48
- store = config[:store] || 'pkg'
49
- templ = config[:template]
50
-
51
- name = package.stage_name(templ)
52
- stage = File.join(store, name)
53
- files = package.filelist
54
-
55
- stage(stage, files)
56
-
57
- if dryrun?
58
- status "tar -cxf #{name}.tgz"
59
- else
60
- file = nil
61
- cd(store) do
62
- file = tgz(name)
63
- end
64
- transfer(file, store)
65
- end
66
- end
67
-
68
- # Create Zip package.
69
-
70
- def package_zip
71
- status "Creating .zip package"
72
-
73
- config = configuration['pack'] || {}
74
- config = config['zip'] || {}
75
-
76
- package = package().clone
77
- package.update(config)
78
-
79
- store = config[:store] || 'pkg'
80
- templ = config[:template]
81
-
82
- name = package.stage_name(templ)
83
- stage = File.join(store, name)
84
- files = package.filelist
85
-
86
- stage(stage, files)
87
-
88
- if dryrun?
89
- status "tar -cxf #{name}.zip"
90
- else
91
- file = nil
92
- cd(store) do
93
- file = zip(name)
94
- end
95
- transfer(file, store)
96
- end
97
- end
98
-
99
- # Create a Gem package.
100
- #
101
- # TODO: Should this use staging too, like zip/tgz?
102
-
103
- def package_gem
104
- status "Creating .gem package"
105
-
106
- config = configuration['pack'] || {}
107
- config = config['gem'] || {}
108
-
109
- package = package().clone
110
- package.update(config)
111
-
112
- store = config[:store] || 'pkg'
113
-
114
- #dir = Dir.pwd
115
-
116
- file = nil
117
- #cd(dir) do
118
- #status "vi #{metadata.name}.gemspec"
119
- builder = ::Gem::Builder.new(gemspec(package))
120
- status "gem build #{package.name}"
121
- unless dryrun?
122
- file = builder.build
123
- file = File.expand_path(file)
124
- end
125
- #end
126
-
127
- transfer(file, store)
128
- end
129
-
130
- private
131
-
132
- # Create Gem::Specification.
133
-
134
- def gemspec(package)
135
- distribute = package.filelist
136
- #distribute = Dir.multiglob_with_default( '**/*', distribute )
137
-
138
- ::Gem::Specification.new do |spec|
139
- spec.name = package.name
140
- spec.version = package.version
141
- spec.summary = package.brief
142
- spec.description = package.description
143
- spec.author = package.author
144
- spec.email = package.email
145
- spec.rubyforge_project = package.development if /rubyforge.org/ =~ package.development
146
- spec.homepage = package.homepage
147
-
148
- # Platform: ruby, mswin32, i586-linux, powerpc-darwin, current
149
- spec.platform = 'ruby' # TODO current support!
150
-
151
- spec.require_paths = [package.gem_path].flatten.reverse
152
-
153
- #if package.platform != 'ruby'
154
- # spec.require_paths.concat(spec.require_paths.collect{ |d| File.join(d, platform) })
155
- #end
156
-
157
- spec.bindir = "bin"
158
- spec.executables = package.executables
159
- spec.requirements = package.requirements
160
- spec.has_rdoc = package.document
161
-
162
- if package.dependencies
163
- package.dependencies.each do |d,v|
164
- spec.add_dependency(*[d,v].compact)
165
- end
166
- end
167
-
168
- spec.extensions = package.compile
169
-
170
- spec.files = distribute
171
-
172
- spec.test_files = distribute.select{ |f| f =~ /^test\// } # TODO make test_files configurable
173
- end
174
- end
175
-
176
- # Transfer package file to storage location.
177
-
178
- def transfer(file, store)
179
- # move to store, unless already there
180
- dest = File.join(store, File.basename(file))
181
- dest = File.expand_path(dest)
182
- mv(file, store) unless file == dest
183
- end
184
-
185
- # Report that a package has been built.
186
- # FIXME
187
-
188
- def report_package_built(type, file)
189
- r = ''
190
- r << "\n Successfully built #{type}"
191
- r << "\n Name: #{package.name}"
192
- r << "\n Version: #{package.version}"
193
- r << "\n File: #{File.basename(file)}"
194
- say r
195
- end
196
-
197
- end
198
-
199
- end
200
-
201
- # # Build packages.
202
- # # TODO Move this to Manager ?
203
- #
204
- # def generate_packages
205
- # package_files = formats.collect do |format|
206
- # #format = clean_type(format)
207
- # say '' if format == 'gem' # FIXME This is here b/c Gems outputs on it's own.
208
- # file = create_package(format)
209
- # unless dryrun? or (format == 'gem')
210
- # report_package_built(format, file) if file
211
- # end
212
- # file
213
- # end
214
- # report_packaging_complete(package_files.size)
215
- # end
216
- #
217
- # # Create package.
218
- #
219
- # def create_package(type)
220
- # package.format = type
221
- #
222
- # builder_class = FormatBuilder.registry[type]
223
- # builder = builder_class.new(package, stage_directory, options)
224
- # file = builder.build
225
- #
226
- # transfer(file) unless dryrun?
227
- #
228
- # return file
229
- # end
230
- #
231
- # # Report that packaging is complete.
232
- #
233
- # def report_packaging_complete(size)
234
- # say "\nSuccessfully built #{size} packages at #{store}/."
235
- # end
@@ -1,118 +0,0 @@
1
-
2
- # The Make tool routes to extension Makefile(s).
3
- # At this point it's designed to support extconf.rb design.
4
- #
5
- # TODO Perhaps make a true compiler class in the future.
6
-
7
- require 'reap/tool'
8
-
9
- module Reap
10
- module Tools
11
-
12
- class Make < Tool
13
-
14
- attr_accessor :extensions
15
-
16
- def extensions
17
- @extensions ||= 'ext/**/extconf.rb'
18
- end
19
-
20
- # Check to see if this project has extensions that need to be compiled.
21
-
22
- def compiles?
23
- return false if extension_directories.empty?
24
- end
25
-
26
- # Compile extensions.
27
-
28
- def compile
29
- extension_directories.each do |directory|
30
- cd(directory) do
31
- sh "ruby extconf.rb" # prepare
32
- sh "make"
33
- end
34
- end
35
- end
36
-
37
- alias_method :call, :compile
38
-
39
- # Run make config.
40
-
41
- def config
42
- extension_directories.each do |directory|
43
- cd(directory) do
44
- sh "make config"
45
- end
46
- end
47
- end
48
-
49
- # Remove enouhg compile products for a clean compile.
50
-
51
- def clean
52
- extension_directories.each do |directory|
53
- cd(directory) do
54
- sh "make clean"
55
- end
56
- end
57
- end
58
-
59
- # Remove all compile products.
60
-
61
- def distclean
62
- extension_directories.each do |directory|
63
- cd(directory) do
64
- sh "make distclean"
65
- end
66
- end
67
- end
68
-
69
- # Create Makefiles.
70
-
71
- def extconf
72
- extension_directories.each do |directory|
73
- cd(directory) do
74
- sh "ruby extconf.rb"
75
- end
76
- end
77
- end
78
-
79
- # Return list of extconf.rb scripts.
80
-
81
- def extension_scripts
82
- [extensions].flatten.collect do |ext|
83
- Dir.glob(ext)
84
- end.flatten
85
- end
86
-
87
- # Return list of directory locations of extconf.rb scripts.
88
-
89
- def extension_directories
90
- glob(extension_scripts).map do |ext|
91
- File.dirname(ext)
92
- end
93
- end
94
-
95
- # Eric Hodel said NOT to copy the compiled libs.
96
- #
97
- #task :copy_files do
98
- # cp "ext/**/*.#{dlext}", "lib/**/#{arch}/"
99
- #end
100
- #
101
- #def dlext
102
- # Config::CONFIG['DLEXT']
103
- #end
104
- #
105
- #def arch
106
- # Config::CONFIG['arch']
107
- #end
108
-
109
- # Cross-compile for Windows. (TODO)
110
-
111
- #def make_mingw
112
- # abort "NOT YET IMPLEMENTED"
113
- #end
114
-
115
- end
116
-
117
- end
118
- end
@@ -1,201 +0,0 @@
1
- require 'yaml'
2
- require 'quarry/build'
3
-
4
- module Quarry
5
-
6
- # This takes a manpage with a YAML based header comment
7
- # and appends man page format.
8
-
9
- class Manpage < Build
10
-
11
- def self.generate(file, options={})
12
- new.generate(file, options)
13
- end
14
-
15
- TOP_ORDER = %w{ NAME SYNOPSIS DESCRIPTION OPTIONS }
16
- BOT_ORDER = %w{ AUTHOR }
17
-
18
- def generate(file, options={})
19
- text = read(file)
20
- data = load(text)
21
- manp = parse(data)
22
- if options[:dryrun]
23
- puts manp
24
- else
25
- save(file, text, manp)
26
- end
27
- end
28
-
29
- def read(file)
30
- text = File.read(file)
31
- re = Regexp.escape('.\"')
32
- lines = text.split(/\n/).select do |l|
33
- /^#{re}/ =~ l
34
- end
35
- text = lines.join("\n")
36
- end
37
-
38
- #
39
- def load(text)
40
- str = text.split(/\n/).collect do |l|
41
- l.sub('.\"', '')
42
- end
43
- YAML.load(str.join("\n"))
44
- end
45
-
46
- def save(file, text, manp)
47
- File.open(file, 'w') do |f|
48
- f << text << "\n"
49
- f << manp
50
- end
51
- end
52
-
53
- def parse(data)
54
- title = data.delete('TITLE')
55
- secno = data.delete('SECTION')
56
- verno = data.delete('VERSION')
57
- name = data.fetch('NAME')
58
-
59
- raise "Missing required field TITLE or NAME" unless title && name
60
-
61
- top = []
62
- bot = []
63
- mid = []
64
-
65
- # do section top order
66
- TOP_ORDER.each do |section|
67
- if content = data.delete(section)
68
- top << process_section(section, content)
69
- end
70
- end
71
-
72
- BOT_ORDER.each do |section|
73
- if content = data.delete(section)
74
- bot << process_section(section, content)
75
- end
76
- end
77
-
78
- # do remaining sections.
79
- data.each do |section, content|
80
- mid << process_section(section, content)
81
- end
82
-
83
- man = []
84
- man << man_topsection(title, secno, verno)
85
- man.concat top
86
- man.concat mid
87
- man.concat bot
88
- man.join("\n")
89
- end
90
-
91
- def process_section(section, content)
92
- meth = "man_" + section.downcase.gsub(' ','_')
93
- if respond_to?(meth)
94
- send(meth, content)
95
- else
96
- general_section(section.upcase, content)
97
- end
98
- end
99
-
100
- def man_topsection(title, secno, verno)
101
- secno ||= 1
102
- verno ||= "1.0"
103
- date = Time.now.strftime("%d %B %Y")
104
- %{.TH man #{secno} "#{date}" "#{verno}" "#{title}"}
105
- end
106
-
107
- def man_name(content)
108
- str = ''
109
- str << ".SH NAME\n"
110
- str << format(content)
111
- end
112
-
113
- def man_synopsis(content)
114
- str = ''
115
- str << ".SH SYNOPSIS\n"
116
- str << ".B " + format(content)
117
- end
118
-
119
- def man_examples(content)
120
- name = "EXAMPLES"
121
- general_section(name, content)
122
- end
123
-
124
- def man_description(content)
125
- name = "DESCRIPTION"
126
- general_section(name, content)
127
- end
128
-
129
- def man_options(content)
130
- name = "OPTIONS"
131
- general_section(name, content)
132
- end
133
-
134
- def man_files(content)
135
- name = "FILES"
136
- general_section(name, content)
137
- end
138
-
139
- def man_see_also(content)
140
- str = ''
141
- str << ".SH SEE ALSO\n"
142
- see = content.split(/[,]\s*/)
143
- see.each do |s|
144
- str << ".BR #{s},\n"
145
- end
146
- str.strip
147
- end
148
-
149
- def man_bugs(content)
150
- name = "BUGS"
151
- general_section(name, content)
152
- end
153
-
154
- def man_hints(content)
155
- name = "HINTS"
156
- general_section(name, content)
157
- end
158
-
159
- def man_environment(content)
160
- name = "ENVIRONMENT"
161
- general_section(name, content)
162
- end
163
-
164
- def man_diagnostics(content)
165
- name = "DIAGNOSTICS"
166
- general_section(name, content)
167
- end
168
-
169
- # ?????
170
- def man_list(content)
171
- name = "LIST"
172
- general_section(name, content)
173
- end
174
-
175
- def man_author(content)
176
- name = "AUTHOR"
177
- general_section(name, content)
178
- end
179
-
180
- def man_history(content)
181
- name = "HISTORY"
182
- general_section(name, content)
183
- end
184
-
185
- #
186
-
187
- def general_section(name, content)
188
- str = ''
189
- str << ".SH #{name.upcase}\n"
190
- str << format(content)
191
- end
192
-
193
- def format(content)
194
- content = content.strip
195
- content = content.gsub(' -', ' \-')
196
- content #<< "\n"
197
- end
198
-
199
- end
200
-
201
- end