reap 03.01 → 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 (231) hide show
  1. data/{LICENSE → COPYING} +0 -0
  2. data/ChangeLog +5 -0
  3. data/ProjectInfo +55 -15
  4. data/README +32 -31
  5. data/Rakefile +0 -141
  6. data/bin/reap +2 -158
  7. data/data/reap/scaffold/COPYING +11 -0
  8. data/data/reap/scaffold/ChangeLog +0 -0
  9. data/data/reap/scaffold/INSTALL +0 -0
  10. data/data/reap/scaffold/ProjectInfo +78 -0
  11. data/data/reap/scaffold/README +0 -0
  12. data/data/reap/scaffold/Rakefile +146 -0
  13. data/data/reap/scaffold/Todo +0 -0
  14. data/data/reap/scaffold/setup.rb +1551 -0
  15. data/dev/Rakefile +60 -0
  16. data/dev/composite_task.rb +27 -0
  17. data/dev/compositepublisher.rb +24 -0
  18. data/dev/ftptools.rb +139 -0
  19. data/dev/license-each.rb +85 -0
  20. data/dev/publisher.rb +75 -0
  21. data/dev/rubyforgepublisher.rb +18 -0
  22. data/dev/sshpublisher.rb +47 -0
  23. data/dev/suby-cvs.rb +46 -0
  24. data/{data/site_ruby/reap/template.yaml → dev/template.rb} +15 -37
  25. data/lib/reap/bin/reap.rb +134 -0
  26. data/lib/reap/lint.rb +0 -0
  27. data/lib/reap/projectinfo.rb +20 -9
  28. data/lib/reap/readymade.rb +21 -0
  29. data/lib/reap/task.rb +119 -70
  30. data/lib/reap/{announce_task.rb → task/announce.rb} +20 -25
  31. data/lib/reap/{filemod_task.rb → task/fileperm.rb} +12 -16
  32. data/lib/reap/task/info.rb +20 -0
  33. data/lib/reap/task/install.rb +33 -0
  34. data/lib/reap/task/noop.rb +26 -0
  35. data/lib/reap/{package_task.rb → task/package.rb} +88 -71
  36. data/lib/reap/{publish_task.rb → task/publish.rb} +5 -13
  37. data/lib/reap/{rdoc_task.rb → task/rdoc.rb} +29 -22
  38. data/lib/reap/task/scaffold.rb +114 -0
  39. data/lib/reap/{test_task.rb → task/test.rb} +33 -26
  40. data/lib/reap/task/testext.rb +110 -0
  41. data/lib/reap/{web_publish_task.rb → task/webpublish.rb} +5 -11
  42. data/lib/reap/tasks.rb +12 -8
  43. data/lib/reap/test.rb +138 -0
  44. data/setup.rb +726 -534
  45. data/web/ProjectInfo +57 -0
  46. data/{pub/www → web}/images/appleboy.jpg +0 -0
  47. data/{pub → web/images}/grape.jpg +0 -0
  48. data/web/index.html +124 -0
  49. data/web/rdoc/classes/Object.html +121 -0
  50. data/{pub/www → web}/rdoc/classes/ProjectInfo.html +36 -36
  51. data/{pub/www/rdoc/classes/ProjectInfo.src/M000055.html → web/rdoc/classes/ProjectInfo.src/M000094.html} +3 -3
  52. data/{pub/www/rdoc/classes/ProjectInfo.src/M000056.html → web/rdoc/classes/ProjectInfo.src/M000095.html} +2 -1
  53. data/web/rdoc/classes/ProjectInfo.src/M000096.html +22 -0
  54. data/{pub/www/rdoc/classes/ProjectInfo.src/M000058.html → web/rdoc/classes/ProjectInfo.src/M000097.html} +1 -1
  55. data/{pub/www/rdoc/classes/ProjectInfo.src/M000059.html → web/rdoc/classes/ProjectInfo.src/M000098.html} +1 -1
  56. data/web/rdoc/classes/Reap.html +248 -0
  57. data/web/rdoc/classes/Reap.src/M000023.html +16 -0
  58. data/web/rdoc/classes/Reap.src/M000024.html +21 -0
  59. data/web/rdoc/classes/Reap.src/M000025.html +16 -0
  60. data/web/rdoc/classes/Reap.src/M000026.html +21 -0
  61. data/{pub/www/rdoc/classes/Reap/AnnounceTask.html → web/rdoc/classes/Reap/Announce.html} +22 -40
  62. data/web/rdoc/classes/Reap/Announce.src/M000030.html +18 -0
  63. data/{pub/www/rdoc/classes/Reap/AnnounceTask.src/M000041.html → web/rdoc/classes/Reap/Announce.src/M000031.html} +13 -10
  64. data/{pub/www/rdoc/classes/Reap/AnnounceTask.src/M000042.html → web/rdoc/classes/Reap/Announce.src/M000032.html} +2 -2
  65. data/{pub/www/rdoc/classes/Reap/InfoTask.html → web/rdoc/classes/Reap/Info.html} +23 -41
  66. data/{pub/www/rdoc/classes/Reap/RDocTask.src/M000002.html → web/rdoc/classes/Reap/Info.src/M000033.html} +4 -4
  67. data/{pub/www/rdoc/classes/Reap/InfoTask.src/M000049.html → web/rdoc/classes/Reap/Info.src/M000034.html} +2 -2
  68. data/{pub/www/rdoc/classes/Reap/NoopTask.src/M000046.html → web/rdoc/classes/Reap/Info.src/M000035.html} +3 -3
  69. data/web/rdoc/classes/Reap/Install.html +193 -0
  70. data/web/rdoc/classes/Reap/Install.src/M000036.html +18 -0
  71. data/{pub/www/rdoc/classes/Reap/AnnounceTask.src/M000040.html → web/rdoc/classes/Reap/Install.src/M000037.html} +6 -4
  72. data/web/rdoc/classes/Reap/Install.src/M000038.html +26 -0
  73. data/{pub/www/rdoc/classes/Reap/NoopTask.html → web/rdoc/classes/Reap/Noop.html} +23 -41
  74. data/web/rdoc/classes/Reap/Noop.src/M000027.html +18 -0
  75. data/{pub/www/rdoc/classes/Reap/NoopTask.src/M000045.html → web/rdoc/classes/Reap/Noop.src/M000028.html} +2 -2
  76. data/{pub/www/rdoc/classes/Reap/InfoTask.src/M000050.html → web/rdoc/classes/Reap/Noop.src/M000029.html} +3 -3
  77. data/{pub/www/rdoc/classes/Reap/PackageTask.html → web/rdoc/classes/Reap/Package.html} +40 -68
  78. data/{pub/www/rdoc/classes/Reap/NoopTask.src/M000044.html → web/rdoc/classes/Reap/Package.src/M000055.html} +4 -4
  79. data/{pub/www/rdoc/classes/Reap/PackageTask.src/M000007.html → web/rdoc/classes/Reap/Package.src/M000056.html} +28 -13
  80. data/{pub/www/rdoc/classes/Reap/PackageTask.src/M000008.html → web/rdoc/classes/Reap/Package.src/M000057.html} +43 -32
  81. data/{pub/www/rdoc/classes/Reap/PackageTask.src/M000009.html → web/rdoc/classes/Reap/Package.src/M000058.html} +13 -3
  82. data/{pub/www/rdoc/classes/Reap/FilemodTask.html → web/rdoc/classes/Reap/Perm.html} +35 -53
  83. data/web/rdoc/classes/Reap/Perm.src/M000078.html +18 -0
  84. data/{pub/www/rdoc/classes/Reap/FilemodTask.src/M000029.html → web/rdoc/classes/Reap/Perm.src/M000079.html} +3 -3
  85. data/{pub/www/rdoc/classes/Reap/FilemodTask.src/M000030.html → web/rdoc/classes/Reap/Perm.src/M000080.html} +2 -2
  86. data/{pub/www/rdoc/classes/Reap/FilemodTask.src/M000031.html → web/rdoc/classes/Reap/Perm.src/M000081.html} +2 -2
  87. data/{pub/www/rdoc/classes/Reap/FilemodTask.src/M000032.html → web/rdoc/classes/Reap/Perm.src/M000082.html} +2 -2
  88. data/{pub/www/rdoc/classes/Reap/PublishTask.html → web/rdoc/classes/Reap/Publish.html} +23 -41
  89. data/web/rdoc/classes/Reap/Publish.src/M000070.html +18 -0
  90. data/{pub/www/rdoc/classes/Reap/PublishTask.src/M000025.html → web/rdoc/classes/Reap/Publish.src/M000071.html} +2 -2
  91. data/{pub/www/rdoc/classes/Reap/PublishTask.src/M000026.html → web/rdoc/classes/Reap/Publish.src/M000072.html} +3 -4
  92. data/{pub/www/rdoc/classes/Reap/RDocTask.html → web/rdoc/classes/Reap/RDoc.html} +23 -41
  93. data/web/rdoc/classes/Reap/RDoc.src/M000059.html +18 -0
  94. data/{pub/www/rdoc/classes/Reap/RDocTask.src/M000003.html → web/rdoc/classes/Reap/RDoc.src/M000060.html} +4 -5
  95. data/{pub/www/rdoc/classes/Reap/RDocTask.src/M000004.html → web/rdoc/classes/Reap/RDoc.src/M000061.html} +26 -9
  96. data/web/rdoc/classes/Reap/Task.html +396 -0
  97. data/web/rdoc/classes/Reap/Task.src/M000039.html +18 -0
  98. data/{pub/www/rdoc/classes/Reap/FilemodTask.src/M000027.html → web/rdoc/classes/Reap/Task.src/M000040.html} +3 -3
  99. data/web/rdoc/classes/Reap/Task.src/M000041.html +16 -0
  100. data/web/rdoc/classes/Reap/Task.src/M000042.html +16 -0
  101. data/{pub/www/rdoc/classes/Reap/NoopTask.src → web/rdoc/classes/Reap/Task.src}/M000043.html +3 -3
  102. data/web/rdoc/classes/Reap/Task.src/M000044.html +22 -0
  103. data/web/rdoc/classes/Reap/Task.src/M000045.html +16 -0
  104. data/web/rdoc/classes/Reap/Task.src/M000046.html +16 -0
  105. data/{pub/www/rdoc/classes/Reap/Task.src/M000034.html → web/rdoc/classes/Reap/Task.src/M000047.html} +2 -4
  106. data/{pub/www/rdoc/classes/Reap/Task.src/M000036.html → web/rdoc/classes/Reap/Task.src/M000048.html} +3 -3
  107. data/web/rdoc/classes/Reap/Task.src/M000049.html +16 -0
  108. data/web/rdoc/classes/Reap/Task.src/M000050.html +27 -0
  109. data/web/rdoc/classes/Reap/Task.src/M000051.html +19 -0
  110. data/{pub/www/rdoc/classes/Reap/Task.src/M000037.html → web/rdoc/classes/Reap/Task.src/M000052.html} +2 -2
  111. data/web/rdoc/classes/Reap/Task.src/M000053.html +18 -0
  112. data/web/rdoc/classes/Reap/Task.src/M000054.html +19 -0
  113. data/{pub/www/rdoc/classes/Reap/TestTask.html → web/rdoc/classes/Reap/Test.html} +47 -56
  114. data/web/rdoc/classes/Reap/Test.src/M000062.html +18 -0
  115. data/{pub/www/rdoc/classes/Reap/TestTask.src/M000016.html → web/rdoc/classes/Reap/Test.src/M000063.html} +5 -4
  116. data/{pub/www/rdoc/classes/Reap/TestTask.src/M000017.html → web/rdoc/classes/Reap/Test.src/M000064.html} +2 -2
  117. data/{pub/www/rdoc/classes/Reap/TestTask.src/M000018.html → web/rdoc/classes/Reap/Test.src/M000065.html} +2 -2
  118. data/{pub/www/rdoc/classes/Reap/TestTask.src/M000019.html → web/rdoc/classes/Reap/Test.src/M000066.html} +18 -4
  119. data/{pub/www/rdoc/classes/Reap/TestTask → web/rdoc/classes/Reap/Test}/TestResults.html +21 -19
  120. data/{pub/www/rdoc/classes/Reap/TestTask/TestResults.src/M000020.html → web/rdoc/classes/Reap/Test/TestResults.src/M000067.html} +2 -2
  121. data/{pub/www/rdoc/classes/Reap/TestTask/TestResults.src/M000021.html → web/rdoc/classes/Reap/Test/TestResults.src/M000068.html} +2 -2
  122. data/{pub/www/rdoc/classes/Reap/TestTask/TestResults.src/M000022.html → web/rdoc/classes/Reap/Test/TestResults.src/M000069.html} +2 -2
  123. data/web/rdoc/classes/Reap/TestExt.html +234 -0
  124. data/{pub/www/rdoc/classes/Reap/InfoTask.src/M000048.html → web/rdoc/classes/Reap/TestExt.src/M000073.html} +4 -4
  125. data/web/rdoc/classes/Reap/TestExt.src/M000074.html +20 -0
  126. data/web/rdoc/classes/Reap/TestExt.src/M000075.html +49 -0
  127. data/web/rdoc/classes/Reap/TestExt.src/M000076.html +34 -0
  128. data/web/rdoc/classes/Reap/TestExt.src/M000077.html +27 -0
  129. data/{pub/www/rdoc/classes/Reap/WebPublishTask.html → web/rdoc/classes/Reap/WebPublish.html} +23 -41
  130. data/{pub/www/rdoc/classes/Reap/WebPublishTask.src/M000011.html → web/rdoc/classes/Reap/WebPublish.src/M000083.html} +4 -4
  131. data/{pub/www/rdoc/classes/Reap/WebPublishTask.src/M000012.html → web/rdoc/classes/Reap/WebPublish.src/M000084.html} +2 -2
  132. data/{pub/www/rdoc/classes/Reap/WebPublishTask.src/M000013.html → web/rdoc/classes/Reap/WebPublish.src/M000085.html} +2 -2
  133. data/web/rdoc/classes/ReapCommand.html +425 -0
  134. data/web/rdoc/classes/ReapCommand.src/M000001.html +16 -0
  135. data/{pub/www/rdoc/classes/Reap/AnnounceTask.src/M000039.html → web/rdoc/classes/ReapCommand.src/M000003.html} +4 -4
  136. data/web/rdoc/classes/ReapCommand.src/M000005.html +16 -0
  137. data/{pub/www/rdoc/classes/Reap/InfoTask.src/M000047.html → web/rdoc/classes/ReapCommand.src/M000007.html} +4 -4
  138. data/web/rdoc/classes/ReapCommand.src/M000009.html +16 -0
  139. data/web/rdoc/classes/ReapCommand.src/M000011.html +16 -0
  140. data/web/rdoc/classes/ReapCommand.src/M000013.html +18 -0
  141. data/web/rdoc/classes/ReapCommand.src/M000014.html +19 -0
  142. data/web/rdoc/classes/ReapCommand.src/M000015.html +19 -0
  143. data/web/rdoc/classes/ReapCommand.src/M000016.html +24 -0
  144. data/web/rdoc/classes/ReapCommand.src/M000018.html +29 -0
  145. data/web/rdoc/classes/Scaffold.html +211 -0
  146. data/web/rdoc/classes/Scaffold.src/M000086.html +16 -0
  147. data/web/rdoc/classes/Scaffold.src/M000087.html +28 -0
  148. data/web/rdoc/classes/Scaffold.src/M000088.html +32 -0
  149. data/web/rdoc/classes/Scaffold.src/M000089.html +18 -0
  150. data/{pub/www/rdoc/classes/RakeTask.html → web/rdoc/classes/UnitTestKernel.html} +28 -34
  151. data/web/rdoc/classes/UnitTestKernel.src/M000019.html +18 -0
  152. data/web/rdoc/classes/UnitTestKernel.src/M000020.html +18 -0
  153. data/web/rdoc/classes/UnitTestKernel.src/M000021.html +22 -0
  154. data/web/rdoc/classes/UnitTestKernel.src/M000022.html +22 -0
  155. data/{pub/www/rdoc/classes/Reap.html → web/rdoc/classes/UnitTesting.html} +48 -54
  156. data/web/rdoc/classes/UnitTesting.src/M000090.html +34 -0
  157. data/web/rdoc/classes/UnitTesting.src/M000091.html +18 -0
  158. data/web/rdoc/classes/UnitTesting/Failure.html +156 -0
  159. data/web/rdoc/classes/UnitTesting/Failure.src/M000092.html +18 -0
  160. data/web/rdoc/classes/UnitTesting/Failure.src/M000093.html +21 -0
  161. data/web/rdoc/created.rid +1 -0
  162. data/web/rdoc/files/ANN.html +107 -0
  163. data/{pub/www/rdoc/files/LICENSE.html → web/rdoc/files/COPYING.html} +3 -3
  164. data/web/rdoc/files/ChangeLog.html +144 -0
  165. data/web/rdoc/files/ProjectInfo.html +190 -0
  166. data/{pub/www → web}/rdoc/files/README.html +38 -35
  167. data/web/rdoc/files/Rakefile.html +101 -0
  168. data/web/rdoc/files/lib/reap/bin/reap_rb.html +129 -0
  169. data/web/rdoc/files/lib/reap/lint_rb.html +101 -0
  170. data/{pub/www → web}/rdoc/files/lib/reap/projectinfo_rb.html +3 -4
  171. data/web/rdoc/files/lib/reap/readymade_rb.html +123 -0
  172. data/{pub/www/rdoc/files/lib/reap/announce_task_rb.html → web/rdoc/files/lib/reap/task/announce_rb.html} +5 -5
  173. data/{pub/www/rdoc/files/lib/reap/filemod_task_rb.html → web/rdoc/files/lib/reap/task/fileperm_rb.html} +5 -5
  174. data/{pub/www/rdoc/files/lib/reap/rdoc_task_rb.html → web/rdoc/files/lib/reap/task/info_rb.html} +5 -5
  175. data/web/rdoc/files/lib/reap/task/install_rb.html +108 -0
  176. data/{pub/www/rdoc/files/lib/reap/noop_task_rb.html → web/rdoc/files/lib/reap/task/noop_rb.html} +5 -5
  177. data/{pub/www/rdoc/files/lib/reap/package_task_rb.html → web/rdoc/files/lib/reap/task/package_rb.html} +5 -5
  178. data/web/rdoc/files/lib/reap/task/publish_rb.html +108 -0
  179. data/web/rdoc/files/lib/reap/task/rdoc_rb.html +108 -0
  180. data/web/rdoc/files/lib/reap/task/scaffold_rb.html +107 -0
  181. data/{pub/www/rdoc/files/lib/reap/test_task_rb.html → web/rdoc/files/lib/reap/task/test_rb.html} +5 -5
  182. data/web/rdoc/files/lib/reap/task/testext_rb.html +109 -0
  183. data/{pub/www/rdoc/files/lib/reap/publish_task_rb.html → web/rdoc/files/lib/reap/task/webpublish_rb.html} +5 -5
  184. data/{pub/www → web}/rdoc/files/lib/reap/task_rb.html +11 -3
  185. data/{pub/www → web}/rdoc/files/lib/reap/tasks_rb.html +10 -9
  186. data/{pub/www/rdoc/files/lib/reap/info_task_rb.html → web/rdoc/files/lib/reap/test_rb.html} +6 -5
  187. data/web/rdoc/fr_class_index.html +47 -0
  188. data/web/rdoc/fr_file_index.html +51 -0
  189. data/web/rdoc/fr_method_index.html +124 -0
  190. data/{pub/www → web}/rdoc/index.html +0 -0
  191. data/{pub/www → web}/rdoc/rdoc-style.css +0 -0
  192. metadata +236 -158
  193. data/lib/reap/info_task.rb +0 -29
  194. data/lib/reap/noop_task.rb +0 -35
  195. data/lib/reap/ready_made.rb +0 -12
  196. data/pub/www/Reapfile +0 -99
  197. data/pub/www/index.html +0 -90
  198. data/pub/www/rdoc/classes/ProjectInfo.src/M000057.html +0 -18
  199. data/pub/www/rdoc/classes/RakeTask.src/M000051.html +0 -18
  200. data/pub/www/rdoc/classes/RakeTask.src/M000052.html +0 -18
  201. data/pub/www/rdoc/classes/RakeTask.src/M000053.html +0 -18
  202. data/pub/www/rdoc/classes/RakeTask.src/M000054.html +0 -18
  203. data/pub/www/rdoc/classes/Reap/FilemodTask.src/M000028.html +0 -18
  204. data/pub/www/rdoc/classes/Reap/PackageTask.src/M000005.html +0 -16
  205. data/pub/www/rdoc/classes/Reap/PackageTask.src/M000006.html +0 -24
  206. data/pub/www/rdoc/classes/Reap/PublishTask.src/M000023.html +0 -16
  207. data/pub/www/rdoc/classes/Reap/PublishTask.src/M000024.html +0 -18
  208. data/pub/www/rdoc/classes/Reap/RDocTask.src/M000001.html +0 -16
  209. data/pub/www/rdoc/classes/Reap/Task.html +0 -239
  210. data/pub/www/rdoc/classes/Reap/Task.src/M000033.html +0 -21
  211. data/pub/www/rdoc/classes/Reap/Task.src/M000035.html +0 -41
  212. data/pub/www/rdoc/classes/Reap/Task.src/M000038.html +0 -19
  213. data/pub/www/rdoc/classes/Reap/TestTask.src/M000014.html +0 -16
  214. data/pub/www/rdoc/classes/Reap/TestTask.src/M000015.html +0 -18
  215. data/pub/www/rdoc/classes/Reap/WebPublishTask.src/M000010.html +0 -16
  216. data/pub/www/rdoc/classes/ReapTask.html +0 -287
  217. data/pub/www/rdoc/classes/ReapTask.src/M000060.html +0 -18
  218. data/pub/www/rdoc/classes/ReapTask.src/M000061.html +0 -18
  219. data/pub/www/rdoc/classes/ReapTask.src/M000062.html +0 -18
  220. data/pub/www/rdoc/classes/ReapTask.src/M000063.html +0 -18
  221. data/pub/www/rdoc/classes/ReapTask.src/M000064.html +0 -18
  222. data/pub/www/rdoc/classes/ReapTask.src/M000065.html +0 -18
  223. data/pub/www/rdoc/classes/ReapTask.src/M000066.html +0 -18
  224. data/pub/www/rdoc/classes/ReapTask.src/M000067.html +0 -18
  225. data/pub/www/rdoc/classes/ReapTask.src/M000068.html +0 -18
  226. data/pub/www/rdoc/created.rid +0 -1
  227. data/pub/www/rdoc/files/lib/reap/ready_made_rb.html +0 -115
  228. data/pub/www/rdoc/files/lib/reap/web_publish_task_rb.html +0 -108
  229. data/pub/www/rdoc/fr_class_index.html +0 -41
  230. data/pub/www/rdoc/fr_file_index.html +0 -41
  231. data/pub/www/rdoc/fr_method_index.html +0 -94
@@ -0,0 +1,46 @@
1
+ #!/usr/bin/ruby
2
+
3
+ DEBUG = false
4
+ URI = "-dtransami@cvs.suby.berlios.de:/cvsroot/suby"
5
+
6
+ cmd = nil
7
+
8
+ case ARGV[0]
9
+ when 'checkout', 'co'
10
+ if ARGV[1] and ARGV[1] != ''
11
+ cmd = %Q{cvs -z3 #{URI} co "#{ARGV[1]}"}
12
+ else
13
+ puts "no module given"
14
+ cmd = nil
15
+ end
16
+ when 'commit'
17
+ if ARGV[1] and ARGV[1] != ''
18
+ cmd = %Q{cvs -z3 #{URI} commit -m "#{ARGV[1]}"}
19
+ else
20
+ puts "no commit message given"
21
+ cmd = nil
22
+ end
23
+ when 'update'
24
+ cmd = %Q{cvs -z3 #{URI} update}
25
+ when 'add'
26
+ if ARGV[1]
27
+ cmd = %Q{cvs -z3 #{URI} add #{ARGV[1..-1].join(' ')}}
28
+ else
29
+ puts "no files given to add"
30
+ cmd = nil
31
+ end
32
+ when 'remove'
33
+ if ARGV[1]
34
+ cmd = %Q{cvs -z3 #{URI} remove #{ARGV[1..-1].join(' ')}}
35
+ else
36
+ puts "no file given to remove"
37
+ cmd = nil
38
+ end
39
+ end
40
+
41
+ if DEBUG
42
+ puts cmd
43
+ elsif cmd
44
+ `#{cmd}`
45
+ end
46
+
@@ -1,48 +1,33 @@
1
1
  --- %YAML:1.0
2
2
 
3
- TITLE: &title Your App's Title
4
- NAME: &pkg your_unix_name
3
+ TITLE: &title Your Package
4
+ NAME: &pkg your_package_name
5
5
  VERSION: '0.0.1'
6
6
  AUTHOR: Your Name
7
- EMAIL: youremail@address.com
7
+ EMAIL: &email youremail@address.com
8
8
  HOMEPAGE: "http://your_package_name.rubyforge.org"
9
9
  SUMMARY: One line summary
10
-
11
10
  DESCRIPTION: >
12
- Multline description
13
- goes here.
11
+ Multline description goes here.
14
12
 
15
13
  RUBYFORGE:
16
- PROJECT: your_projects_unix_name
14
+ PROJECT: 'your_project_name'
17
15
  USERNAME: your_rubyforge_username
18
16
 
19
- PUBLISH:
20
- - HOST: rubyforge
21
- TYPE: web
22
- USERNAME: your_username
23
- DIR: www
24
-
25
- #=================================================
26
- # Usually the following defaults are sufficiant
27
- #=================================================
28
-
29
17
  TEST:
30
18
  FILES:
31
- - 'test/**/tc*.rb'
32
- - 'test/**/test*.rb'
33
- - 'test/**/*test.rb'
34
- OPTIONS: ~ # not used yet
19
+ - 'test/**/tc_*.rb'
20
+ OPTIONS: ~
35
21
 
36
22
  RDOC:
37
23
  TITLE: *title
38
- DIR: 'rdoc' # 'pub/www/rdoc'
39
- TEMPLATE: html
40
- OPTIONS: ['--merge', '--all']
24
+ DIR: 'doc' #'rdoc'
25
+ TEMPLATE: html #ruby-red
26
+ OPTIONS: ['--merge', '--promiscuous', '--all']
41
27
  MAIN: README
42
28
  INCLUDE:
43
29
  - 'README'
44
30
  - 'LICEN*'
45
- - 'COPY*'
46
31
  - 'lib/**/*.rb'
47
32
  - 'bin/**/*.rb'
48
33
  EXCLUDE: []
@@ -51,8 +36,6 @@ PACKAGE:
51
36
  DIR: pkg
52
37
  INCLUDE:
53
38
  - 'lib/**/*'
54
- - 'data/**/*'
55
- - 'ext/**/*'
56
39
  - 'bin/**/*'
57
40
  - 'bench/**/*'
58
41
  - 'test/**/*'
@@ -63,16 +46,10 @@ PACKAGE:
63
46
  - 'demo/**/*'
64
47
  - 'samples/**/*'
65
48
  - 'examples/**/*'
66
- - 'bench/**/*'
67
49
  - 'setup.rb'
68
50
  - '[A-Z]*'
69
51
  EXCLUDE:
70
52
  - InstalledFiles
71
- AUTOREQUIRE: ~
72
- REQUIREMENTS: []
73
- DEPENDENCIES: []
74
- EXECUTABLES: []
75
- GEM: true
76
53
  ZIP: true
77
54
  GZIP: true
78
55
  BZIP2: true
@@ -84,11 +61,12 @@ ANNOUNCE:
84
61
  SERVER: smtp.your_email_server.com
85
62
  PORT: 25
86
63
  ACCOUNT: email_account_name
87
- AUTHTYPE: login #cram_md5 #plain
88
- TLS: false # not working yet
89
- FILE: ANN # which file contains announcement
64
+ AUTHTYPE: login #cram_md5 #plain
65
+ FILE: ANN #which file contains tha announcement text
90
66
  SLOGAN: ALL YOUR BASE ARE BELONG TO RUBY!
91
67
  INFO:
92
68
  - http://your_homepage.org
93
- - http://other_links.com
69
+
70
+ GEMSPEC:
71
+ ACTIVE: true
94
72
 
@@ -0,0 +1,134 @@
1
+
2
+ require 'facets'
3
+ require 'rbconfig'
4
+ require 'carat/shellcommand'
5
+ require 'reap/tasks'
6
+
7
+ INFO_FILES = [ 'ProjectInfo', 'Reapfile', 'projectinfo', 'reapfile' ]
8
+
9
+ Reap.register
10
+
11
+ module Reap
12
+ Version = "2005-10-06"
13
+ end
14
+
15
+ class ReapCommand < ShellCommand
16
+
17
+ # Options
18
+
19
+ # verbose mode
20
+ def __verbose ; $VERBOSE = true ; end
21
+ alias_method :_V, :__verbose
22
+
23
+ # debug mode (under construction)
24
+ def __debug; $DEBUG = true ; end
25
+ alias_method :_D, :__debug
26
+
27
+ # pretend mode (under construction)
28
+ def __pretend; $PRETEND = true ; end
29
+ alias_method :_P, :__pretend
30
+
31
+ # option to display version
32
+ def __version ; version ; end
33
+ alias_method :_v, :__version
34
+
35
+ # option to display help
36
+ def __help ; help ; end
37
+ alias_method :_h, :__help
38
+
39
+ # option to display tasks
40
+ def __tasks; tasks ; end
41
+ alias_method :_t, :__tasks
42
+
43
+ # option for require
44
+ #def __require(r); @require = r ; end
45
+ #alias_method :_r, :__require
46
+
47
+ # Commands
48
+
49
+ # default action
50
+ def default
51
+ tasks
52
+ end
53
+
54
+ # display version
55
+ def version
56
+ puts "Reap v.#{Reap::Version}"
57
+ exit 0
58
+ end
59
+
60
+ # display help
61
+ def help
62
+ puts HELP
63
+ exit 0
64
+ end
65
+
66
+ # list available tasks
67
+ def tasks
68
+ Reap.initialize #_all
69
+ puts
70
+ Reap.tasks.each do |name,task|
71
+ puts " #{name}".ljust(20) + "#{task.task_desc}"
72
+ end
73
+ puts
74
+ exit 0
75
+ end
76
+ alias_method :ls, :tasks
77
+
78
+ # copy the file from lib/data to the current dir.
79
+ def template
80
+ if INFO_FILES.any?{ |f| File.exists?(f) }
81
+ puts "Project file already exists."
82
+ exit 0
83
+ end
84
+ filename = 'ProjectInfo'
85
+ dir = File.join( ::Config::CONFIG['datadir'], 'reap', 'scaffold' )
86
+ f = File.join( dir, filename )
87
+ raise "ProjectInfo template file #{f} is missing." unless File.file?( f )
88
+ # copy
89
+ FileUtils.cp( f, filename )
90
+ puts "#{filename} created. You'll need to fill it out."
91
+ exit 0
92
+ end
93
+
94
+ Reap.registry.each do |sym,taskclass|
95
+ define_method(sym) do |*args|
96
+ taskclass.new.run(*args)
97
+ end
98
+ end
99
+
100
+ end
101
+
102
+
103
+ HELP = <<-HERE
104
+
105
+ reap v#{::Reap::Version}
106
+
107
+ USAGE: reap [options...] <command> [arguments...]
108
+
109
+ COMMANDS:
110
+
111
+ scaffold
112
+ Copies a ProjectInfo template into the current
113
+ directory, if it doesn't already exist. If it does
114
+ exist will build the project directory based on it.
115
+ This will not destroy any structure already in place!
116
+
117
+ help
118
+ Displays this help information.
119
+
120
+ OPTIONS:
121
+
122
+ -v --version
123
+ Display the current version.
124
+
125
+ -V --verbose
126
+ Provides extra verbose processing information.
127
+
128
+ -D --debug
129
+ Provides extra verbose processing information.
130
+
131
+ -h --help
132
+ Display this help information.
133
+
134
+ HERE
File without changes
@@ -1,29 +1,40 @@
1
1
 
2
2
  require 'yaml'
3
- require 'nano/hash/traverse'
4
- require 'nano/string/tabto'
5
- require 'nano/binding/local_variables'
3
+ require 'facet/hash/traverse'
4
+ require 'facet/string/tabto'
5
+ require 'facet/dir/self/ascend'
6
6
 
7
7
  module ProjectInfo
8
8
  extend self
9
9
 
10
- attr_writer :info_file
10
+ INFO_FILES = [ 'ProjectInfo', 'ReapFile', 'projectinfo', 'reapfile' ]
11
11
 
12
- def info_file
13
- @info_file ||= 'ProjectInfo'
12
+ def add_info_file( f )
13
+ INFO_FILES.unshift( f )
14
14
  end
15
15
 
16
16
  def info_stream
17
+ dir = Dir.pwd
17
18
  unless @info_stream
18
- if File.file?( info_file ) and !File.directory?( info_file )
19
- @info_stream = File.read( info_file )
19
+ Dir.ascend(Dir.pwd) do |d|
20
+ Dir.chdir(d)
21
+ info_file = INFO_FILES.find{ |f| File.file?( f ) }
22
+ if info_file
23
+ @info_stream = File.read( info_file )
24
+ puts "(in #{d})" unless dir == Dir.pwd
25
+ break
26
+ end
20
27
  end
21
28
  end
22
29
  @info_stream
23
30
  end
24
31
 
25
32
  def info
26
- @info ||= YAML::load(info_stream).traverse{ |k,v| [k.downcase, v] }
33
+ if info_stream
34
+ @info ||= YAML::load(info_stream).traverse{ |k,v| [k.downcase, v] }
35
+ else
36
+ {}
37
+ end
27
38
  end
28
39
 
29
40
  # not using at the moment
@@ -0,0 +1,21 @@
1
+
2
+ # This loads in the reap tasks and setsup
3
+ # some tasks that are typically ready to go
4
+ # without additional paramaters.
5
+
6
+ require 'reap/task/announce'
7
+ require 'reap/task/extract_tests'
8
+ require 'reap/task/fileperm'
9
+ require 'reap/task/info'
10
+ require 'reap/task/install'
11
+ require 'reap/task/package'
12
+ require 'reap/task/publish'
13
+ require 'reap/task/rdoc'
14
+ require 'reap/task/test'
15
+
16
+ rdoc_task( :rdoc )
17
+ tests_task( :test )
18
+ install_task( :install )
19
+ info_task( :info )
20
+ package_task( :package )
21
+ extract_tests_task( :exttests )
@@ -1,18 +1,14 @@
1
1
 
2
- require 'rake'
3
- require 'rake/tasklib'
4
-
5
2
  require 'rbconfig'
6
3
  require 'fileutils'
7
4
 
8
- #require 'mega/filelist'
9
- require 'reap/projectinfo'
5
+ require 'facet/fileutils/safe_ln'
6
+ require 'facet/string/tabto'
7
+ require 'facet/module/basename'
10
8
 
11
- module Reap ; VERSION = 3 ; end
9
+ require 'carat/filelist'
12
10
 
13
- module ReapTask
14
- extend self
15
- end
11
+ require 'reap/projectinfo'
16
12
 
17
13
  # Base class for reap tasks.
18
14
  #
@@ -45,69 +41,122 @@ end
45
41
  #
46
42
  module Reap
47
43
 
48
- #def self.register( name, klass )
49
- # @registry ||= {}
50
- # @registry[name.to_s.downcase] = klass
51
- #end
44
+ def self.registry ; @registry ; end
52
45
 
53
- #def self.registry ; @registry ; end
54
-
55
- class Task < ::Rake::TaskLib
46
+ def self.register
47
+ @registry ||= {}
48
+ ObjectSpace.each_object(Class) { |klass|
49
+ if klass < ::Reap::Task
50
+ if klass.verify
51
+ @registry[klass.basename.downcase] = klass
52
+ end
53
+ end
54
+ }
55
+ end
56
56
 
57
- RUBY = Config::CONFIG['ruby_install_name']
57
+ def self.tasks ; @tasks ; end
58
58
 
59
- def self.register( name )
60
- klass = self.class
61
- ReapTask.class_eval {
62
- define_method( "#{name}_task" ) { |*args| klass.new(*args) }
63
- }
59
+ def self.initialize
60
+ @tasks ||= {}
61
+ registry.each do |name, klass|
62
+ @tasks[name] = klass.new
64
63
  end
64
+ end
65
65
 
66
- def master
67
- ::ProjectInfo.info
68
- end
69
66
 
70
- #attr_reader :name, :description, :subtask
67
+ class Task
71
68
 
72
- def initialize( task_name=nil, subtask=nil, &yld ) #:yield:
73
- o = nil
74
- o = yld.call(self) if yld
75
- if String === o
76
- begin
77
- section( o ).each { |k,v| send("#{k}=", v ) }
78
- end
69
+ include ::Config
70
+ include ::FileUtils
71
+
72
+ RUBY = CONFIG['ruby_install_name']
73
+
74
+ # class methods
75
+
76
+ def self.task_desc ; '(no desciption given)' ; end
77
+ def self.task_name ; basename.downcase ; end
78
+
79
+ def self.section_required( val ) ; @section_required = val ;end
80
+ def self.section_required? ; @section_required ; end
81
+
82
+ def self.verify
83
+ assume = true
84
+ if section_required?
85
+ assume = ::ProjectInfo.info.key?(task_name)
79
86
  end
87
+ assume
88
+ end
89
+
90
+ # instance methods
91
+
92
+ def task_name ; self.class.task_name ; end
93
+ def task_desc ; self.class.task_desc ; end
80
94
 
81
- init
95
+ def master ; ::ProjectInfo.info ; end
82
96
 
83
- task_name ||= default_name
84
- task_desc = @desc || default_desc
97
+ def section ; @section ; end
85
98
 
86
- if subtask
87
- desc task_desc
88
- task task_name => subtask do
89
- run
99
+ def section_required? ; self.class.section_required? ; end
100
+
101
+ def initialize
102
+ sect = master[task_name]
103
+ if sect.is_a?(Array)
104
+ sect.each do |s|
105
+ section_parameters_set( s )
106
+ init
90
107
  end
91
108
  else
92
- desc task_desc
93
- task task_name do
94
- run
95
- end
109
+ section_parameters_set( sect || {} )
110
+ init
96
111
  end
97
112
  end
98
113
 
99
- def default_desc ; '(no desciption given)' ; end
100
- #def default_name ; self.class.basename.downcase ; end
114
+ def section_parameters_set( s )
115
+ @section = s
116
+ @section.each { |k,v| send("#{k}=", v) }
117
+ end
101
118
 
102
119
  def init
103
- raise "not implemented"
120
+ raise "not implemented for '#{task_name}' task"
104
121
  end
105
122
 
106
- def section( ymlstr )
107
- iy = YAML::load(ProjectInfo.info_stream + "\ntask:\n" + ymlstr.tabto(2))
108
- iy['task'] || {}
123
+ def run( *args )
124
+ raise "no action defined for task #{task_name}"
109
125
  end
110
126
 
127
+ # task support methods
128
+
129
+ def sh( arg )
130
+ puts arg
131
+ system arg unless $PRETEND
132
+ end
133
+
134
+ # o = nil
135
+ # o = yld.call(self) if yld
136
+ # if String === o
137
+ # begin
138
+ # section( o ).each { |k,v| send("#{k}=", v ) }
139
+ # end
140
+ # end
141
+ #
142
+ # init
143
+ #
144
+ # task_name ||= default_name
145
+ # task_desc = @desc || default_desc
146
+ #
147
+ # if subtask
148
+ # desc task_desc
149
+ # task task_name => subtask do
150
+ # run
151
+ # end
152
+ # else
153
+ # desc task_desc
154
+ # task task_name do
155
+ # run
156
+ # end
157
+ # end
158
+ # end
159
+
111
160
  end #class Task
112
161
 
113
162
  end #module Reap
@@ -116,23 +165,23 @@ end #module Reap
116
165
  ##
117
166
  # Convenience methods for built-in rake tasks
118
167
  ##
119
- module RakeTask
120
- extend self
121
-
122
- def gem_package_task(*args,&blk)
123
- ::Rake::GemPackageTask.new(*args,&blk)
124
- end
125
-
126
- def package_task(*args,&blk)
127
- ::Rake::PackageTask.new(*args,&blk)
128
- end
129
-
130
- def test_task(*args,&blk)
131
- ::Rake::TestTask.new(*args,&blk)
132
- end
133
-
134
- def rdoc_task(*args,&blk)
135
- ::Rake::RDocTask.new(*args,&blk)
136
- end
137
-
138
- end
168
+ # module RakeTask
169
+ # extend self
170
+ #
171
+ # def gem_package_task(*args,&blk)
172
+ # ::Rake::GemPackageTask.new(*args,&blk)
173
+ # end
174
+ #
175
+ # def package_task(*args,&blk)
176
+ # ::Rake::PackageTask.new(*args,&blk)
177
+ # end
178
+ #
179
+ # def test_task(*args,&blk)
180
+ # ::Rake::TestTask.new(*args,&blk)
181
+ # end
182
+ #
183
+ # def rdoc_task(*args,&blk)
184
+ # ::Rake::RDocTask.new(*args,&blk)
185
+ # end
186
+ #
187
+ # end