reap 6.0.2 → 9.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (174) hide show
  1. data/CHANGES +6 -0
  2. data/COPYING +666 -395
  3. data/MANIFEST +139 -0
  4. data/NOTES +12 -0
  5. data/README +19 -163
  6. data/bin/reap-announce +7 -0
  7. data/bin/reap-check-load +8 -0
  8. data/bin/reap-check-syntax +7 -0
  9. data/bin/reap-clean +7 -0
  10. data/bin/reap-clobber +7 -0
  11. data/bin/reap-doc +7 -0
  12. data/bin/reap-doc-rdoc +7 -0
  13. data/bin/reap-doc-ri +7 -0
  14. data/bin/reap-init +69 -0
  15. data/bin/reap-inspect +7 -0
  16. data/bin/reap-install +8 -0
  17. data/bin/reap-install-gem +8 -0
  18. data/bin/reap-log +7 -0
  19. data/bin/reap-log-changes +8 -0
  20. data/bin/reap-log-notes +8 -0
  21. data/bin/reap-make +7 -0
  22. data/bin/reap-make-clean +7 -0
  23. data/bin/reap-make-distclean +7 -0
  24. data/bin/reap-make-extconf +7 -0
  25. data/bin/reap-make-static +8 -0
  26. data/bin/reap-package +8 -0
  27. data/bin/reap-package-gem +7 -0
  28. data/bin/reap-package-tgz +7 -0
  29. data/bin/reap-package-zip +7 -0
  30. data/bin/reap-prepare +7 -0
  31. data/bin/reap-publish +7 -0
  32. data/bin/reap-release +7 -0
  33. data/bin/reap-scaffold +8 -0
  34. data/bin/reap-scm-branch +7 -0
  35. data/bin/reap-scm-tag +7 -0
  36. data/bin/reap-spec +7 -0
  37. data/bin/reap-spec-doc +8 -0
  38. data/bin/reap-stamp +7 -0
  39. data/bin/reap-stats +7 -0
  40. data/bin/reap-test +7 -0
  41. data/bin/reap-test-cross +7 -0
  42. data/bin/reap-test-load +9 -0
  43. data/bin/reap-test-solo +7 -0
  44. data/bin/reap-uninstall +7 -0
  45. data/bin/reap-uninstall-gem +7 -0
  46. data/data/reap/base/CHANGES +19 -0
  47. data/data/reap/base/COPYING +674 -0
  48. data/data/reap/base/NOTES +12 -0
  49. data/data/reap/base/README +8 -0
  50. data/data/reap/build/rake/Rakefile +130 -0
  51. data/{forge/reference/installers → data/reap/build/rake}/setup.rb +155 -97
  52. data/data/reap/build/rake-lite/install.rb +79 -0
  53. data/data/reap/build/tasks/task/rdoc +211 -0
  54. data/data/reap/{setup.rb → build/tasks/task/setup} +248 -200
  55. data/data/reap/build/tasks/task/test +38 -0
  56. data/data/reap/init/meta/project.yaml +21 -0
  57. data/demo/README +15 -0
  58. data/demo/lib/foo/foo.rb +7 -0
  59. data/demo/meta/VERSION +1 -0
  60. data/demo/meta/project.yaml +21 -0
  61. data/lib/reap/application.rb +80 -0
  62. data/lib/reap/default.yaml +77 -0
  63. data/lib/reap/extensions/array.rb +50 -0
  64. data/lib/reap/extensions/hash.rb +63 -0
  65. data/lib/reap/extensions/string.rb +31 -0
  66. data/lib/reap/extensions.rb +6 -0
  67. data/lib/reap/iobject.rb +264 -0
  68. data/lib/reap/manager/announce.rb +193 -0
  69. data/lib/reap/manager/check.rb +109 -0
  70. data/lib/reap/manager/clean.rb +58 -0
  71. data/lib/reap/manager/gem.rb +200 -0
  72. data/lib/reap/manager/html.rb +69 -0
  73. data/lib/reap/manager/log.rb +214 -0
  74. data/lib/reap/manager/make.rb +109 -0
  75. data/lib/reap/manager/pack.rb +232 -0
  76. data/lib/reap/manager/publish.rb +72 -0
  77. data/lib/reap/manager/rdoc.rb +194 -0
  78. data/lib/reap/manager/release.rb +78 -0
  79. data/lib/reap/manager/rubyforge.rb +44 -0
  80. data/lib/reap/manager/scaffold.rb +138 -0
  81. data/lib/reap/manager/scm.rb +66 -0
  82. data/lib/reap/manager/site.rb +27 -0
  83. data/lib/reap/manager/spec.rb +94 -0
  84. data/lib/reap/manager/stats.rb +145 -0
  85. data/lib/reap/manager/svn.rb +76 -0
  86. data/lib/reap/manager/test.rb +389 -0
  87. data/lib/reap/manager.rb +74 -0
  88. data/lib/reap/metadata.rb +603 -0
  89. data/lib/reap/project.rb +165 -0
  90. data/lib/reap/settings.rb +67 -0
  91. data/lib/reap/systems/rubyforge.rb +737 -0
  92. data/lib/reap/systems/subversion.rb +333 -0
  93. data/lib/reap/utilities/fileutils.rb +304 -0
  94. data/lib/reap/utilities/netutils.rb +221 -0
  95. data/lib/reap/utilities/setuputils.rb +124 -0
  96. data/lib/reap/utilities/shellutils.rb +175 -0
  97. data/log/Changelog.txt +107 -0
  98. data/log/FIXME.txt +25 -0
  99. data/log/TODO.txt +72 -0
  100. data/meta/VERSION +1 -0
  101. data/meta/description +4 -0
  102. data/meta/project.yaml +20 -0
  103. data/task/man +14 -0
  104. data/task/rdoc +20 -0
  105. data/{data/reap/scaffold/standard/setup.rb → task/setup} +248 -200
  106. metadata +225 -153
  107. data/ProjectInfo +0 -105
  108. data/bin/reap +0 -5
  109. data/bin/rubytest +0 -5
  110. data/data/reap/install.rb +0 -62
  111. data/data/reap/scaffold/standard/COPYING +0 -403
  112. data/data/reap/scaffold/standard/ChangeLog +0 -0
  113. data/data/reap/scaffold/standard/INSTALL +0 -14
  114. data/data/reap/scaffold/standard/ProjectInfo +0 -77
  115. data/data/reap/scaffold/standard/README +0 -3
  116. data/data/reap/scaffold/standard/Rakefile +0 -10
  117. data/data/reap/scaffold/standard/TODO +0 -0
  118. data/data/reap/scaffold/subversion/trunk/COPYING +0 -403
  119. data/data/reap/scaffold/subversion/trunk/ChangeLog +0 -0
  120. data/data/reap/scaffold/subversion/trunk/INSTALL +0 -14
  121. data/data/reap/scaffold/subversion/trunk/ProjectInfo +0 -76
  122. data/data/reap/scaffold/subversion/trunk/README +0 -3
  123. data/data/reap/scaffold/subversion/trunk/Rakefile +0 -10
  124. data/data/reap/scaffold/subversion/trunk/TODO +0 -0
  125. data/data/reap/scaffold/subversion/trunk/setup.rb +0 -1568
  126. data/forge/ProjectInfo +0 -38
  127. data/forge/ProjectInfo.rb +0 -76
  128. data/forge/TODO +0 -10
  129. data/forge/installer.rb +0 -250
  130. data/forge/reference/Rakefile +0 -124
  131. data/forge/reference/Rakefile.htm +0 -69
  132. data/forge/reference/aRakefile +0 -60
  133. data/forge/reference/compositepublisher.rb +0 -24
  134. data/forge/reference/ftptools.rb +0 -139
  135. data/forge/reference/installers/package.rb +0 -629
  136. data/forge/reference/license-each.rb +0 -85
  137. data/forge/reference/publisher.rb +0 -75
  138. data/forge/reference/rubyforge.rb +0 -247
  139. data/forge/reference/rubyforgepublisher.rb +0 -18
  140. data/forge/reference/sshpublisher.rb +0 -47
  141. data/forge/reference/suby-cvs.rb +0 -46
  142. data/forge/scaffold.rb +0 -126
  143. data/forge/unit_runner/README +0 -6
  144. data/forge/unit_runner/commentrunner.rb +0 -62
  145. data/forge/unit_runner/cunit.rb +0 -17
  146. data/forge/unit_runner/forkedrunner.rb +0 -91
  147. data/forge/unit_runner/sample.rb +0 -16
  148. data/lib/reap/bin/reap.rb +0 -230
  149. data/lib/reap/bin/rubytest.rb +0 -53
  150. data/lib/reap/class/announce.rb +0 -220
  151. data/lib/reap/class/doap.rb +0 -80
  152. data/lib/reap/class/extest.rb +0 -146
  153. data/lib/reap/class/filer.rb +0 -62
  154. data/lib/reap/class/manifest.rb +0 -68
  155. data/lib/reap/class/package.rb +0 -576
  156. data/lib/reap/class/publish.rb +0 -152
  157. data/lib/reap/class/rdoc.rb +0 -123
  158. data/lib/reap/class/test.rb +0 -264
  159. data/lib/reap/projectinfo.rb +0 -208
  160. data/lib/reap/rake.rb +0 -42
  161. data/lib/reap/reap.rb +0 -89
  162. data/lib/reap/tasks.rb +0 -756
  163. data/lib/reap/taskutils.rb +0 -122
  164. data/note/LATEST +0 -44
  165. data/note/doap.xml +0 -28
  166. data/note/history/Rakefile-0.1 +0 -308
  167. data/sample/ProjectInfo +0 -96
  168. data/sample/Rakefile +0 -9
  169. data/sample/Reapfile +0 -11
  170. data/sample/task/demo.rb +0 -15
  171. data/setup.rb +0 -1568
  172. data/web/ProjectInfo.html +0 -75
  173. data/web/images/grape.jpg +0 -0
  174. data/web/index.html +0 -312
data/web/ProjectInfo.html DELETED
@@ -1,75 +0,0 @@
1
- <pre id="example" style="font-size: .9em; line-height: 1.1em;">
2
-
3
- --- %YAML:1.0
4
-
5
- title : Reap
6
- name : reap
7
- version : 6.0.0
8
- status : 'beta'
9
-
10
- author : Thomas Sawyer
11
- created : '2004-04-01'
12
- email : transfirz@zmail.com
13
- homepage : "http://reap.rubyforge.org"
14
-
15
- summary : A Ruby Project Management Assistant
16
-
17
- description: >
18
- Reap comprises a set of tasks commonly needed by
19
- Ruby package developers/deployers, such as testing,
20
- packaging, releasing, etc. You can also use Reap
21
- to create your own custom tasks. Reap utilizes a
22
- YAML configuration file to harvest common project
23
- information, significantly simplifying these chores.
24
-
25
- rubyforge:
26
- project : reap
27
- username : transami
28
-
29
- package: !!package
30
- distribute : [ tar.bz2, gem, deb ]
31
- dependencies : [ facets ]
32
- executables : [ reap, rubytest ]
33
- dir: '../DISTRIBUTION'
34
- exclude:
35
- - dist
36
- - dev
37
- - scrap
38
- - web
39
-
40
- release: !!release
41
- host : rubyforge.org
42
- username : transami
43
- project : reap
44
- groupid : 811
45
- package : Reap
46
- dir : '../DISTRIBUTION'
47
-
48
- publish: !!publish
49
- target : rubyforge
50
- type : web
51
- host : rubyforge.org
52
- username : transami
53
- dir : web
54
-
55
- rdoc: !!rdoc
56
- dir: 'web/doc/api'
57
- main: README
58
-
59
- announce: !!announce
60
- to : ruby-talk@ruby-lang.org
61
- from : &amp;email transfirz@zmail.com
62
- domain : unit.rubyforge.org
63
- server : smtp.gmail.com
64
- port : 587
65
- account : *email
66
- type : login # cram_md5, plain
67
- security : tls # ~, tls, ssl (not working yet)
68
- file : doc/LATEST # file contains announcement
69
- slogan : REAP THE REWARDS!
70
- links : []
71
-
72
- doap: !!doap
73
- dir: doc
74
-
75
- </pre>
data/web/images/grape.jpg DELETED
Binary file
data/web/index.html DELETED
@@ -1,312 +0,0 @@
1
- <html>
2
-
3
- <head>
4
- <title>Reap</title>
5
- <style>
6
-
7
- body { margin: 0; padding: 0; font-size: 10pt; font-size: 1em; }
8
-
9
- p { font-family: sans-serif; text-align: justify;
10
- font-size: 1em; line-height: 1.3em;
11
- }
12
-
13
- img { }
14
-
15
- h2 { color: red; margin-top: 30px; }
16
-
17
- td { margin: 0; padding: 0; vertical-align: top; }
18
-
19
- b.p { color: white; }
20
- b.b { color: black; }
21
- b.r { color: red; }
22
-
23
- pre { font-size: .9em; line-height: 1.2em;
24
- margin: 0;
25
- padding: 0; padding-bottom: 5px; padding-top: 15px;
26
- background: #FFFBBF;
27
- }
28
-
29
- pre.white { background: white; }
30
-
31
- span.m { font-family: monospace; }
32
-
33
- div#title {
34
- float: top;
35
- background: black repeat-x;
36
- border-bottom: 1px solid gray;
37
- }
38
-
39
- div#title table {}
40
-
41
- td#meta { color: white; vertical-align: bottom;
42
- font-size: 64pt; font-family: sans-serif; font-weight: bold; }
43
-
44
- td#slogon {
45
- width: 120px;
46
- vertical-align: middle; text-align: left; font-family: monospace;
47
- color: gray; font-size: 1.3em; padding-left: 10px; text-align: center;
48
- white-space: nowrap;
49
- }
50
-
51
- div#menu { width: 100%; vertical-align: middle; padding-left: 30px;
52
- font-family: sans-serif; font-size: .8em; line-height: 3em;
53
- border-bottom: 1px solid black;
54
- color: red; background: white; }
55
-
56
- div#menu a { color: red; text-decoration: none; font-weight: bold; }
57
-
58
- div#menu a:hover { color: pink; }
59
-
60
- div#container { margin: 10px; padding: 10px; padding-top: 5px;
61
- border: 0;
62
- }
63
-
64
- div#copy { font-size: 7pt; font-family: sans-serif; margin: 5px;
65
- border-top: 1px solid #cccccc; color: gray;
66
- }
67
-
68
- div#eg { float: right; margin: 20px; margin-top: -110px;
69
- padding: 0px; padding-top: 7px;
70
- border: solid 1px lightgray;
71
- text-align: center;
72
- font-family: monospace; font-size: .8em;
73
- color: green; background: #cccccc; }
74
-
75
- iframe { width: 430px; height: 1000px; border: 0; border-left: solid 1px #DDDDDD;
76
- margin: 0px; margin-top: 5px; padding-left: 5px;
77
- background: #EEFFEE; }
78
-
79
- </style>
80
- </head>
81
-
82
- <body>
83
-
84
- <div id="title">
85
- <table width="100%" border="0" style="padding: 0;">
86
- <tr>
87
- <td id="slogon">
88
- <b class="p">w h e n</b> <br/>
89
- <b class="p">y o u r</b> <br/>
90
- <b class="r">r u b y</b> <br/>
91
- <b class="p">r u n s</b> <br/>
92
- <b class="p">o v e r</b>&nbsp;
93
- </td>
94
- <td id="meta">
95
- RE<b class="r">A</b>P
96
- </td>
97
- </tr>
98
- <tr>
99
- </tr>
100
- </table>
101
- </div>
102
-
103
- <div id="menu" colspan="2">
104
- <a href="http://rubyforge.org/frs/?group_id=811">Download</a> &middot;
105
- <a href="doc/api/index.html">Documentation</a> &middot;
106
- <a href="http://rubyforge.org/projects/reap/">Development</a>
107
- </div>
108
-
109
- <div id="eg">
110
- <b>Example ProjectInfo File</b><br/>
111
- <iframe src="ProjectInfo.html">Sorry, there are no iframes in your web world.</iframe>
112
- </div>
113
-
114
- <div id="container">
115
-
116
- <p>Reap is a set of integrated tasks designed to simplify the life of
117
- Ruby application developers and project managers. The tasks
118
- cover the range of common nneds, from setting up a standard
119
- project structure to distributing and announcments.
120
- Because of the commonality between the tasks, Reap utilizes a
121
- central YAML-format configuration file to harvest project
122
- information, significantly simplifying usage.</p>
123
-
124
- <p>Custom task can also be easily created to suit specific
125
- project requirements. In this respect Reap is much like
126
- Rake. In fact Reap can be used as a replacement for Rake.
127
- On the other hand Reap tasks can also be used via Rake
128
- just as if they were another set of avaiable Rake tasks.</p>
129
-
130
-
131
- <h2> Usage </h2>
132
-
133
- <p>To use Reap, you simply need to install it and add a ProjectInfo
134
- to your projects main directory. By default, Reap supports the standard
135
- project layout as promoted by setup.rb.</p>
136
-
137
- <p>Once you ProjectInfo file is filled out you can see what tasks are ready to run
138
- simply by typing 'reap' into the command line. For example you might see
139
- something like:</p>
140
-
141
- <pre>
142
- ~/myproj$ reap
143
-
144
- info Display ProjectInfo file.
145
- testext Extract unit-tests from lib scripts.
146
- test Run unit-tests (each in a separate process).
147
- rdoc Generate API Documentation.
148
- doap Generate DOAP project file.
149
- publish Publish documents to the web.
150
- perm Normalize ownership and permissions of files.
151
- package Build distribution packages.
152
- install Locally install package using built-in setup.rb.
153
- release Release distribution files.
154
- announce Email project announcement.
155
- </pre>
156
-
157
- <p>To get started, it easiest to use a pre-existing ProjectInfo file and modifying
158
- it to fit your project. Besides copying another project's ProjectInfo file
159
- you can ask Reap for an empty one.</p>
160
-
161
- <pre>
162
- ~/myproj$ reap template
163
- </pre>
164
-
165
- <p>Each task section of the project information file can be used as a task name and
166
- a YAML private type identifies the type of task it represents.
167
- To find out what parameters each task accepts see Reap's RDoc API.</p>
168
-
169
- <p>If you prefer using Rake for all your project tasks. Reap provides an
170
- simple interface for doing so. Here's an example of a Rakefile.</p>
171
-
172
- <pre>
173
- require 'rake'
174
- require 'reap/reap'
175
-
176
- task_package 'pack' do |pkg|
177
- pkg.distribute = [ 'gem' ]
178
- pkg.dependencies = [ facets ]
179
- end
180
- </pre>
181
-
182
- <p>In the above, all information is provided directly via the Ruby task code.
183
- You can also use Rake while utilizing the ProjectInfo file, if you prefer.
184
- In that case it is very simple. In your Rake file simple put:</p>
185
-
186
- <pre>
187
- require 'rake'
188
- require 'reap/rake'
189
- </pre>
190
-
191
- <p>Then all the tasks defined in the ProjectInfo file will be available via Rake.
192
- You can add additional Rake tasks, of course.</p>
193
-
194
- <h2> Creating Tasks </h2>
195
-
196
- <p>Building a Reap task is pretty easy too. In fact if you ever used Rake
197
- you already have a good idea about how to do it.</p>
198
-
199
- <p>The first thing you need to know is where to put the tasks code.
200
- With Reap each task typically has it's own file.
201
- To create a custom task particular to a project add a task/ directory
202
- to your project and place your custom task file in it.</p>
203
-
204
- <!--
205
- <p>If you have custom tasks you'd like to use for all your projects
206
- you can place them either in you home directory under ~/.config/reap/task/,
207
- or you could make them universally available to all users in the
208
- shared data directory, on Debian, /usr/share/reap/task/.</p>
209
- -->
210
-
211
- <p>Here's an "oh-so-simple" example:</p>
212
-
213
- <pre>
214
- module Tasks
215
-
216
- def simple( name, data )
217
-
218
- desc 'This is a custom reap task class.'
219
-
220
- task name do
221
- data.message ||= master.message
222
- puts data.message + "\n\n" + data.signed
223
- end
224
-
225
- end
226
-
227
- end
228
- </pre>
229
-
230
- <p>The corresponding settings in the ProjectInfo file will then be:</p>
231
-
232
- <pre>
233
- message: Hi, how are you?
234
-
235
- simple: !!simple
236
- signed: Your friend, Tom.
237
- </pre>
238
-
239
- <p>And to use it type:</p>
240
-
241
- <pre>
242
- % reap simple
243
- </pre>
244
-
245
- <p>Notice the reference to 'master'. This is an OpenCascade interface
246
- (similar to OpenObject and OpenStruct) to the whole ProjectInfo dataset.</p>
247
-
248
- <p>You might recognize the core methods of creating a task, 'desc' and 'task'.
249
- These are used exactly as they are in Rake. We encapsulate them in a
250
- task-definition method (eg. simple) so the task can be generated dyanmically
251
- if such a section (!!simple) appears in the ProjectInfo file. Such
252
- task-definition methods are recognized by reap b/c they are stored in the
253
- special purpose Tasks module.</p>
254
-
255
- <p>It's a good idea to take some time and learn all the standard
256
- properties of a project's information file which you can draw on for
257
- your own tasks. Looking at the RDoc API documentation will elucidate most these.
258
- </p>
259
-
260
- <p>The rest of building a task is a matter or writing the code to have it do
261
- what you want it to, of course. If you develop any nice tasks, be sure to pass
262
- them along!
263
- </p>
264
-
265
-
266
- <h2> Status </h2>
267
-
268
- <p>Reap works fairly well at this point, although not all intended functionality is complete.
269
- The primary tasks, like packaging, testing and rdocing are the most well developed.
270
- Other tasks have some limitations. For instance, the publish task
271
- is limited to uploading to RubyForge at the moment. And the announcment task can't
272
- route email via TLS servers. But Reap is very usable and is used in a number of
273
- projects including Facets and Nitro. Moreover, if you use it, contributions
274
- to it's improvement are very welcome and will be sung many wonderous praises &nbsp;<span class="m">;)</span>
275
- </p>
276
-
277
- <p>IMPORTANT!!! Microsoft Windows support is weak at the moment. No doubt a few of
278
- the built-in tasks will fail under Windoes. But fixing this issues is a high priority
279
- for upcoming releases. So staty tuned --or heck, help out!</p>
280
-
281
-
282
- <h2> Future </h2>
283
-
284
- <p>The future of Reap looks very bright. Some of the plans for the future
285
- include:</p>
286
-
287
- <p>
288
- 1. Code audit to catch any overlooked bugs and potential gotchas.<br/>
289
- 2. Full Windows compatability, replacing most of the shell calls.<br/>
290
- 3. Switching from setup.rb to an improved package.rb install system.<br/>
291
- 4. SCM related tasks, starting with Darcs and later Subversion.<br/>
292
- </p>
293
-
294
-
295
- <h2> License </h2>
296
-
297
- <p>Reap Copyright (c) 2004-2006 Thomas Sawyer, Ruby License</p>
298
-
299
- <p>THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
300
- IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
301
- WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
302
- PURPOSE.
303
- </p>
304
-
305
- <br/><br/>
306
-
307
- </div>
308
-
309
- <div id="copy">Copyright (c) 2006 Thomas Sawyer, All Rights Reserved.</div>
310
-
311
- </body>
312
- </html>