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,154 +0,0 @@
1
- require 'quarry/build'
2
-
3
- module Quarry
4
-
5
- #
6
-
7
- class Stats < Build
8
-
9
- DEFAULT_LOADPATH = ['lib']
10
-
11
- # List of file path(s) of project scripts to code count.
12
-
13
- attr_accessor :loadpath
14
- attr_accessor :exclude
15
-
16
- alias_method :include, :loadpath
17
- alias_method :include=, :loadpath=
18
-
19
- # Simple code count analysis.
20
- #
21
- # Scan source code counting files, lines of code and
22
- # comments and presents a report of it's findings.
23
- #
24
- # scripts Files to include and/or exclude in
25
- # analysis. The default includes all
26
- # files in the lib/ and ext/ directories.
27
- #
28
- # TODO Support - and + augmentations for configuration ?
29
-
30
- def stats(options=nil)
31
- options ||= {}
32
-
33
- glob = options[:include] || options[:loadpath] || loadpath || DEFAULT_LOADPATH
34
- excl = options[:exclude] || exclude || []
35
-
36
- if String===glob
37
- glob = glob.split(/[:;]/)
38
- end
39
-
40
- files = multiglob_r(*glob) - multiglob_r(*excl)
41
-
42
- #() #.inject([]){ |memo, find| memo.concat(glob(find)); memo }
43
- #Dir.multiglob_with_default(DEFAULT_STATS_FILES)
44
-
45
- fc, l, c, r, t, s = *line_count(*files)
46
-
47
- fct, lt, ct, rt, tt, st = *([0]*6)
48
- if File.directory?('test')
49
- fct, lt, ct, rt, tt, st = *line_count('test/**/*')
50
- t = lt if lt > 0
51
- end
52
-
53
- rat = lambda do |d,n|
54
- if d > n and n != 0
55
- "%.1f" % [ d.to_f / n ]
56
- elsif n > d and d != 0
57
- "-" #"%.1f:1" % [ n.to_f / d ]
58
- elsif d == 0 or n == 0
59
- "-"
60
- else
61
- "1.0"
62
- end
63
- end
64
-
65
- per = lambda do |n,d|
66
- if d != 0
67
- (((n.to_f / d)*100).to_i).to_s + "%"
68
- else
69
- "-"
70
- end
71
- end
72
-
73
- max = l.to_s.size + 4
74
-
75
- puts
76
- #puts "FILES:"
77
- #puts " source: #{fc}"
78
- #puts " test : #{fct}"
79
- #puts " total : #{fc+fct}"
80
- #puts
81
- #puts "LINES:"
82
- #puts " code : %#{max}s %4s" % [ c.to_s, per[c,l] ]
83
- #puts " docs : %#{max}s %4s" % [ r.to_s, per[r,l] ]
84
- #puts " space : %#{max}s %4s" % [ s.to_s, per[s,l] ]
85
- #puts " test : %#{max}s %4s" % [ t.to_s, per[t,l] ]
86
- #puts " total : %#{max}s %4s" % [ l.to_s, per[l,l] ]
87
- #puts
88
- #puts "Ratio to 1 :"
89
- #puts " code to test : #{rat[c,t]} #{per[c,t]}"
90
-
91
- head = ["Total", "Code", "-%-", "Docs", "-%-", "Blank", "-%-", "Files"]
92
- prod = [l.to_s, c.to_s, per[c,l], r.to_s, per[r,l], s.to_s, per[s,l], fc]
93
- test = [lt.to_s, ct.to_s, per[ct,l], rt.to_s, per[rt,l], st.to_s, per[st,l], fct]
94
- totl = [(l+lt), (c+ct), per[c+ct,l+lt], (r+rt), per[r+rt,l+lt], (s+st), per[s+st,l+lt], (fc+fct)]
95
-
96
- puts "TYPE %#{max}s %#{max}s %4s %#{max}s %4s %#{max}s %4s %#{max}s" % head
97
- puts "Source %#{max}s %#{max}s %4s %#{max}s %4s %#{max}s %4s %#{max}s" % prod
98
- puts "Test %#{max}s %#{max}s %4s %#{max}s %4s %#{max}s %4s %#{max}s" % test
99
- puts "Total %#{max}s %#{max}s %4s %#{max}s %4s %#{max}s %4s %#{max}s" % totl
100
- puts
101
- puts "RATIO Code Docs Blank Test Total"
102
- puts "Code %7s %7s %7s %7s %7s" % [ rat[c,c], rat[c,r], rat[c,s], rat[c,t], rat[c,l] ]
103
- puts "Docs %7s %7s %7s %7s %7s" % [ rat[r,c], rat[r,r], rat[r,s], rat[r,t], rat[r,l] ]
104
- puts "Blank %7s %7s %7s %7s %7s" % [ rat[s,c], rat[s,r], rat[s,s], rat[s,t], rat[s,l] ]
105
- puts "Test %7s %7s %7s %7s %7s" % [ rat[t,c], rat[t,r], rat[t,s], rat[t,t], rat[t,l] ]
106
- puts "Total %7s %7s %7s %7s %7s" % [ rat[l,c], rat[l,r], rat[l,s], rat[l,t], rat[l,l] ]
107
- puts
108
- end
109
-
110
- private
111
-
112
- # Return line counts for files.
113
-
114
- def line_count( *files )
115
- files = files.inject([]) do |memo, find|
116
- memo.concat(Dir.glob(find)); memo
117
- end
118
-
119
- fc, l, c, t, r = 0, 0, 0, 0, 0
120
- bt, rb = false, false
121
-
122
- files.each do |fname|
123
- next unless fname =~ /.*rb/ # TODO should this be done?
124
- fc += 1
125
- File.open( fname ) do |f|
126
- while line = f.gets
127
- l += 1
128
- next if line =~ /^\s*$/
129
- case line
130
- when /^=begin\s+test/
131
- tb = true; t+=1
132
- when /^=begin/
133
- rb = true; r+=1
134
- when /^=end/
135
- t+=1 if tb
136
- r+=1 if rb
137
- rb, tb = false, false
138
- when /^\s*#/
139
- r += 1
140
- else
141
- c+=1 if !(rb or tb)
142
- r+=1 if rb
143
- t+=1 if tb
144
- end
145
- end
146
- end
147
- end
148
- s = l - c - r - t
149
- return fc, l, c, r, t, s
150
- end
151
-
152
- end
153
-
154
- end
@@ -1,193 +0,0 @@
1
- require 'quarry/build'
2
-
3
- module Quarry
4
-
5
- #
6
-
7
- class Svn < Build
8
-
9
- # Tag current version (via rubyforge).
10
-
11
- def tag
12
- name, version = release.name, release.version
13
-
14
- config = configuration['tag']
15
-
16
- prefix = commandline('prefix') || config['prefix']
17
- prefix = prefix + '_' if prefix && prefix !~ /[_-]$/
18
-
19
- tagdir = config['tagdir'] || 'tags'
20
-
21
- rubyforge_username = ENV['RUBYFORGE_USERNAME']
22
- rubyforge_project = config['project'] || name
23
-
24
- abort "Need RUBYFORGE_USERNAME evironment setting." unless rubyforge_username
25
-
26
- tagname = "#{prefix}#{version}"
27
- tagname = File.join(tagdir, tagname) if tagdir
28
-
29
- puts "Tag '#{tagname}' ?"
30
-
31
- case ask("Continue? [yN]").strip.downcase
32
- when 'y', 'yes'
33
- svn "copy", "svn+ssh://#{rubyforge_username}@rubyforge.org/var/svn/#{name}/trunk",
34
- "svn+ssh://#{rubyforge_username}@rubyforge.org/var/svn/#{name}/#{tagname}"
35
- end
36
- end
37
-
38
- # Create changelog.
39
-
40
- def log(format=:rd)
41
- case format
42
- when :rd
43
- log_rd
44
- when :xml
45
- log_xml
46
- end
47
- end
48
-
49
- # Create a human readable changelog.
50
-
51
- def log_rd
52
- config = configuration['log']
53
- txtlog = config['file'] || 'ChangeLog'
54
-
55
- text = `svn log`
56
-
57
- changes = log_parse(text)
58
- sorted = log_organize(changes)
59
- string = log_format(sorted)
60
-
61
- if dryrun?
62
- puts string
63
- else
64
- File.open(txtlog, 'w'){|f| f << string }
65
- end
66
- end
67
-
68
- private
69
-
70
- #
71
-
72
- def log_parse(text)
73
- changes = []
74
- entries = text.split(/^[-]+\n/)
75
- entries.shift # get rid of emtpy first
76
- entries.each do |entry|
77
- lines = entry.split(/\n/)
78
- data = lines.shift
79
- text = lines.join("\n").strip
80
-
81
- rev, who, date, *rest = *data.split('|')
82
- rev.strip!
83
- who.strip!
84
- date = date.strip.split(/\s+/).first
85
-
86
- changes << [ date, who, rev, text ]
87
- end
88
- changes
89
- end
90
-
91
- #
92
-
93
- def log_organize(changes)
94
- mapped = {}
95
- changes.each do |date, who, rev, text|
96
- mapped[[date, who]] ||= []
97
- mapped[[date, who]] << [text, rev]
98
- end
99
- sorted = []
100
- mapped.each do |(date, who), entries|
101
- sorted << [ date, who, entries ]
102
- end
103
- sorted.sort{ |a,b| b[0] <=> a[0] }
104
- end
105
-
106
- #
107
-
108
- def log_format(sorted)
109
- string = "= ChangeLog\n\n"
110
- sorted.each do |date, who, entries|
111
- string << "== #{date} #{who}\n\n" # no email :(
112
- entries.each do |entry|
113
- string << "* #{entry.first} (#{entry.last})\n"
114
- end
115
- string << "\n"
116
- end
117
- string
118
- end
119
-
120
- public
121
-
122
- # Create a XML-formatted changelog.
123
-
124
- def log_xml
125
- config = configuration['log']
126
- xmlfile = config['xmlfile'] || 'doc/changelog.xml'
127
- xslfile = File.join(File.dirname(xmlfile), 'changelog.xsl')
128
-
129
- log_xsl(xslfile)
130
-
131
- text = `svn log --xml`
132
- i = text.index("?>\n")
133
- text.insert(i+2, "\n" + '<?xml-stylesheet href="changelog.xsl" type="text/xsl" ?>')
134
-
135
- if dryrun?
136
- puts text
137
- else
138
- File.open(xmlfile){ |f| f << text }
139
- end
140
- end
141
-
142
- private
143
-
144
- #
145
-
146
- def log_xsl(xslfile)
147
- if force? or not File.exist?(xslfile)
148
- File.open(xslfile, 'w') do |f|
149
- f << XSLOG
150
- end
151
- end
152
- end
153
-
154
- XSLOG = <<-END
155
- <?xml version="1.0" encoding="ISO-8859-1"?>
156
- <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
157
-
158
- <xsl:output cdata-section-elements="script"/>
159
-
160
- <xsl:template match="/">
161
- <html>
162
- <head>
163
- <title>Changelog</title>
164
- <link REL='SHORTCUT ICON' HREF="../img/ruby-sm.png" />
165
- <style>
166
- td { font-family: sans-serif; padding: 0px 10px; }
167
- </style>
168
- </head>
169
- <body>
170
- <div class="container">
171
- <h1>Changelog</h1>
172
- <table style="width: 100%;">
173
- <xsl:apply-templates />
174
- </table>
175
- </div>
176
- </body>
177
- </html>
178
- </xsl:template>
179
-
180
- <xsl:template match="logentry">
181
- <tr>
182
- <td><b><pre><xsl:value-of select="msg"/></pre></b></td>
183
- <td><xsl:value-of select="author"/></td>
184
- <td><xsl:value-of select="date"/></td>
185
- </tr>
186
- </xsl:template>
187
-
188
- </xsl:stylesheet>
189
- END
190
-
191
- end
192
-
193
- end