reap 4.5.2 → 5.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/ProjectInfo +34 -24
- data/Rakefile +5 -113
- data/{COPYING → doc/COPYING} +0 -0
- data/doc/ChangeLog +17 -0
- data/doc/LATEST +24 -4
- data/{README → doc/README} +17 -23
- data/doc/note/Rakefile.0 +118 -0
- data/doc/note/application.rb +124 -0
- data/doc/note/intro.txt +42 -0
- data/{package.rb → doc/note/package.rb} +0 -0
- data/lib/reap/app.rb +74 -0
- data/lib/reap/bin/reap.rb +40 -76
- data/lib/reap/projectinfo.rb +20 -52
- data/lib/reap/rake.rb +12 -0
- data/lib/reap/reap.rb +4 -1
- data/lib/reap/task.rb +51 -81
- data/lib/reap/task/announce.rb +1 -1
- data/lib/reap/task/custom.rb +12 -0
- data/lib/reap/task/doap.rb +2 -2
- data/lib/reap/task/extest.rb +1 -1
- data/lib/reap/task/fileperm.rb +1 -3
- data/lib/reap/task/info.rb +1 -1
- data/lib/reap/task/install.rb +3 -4
- data/lib/reap/task/manifest.rb +1 -3
- data/lib/reap/task/package.rb +10 -8
- data/lib/reap/task/publish.rb +1 -1
- data/lib/reap/task/rdoc.rb +3 -5
- data/lib/reap/task/release.rb +1 -1
- data/lib/reap/task/scaffold.rb +1 -1
- data/lib/reap/task/template.rb +3 -1
- data/lib/reap/task/test.rb +1 -3
- data/task/noop.rb +1 -2
- metadata +12 -6
data/ProjectInfo
CHANGED
@@ -2,14 +2,14 @@
|
|
2
2
|
|
3
3
|
title : Reap
|
4
4
|
name : reap
|
5
|
-
version : '
|
6
|
-
created : '2004-04-01'
|
5
|
+
version : '5.0.0'
|
7
6
|
status : 'beta/stable'
|
7
|
+
created : '2004-04-01'
|
8
8
|
|
9
9
|
author : Thomas Sawyer
|
10
10
|
email : &email transfire@gmail.com
|
11
11
|
homepage : "http://reap.rubyforge.org"
|
12
|
-
summary : The
|
12
|
+
summary : The Flexible Ruby Project Management Assistant
|
13
13
|
|
14
14
|
description: >
|
15
15
|
Reap comprises a set of tasks commonly need ber Ruby package
|
@@ -18,7 +18,13 @@ description: >
|
|
18
18
|
Reap utilizes a YAML configuration file to harvest project
|
19
19
|
information, significantly simplifying these chores.
|
20
20
|
|
21
|
-
|
21
|
+
rubyforge:
|
22
|
+
project : reap
|
23
|
+
username : transami
|
24
|
+
|
25
|
+
install: !!install
|
26
|
+
|
27
|
+
package: !!package
|
22
28
|
distribute : [ gem, tar.bz2 ] # zip, tar.gz, tbz, tgz, gem, deb
|
23
29
|
dependencies : [ facets ]
|
24
30
|
executables : [ reap, rubytest ]
|
@@ -29,11 +35,7 @@ package:
|
|
29
35
|
- scrap
|
30
36
|
- web
|
31
37
|
|
32
|
-
|
33
|
-
project : reap
|
34
|
-
username : transami
|
35
|
-
|
36
|
-
release:
|
38
|
+
release: !!release
|
37
39
|
host : rubyforge.org
|
38
40
|
username : transami
|
39
41
|
project : reap
|
@@ -41,22 +43,21 @@ release:
|
|
41
43
|
package : Reap
|
42
44
|
dir : '../DISTRIBUTION'
|
43
45
|
|
44
|
-
publish:
|
46
|
+
publish: !!publish
|
45
47
|
target : rubyforge
|
46
48
|
type : web
|
47
49
|
host : rubyforge.org
|
48
50
|
username : transami
|
49
51
|
dir : web
|
50
52
|
|
51
|
-
rdoc:
|
53
|
+
rdoc: !!rdoc
|
52
54
|
dir: 'web/doc/api'
|
53
|
-
|
54
|
-
|
55
|
-
- '
|
56
|
-
|
57
|
-
- 'lib/reap/data'
|
55
|
+
main: 'doc/README'
|
56
|
+
# include:
|
57
|
+
# - 'A-Z*'
|
58
|
+
# - 'lib/**/*'
|
58
59
|
|
59
|
-
announce:
|
60
|
+
announce: !!announce
|
60
61
|
to : transfire@gmail.com # ruby-talk@ruby-lang.org
|
61
62
|
from : *email
|
62
63
|
domain : unit.rubyforge.org
|
@@ -69,12 +70,21 @@ announce:
|
|
69
70
|
slogan : REAP THE REWARDS!
|
70
71
|
links : []
|
71
72
|
|
72
|
-
perm:
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
73
|
+
# perm: !!perm
|
74
|
+
# filemod: 644
|
75
|
+
# dirmod: 755
|
76
|
+
# user: trans
|
77
|
+
# group: users
|
77
78
|
|
78
|
-
noop
|
79
|
-
|
79
|
+
# noop1: !!noop
|
80
|
+
# message: Hello Dude!
|
81
|
+
#
|
82
|
+
# noop2: !!noop
|
83
|
+
# desc: Alternate description for a task
|
84
|
+
# message: Hello Baby!
|
85
|
+
#
|
86
|
+
# mytask: !!custom
|
87
|
+
# desc: This is a test of a cutom task.
|
88
|
+
# task:
|
89
|
+
# puts "Hello Moto!"
|
80
90
|
|
data/Rakefile
CHANGED
@@ -1,118 +1,10 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
1
|
require 'rake'
|
4
|
-
require 'reap/
|
5
|
-
|
6
|
-
# Load the project information file from standard location.
|
7
|
-
# (Note that this sets the global variable $PROJECT_INFO.)
|
8
|
-
|
9
|
-
ProjectInfo.load
|
10
|
-
|
11
|
-
# If one wished this could do the following
|
12
|
-
# instead of using an exteranl file.
|
13
|
-
|
14
|
-
=begin
|
15
|
-
ProjectInfo.new do
|
16
|
-
|
17
|
-
title 'Reap'
|
18
|
-
name 'reap'
|
19
|
-
version '4.3.4'
|
20
|
-
date '2006-04-07'
|
21
|
-
created '2004-04-01'
|
22
|
-
status 'beta/stable'
|
23
|
-
|
24
|
-
author 'Thomas Sawyer'
|
25
|
-
email 'transfire@gmail.com'
|
26
|
-
homepage 'http://reap.rubyforge.org'
|
27
|
-
summary 'Tools for Ruby project testing, management and assistance.'
|
28
|
-
|
29
|
-
description %{
|
30
|
-
Reap comprises a set of commonly needed tools for Ruby package
|
31
|
-
developers/deployers. Because of the commonality,
|
32
|
-
Reap utilizes a YAML configuration file to harvest project
|
33
|
-
information, significantly simplifying usage.
|
34
|
-
}
|
35
|
-
|
36
|
-
distribute [ 'gem', 'deb', 'zip' ] # zip, tar.gz, tbz, tgz, deb
|
37
|
-
dependencies [ 'facets' ]
|
38
|
-
executables [ 'reap' ]
|
39
|
-
|
40
|
-
package {
|
41
|
-
dir '../DISTRIBUTION'
|
42
|
-
distribute [ 'deb' ]
|
43
|
-
exclude [ 'dist', 'dev', 'scrap', 'web' ]
|
44
|
-
}
|
2
|
+
require 'reap/rake'
|
45
3
|
|
46
|
-
|
47
|
-
project 'reap'
|
48
|
-
username 'transami'
|
49
|
-
}
|
4
|
+
task :default => [:tasks]
|
50
5
|
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
project 'reap'
|
55
|
-
groupid '811'
|
56
|
-
package 'Reap'
|
57
|
-
dir '../DISTRIBUTION'
|
58
|
-
}
|
59
|
-
|
60
|
-
publish {
|
61
|
-
type 'web'
|
62
|
-
host 'rubyforge.org'
|
63
|
-
username 'transami'
|
64
|
-
dir 'web'
|
65
|
-
}
|
66
|
-
|
67
|
-
rdoc {
|
68
|
-
dir 'web/doc/api'
|
69
|
-
include [ 'A-Z*', 'lib/**/*' ]
|
70
|
-
exclude [ 'lib/reap/data' ]
|
71
|
-
}
|
72
|
-
|
73
|
-
announce {
|
74
|
-
to 'transfire@gmail.com' # ruby-talk@ruby-lang.org
|
75
|
-
from 'transfire@gmail.com'
|
76
|
-
domain 'unit.rubyforge.org'
|
77
|
-
server 'smtp.gmail.com'
|
78
|
-
port '587'
|
79
|
-
account 'transfire@gmail.com'
|
80
|
-
type 'login' # cram_md5, plain
|
81
|
-
security 'tls' # ~, tls, ssl (not working yet)
|
82
|
-
#file 'ANN' # which file contains announcement
|
83
|
-
slogan 'REAP THE REWARDS!'
|
84
|
-
links []
|
85
|
-
}
|
86
|
-
|
87
|
-
end
|
88
|
-
=end
|
89
|
-
|
90
|
-
# Here's an exmaple of a task where the parameters
|
91
|
-
# are set progamatically, like a regular Rake task
|
92
|
-
# --instead of being pulled from the project info data.
|
93
|
-
# Even so, the task can still look to the project info's
|
94
|
-
# master (ie. root) level for any missing information.
|
95
|
-
|
96
|
-
Rake::ReapPackage.new do |pkg|
|
97
|
-
pkg.dir = '../DISTRIBUTION'
|
98
|
-
pkg.distribute = [ 'tar.bz2', 'gem', 'deb' ]
|
99
|
-
pkg.dependencies [ 'facets' ]
|
100
|
-
pkg.executables [ 'reap' ]
|
101
|
-
pkg.exclude = [ 'dist', 'dev', 'scrap', 'web' ]
|
6
|
+
task :tasks do
|
7
|
+
Rake.application.options.show_task_pattern = //
|
8
|
+
Rake.application.display_tasks_and_comments
|
102
9
|
end
|
103
10
|
|
104
|
-
# The easy way -- just setup the tasks to pull info
|
105
|
-
# from the project information data/file.
|
106
|
-
|
107
|
-
Rake::ReapAnnounce.new
|
108
|
-
Rake::ReapExTest.new
|
109
|
-
Rake::ReapTest.new
|
110
|
-
Rake::ReapInstall.new
|
111
|
-
Rake::ReapRelease.new
|
112
|
-
Rake::ReapInfo.new
|
113
|
-
Rake::ReapRDoc.new
|
114
|
-
Rake::ReapDoap.new
|
115
|
-
Rake::ReapPublish.new
|
116
|
-
Rake::ReapManifest.new
|
117
|
-
|
118
|
-
|
data/{COPYING → doc/COPYING}
RENAMED
File without changes
|
data/doc/ChangeLog
CHANGED
@@ -1 +1,18 @@
|
|
1
1
|
= Reap ChangeLog
|
2
|
+
|
3
|
+
5.0.0:
|
4
|
+
- New task mechinism uses YAML types to define the type
|
5
|
+
of task. This also allows for basic custom tasks
|
6
|
+
to be added directly to the ProjectInfo file.
|
7
|
+
- The new system also elgantly interfaces with Rake.
|
8
|
+
So if you are a dedicated Rake user, you only need
|
9
|
+
to use 'require reap/rake' in your Rakefile and
|
10
|
+
all the tasks entries in the ProjectInfo file
|
11
|
+
will be available via rake.
|
12
|
+
- New task mechinism now allows for custom named tasks.
|
13
|
+
While this has the downside lack of name standardization
|
14
|
+
for task types, we will strongly promote the convention
|
15
|
+
of standard names to minimize this.
|
16
|
+
- Reinstated use of task_attr for definin alternate name
|
17
|
+
for accessing inheritable task properties.
|
18
|
+
|
data/doc/LATEST
CHANGED
@@ -1,8 +1,28 @@
|
|
1
1
|
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
2
|
+
And just like that *snap* we arrive at version 5.0. Why a major version change? Becuase Reap tasks now have new "formulary". They are defined as true blue YAML types. This means you can even name a Reap task anything you like (although we strongly encourage sticking to the conventional names unless
|
3
|
+
otherwise neccessary). Here's an example from Facets' own ProjecInfo file:
|
4
|
+
|
5
|
+
rdoc-core: !!rdoc
|
6
|
+
dir: web/doc/api/core
|
7
|
+
template: jamis
|
8
|
+
options: ['--all', '--inline-source']
|
9
|
+
include:
|
10
|
+
- 'lib/facets/core/**/*'
|
11
|
+
- '[A-Z]*'
|
12
|
+
|
13
|
+
rdoc-more: !!rdoc
|
14
|
+
dir: web/doc/api/more
|
15
|
+
template: jamis
|
16
|
+
options: ['--all', '--inline-source']
|
17
|
+
include:
|
18
|
+
- 'lib/facets/more/**/*'
|
19
|
+
- '[A-Z]*'
|
20
|
+
|
21
|
+
With this release we have also tightened Rake inter-operability. Simply place
|
22
|
+
|
23
|
+
require 'reap/rake'
|
24
|
+
|
25
|
+
in you Rakefile and all tasks defined in the ProjectInfo file will be available via the rake command.
|
6
26
|
|
7
27
|
Enjoy,
|
8
28
|
T.
|
data/{README → doc/README}
RENAMED
@@ -1,6 +1,6 @@
|
|
1
1
|
= Reap
|
2
2
|
|
3
|
-
Project
|
3
|
+
Project Assistant for Ruby
|
4
4
|
|
5
5
|
|
6
6
|
== What's This Then?
|
@@ -37,12 +37,10 @@ Install the ruby gem as you would any other:
|
|
37
37
|
|
38
38
|
<tt>gem install reap</tt>
|
39
39
|
|
40
|
-
Gems still suffers from the datadir problem,
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
but for the moment it is better to use the
|
45
|
-
manual install.
|
40
|
+
Gems still suffers from the datadir problem, so we've had
|
41
|
+
to create some work arounds, for the template and scaffold
|
42
|
+
tasks in particular. If you have any trouble with the Gem
|
43
|
+
install please let us know so we can correct.
|
46
44
|
|
47
45
|
=== Manual Install
|
48
46
|
|
@@ -116,25 +114,21 @@ whole class.
|
|
116
114
|
|
117
115
|
Here's an "oh so simple" example:
|
118
116
|
|
119
|
-
class
|
117
|
+
class MySimple < Reap::Task
|
120
118
|
|
121
|
-
task_desc 'This is a custom reap task'
|
119
|
+
task_desc 'This is a custom reap task class.'
|
122
120
|
|
123
121
|
task_help %{
|
124
|
-
|
125
|
-
reap ohsosimple
|
126
|
-
|
127
122
|
This is help information for a custom reap task.
|
128
|
-
|
129
123
|
}
|
130
124
|
|
131
|
-
|
125
|
+
task_attr :simple
|
132
126
|
|
133
127
|
def run
|
134
|
-
|
135
|
-
|
128
|
+
simple.message ||= 'None Found!'
|
129
|
+
simple.another ||= 'Again!'
|
136
130
|
|
137
|
-
puts
|
131
|
+
puts simple.message + "\n" + simple.another
|
138
132
|
end
|
139
133
|
|
140
134
|
end
|
@@ -143,16 +137,16 @@ The corresponding settings in the ProjectInfo file (master) will then be:
|
|
143
137
|
|
144
138
|
message: Default text, if any.
|
145
139
|
|
146
|
-
|
140
|
+
simple: !!mysimple
|
147
141
|
another: Your other message here.
|
148
142
|
|
149
143
|
And to use it
|
150
144
|
|
151
|
-
> reap
|
145
|
+
> reap simple
|
152
146
|
|
153
147
|
While Reap had used instance varaibles for task properties in the past,
|
154
|
-
|
155
|
-
which can be referenced by any name you like
|
148
|
+
this has changed as of version 4.3.3. Now it uses the 'task' object,
|
149
|
+
which can be referenced by any name you like using task_attr to alias it.
|
156
150
|
The nice thing about using this interface instead of instance
|
157
151
|
variables is that reap will automatically search the
|
158
152
|
ProjectInfo's root if the property is not found in the task
|
@@ -168,8 +162,8 @@ section property in the run method. Eg.
|
|
168
162
|
...
|
169
163
|
end
|
170
164
|
|
171
|
-
Notice we used 'task' here rather than '
|
172
|
-
is always available. In the above, '
|
165
|
+
Notice we used 'task' here rather than 'simple'. This task object
|
166
|
+
is always available. In the above, 'simple' is just being aliased
|
173
167
|
to 'task' for readability convenience. Both refer to the same
|
174
168
|
underlying object.
|
175
169
|
|
data/doc/note/Rakefile.0
ADDED
@@ -0,0 +1,118 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'rake'
|
4
|
+
require 'reap/reap'
|
5
|
+
|
6
|
+
# Load the project information file from standard location.
|
7
|
+
# (Note that this sets the global variable $PROJECT_INFO.)
|
8
|
+
|
9
|
+
ProjectInfo.load
|
10
|
+
|
11
|
+
# If one wished this could do the following
|
12
|
+
# instead of using an exteranl file.
|
13
|
+
|
14
|
+
=begin
|
15
|
+
ProjectInfo.new do
|
16
|
+
|
17
|
+
title 'Reap'
|
18
|
+
name 'reap'
|
19
|
+
version '4.3.4'
|
20
|
+
date '2006-04-07'
|
21
|
+
created '2004-04-01'
|
22
|
+
status 'beta/stable'
|
23
|
+
|
24
|
+
author 'Thomas Sawyer'
|
25
|
+
email 'transfire@gmail.com'
|
26
|
+
homepage 'http://reap.rubyforge.org'
|
27
|
+
summary 'Tools for Ruby project testing, management and assistance.'
|
28
|
+
|
29
|
+
description %{
|
30
|
+
Reap comprises a set of commonly needed tools for Ruby package
|
31
|
+
developers/deployers. Because of the commonality,
|
32
|
+
Reap utilizes a YAML configuration file to harvest project
|
33
|
+
information, significantly simplifying usage.
|
34
|
+
}
|
35
|
+
|
36
|
+
distribute [ 'gem', 'deb', 'zip' ] # zip, tar.gz, tbz, tgz, deb
|
37
|
+
dependencies [ 'facets' ]
|
38
|
+
executables [ 'reap' ]
|
39
|
+
|
40
|
+
package {
|
41
|
+
dir '../DISTRIBUTION'
|
42
|
+
distribute [ 'deb' ]
|
43
|
+
exclude [ 'dist', 'dev', 'scrap', 'web' ]
|
44
|
+
}
|
45
|
+
|
46
|
+
rubyforge {
|
47
|
+
project 'reap'
|
48
|
+
username 'transami'
|
49
|
+
}
|
50
|
+
|
51
|
+
release {
|
52
|
+
host 'rubyforge.org'
|
53
|
+
username 'transami'
|
54
|
+
project 'reap'
|
55
|
+
groupid '811'
|
56
|
+
package 'Reap'
|
57
|
+
dir '../DISTRIBUTION'
|
58
|
+
}
|
59
|
+
|
60
|
+
publish {
|
61
|
+
type 'web'
|
62
|
+
host 'rubyforge.org'
|
63
|
+
username 'transami'
|
64
|
+
dir 'web'
|
65
|
+
}
|
66
|
+
|
67
|
+
rdoc {
|
68
|
+
dir 'web/doc/api'
|
69
|
+
include [ 'A-Z*', 'lib/**/*' ]
|
70
|
+
exclude [ 'lib/reap/data' ]
|
71
|
+
}
|
72
|
+
|
73
|
+
announce {
|
74
|
+
to 'transfire@gmail.com' # ruby-talk@ruby-lang.org
|
75
|
+
from 'transfire@gmail.com'
|
76
|
+
domain 'unit.rubyforge.org'
|
77
|
+
server 'smtp.gmail.com'
|
78
|
+
port '587'
|
79
|
+
account 'transfire@gmail.com'
|
80
|
+
type 'login' # cram_md5, plain
|
81
|
+
security 'tls' # ~, tls, ssl (not working yet)
|
82
|
+
#file 'ANN' # which file contains announcement
|
83
|
+
slogan 'REAP THE REWARDS!'
|
84
|
+
links []
|
85
|
+
}
|
86
|
+
|
87
|
+
end
|
88
|
+
=end
|
89
|
+
|
90
|
+
# Here's an exmaple of a task where the parameters
|
91
|
+
# are set progamatically, like a regular Rake task
|
92
|
+
# --instead of being pulled from the project info data.
|
93
|
+
# Even so, the task can still look to the project info's
|
94
|
+
# master (ie. root) level for any missing information.
|
95
|
+
|
96
|
+
Rake::ReapPackage.new do |pkg|
|
97
|
+
pkg.dir = '../DISTRIBUTION'
|
98
|
+
pkg.distribute = [ 'tar.bz2', 'gem', 'deb' ]
|
99
|
+
pkg.dependencies [ 'facets' ]
|
100
|
+
pkg.executables [ 'reap' ]
|
101
|
+
pkg.exclude = [ 'dist', 'dev', 'scrap', 'web' ]
|
102
|
+
end
|
103
|
+
|
104
|
+
# The easy way -- just setup the tasks to pull info
|
105
|
+
# from the project information data/file.
|
106
|
+
|
107
|
+
Rake::ReapAnnounce.new
|
108
|
+
Rake::ReapExTest.new
|
109
|
+
Rake::ReapTest.new
|
110
|
+
Rake::ReapInstall.new
|
111
|
+
Rake::ReapRelease.new
|
112
|
+
Rake::ReapInfo.new
|
113
|
+
Rake::ReapRDoc.new
|
114
|
+
Rake::ReapDoap.new
|
115
|
+
Rake::ReapPublish.new
|
116
|
+
Rake::ReapManifest.new
|
117
|
+
|
118
|
+
|