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,214 +0,0 @@
1
- require 'quarry/build'
2
-
3
- module Quarry
4
-
5
- class Notes < Build
6
-
7
- attr_accessor :files
8
- attr_accessor :labels
9
- attr_accessor :format
10
- attr_accessor :output
11
-
12
- # TODO Add ability to read header notes.
13
- # FIXME Should each label of note be written to it's own file?
14
-
15
- DEFAULT_NOTE_FILES = ['lib/**/*', 'ext/**/*']
16
- DEFAULT_NOTE_LABELS = ['TODO', 'FIXME']
17
- DEFAULT_NOTE_FORMAT = 'rdoc'
18
- DEFAULT_NOTE_OUTPUT = 'doc/note'
19
-
20
- #
21
-
22
- def files
23
- @files ||= DEFAULT_NOTE_FILES
24
- end
25
-
26
- #
27
-
28
- def labels
29
- @labels ||= DEFAULT_NOTE_LABELS
30
- end
31
-
32
- #
33
-
34
- def format
35
- @format ||= DEFAULT_NOTE_FORMAT
36
- end
37
-
38
- #
39
-
40
- def output
41
- @output ||= DEFAULT_NOTE_OUTPUT
42
- end
43
-
44
- # Scan for notes.
45
- #
46
- # This task scans source code for developer notes and writes to
47
- # well organized files.
48
- #
49
- # Notes tool can lookup and list TODO, FIXME and
50
- # other types of labeled comments from source code.
51
-
52
- def notes(config={})
53
- files = config['files'] || files()
54
- labels = config['labels'] || labels()
55
- format = config['format'] || format()
56
- outout = config['output'] || output()
57
-
58
- files ||= DEFAULT_NOTE_FILES
59
- labels ||= DEFAULT_NOTE_LABELS
60
- format ||= DEFAULT_NOTE_FORMAT
61
- output ||= DEFAULT_NOTE_OUTPUT
62
-
63
- labels = labels.split(',') if String === labels
64
- labels = [labels].flatten.compact
65
-
66
- output.chomp!('/')
67
-
68
- records, counts = extract_notes( labels, files )
69
- notes = format_notes( labels, records, format )
70
-
71
- if records.empty?
72
- puts "No #{labels.join('/')} notes."
73
- end
74
-
75
- save_notes(output, notes, labels)
76
- puts counts.collect{|l,n| "#{n} #{l}s"}.join(', ')
77
- puts "Notes saved in #{output} folder."
78
- end
79
-
80
- private
81
-
82
- # Gather notes.
83
-
84
- def extract_notes( labels, files=nil )
85
- files = files || info.scripts || info.note_files || DEFAULT_NOTE_FILES
86
- files = Dir.multiglob_with_default(DEFAULT_NOTE_FILES, *files)
87
-
88
- counts = Hash.new(0)
89
- records = []
90
-
91
- files.each do |fname|
92
- next unless fname =~ /.*rb/ # TODO should this be done?
93
- File.open(fname) do |f|
94
- line_no, save, text = 0, nil, nil
95
- while line = f.gets
96
- line_no += 1
97
- labels.each do |label|
98
- if line =~ /^\s*#\s*#{Regexp.escape(label)}[:]?\s*(.*?)$/
99
- file = fname
100
- text = ''
101
- save = {'label'=>label,'file'=>file,'line'=>line_no,'note'=>text}
102
- records << save
103
- counts[label] += 1
104
- end
105
- end
106
- if text
107
- if line =~ /^\s*[#]{0,1}\s*$/ or line !~ /^\s*#/ or line =~ /^\s*#[+][+]/
108
- text.strip!
109
- text = nil
110
- #records << save
111
- else
112
- text << line.gsub(/^\s*#\s*/,'')
113
- end
114
- end
115
- end
116
- end
117
- end
118
- return records, counts
119
- end
120
-
121
- # Format notes.
122
-
123
- def format_notes( labels, records, format=nil )
124
- #return "No #{labels.join('/')} notes." if records.empty?
125
- #return {} if records.empty?
126
- notes = {}
127
- labels.each do |label|
128
- recs = records.select{ |r| r['label'] == label }
129
- next if recs.empty?
130
- out = "\n= #{label}\n"
131
- last_file = nil
132
- recs.sort!{ |a,b| a['file'] <=> b['file'] }
133
- recs.each do |record|
134
- if last_file != record['file']
135
- out << "\n"
136
- last_file = record['file']
137
- out << "file://#{record['file']}\n"
138
- end
139
- out << "* #{record['note'].rstrip} (#{record['line']})\n"
140
- end
141
- notes[label] = out
142
- end
143
- return notes
144
- end
145
-
146
- # Save notes.
147
-
148
- def save_notes( dir, notes, labels )
149
- # Remove empty note files.
150
- (labels - notes.keys).each do |label|
151
- file = File.join(dir,label)
152
- rm(file) if File.file?(file)
153
- end
154
- # Create note files.
155
- notes.each do |label, note|
156
- file = File.join(dir,label)
157
- file = apply_naming_policy(file, 'txt')
158
- if dryrun?
159
- puts "write #{file}"
160
- else
161
- File.open(file,'w') do |f| f << note end
162
- end
163
- end
164
- end
165
-
166
- end
167
-
168
- end
169
-
170
- # out = ''
171
- #
172
- # case format
173
- # when 'yaml'
174
- # out << records.to_yaml
175
- # when 'list'
176
- # records.each do |record|
177
- # out << "* #{record['note']}\n"
178
- # end
179
- # else #when 'rdoc'
180
- # labels.each do |label|
181
- # recs = records.select{ |r| r['label'] == label }
182
- # next if recs.empty?
183
- # out << "\n= #{label}\n"
184
- # last_file = nil
185
- # recs.sort!{ |a,b| a['file'] <=> b['file'] }
186
- # recs.each do |record|
187
- # if last_file != record['file']
188
- # out << "\n"
189
- # last_file = record['file']
190
- # out << "file://#{record['file']}\n"
191
- # end
192
- # out << "* #{record['note'].rstrip} (#{record['line']})\n"
193
- # end
194
- # end
195
- # out << "\n---\n"
196
- # out << counts.collect{|l,n| "#{n} #{l}s"}.join(' ')
197
- # out << "\n"
198
- # end
199
-
200
- # # List TODO notes. Same as notes --label=TODO.
201
- #
202
- # def todo( options={} )
203
- # options = options.to_openhash
204
- # options.label = 'TODO'
205
- # notes(options)
206
- # end
207
- #
208
- # # List FIXME notes. Same as notes --label=FIXME.
209
- #
210
- # def fixme( options={} )
211
- # options = options.to_openhash
212
- # options.label = 'FIXME'
213
- # notes(options)
214
- # end
@@ -1,228 +0,0 @@
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